From 9491bdc4fc6876650893da0c68e5da46a250a233 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Sat, 24 Oct 2020 19:50:34 +0300 Subject: [PATCH] - updated the Turkish translation (by Mehmet Kaya) - the methods of the APP class that were the handlers for the File menu are now moved to their oen class --- CHANGELOG.md | 2 + appEditors/AppExcEditor.py | 8 +- appEditors/AppGerberEditor.py | 4 +- appGUI/MainGUI.py | 30 +- appObjects/ObjectCollection.py | 12 +- appTools/ToolCalibration.py | 8 +- appTools/ToolCopperThieving.py | 20 +- appTools/ToolCorners.py | 7 +- appTools/ToolCutOut.py | 18 +- appTools/ToolDblSided.py | 6 +- appTools/ToolEtchCompensation.py | 4 +- appTools/ToolExtractDrills.py | 5 +- appTools/ToolFiducials.py | 24 +- appTools/ToolInvertGerber.py | 4 +- appTools/ToolMove.py | 4 +- appTools/ToolPanelize.py | 12 +- appTools/ToolPunchGerber.py | 16 +- appTools/ToolQRCode.py | 5 +- appTools/ToolSub.py | 4 +- appTools/ToolTransform.py | 12 +- app_Main.py | 5666 +++++++++++------------ locale/de/LC_MESSAGES/strings.mo | Bin 366889 -> 366889 bytes locale/de/LC_MESSAGES/strings.po | 2045 ++++---- locale/en/LC_MESSAGES/strings.mo | Bin 371276 -> 371276 bytes locale/en/LC_MESSAGES/strings.po | 2048 ++++---- locale/es/LC_MESSAGES/strings.mo | Bin 369012 -> 369012 bytes locale/es/LC_MESSAGES/strings.po | 2049 ++++---- locale/fr/LC_MESSAGES/strings.mo | Bin 370234 -> 372728 bytes locale/fr/LC_MESSAGES/strings.po | 2117 ++++----- locale/it/LC_MESSAGES/strings.mo | Bin 379823 -> 379823 bytes locale/it/LC_MESSAGES/strings.po | 2015 ++++---- locale/pt_BR/LC_MESSAGES/strings.mo | Bin 356831 -> 356831 bytes locale/pt_BR/LC_MESSAGES/strings.po | 2037 ++++---- locale/ro/LC_MESSAGES/strings.mo | Bin 401500 -> 401500 bytes locale/ro/LC_MESSAGES/strings.po | 2021 ++++---- locale/ru/LC_MESSAGES/strings.po | 2031 ++++---- locale/tr/LC_MESSAGES/strings.mo | Bin 392465 -> 396829 bytes locale/tr/LC_MESSAGES/strings.po | 2041 ++++---- locale_template/strings.pot | 1968 ++++---- tclCommands/TclCommandExportDXF.py | 2 +- tclCommands/TclCommandExportExcellon.py | 2 +- tclCommands/TclCommandExportGerber.py | 2 +- tclCommands/TclCommandExportSVG.py | 2 +- 43 files changed, 13029 insertions(+), 13222 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db3430f4..6bf77942 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ CHANGELOG for FlatCAM beta - some changes in strings; updated all the translation strings to the latest changes - finished the Romanian translation - created two new preprocessors (from 'default' and from 'grbl_11') that will have no toolchange commands regardless of the settings in the software +- updated the Turkish translation (by Mehmet Kaya) +- the methods of the APP class that were the handlers for the File menu are now moved to their oen class 23.10.2020 diff --git a/appEditors/AppExcEditor.py b/appEditors/AppExcEditor.py index 35aa2e37..49874957 100644 --- a/appEditors/AppExcEditor.py +++ b/appEditors/AppExcEditor.py @@ -2868,10 +2868,10 @@ class AppExcEditor(QtCore.QObject): try: 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) + edited_obj.source_file = self.app.f_handlers.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)) diff --git a/appEditors/AppGerberEditor.py b/appEditors/AppGerberEditor.py index 7d3b854d..af91ad05 100644 --- a/appEditors/AppGerberEditor.py +++ b/appEditors/AppGerberEditor.py @@ -4366,8 +4366,8 @@ class AppGerberEditor(QtCore.QObject): 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) + grb_obj.source_file = self.app.f_handlers.export_gerber(obj_name=out_name, filename=None, + local_use=grb_obj, use_thread=False) with self.app.proc_container.new(_("Creating Gerber.")): try: diff --git a/appGUI/MainGUI.py b/appGUI/MainGUI.py index 8a599f0c..2d7b7797 100644 --- a/appGUI/MainGUI.py +++ b/appGUI/MainGUI.py @@ -2321,7 +2321,7 @@ class MainGUI(QtWidgets.QMainWindow): # CTRL + SHIFT if modifiers == QtCore.Qt.ControlModifier | QtCore.Qt.ShiftModifier: if key == QtCore.Qt.Key_S: - self.app.on_file_saveprojectas() + self.app.f_handlers.on_file_saveprojectas() return # CTRL elif modifiers == QtCore.Qt.ControlModifier: @@ -2346,7 +2346,7 @@ class MainGUI(QtWidgets.QMainWindow): # Open Excellon file if key == QtCore.Qt.Key_E: - self.app.on_fileopenexcellon(signal=None) + self.app.f_handlers.on_fileopenexcellon(signal=None) # Open Gerber file if key == QtCore.Qt.Key_G: @@ -2354,7 +2354,7 @@ class MainGUI(QtWidgets.QMainWindow): if 'editor' in widget_name.lower(): self.app.goto_text_line() else: - self.app.on_fileopengerber(signal=None) + self.app.f_handlers.on_fileopengerber(signal=None) # Distance Tool if key == QtCore.Qt.Key_M: @@ -2362,15 +2362,15 @@ class MainGUI(QtWidgets.QMainWindow): # Create New Project if key == QtCore.Qt.Key_N: - self.app.on_file_new_click() + self.app.f_handlers.on_file_new_click() # Open Project if key == QtCore.Qt.Key_O: - self.app.on_file_openproject(signal=None) + self.app.f_handlers.on_file_openproject(signal=None) # Open Project if key == QtCore.Qt.Key_P: - self.app.on_file_save_objects_pdf(use_thread=True) + self.app.f_handlers.on_file_save_objects_pdf(use_thread=True) # PDF Import if key == QtCore.Qt.Key_Q: @@ -2389,7 +2389,7 @@ class MainGUI(QtWidgets.QMainWindow): self.app.tools_db_tab.on_save_tools_db() return - self.app.on_file_saveproject() + self.app.f_handlers.on_file_saveproject() # Toggle Plot Area if key == QtCore.Qt.Key_F10 or key == 'F10': @@ -2435,7 +2435,7 @@ class MainGUI(QtWidgets.QMainWindow): # Run a Script if key == QtCore.Qt.Key_S: - self.app.on_filerunscript() + self.app.f_handlers.on_filerunscript() return # Toggle Workspace @@ -3677,31 +3677,31 @@ class MainGUI(QtWidgets.QMainWindow): extension = self.filename.lower().rpartition('.')[-1] if extension in self.app.grb_list: - self.app.worker_task.emit({'fcn': self.app.open_gerber, + self.app.worker_task.emit({'fcn': self.app.f_handlers.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, + self.app.worker_task.emit({'fcn': self.app.f_handlers.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, + self.app.worker_task.emit({'fcn': self.app.f_handlers.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, + self.app.worker_task.emit({'fcn': self.app.f_handlers.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, + self.app.worker_task.emit({'fcn': self.app.f_handlers.import_dxf, 'params': [self.filename, object_type, None]}) if extension in self.app.pdf_list: @@ -3711,10 +3711,10 @@ class MainGUI(QtWidgets.QMainWindow): if extension in self.app.prj_list: # self.app.open_project() is not Thread Safe - self.app.open_project(self.filename) + self.app.f_handlers.open_project(self.filename) if extension in self.app.conf_list: - self.app.open_config_file(self.filename) + self.app.f_handlers.open_config_file(self.filename) else: event.ignore() else: diff --git a/appObjects/ObjectCollection.py b/appObjects/ObjectCollection.py index 9720ef9d..0c1a9f2d 100644 --- a/appObjects/ObjectCollection.py +++ b/appObjects/ObjectCollection.py @@ -126,36 +126,36 @@ class KeySensitiveListView(QtWidgets.QTreeView): self.app.inform.emit(_("Cancelled.")) else: if self.filename.lower().rpartition('.')[-1] in self.app.grb_list: - self.app.worker_task.emit({'fcn': self.app.open_gerber, + self.app.worker_task.emit({'fcn': self.app.f_handlers.open_gerber, 'params': [self.filename]}) else: event.ignore() if self.filename.lower().rpartition('.')[-1] in self.app.exc_list: - self.app.worker_task.emit({'fcn': self.app.open_excellon, + self.app.worker_task.emit({'fcn': self.app.f_handlers.open_excellon, 'params': [self.filename]}) else: event.ignore() if self.filename.lower().rpartition('.')[-1] in self.app.gcode_list: - self.app.worker_task.emit({'fcn': self.app.open_gcode, + self.app.worker_task.emit({'fcn': self.app.f_handlers.open_gcode, 'params': [self.filename]}) else: event.ignore() if self.filename.lower().rpartition('.')[-1] in self.app.svg_list: object_type = 'geometry' - self.app.worker_task.emit({'fcn': self.app.import_svg, + self.app.worker_task.emit({'fcn': self.app.f_handlers.import_svg, 'params': [self.filename, object_type, None]}) if self.filename.lower().rpartition('.')[-1] in self.app.dxf_list: object_type = 'geometry' - self.app.worker_task.emit({'fcn': self.app.import_dxf, + self.app.worker_task.emit({'fcn': self.app.f_handlers.import_dxf, 'params': [self.filename, object_type, None]}) if self.filename.lower().rpartition('.')[-1] in self.app.prj_list: # self.app.open_project() is not Thread Safe - self.app.open_project(self.filename) + self.app.f_handlers.open_project(self.filename) else: event.ignore() else: diff --git a/appTools/ToolCalibration.py b/appTools/ToolCalibration.py index 17c0abde..9235cc93 100644 --- a/appTools/ToolCalibration.py +++ b/appTools/ToolCalibration.py @@ -671,8 +671,8 @@ class ToolCalibration(AppTool): obj_init.skew(angle_x=skewx, angle_y=skewy, point=(origin_x, origin_y)) try: - obj_init.source_file = self.export_gerber(obj_name=obj_name, filename=None, local_use=obj_init, - use_thread=False) + obj_init.source_file = self.app.f_handlers.export_gerber(obj_name=obj_name, filename=None, + local_use=obj_init, use_thread=False) except (AttributeError, TypeError): pass @@ -689,8 +689,8 @@ class ToolCalibration(AppTool): obj_init.create_geometry() - obj_init.source_file = self.app.export_excellon(obj_name=obj_name, local_use=obj, filename=None, - use_thread=False) + obj_init.source_file = self.app.export.export_excellon(obj_name=obj_name, local_use=obj, filename=None, + use_thread=False) obj = self.cal_object obj_name = obj_name diff --git a/appTools/ToolCopperThieving.py b/appTools/ToolCopperThieving.py index 2dae4151..dc97793d 100644 --- a/appTools/ToolCopperThieving.py +++ b/appTools/ToolCopperThieving.py @@ -282,10 +282,9 @@ class ToolCopperThieving(AppTool): self.app.proc_container.update_view_text(' %s' % _("Append source file")) # update the source file with the new geometry: - 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.grb_object.source_file = self.app.f_handlers.export_gerber(obj_name=self.grb_object.options['name'], + filename=None, local_use=self.grb_object, + use_thread=False) self.app.proc_container.update_view_text(' %s' % '') self.on_exit() self.app.inform.emit('[success] %s' % _("Copper Thieving Tool done.")) @@ -876,10 +875,9 @@ class ToolCopperThieving(AppTool): app_obj.app.proc_container.update_view_text(' %s' % _("Append source file")) # update the source file with the new geometry: - app_obj.grb_object.source_file = app_obj.app.export_gerber(obj_name=app_obj.grb_object.options['name'], - filename=None, - local_use=app_obj.grb_object, - use_thread=False) + app_obj.grb_object.source_file = app_obj.f_handlers.export_gerber( + obj_name=app_obj.grb_object.options['name'], filename=None, local_use=app_obj.grb_object, + use_thread=False) app_obj.app.proc_container.update_view_text(' %s' % '') app_obj.on_exit() app_obj.app.inform.emit('[success] %s' % _("Copper Thieving Tool done.")) @@ -1021,10 +1019,8 @@ class ToolCopperThieving(AppTool): app_obj.proc_container.update_view_text(' %s' % _("Append source file")) # update the source file with the new geometry: - grb_obj.source_file = app_obj.export_gerber(obj_name=name, - filename=None, - local_use=grb_obj, - use_thread=False) + grb_obj.source_file = app_obj.f_handlers.export_gerber(obj_name=name, filename=None, local_use=grb_obj, + use_thread=False) app_obj.proc_container.update_view_text(' %s' % '') # Object name diff --git a/appTools/ToolCorners.py b/appTools/ToolCorners.py index 523263a6..713833f0 100644 --- a/appTools/ToolCorners.py +++ b/appTools/ToolCorners.py @@ -133,9 +133,10 @@ class ToolCorners(AppTool): 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.grb_object.source_file = self.app.f_handlers.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): diff --git a/appTools/ToolCutOut.py b/appTools/ToolCutOut.py index db4c25aa..e9762474 100644 --- a/appTools/ToolCutOut.py +++ b/appTools/ToolCutOut.py @@ -875,8 +875,9 @@ class CutOut(AppTool): exc_obj.tools = tools exc_obj.create_geometry() - exc_obj.source_file = app_o.export_excellon(obj_name=exc_obj.options['name'], local_use=exc_obj, - filename=None, use_thread=False) + exc_obj.source_file = app_o.f_handlers.export_excellon(obj_name=exc_obj.options['name'], + local_use=exc_obj,filename=None, + use_thread=False) # calculate the bounds xmin, ymin, xmax, ymax = CutOut.recursive_bounds(exc_obj.solid_geometry) exc_obj.options['xmin'] = xmin @@ -1244,8 +1245,10 @@ class CutOut(AppTool): exc_obj.tools = tools exc_obj.create_geometry() - exc_obj.source_file = app_o.export_excellon(obj_name=exc_obj.options['name'], local_use=exc_obj, - filename=None, use_thread=False) + exc_obj.source_file = app_o.f_handlers.export_excellon(obj_name=exc_obj.options['name'], + local_use=exc_obj, + filename=None, + use_thread=False) # calculate the bounds e_xmin, e_ymin, e_xmax, e_ymax = CutOut.recursive_bounds(exc_obj.solid_geometry) exc_obj.options['xmin'] = e_xmin @@ -1600,9 +1603,10 @@ class CutOut(AppTool): exc_obj.tools = tools exc_obj.create_geometry() - exc_obj.source_file = app_o.export_excellon(obj_name=exc_obj.options['name'], - local_use=exc_obj, - filename=None, use_thread=False) + exc_obj.source_file = app_o.f_handlers.export_excellon(obj_name=exc_obj.options['name'], + local_use=exc_obj, + filename=None, + use_thread=False) # calculate the bounds xmin, ymin, xmax, ymax = CutOut.recursive_bounds(exc_obj.solid_geometry) exc_obj.options['xmin'] = xmin diff --git a/appTools/ToolDblSided.py b/appTools/ToolDblSided.py index 8dfbe525..100db07d 100644 --- a/appTools/ToolDblSided.py +++ b/appTools/ToolDblSided.py @@ -205,8 +205,10 @@ class DblSidedTool(AppTool): def obj_init(obj_inst, app_inst): obj_inst.tools = tools obj_inst.create_geometry() - obj_inst.source_file = app_inst.export_excellon(obj_name=obj_inst.options['name'], local_use=obj_inst, - filename=None, use_thread=False) + obj_inst.source_file = app_inst.f_handlers.export_excellon(obj_name=obj_inst.options['name'], + local_use=obj_inst, + filename=None, + use_thread=False) self.app.app_obj.new_object("excellon", "Alignment Drills", obj_init) self.drill_values = '' diff --git a/appTools/ToolEtchCompensation.py b/appTools/ToolEtchCompensation.py index e28f4866..08f10203 100644 --- a/appTools/ToolEtchCompensation.py +++ b/appTools/ToolEtchCompensation.py @@ -233,8 +233,8 @@ class ToolEtchCompensation(AppTool): 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) + new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None, local_use=new_obj, + use_thread=False) self.app.app_obj.new_object('gerber', outname, init_func) diff --git a/appTools/ToolExtractDrills.py b/appTools/ToolExtractDrills.py index 1705f5d2..3bb4ab71 100644 --- a/appTools/ToolExtractDrills.py +++ b/appTools/ToolExtractDrills.py @@ -373,8 +373,9 @@ class ToolExtractDrills(AppTool): obj_inst.tools = tools obj_inst.drills = drills obj_inst.create_geometry() - obj_inst.source_file = self.app.export_excellon(obj_name=outname, local_use=obj_inst, filename=None, - use_thread=False) + obj_inst.source_file = app_inst.f_handlers.export_excellon(obj_name=outname, local_use=obj_inst, + filename=None, + use_thread=False) self.app.app_obj.new_object("excellon", outname, obj_init) diff --git a/appTools/ToolFiducials.py b/appTools/ToolFiducials.py index fd76b393..876f8284 100644 --- a/appTools/ToolFiducials.py +++ b/appTools/ToolFiducials.py @@ -229,9 +229,9 @@ class ToolFiducials(AppTool): self.ui.sec_points_coords_entry.set_value('(%.*f, %.*f)' % (self.decimals, x1, self.decimals, y0)) self.add_fiducials_geo(self.click_points, g_obj=self.grb_object, fid_type=fid_type) - 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.grb_object.source_file = self.app.f_handlers.export_gerber(obj_name=self.grb_object.options['name'], + filename=None, + local_use=self.grb_object, use_thread=False) self.on_exit() else: self.app.inform.emit(_("Click to add first Fiducial. Bottom Left...")) @@ -467,8 +467,10 @@ class ToolFiducials(AppTool): self.sm_obj_set.add(self.sm_object.options['name']) self.add_fiducials_geo(self.click_points, g_obj=self.sm_object, fid_size=sm_opening_dia, fid_type='circular') - self.sm_object.source_file = self.app.export_gerber(obj_name=self.sm_object.options['name'], filename=None, - local_use=self.sm_object, use_thread=False) + self.sm_object.source_file = self.app.f_handlers.export_gerber(obj_name=self.sm_object.options['name'], + filename=None, + local_use=self.sm_object, + use_thread=False) self.on_exit() def on_mouse_release(self, event): @@ -508,18 +510,18 @@ class ToolFiducials(AppTool): self.ui.sec_points_coords_entry.set_value(self.click_points[2]) self.app.inform.emit('[success] %s' % _("Done. All fiducials have been added.")) self.add_fiducials_geo(self.click_points, g_obj=self.grb_object, fid_type=fid_type) - 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.grb_object.source_file = self.app.f_handlers.export_gerber( + obj_name=self.grb_object.options['name'], filename=None, local_use=self.grb_object, + use_thread=False) self.on_exit() else: if len(self.click_points) == 2: self.ui.top_right_coords_entry.set_value(self.click_points[1]) self.app.inform.emit('[success] %s' % _("Done. All fiducials have been added.")) self.add_fiducials_geo(self.click_points, g_obj=self.grb_object, fid_type=fid_type) - 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.grb_object.source_file = self.app.f_handlers.export_gerber( + obj_name=self.grb_object.options['name'], filename=None, + local_use=self.grb_object, use_thread=False) self.on_exit() def on_mouse_move(self, event): diff --git a/appTools/ToolInvertGerber.py b/appTools/ToolInvertGerber.py index fe175b99..3d03224e 100644 --- a/appTools/ToolInvertGerber.py +++ b/appTools/ToolInvertGerber.py @@ -157,8 +157,8 @@ class ToolInvertGerber(AppTool): 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) + new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None, + local_use=new_obj, use_thread=False) self.app.app_obj.new_object('gerber', outname, init_func) diff --git a/appTools/ToolMove.py b/appTools/ToolMove.py index 3a3ef404..f0f4d9cc 100644 --- a/appTools/ToolMove.py +++ b/appTools/ToolMove.py @@ -192,10 +192,10 @@ class ToolMove(AppTool): for sel_obj in obj_list: out_name = sel_obj.options["name"] if sel_obj.kind == 'gerber': - sel_obj.source_file = self.app.export_gerber( + sel_obj.source_file = self.app.f_handlers.export_gerber( obj_name=out_name, filename=None, local_use=sel_obj, use_thread=False) elif sel_obj.kind == 'excellon': - sel_obj.source_file = self.app.export_excellon( + sel_obj.source_file = self.app.f_handlers.export_excellon( obj_name=out_name, filename=None, local_use=sel_obj, use_thread=False) except Exception as err: log.debug('[ERROR_NOTCL] %s --> %s' % ('ToolMove.on_left_click()', str(err))) diff --git a/appTools/ToolPanelize.py b/appTools/ToolPanelize.py index e4978d38..03864f2b 100644 --- a/appTools/ToolPanelize.py +++ b/appTools/ToolPanelize.py @@ -360,8 +360,8 @@ class Panelize(AppTool): obj_fin.zeros = panel_source_obj.zeros obj_fin.units = panel_source_obj.units app_obj.inform.emit('%s' % _("Generating panel ... Adding the source code.")) - obj_fin.source_file = self.app.export_excellon(obj_name=self.outname, filename=None, - local_use=obj_fin, use_thread=False) + obj_fin.source_file = self.app.export.export_excellon(obj_name=self.outname, filename=None, + local_use=obj_fin, use_thread=False) app_obj.proc_container.update_view_text('') def job_init_geometry(obj_fin, app_obj): @@ -583,11 +583,11 @@ class Panelize(AppTool): app_obj.inform.emit('%s' % _("Generating panel ... Adding the source code.")) if panel_type == 'gerber': - obj_fin.source_file = self.app.export_gerber(obj_name=self.outname, filename=None, - local_use=obj_fin, use_thread=False) + obj_fin.source_file = self.app.f_handlers.export_gerber(obj_name=self.outname, filename=None, + local_use=obj_fin, use_thread=False) if panel_type == 'geometry': - obj_fin.source_file = self.app.export_dxf(obj_name=self.outname, filename=None, - local_use=obj_fin, use_thread=False) + obj_fin.source_file = self.app.f_handlers.export_dxf(obj_name=self.outname, filename=None, + local_use=obj_fin, use_thread=False) # obj_fin.solid_geometry = unary_union(obj_fin.solid_geometry) # app_obj.log.debug("Finished creating a unary_union for the panel.") diff --git a/appTools/ToolPunchGerber.py b/appTools/ToolPunchGerber.py index a84a898f..060cac96 100644 --- a/appTools/ToolPunchGerber.py +++ b/appTools/ToolPunchGerber.py @@ -267,8 +267,8 @@ class ToolPunchGerber(AppTool): new_obj.apertures = deepcopy(new_apertures) new_obj.solid_geometry = deepcopy(punched_solid_geometry) - new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, - local_use=new_obj, use_thread=False) + new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None, + local_use=new_obj, use_thread=False) self.app.app_obj.new_object('gerber', outname, init_func) elif punch_method == 'fixed': @@ -390,8 +390,8 @@ class ToolPunchGerber(AppTool): new_obj.apertures = deepcopy(new_apertures) new_obj.solid_geometry = deepcopy(punched_solid_geometry) - new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, - local_use=new_obj, use_thread=False) + new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None, + local_use=new_obj, use_thread=False) self.app.app_obj.new_object('gerber', outname, init_func) elif punch_method == 'ring': @@ -532,8 +532,8 @@ class ToolPunchGerber(AppTool): new_obj.apertures = deepcopy(new_apertures) new_obj.solid_geometry = deepcopy(punched_solid_geometry) - new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, - local_use=new_obj, use_thread=False) + new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None, + local_use=new_obj, use_thread=False) self.app.app_obj.new_object('gerber', outname, init_func) @@ -671,8 +671,8 @@ class ToolPunchGerber(AppTool): new_obj.apertures = deepcopy(new_apertures) new_obj.solid_geometry = deepcopy(punched_solid_geometry) - new_obj.source_file = self.app.export_gerber(obj_name=outname, filename=None, - local_use=new_obj, use_thread=False) + new_obj.source_file = self.app.f_handlers.export_gerber(obj_name=outname, filename=None, + local_use=new_obj, use_thread=False) self.app.app_obj.new_object('gerber', outname, init_func) diff --git a/appTools/ToolQRCode.py b/appTools/ToolQRCode.py index 8536a696..c691f9ca 100644 --- a/appTools/ToolQRCode.py +++ b/appTools/ToolQRCode.py @@ -314,8 +314,9 @@ class QRCode(AppTool): self.grb_object.apertures[new_apid]['geometry'].append(deepcopy(geo_elem)) # update the source file with the new geometry: - 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.grb_object.source_file = self.app.f_handlers.export_gerber(obj_name=self.grb_object.options['name'], + filename=None, + local_use=self.grb_object, use_thread=False) self.replot(obj=self.grb_object) self.app.inform.emit('[success] %s' % _("QRCode Tool done.")) diff --git a/appTools/ToolSub.py b/appTools/ToolSub.py index 7967c89e..42111146 100644 --- a/appTools/ToolSub.py +++ b/appTools/ToolSub.py @@ -320,8 +320,8 @@ class ToolSub(AppTool): 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) + grb_obj.source_file = self.app.f_handlers.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.app_obj.new_object('gerber', outname, obj_init, autoselected=False) diff --git a/appTools/ToolTransform.py b/appTools/ToolTransform.py index dbc48f85..7dee5fa4 100644 --- a/appTools/ToolTransform.py +++ b/appTools/ToolTransform.py @@ -457,14 +457,14 @@ class ToolTransform(AppTool): self.app.inform.emit(_("CNCJob objects can't be buffered.")) elif sel_obj.kind.lower() == 'gerber': sel_obj.buffer(value, join, factor) - sel_obj.source_file = self.app.export_gerber(obj_name=sel_obj.options['name'], - filename=None, local_use=sel_obj, - use_thread=False) + sel_obj.source_file = self.app.f_handlers.export_gerber(obj_name=sel_obj.options['name'], + filename=None, local_use=sel_obj, + use_thread=False) elif sel_obj.kind.lower() == 'excellon': sel_obj.buffer(value, join, factor) - sel_obj.source_file = self.app.export_excellon(obj_name=sel_obj.options['name'], - filename=None, local_use=sel_obj, - use_thread=False) + sel_obj.source_file = self.app.f_handlers.export_excellon(obj_name=sel_obj.options['name'], + filename=None, local_use=sel_obj, + use_thread=False) elif sel_obj.kind.lower() == 'geometry': sel_obj.buffer(value, join, factor) diff --git a/app_Main.py b/app_Main.py index 6cdb5dc8..d86014e8 100644 --- a/app_Main.py +++ b/app_Main.py @@ -775,311 +775,12 @@ class App(QtCore.QObject): self.log.debug("Finished creating Workers crew.") # ########################################################################################################### - # ############################################# Activity Monitor ########################################### + # ############################################# Activity Monitor ############################################ # ########################################################################################################### # self.activity_view = FlatCAMActivityView(app=self) # self.ui.infobar.addWidget(self.activity_view) self.proc_container = FCVisibleProcessContainer(self.ui.activity_view) - # ########################################################################################################### - # ############################################# Signal handling ############################################# - # ########################################################################################################### - - # ########################################## Custom signals ################################################ - # signal for displaying messages in status bar - self.inform[str].connect(self.info) - self.inform[str, bool].connect(self.info) - - # signal for displaying messages in the shell - self.inform_shell[str].connect(self.info_shell) - self.inform_shell[str, bool].connect(self.info_shell) - - # signal to be called when the app is quiting - self.app_quit.connect(self.quit_application, type=Qt.QueuedConnection) - self.message.connect(lambda: message_dialog(parent=self.ui)) - # self.progress.connect(self.set_progress_bar) - - # signals emitted when file state change - self.file_opened.connect(self.register_recent) - self.file_opened.connect(lambda kind, filename: self.register_folder(filename)) - self.file_saved.connect(lambda kind, filename: self.register_save_folder(filename)) - - # when the defaults dictionary values change - self.defaults.defaults.set_change_callback(callback=self.on_properties_tab_click) - - # ########################################## Standard signals ############################################### - # ### Menu - self.ui.menufilenewproject.triggered.connect(self.on_file_new_click) - 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) - self.ui.menufileopengcode.triggered.connect(self.on_fileopengcode) - self.ui.menufileopenproject.triggered.connect(self.on_file_openproject) - self.ui.menufileopenconfig.triggered.connect(self.on_file_openconfig) - - self.ui.menufilenewscript.triggered.connect(self.on_filenewscript) - self.ui.menufileopenscript.triggered.connect(self.on_fileopenscript) - self.ui.menufileopenscriptexample.triggered.connect(self.on_fileopenscript_example) - - self.ui.menufilerunscript.triggered.connect(self.on_filerunscript) - - self.ui.menufileimportsvg.triggered.connect(lambda: self.on_file_importsvg("geometry")) - self.ui.menufileimportsvg_as_gerber.triggered.connect(lambda: self.on_file_importsvg("gerber")) - - self.ui.menufileimportdxf.triggered.connect(lambda: self.on_file_importdxf("geometry")) - self.ui.menufileimportdxf_as_gerber.triggered.connect(lambda: self.on_file_importdxf("gerber")) - self.ui.menufileimport_hpgl2_as_geo.triggered.connect(self.on_fileopenhpgl2) - self.ui.menufileexportsvg.triggered.connect(self.on_file_exportsvg) - self.ui.menufileexportpng.triggered.connect(self.on_file_exportpng) - self.ui.menufileexportexcellon.triggered.connect(self.on_file_exportexcellon) - self.ui.menufileexportgerber.triggered.connect(self.on_file_exportgerber) - - self.ui.menufileexportdxf.triggered.connect(self.on_file_exportdxf) - - self.ui.menufile_print.triggered.connect(lambda: self.on_file_save_objects_pdf(use_thread=True)) - - self.ui.menufilesaveproject.triggered.connect(self.on_file_saveproject) - self.ui.menufilesaveprojectas.triggered.connect(self.on_file_saveprojectas) - # self.ui.menufilesaveprojectcopy.triggered.connect(lambda: self.on_file_saveprojectas(make_copy=True)) - self.ui.menufilesavedefaults.triggered.connect(self.on_file_savedefaults) - - self.ui.menufileexportpref.triggered.connect(self.on_export_preferences) - self.ui.menufileimportpref.triggered.connect(self.on_import_preferences) - - self.ui.menufile_exit.triggered.connect(self.final_save) - - self.ui.menueditedit.triggered.connect(lambda: self.object2editor()) - self.ui.menueditok.triggered.connect(lambda: self.editor2object()) - - self.ui.menuedit_join2geo.triggered.connect(self.on_edit_join) - self.ui.menuedit_join_exc2exc.triggered.connect(self.on_edit_join_exc) - self.ui.menuedit_join_grb2grb.triggered.connect(self.on_edit_join_grb) - - self.ui.menuedit_convert_sg2mg.triggered.connect(self.on_convert_singlegeo_to_multigeo) - self.ui.menuedit_convert_mg2sg.triggered.connect(self.on_convert_multigeo_to_singlegeo) - - self.ui.menueditdelete.triggered.connect(self.on_delete) - - self.ui.menueditcopyobject.triggered.connect(self.on_copy_command) - self.ui.menueditconvert_any2geo.triggered.connect(self.convert_any2geo) - self.ui.menueditconvert_any2gerber.triggered.connect(self.convert_any2gerber) - self.ui.menueditconvert_any2excellon.triggered.connect(self.convert_any2excellon) - - self.ui.menueditorigin.triggered.connect(self.on_set_origin) - self.ui.menuedit_move2origin.triggered.connect(self.on_move2origin) - - self.ui.menueditjump.triggered.connect(self.on_jump_to) - self.ui.menueditlocate.triggered.connect(lambda: self.on_locate(obj=self.collection.get_active())) - - self.ui.menuedittoggleunits.triggered.connect(self.on_toggle_units_click) - self.ui.menueditselectall.triggered.connect(self.on_selectall) - self.ui.menueditpreferences.triggered.connect(self.on_preferences) - - # self.ui.menuoptions_transfer_a2o.triggered.connect(self.on_options_app2object) - # self.ui.menuoptions_transfer_a2p.triggered.connect(self.on_options_app2project) - # self.ui.menuoptions_transfer_o2a.triggered.connect(self.on_options_object2app) - # self.ui.menuoptions_transfer_p2a.triggered.connect(self.on_options_project2app) - # self.ui.menuoptions_transfer_o2p.triggered.connect(self.on_options_object2project) - # self.ui.menuoptions_transfer_p2o.triggered.connect(self.on_options_project2object) - - self.ui.menuoptions_transform_rotate.triggered.connect(self.on_rotate) - - self.ui.menuoptions_transform_skewx.triggered.connect(self.on_skewx) - self.ui.menuoptions_transform_skewy.triggered.connect(self.on_skewy) - - self.ui.menuoptions_transform_flipx.triggered.connect(self.on_flipx) - self.ui.menuoptions_transform_flipy.triggered.connect(self.on_flipy) - self.ui.menuoptions_view_source.triggered.connect(self.on_view_source) - self.ui.menuoptions_tools_db.triggered.connect(lambda: self.on_tools_database(source='app')) - - self.ui.menuviewdisableall.triggered.connect(self.disable_all_plots) - self.ui.menuviewdisableother.triggered.connect(self.disable_other_plots) - self.ui.menuviewenable.triggered.connect(self.enable_all_plots) - - self.ui.menuview_zoom_fit.triggered.connect(self.on_zoom_fit) - self.ui.menuview_zoom_in.triggered.connect(self.on_zoom_in) - self.ui.menuview_zoom_out.triggered.connect(self.on_zoom_out) - 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.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.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)) - self.ui.menuhelp_gerber_spec.triggered.connect(lambda: webbrowser.open(self.gerber_spec_url)) - self.ui.menuhelp_videohelp.triggered.connect(lambda: webbrowser.open(self.video_url)) - self.ui.menuhelp_shortcut_list.triggered.connect(self.on_shortcut_list) - - self.ui.menuprojectenable.triggered.connect(self.on_enable_sel_plots) - self.ui.menuprojectdisable.triggered.connect(self.on_disable_sel_plots) - self.ui.menuprojectgeneratecnc.triggered.connect(lambda: self.generate_cnc_job(self.collection.get_selected())) - self.ui.menuprojectviewsource.triggered.connect(self.on_view_source) - - self.ui.menuprojectcopy.triggered.connect(self.on_copy_command) - self.ui.menuprojectedit.triggered.connect(self.object2editor) - - self.ui.menuprojectdelete.triggered.connect(self.on_delete) - self.ui.menuprojectsave.triggered.connect(self.on_project_context_save) - self.ui.menuprojectproperties.triggered.connect(self.obj_properties) - - # ToolBar signals - self.connect_toolbar_signals(ui=self.ui) - - # Context Menu - self.ui.popmenu_disable.triggered.connect(lambda: self.toggle_plots(self.collection.get_selected())) - self.ui.popmenu_panel_toggle.triggered.connect(self.ui.on_toggle_notebook) - - 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) - self.ui.clearplot.triggered.connect(self.clear_plots) - self.ui.replot.triggered.connect(self.plot_all) - - self.ui.popmenu_copy.triggered.connect(self.on_copy_command) - self.ui.popmenu_delete.triggered.connect(self.on_delete) - self.ui.popmenu_edit.triggered.connect(self.object2editor) - self.ui.popmenu_save.triggered.connect(lambda: self.editor2object()) - self.ui.popmenu_move.triggered.connect(self.obj_move) - - self.ui.popmenu_properties.triggered.connect(self.obj_properties) - - # Project Context Menu -> Color Setting - for act in self.ui.menuprojectcolor.actions(): - act.triggered.connect(self.on_set_color_action_triggered) - - # Notebook tab clicking - self.ui.notebook.tabBarClicked.connect(self.on_properties_tab_click) - - # ########################################################################################################### - # #################################### GUI PREFERENCES SIGNALS ############################################## - # ########################################################################################################### - - self.ui.general_defaults_form.general_app_group.units_radio.activated_custom.connect( - lambda: self.on_toggle_units(no_pref=False)) - - # ##################################### Workspace Setting Signals ########################################### - self.ui.general_defaults_form.general_app_set_group.wk_cb.currentIndexChanged.connect( - self.on_workspace_modified) - self.ui.general_defaults_form.general_app_set_group.wk_orientation_radio.activated_custom.connect( - self.on_workspace_modified - ) - - self.ui.general_defaults_form.general_app_set_group.workspace_cb.stateChanged.connect(self.on_workspace) - - # ########################################################################################################### - # ######################################## GUI SETTINGS SIGNALS ############################################# - # ########################################################################################################### - self.ui.general_defaults_form.general_app_set_group.cursor_radio.activated_custom.connect(self.on_cursor_type) - - # ######################################## Tools related signals ############################################ - - # portability changed signal - self.ui.general_defaults_form.general_app_group.portability_cb.stateChanged.connect(self.on_portable_checked) - - # Object list - 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) - - # ########################################################################################################### - # ####################################### FILE ASSOCIATIONS SIGNALS ######################################### - # ########################################################################################################### - - self.ui.util_defaults_form.fa_excellon_group.restore_btn.clicked.connect( - lambda: self.restore_extensions(ext_type='excellon')) - self.ui.util_defaults_form.fa_gcode_group.restore_btn.clicked.connect( - lambda: self.restore_extensions(ext_type='gcode')) - self.ui.util_defaults_form.fa_gerber_group.restore_btn.clicked.connect( - lambda: self.restore_extensions(ext_type='gerber')) - - self.ui.util_defaults_form.fa_excellon_group.del_all_btn.clicked.connect( - lambda: self.delete_all_extensions(ext_type='excellon')) - self.ui.util_defaults_form.fa_gcode_group.del_all_btn.clicked.connect( - lambda: self.delete_all_extensions(ext_type='gcode')) - self.ui.util_defaults_form.fa_gerber_group.del_all_btn.clicked.connect( - lambda: self.delete_all_extensions(ext_type='gerber')) - - self.ui.util_defaults_form.fa_excellon_group.add_btn.clicked.connect( - lambda: self.add_extension(ext_type='excellon')) - self.ui.util_defaults_form.fa_gcode_group.add_btn.clicked.connect( - lambda: self.add_extension(ext_type='gcode')) - self.ui.util_defaults_form.fa_gerber_group.add_btn.clicked.connect( - lambda: self.add_extension(ext_type='gerber')) - - self.ui.util_defaults_form.fa_excellon_group.del_btn.clicked.connect( - lambda: self.del_extension(ext_type='excellon')) - self.ui.util_defaults_form.fa_gcode_group.del_btn.clicked.connect( - lambda: self.del_extension(ext_type='gcode')) - self.ui.util_defaults_form.fa_gerber_group.del_btn.clicked.connect( - lambda: self.del_extension(ext_type='gerber')) - - # connect the 'Apply' buttons from the Preferences/File Associations - self.ui.util_defaults_form.fa_excellon_group.exc_list_btn.clicked.connect( - lambda: self.on_register_files(obj_type='excellon')) - self.ui.util_defaults_form.fa_gcode_group.gco_list_btn.clicked.connect( - lambda: self.on_register_files(obj_type='gcode')) - self.ui.util_defaults_form.fa_gerber_group.grb_list_btn.clicked.connect( - lambda: self.on_register_files(obj_type='gerber')) - - # ########################################################################################################### - # ########################################### KEYWORDS SIGNALS ############################################## - # ########################################################################################################### - self.ui.util_defaults_form.kw_group.restore_btn.clicked.connect( - lambda: self.restore_extensions(ext_type='keyword')) - self.ui.util_defaults_form.kw_group.del_all_btn.clicked.connect( - lambda: self.delete_all_extensions(ext_type='keyword')) - self.ui.util_defaults_form.kw_group.add_btn.clicked.connect( - lambda: self.add_extension(ext_type='keyword')) - 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) - self.ui.pref_status_label.clicked.connect(self.on_toggle_preferences) - - # ########################################################################################################### - # ####################################### VARIOUS SIGNALS ################################################### - # ########################################################################################################### - # connect the abort_all_tasks related slots to the related signals - self.proc_container.idle_flag.connect(self.app_is_idle) - - # signal emitted when a tab is closed in the Plot Area - self.ui.plot_tab_area.tab_closed_signal.connect(self.on_plot_area_tab_closed) - - # signal to close the application - self.close_app_signal.connect(self.kill_app) - # ################################# FINISHED CONNECTING SIGNALS ############################################# - # ########################################################################################################### - # ########################################################################################################### - # ########################################################################################################### - - self.log.debug("Finished connecting Signals.") - # ########################################################################################################### # ########################################## Other setups ################################################### # ########################################################################################################### @@ -1378,11 +1079,6 @@ class App(QtCore.QObject): except AttributeError as e: log.debug("App.__init__() install_tools() --> %s" % str(e)) - # ########################################################################################################### - # ############################################ SETUP RECENT ITEMS ########################################### - # ########################################################################################################### - self.setup_recent_items() - # ########################################################################################################### # ######################################### BookMarks Manager ############################################### # ########################################################################################################### @@ -1611,6 +1307,319 @@ class App(QtCore.QObject): # ########################################################################################################### self.exc_areas = ExclusionAreas(app=self) + # ########################################################################################################### + # ########################################################################################################### + # ###################################### INSTANTIATE CLASSES THAT HOLD THE MENU HANDLERS #################### + # ########################################################################################################### + # ########################################################################################################### + self.f_handlers = MenuFileHandlers(app=self) + + # ########################################################################################################### + # ############################################ SETUP RECENT ITEMS ########################################### + # ########################################################################################################### + self.setup_recent_items() + + # ########################################################################################################### + # ########################################################################################################### + # ############################################# Signal handling ############################################# + # ########################################################################################################### + # ########################################################################################################### + + # ########################################## Custom signals ################################################ + # signal for displaying messages in status bar + self.inform[str].connect(self.info) + self.inform[str, bool].connect(self.info) + + # signal for displaying messages in the shell + self.inform_shell[str].connect(self.info_shell) + self.inform_shell[str, bool].connect(self.info_shell) + + # signal to be called when the app is quiting + self.app_quit.connect(self.quit_application, type=Qt.QueuedConnection) + self.message.connect(lambda: message_dialog(parent=self.ui)) + # self.progress.connect(self.set_progress_bar) + + # signals emitted when file state change + self.file_opened.connect(self.register_recent) + self.file_opened.connect(lambda kind, filename: self.register_folder(filename)) + self.file_saved.connect(lambda kind, filename: self.register_save_folder(filename)) + + # when the defaults dictionary values change + self.defaults.defaults.set_change_callback(callback=self.on_properties_tab_click) + + # ########################################## Standard signals ############################################### + # ### Menu + self.ui.menufilenewproject.triggered.connect(self.f_handlers.on_file_new_click) + 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.f_handlers.on_fileopengerber) + self.ui.menufileopenexcellon.triggered.connect(self.f_handlers.on_fileopenexcellon) + self.ui.menufileopengcode.triggered.connect(self.f_handlers.on_fileopengcode) + self.ui.menufileopenproject.triggered.connect(self.f_handlers.on_file_openproject) + self.ui.menufileopenconfig.triggered.connect(self.f_handlers.on_file_openconfig) + + self.ui.menufilenewscript.triggered.connect(self.f_handlers.on_filenewscript) + self.ui.menufileopenscript.triggered.connect(self.f_handlers.on_fileopenscript) + self.ui.menufileopenscriptexample.triggered.connect(self.f_handlers.on_fileopenscript_example) + + self.ui.menufilerunscript.triggered.connect(self.f_handlers.on_filerunscript) + + self.ui.menufileimportsvg.triggered.connect(lambda: self.f_handlers.on_file_importsvg("geometry")) + self.ui.menufileimportsvg_as_gerber.triggered.connect(lambda: self.f_handlers.on_file_importsvg("gerber")) + + self.ui.menufileimportdxf.triggered.connect(lambda: self.f_handlers.on_file_importdxf("geometry")) + self.ui.menufileimportdxf_as_gerber.triggered.connect(lambda: self.f_handlers.on_file_importdxf("gerber")) + self.ui.menufileimport_hpgl2_as_geo.triggered.connect(self.f_handlers.on_fileopenhpgl2) + self.ui.menufileexportsvg.triggered.connect(self.f_handlers.on_file_exportsvg) + self.ui.menufileexportpng.triggered.connect(self.f_handlers.on_file_exportpng) + self.ui.menufileexportexcellon.triggered.connect(self.f_handlers.on_file_exportexcellon) + self.ui.menufileexportgerber.triggered.connect(self.f_handlers.on_file_exportgerber) + + self.ui.menufileexportdxf.triggered.connect(self.f_handlers.on_file_exportdxf) + + self.ui.menufile_print.triggered.connect(lambda: self.f_handlers.on_file_save_objects_pdf(use_thread=True)) + + self.ui.menufilesaveproject.triggered.connect(self.f_handlers.on_file_saveproject) + self.ui.menufilesaveprojectas.triggered.connect(self.f_handlers.on_file_saveprojectas) + # self.ui.menufilesaveprojectcopy.triggered.connect(lambda: self.on_file_saveprojectas(make_copy=True)) + self.ui.menufilesavedefaults.triggered.connect(self.f_handlers.on_file_savedefaults) + + self.ui.menufileexportpref.triggered.connect(self.f_handlers.on_export_preferences) + self.ui.menufileimportpref.triggered.connect(self.f_handlers.on_import_preferences) + + self.ui.menufile_exit.triggered.connect(self.final_save) + + self.ui.menueditedit.triggered.connect(lambda: self.object2editor()) + self.ui.menueditok.triggered.connect(lambda: self.editor2object()) + + self.ui.menuedit_join2geo.triggered.connect(self.on_edit_join) + self.ui.menuedit_join_exc2exc.triggered.connect(self.on_edit_join_exc) + self.ui.menuedit_join_grb2grb.triggered.connect(self.on_edit_join_grb) + + self.ui.menuedit_convert_sg2mg.triggered.connect(self.on_convert_singlegeo_to_multigeo) + self.ui.menuedit_convert_mg2sg.triggered.connect(self.on_convert_multigeo_to_singlegeo) + + self.ui.menueditdelete.triggered.connect(self.on_delete) + + self.ui.menueditcopyobject.triggered.connect(self.on_copy_command) + self.ui.menueditconvert_any2geo.triggered.connect(self.convert_any2geo) + self.ui.menueditconvert_any2gerber.triggered.connect(self.convert_any2gerber) + self.ui.menueditconvert_any2excellon.triggered.connect(self.convert_any2excellon) + + self.ui.menueditorigin.triggered.connect(self.on_set_origin) + self.ui.menuedit_move2origin.triggered.connect(self.on_move2origin) + + self.ui.menueditjump.triggered.connect(self.on_jump_to) + self.ui.menueditlocate.triggered.connect(lambda: self.on_locate(obj=self.collection.get_active())) + + self.ui.menuedittoggleunits.triggered.connect(self.on_toggle_units_click) + self.ui.menueditselectall.triggered.connect(self.on_selectall) + self.ui.menueditpreferences.triggered.connect(self.on_preferences) + + # self.ui.menuoptions_transfer_a2o.triggered.connect(self.on_options_app2object) + # self.ui.menuoptions_transfer_a2p.triggered.connect(self.on_options_app2project) + # self.ui.menuoptions_transfer_o2a.triggered.connect(self.on_options_object2app) + # self.ui.menuoptions_transfer_p2a.triggered.connect(self.on_options_project2app) + # self.ui.menuoptions_transfer_o2p.triggered.connect(self.on_options_object2project) + # self.ui.menuoptions_transfer_p2o.triggered.connect(self.on_options_project2object) + + self.ui.menuoptions_transform_rotate.triggered.connect(self.on_rotate) + + self.ui.menuoptions_transform_skewx.triggered.connect(self.on_skewx) + self.ui.menuoptions_transform_skewy.triggered.connect(self.on_skewy) + + self.ui.menuoptions_transform_flipx.triggered.connect(self.on_flipx) + self.ui.menuoptions_transform_flipy.triggered.connect(self.on_flipy) + self.ui.menuoptions_view_source.triggered.connect(self.on_view_source) + self.ui.menuoptions_tools_db.triggered.connect(lambda: self.on_tools_database(source='app')) + + self.ui.menuviewdisableall.triggered.connect(self.disable_all_plots) + self.ui.menuviewdisableother.triggered.connect(self.disable_other_plots) + self.ui.menuviewenable.triggered.connect(self.enable_all_plots) + + self.ui.menuview_zoom_fit.triggered.connect(self.on_zoom_fit) + self.ui.menuview_zoom_in.triggered.connect(self.on_zoom_in) + self.ui.menuview_zoom_out.triggered.connect(self.on_zoom_out) + 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.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.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)) + self.ui.menuhelp_gerber_spec.triggered.connect(lambda: webbrowser.open(self.gerber_spec_url)) + self.ui.menuhelp_videohelp.triggered.connect(lambda: webbrowser.open(self.video_url)) + self.ui.menuhelp_shortcut_list.triggered.connect(self.on_shortcut_list) + + self.ui.menuprojectenable.triggered.connect(self.on_enable_sel_plots) + self.ui.menuprojectdisable.triggered.connect(self.on_disable_sel_plots) + self.ui.menuprojectgeneratecnc.triggered.connect(lambda: self.generate_cnc_job(self.collection.get_selected())) + self.ui.menuprojectviewsource.triggered.connect(self.on_view_source) + + self.ui.menuprojectcopy.triggered.connect(self.on_copy_command) + self.ui.menuprojectedit.triggered.connect(self.object2editor) + + self.ui.menuprojectdelete.triggered.connect(self.on_delete) + self.ui.menuprojectsave.triggered.connect(self.on_project_context_save) + self.ui.menuprojectproperties.triggered.connect(self.obj_properties) + + # ToolBar signals + self.connect_toolbar_signals(ui=self.ui) + + # Context Menu + self.ui.popmenu_disable.triggered.connect(lambda: self.toggle_plots(self.collection.get_selected())) + self.ui.popmenu_panel_toggle.triggered.connect(self.ui.on_toggle_notebook) + + 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.f_handlers.on_file_new) + + self.ui.zoomfit.triggered.connect(self.on_zoom_fit) + self.ui.clearplot.triggered.connect(self.clear_plots) + self.ui.replot.triggered.connect(self.plot_all) + + self.ui.popmenu_copy.triggered.connect(self.on_copy_command) + self.ui.popmenu_delete.triggered.connect(self.on_delete) + self.ui.popmenu_edit.triggered.connect(self.object2editor) + self.ui.popmenu_save.triggered.connect(lambda: self.editor2object()) + self.ui.popmenu_move.triggered.connect(self.obj_move) + + self.ui.popmenu_properties.triggered.connect(self.obj_properties) + + # Project Context Menu -> Color Setting + for act in self.ui.menuprojectcolor.actions(): + act.triggered.connect(self.on_set_color_action_triggered) + + # Notebook tab clicking + self.ui.notebook.tabBarClicked.connect(self.on_properties_tab_click) + + # ########################################################################################################### + # #################################### GUI PREFERENCES SIGNALS ############################################## + # ########################################################################################################### + + self.ui.general_defaults_form.general_app_group.units_radio.activated_custom.connect( + lambda: self.on_toggle_units(no_pref=False)) + + # ##################################### Workspace Setting Signals ########################################### + self.ui.general_defaults_form.general_app_set_group.wk_cb.currentIndexChanged.connect( + self.on_workspace_modified) + self.ui.general_defaults_form.general_app_set_group.wk_orientation_radio.activated_custom.connect( + self.on_workspace_modified + ) + + self.ui.general_defaults_form.general_app_set_group.workspace_cb.stateChanged.connect(self.on_workspace) + + # ########################################################################################################### + # ######################################## GUI SETTINGS SIGNALS ############################################# + # ########################################################################################################### + self.ui.general_defaults_form.general_app_set_group.cursor_radio.activated_custom.connect(self.on_cursor_type) + + # ######################################## Tools related signals ############################################ + + # portability changed signal + self.ui.general_defaults_form.general_app_group.portability_cb.stateChanged.connect(self.on_portable_checked) + + # Object list + 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) + + # ########################################################################################################### + # ####################################### FILE ASSOCIATIONS SIGNALS ######################################### + # ########################################################################################################### + + self.ui.util_defaults_form.fa_excellon_group.restore_btn.clicked.connect( + lambda: self.restore_extensions(ext_type='excellon')) + self.ui.util_defaults_form.fa_gcode_group.restore_btn.clicked.connect( + lambda: self.restore_extensions(ext_type='gcode')) + self.ui.util_defaults_form.fa_gerber_group.restore_btn.clicked.connect( + lambda: self.restore_extensions(ext_type='gerber')) + + self.ui.util_defaults_form.fa_excellon_group.del_all_btn.clicked.connect( + lambda: self.delete_all_extensions(ext_type='excellon')) + self.ui.util_defaults_form.fa_gcode_group.del_all_btn.clicked.connect( + lambda: self.delete_all_extensions(ext_type='gcode')) + self.ui.util_defaults_form.fa_gerber_group.del_all_btn.clicked.connect( + lambda: self.delete_all_extensions(ext_type='gerber')) + + self.ui.util_defaults_form.fa_excellon_group.add_btn.clicked.connect( + lambda: self.add_extension(ext_type='excellon')) + self.ui.util_defaults_form.fa_gcode_group.add_btn.clicked.connect( + lambda: self.add_extension(ext_type='gcode')) + self.ui.util_defaults_form.fa_gerber_group.add_btn.clicked.connect( + lambda: self.add_extension(ext_type='gerber')) + + self.ui.util_defaults_form.fa_excellon_group.del_btn.clicked.connect( + lambda: self.del_extension(ext_type='excellon')) + self.ui.util_defaults_form.fa_gcode_group.del_btn.clicked.connect( + lambda: self.del_extension(ext_type='gcode')) + self.ui.util_defaults_form.fa_gerber_group.del_btn.clicked.connect( + lambda: self.del_extension(ext_type='gerber')) + + # connect the 'Apply' buttons from the Preferences/File Associations + self.ui.util_defaults_form.fa_excellon_group.exc_list_btn.clicked.connect( + lambda: self.on_register_files(obj_type='excellon')) + self.ui.util_defaults_form.fa_gcode_group.gco_list_btn.clicked.connect( + lambda: self.on_register_files(obj_type='gcode')) + self.ui.util_defaults_form.fa_gerber_group.grb_list_btn.clicked.connect( + lambda: self.on_register_files(obj_type='gerber')) + + # ########################################################################################################### + # ########################################### KEYWORDS SIGNALS ############################################## + # ########################################################################################################### + self.ui.util_defaults_form.kw_group.restore_btn.clicked.connect( + lambda: self.restore_extensions(ext_type='keyword')) + self.ui.util_defaults_form.kw_group.del_all_btn.clicked.connect( + lambda: self.delete_all_extensions(ext_type='keyword')) + self.ui.util_defaults_form.kw_group.add_btn.clicked.connect( + lambda: self.add_extension(ext_type='keyword')) + 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) + self.ui.pref_status_label.clicked.connect(self.on_toggle_preferences) + + # ########################################################################################################### + # ####################################### VARIOUS SIGNALS ################################################### + # ########################################################################################################### + # connect the abort_all_tasks related slots to the related signals + self.proc_container.idle_flag.connect(self.app_is_idle) + + # signal emitted when a tab is closed in the Plot Area + self.ui.plot_tab_area.tab_closed_signal.connect(self.on_plot_area_tab_closed) + + # signal to close the application + self.close_app_signal.connect(self.kill_app) + # ################################# FINISHED CONNECTING SIGNALS ############################################# + # ########################################################################################################### + # ########################################################################################################### + # ########################################################################################################### + + self.log.debug("Finished connecting Signals.") + # ########################################################################################################### # ##################################### Finished the CONSTRUCTOR ############################################ # ########################################################################################################### @@ -2116,10 +2125,10 @@ class App(QtCore.QObject): # File Toolbar Signals # ui.file_new_btn.triggered.connect(self.on_file_new) - ui.file_open_btn.triggered.connect(self.on_file_openproject) - ui.file_save_btn.triggered.connect(self.on_file_saveproject) - ui.file_open_gerber_btn.triggered.connect(self.on_fileopengerber) - ui.file_open_excellon_btn.triggered.connect(self.on_fileopenexcellon) + ui.file_open_btn.triggered.connect(self.f_handlers.on_file_openproject) + ui.file_save_btn.triggered.connect(self.f_handlers.on_file_saveproject) + ui.file_open_gerber_btn.triggered.connect(self.f_handlers.on_fileopengerber) + ui.file_open_excellon_btn.triggered.connect(self.f_handlers.on_fileopenexcellon) # View Toolbar Signals ui.clear_plot_btn.triggered.connect(self.clear_plots) @@ -2144,9 +2153,9 @@ class App(QtCore.QObject): # Scripting Toolbar Signals ui.shell_btn.triggered.connect(ui.toggle_shell_ui) - ui.new_script_btn.triggered.connect(self.on_filenewscript) - ui.open_script_btn.triggered.connect(self.on_fileopenscript) - ui.run_script_btn.triggered.connect(self.on_filerunscript) + ui.new_script_btn.triggered.connect(self.f_handlers.on_filenewscript) + ui.open_script_btn.triggered.connect(self.f_handlers.on_fileopenscript) + ui.run_script_btn.triggered.connect(self.f_handlers.on_filerunscript) # Tools Toolbar Signals try: @@ -2556,83 +2565,6 @@ class App(QtCore.QObject): def info_shell(self, msg, new_line=True): self.shell_message(msg=msg, new_line=new_line) - def on_import_preferences(self): - """ - Loads the application default settings from a saved file into - ``self.defaults`` dictionary. - - :return: None - """ - - self.defaults.report_usage("on_import_preferences") - App.log.debug("App.on_import_preferences()") - - # Show file chooser - filter_ = "Config File (*.FlatConfig);;All Files (*.*)" - try: - filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Import FlatCAM Preferences"), - directory=self.data_path, - filter=filter_) - except TypeError: - filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Import FlatCAM Preferences"), - filter=filter_) - filename = str(filename) - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - - # Load in the defaults from the chosen file - self.defaults.load(filename=filename, inform=self.inform) - - self.preferencesUiManager.on_preferences_edited() - self.inform.emit('[success] %s: %s' % (_("Imported Defaults from"), filename)) - - def on_export_preferences(self): - """ - Save the defaults dictionary to a file. - - :return: None - """ - self.defaults.report_usage("on_export_preferences") - App.log.debug("on_export_preferences()") - - # defaults_file_content = None - - # Show file chooser - date = str(datetime.today()).rpartition('.')[0] - date = ''.join(c for c in date if c not in ':-') - date = date.replace(' ', '_') - filter__ = "Config File .FlatConfig (*.FlatConfig);;All Files (*.*)" - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Export FlatCAM Preferences"), - directory=self.data_path + '/preferences_' + date, - ext_filter=filter__ - ) - except TypeError: - 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.")) - return - - # Update options - self.preferencesUiManager.defaults_read_form() - self.defaults.propagate_defaults() - - # Save update options - try: - self.defaults.write(filename=filename) - except Exception: - self.inform.emit('[ERROR_NOTCL] %s %s' % (_("Failed to write defaults to file."), str(filename))) - return - - if self.defaults["global_open_style"] is False: - self.file_opened.emit("preferences", filename) - self.file_saved.emit("preferences", filename) - self.inform.emit('[success] %s: %s' % (_("Exported preferences to"), filename)) - def save_to_file(self, content_to_save, txt_content): """ Save something to a file. @@ -3357,15 +3289,6 @@ class App(QtCore.QObject): msgbox.exec_() # response = msgbox.clickedButton() - def on_file_savedefaults(self): - """ - Callback for menu item File->Save Defaults. Saves application default options - ``self.defaults`` to current_defaults.FlatConfig. - - :return: None - """ - self.preferencesUiManager.save_defaults() - def final_save(self): """ Callback for doing a preferences save to file whenever the application is about to quit. @@ -4731,10 +4654,10 @@ class App(QtCore.QObject): out_name = obj.options["name"] if obj.kind == 'gerber': - obj.source_file = self.export_gerber( + obj.source_file = self.f_handlers.export_gerber( obj_name=out_name, filename=None, local_use=obj, use_thread=False) elif obj.kind == 'excellon': - obj.source_file = self.export_excellon( + obj.source_file = self.f_handlers.export_excellon( obj_name=out_name, filename=None, local_use=obj, use_thread=False) if noplot_sig is False: @@ -4821,10 +4744,10 @@ class App(QtCore.QObject): out_name = obj.options["name"] if obj.kind == 'gerber': - obj.source_file = self.export_gerber( + obj.source_file = self.f_handlers.export_gerber( obj_name=out_name, filename=None, local_use=obj, use_thread=False) elif obj.kind == 'excellon': - obj.source_file = self.export_excellon( + obj.source_file = self.f_handlers.export_excellon( obj_name=out_name, filename=None, local_use=obj, use_thread=False) self.inform.emit('[success] %s...' % _('Origin set')) @@ -6878,134 +6801,6 @@ class App(QtCore.QObject): if self.is_legacy is True: self.move_tool.sel_shapes.redraw() - def on_file_new_click(self): - """ - Callback for menu item File -> New. - Executed on clicking the Menu -> File -> New Project - - :return: - """ - - if self.collection.get_list() and self.should_we_save: - msgbox = QtWidgets.QMessageBox() - # msgbox.setText("Save changes ...") - msgbox.setText(_("There are files/objects opened in FlatCAM.\n" - "Creating a New project will delete them.\n" - "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) - - msgbox.setDefaultButton(bt_yes) - msgbox.exec_() - response = msgbox.clickedButton() - - if response == bt_yes: - self.on_file_saveprojectas() - elif response == bt_cancel: - return - elif response == bt_no: - self.on_file_new() - else: - self.on_file_new() - self.inform.emit('[success] %s...' % _("New Project created")) - - def on_file_new(self, cli=None): - """ - Returns the application to its startup state. This method is thread-safe. - - :param cli: Boolean. If True this method was run from command line - :return: None - """ - - self.defaults.report_usage("on_file_new") - - # Remove everything from memory - App.log.debug("on_file_new()") - - # close any editor that might be open - if self.call_source != 'app': - self.editor2object(cleanup=True) - # ## EDITOR section - self.geo_editor = AppGeoEditor(self) - self.exc_editor = AppExcEditor(self) - self.grb_editor = AppGerberEditor(self) - - # Clear pool - self.clear_pool() - - for obj in self.collection.get_list(): - # delete shapes left drawn from mark shape_collections, if any - if isinstance(obj, GerberObject): - try: - obj.mark_shapes_storage.clear() - obj.mark_shapes.clear(update=True) - obj.mark_shapes.enabled = False - except AttributeError: - pass - - # also delete annotation shapes, if any - elif isinstance(obj, CNCJobObject): - try: - obj.text_col.enabled = False - del obj.text_col - obj.annotation.clear(update=True) - del obj.annotation - 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() - - # delete any selection shape on canvas - self.delete_selection_shape() - - # delete all FlatCAM objects - self.collection.delete_all() - - # add in Selected tab an initial text that describe the flow of work in FlatCAm - self.setup_default_properties_tab() - - # Clear project filename - self.project_filename = None - - # Load the application defaults - self.defaults.load(filename=os.path.join(self.data_path, 'current_defaults.FlatConfig'), inform=self.inform) - - # Re-fresh project options - self.on_options_app2project() - - # Init FlatCAMTools - self.init_tools() - - # 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 - # and so on. Therefore the deletion should be done in reverse - wdg_count = self.ui.plot_tab_area.tabBar.count() - 1 - for index in range(wdg_count, -1, -1): - try: - self.ui.plot_tab_area.closeTab(index) - except Exception as e: - log.debug("App.on_file_new() --> %s" % str(e)) - - # # And then add again the Plot Area - self.ui.plot_tab_area.insertTab(0, self.ui.plot_tab, _("Plot Area")) - self.ui.plot_tab_area.protectTab(0) - - # take the focus of the Notebook on Project Tab. - self.ui.notebook.setCurrentWidget(self.ui.project_tab) - - self.set_ui_title(name=_("New Project - Not saved")) - def obj_properties(self): """ Will launch the object Properties Tool @@ -7081,706 +6876,6 @@ class App(QtCore.QObject): self.defaults.report_usage("obj_move()") self.move_tool.run(toggle=False) - def on_fileopengerber(self, signal, name=None): - """ - File menu callback for opening a Gerber. - - :param signal: required because clicking the entry will generate a checked signal which needs a container - :param name: - :return: None - """ - - self.defaults.report_usage("on_fileopengerber") - App.log.debug("on_fileopengerber()") - - _filter_ = "Gerber Files (*.gbr *.ger *.gtl *.gbl *.gts *.gbs *.gtp *.gbp *.gto *.gbo *.gm1 *.gml *.gm3 " \ - "*.gko *.cmp *.sol *.stc *.sts *.plc *.pls *.crc *.crs *.tsm *.bsm *.ly2 *.ly15 *.dim *.mil *.grb " \ - "*.top *.bot *.smt *.smb *.sst *.ssb *.spt *.spb *.pho *.gdo *.art *.gbd *.outline);;" \ - "Protel Files (*.gtl *.gbl *.gts *.gbs *.gto *.gbo *.gtp *.gbp *.gml *.gm1 *.gm3 *.gko " \ - "*.outline);;" \ - "Eagle Files (*.cmp *.sol *.stc *.sts *.plc *.pls *.crc *.crs *.tsm *.bsm *.ly2 *.ly15 *.dim " \ - "*.mil);;" \ - "OrCAD Files (*.top *.bot *.smt *.smb *.sst *.ssb *.spt *.spb);;" \ - "Allegro Files (*.art);;" \ - "Mentor Files (*.pho *.gdo);;" \ - "All Files (*.*)" - - if name is None: - try: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Gerber"), - directory=self.get_last_folder(), - filter=_filter_, - initialFilter=self.last_op_gerber_filter) - except TypeError: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Gerber"), filter=_filter_) - - filenames = [str(filename) for filename in filenames] - self.last_op_gerber_filter = _f - else: - filenames = [name] - self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" - "Canvas initialization finished in"), '%.2f' % self.used_time, - _("Opening Gerber file.")), - alignment=Qt.AlignBottom | Qt.AlignLeft, - color=QtGui.QColor("gray")) - - if len(filenames) == 0: - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - for filename in filenames: - if filename != '': - self.worker_task.emit({'fcn': self.open_gerber, 'params': [filename]}) - - def on_fileopenexcellon(self, signal, name=None): - """ - File menu callback for opening an Excellon file. - - :param signal: required because clicking the entry will generate a checked signal which needs a container - :param name: - :return: None - """ - - self.defaults.report_usage("on_fileopenexcellon") - App.log.debug("on_fileopenexcellon()") - - _filter_ = "Excellon Files (*.drl *.txt *.xln *.drd *.tap *.exc *.ncd);;" \ - "All Files (*.*)" - if name is None: - try: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Excellon"), - directory=self.get_last_folder(), - filter=_filter_, - initialFilter=self.last_op_excellon_filter) - except TypeError: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Excellon"), filter=_filter_) - filenames = [str(filename) for filename in filenames] - self.last_op_excellon_filter = _f - else: - filenames = [str(name)] - self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" - "Canvas initialization finished in"), '%.2f' % self.used_time, - _("Opening Excellon file.")), - alignment=Qt.AlignBottom | Qt.AlignLeft, - color=QtGui.QColor("gray")) - - if len(filenames) == 0: - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - for filename in filenames: - if filename != '': - self.worker_task.emit({'fcn': self.open_excellon, 'params': [filename]}) - - def on_fileopengcode(self, signal, name=None): - """ - - File menu call back for opening gcode. - - :param signal: required because clicking the entry will generate a checked signal which needs a container - :param name: - :return: - """ - - self.defaults.report_usage("on_fileopengcode") - App.log.debug("on_fileopengcode()") - - # https://bobcadsupport.com/helpdesk/index.php?/Knowledgebase/Article/View/13/5/known-g-code-file-extensions - _filter_ = "G-Code Files (*.txt *.nc *.ncc *.tap *.gcode *.cnc *.ecs *.fnc *.dnc *.ncg *.gc *.fan *.fgc" \ - " *.din *.xpi *.hnc *.h *.i *.ncp *.min *.gcd *.rol *.mpr *.ply *.out *.eia *.sbp *.mpf);;" \ - "All Files (*.*)" - - if name is None: - try: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open G-Code"), - directory=self.get_last_folder(), - filter=_filter_, - initialFilter=self.last_op_gcode_filter) - except TypeError: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open G-Code"), filter=_filter_) - - filenames = [str(filename) for filename in filenames] - self.last_op_gcode_filter = _f - else: - filenames = [name] - self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" - "Canvas initialization finished in"), '%.2f' % self.used_time, - _("Opening G-Code file.")), - alignment=Qt.AlignBottom | Qt.AlignLeft, - color=QtGui.QColor("gray")) - - if len(filenames) == 0: - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - for filename in filenames: - if filename != '': - self.worker_task.emit({'fcn': self.open_gcode, 'params': [filename, None, True]}) - - def on_file_openproject(self, signal): - """ - File menu callback for opening a project. - - :param signal: required because clicking the entry will generate a checked signal which needs a container - :return: None - """ - - self.defaults.report_usage("on_file_openproject") - App.log.debug("on_file_openproject()") - _filter_ = "FlatCAM Project (*.FlatPrj);;All Files (*.*)" - try: - filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open Project"), - directory=self.get_last_folder(), filter=_filter_) - except TypeError: - filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open Project"), filter=_filter_) - - # The Qt methods above will return a QString which can cause problems later. - # So far json.dump() will fail to serialize it. - # TODO: Improve the serialization methods and remove this fix. - filename = str(filename) - - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - # self.worker_task.emit({'fcn': self.open_project, - # 'params': [filename]}) - # The above was failing because open_project() is not - # thread safe. The new_project() - self.open_project(filename) - - def on_fileopenhpgl2(self, signal, name=None): - """ - File menu callback for opening a HPGL2. - - :param signal: required because clicking the entry will generate a checked signal which needs a container - :param name: - :return: None - """ - - self.defaults.report_usage("on_fileopenhpgl2") - App.log.debug("on_fileopenhpgl2()") - - _filter_ = "HPGL2 Files (*.plt);;" \ - "All Files (*.*)" - - if name is None: - try: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open HPGL2"), - directory=self.get_last_folder(), - filter=_filter_) - except TypeError: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open HPGL2"), filter=_filter_) - - filenames = [str(filename) for filename in filenames] - else: - filenames = [name] - self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" - "Canvas initialization finished in"), '%.2f' % self.used_time, - _("Opening HPGL2 file.")), - alignment=Qt.AlignBottom | Qt.AlignLeft, - color=QtGui.QColor("gray")) - - if len(filenames) == 0: - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - for filename in filenames: - if filename != '': - self.worker_task.emit({'fcn': self.open_hpgl2, 'params': [filename]}) - - def on_file_openconfig(self, signal): - """ - File menu callback for opening a config file. - - :param signal: required because clicking the entry will generate a checked signal which needs a container - :return: None - """ - - self.defaults.report_usage("on_file_openconfig") - App.log.debug("on_file_openconfig()") - _filter_ = "FlatCAM Config (*.FlatConfig);;FlatCAM Config (*.json);;All Files (*.*)" - try: - filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open Configuration File"), - directory=self.data_path, filter=_filter_) - except TypeError: - filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open Configuration File"), - filter=_filter_) - - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - self.open_config_file(filename) - - def on_file_exportsvg(self): - """ - Callback for menu item File->Export SVG. - - :return: None - """ - self.defaults.report_usage("on_file_exportsvg") - App.log.debug("on_file_exportsvg()") - - obj = self.collection.get_active() - if obj is None: - 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) - msgbox.exec_() - return - - # Check for more compatible types and add as required - if (not isinstance(obj, GeometryObject) - and not isinstance(obj, GerberObject) - and not isinstance(obj, CNCJobObject) - and not isinstance(obj, ExcellonObject)): - 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) - msgbox.exec_() - return - - name = obj.options["name"] - - _filter = "SVG File (*.svg);;All Files (*.*)" - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Export SVG"), - directory=self.get_last_save_folder() + '/' + str(name) + '_svg', - ext_filter=_filter) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), ext_filter=_filter) - - filename = str(filename) - - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - else: - self.export_svg(name, filename) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("SVG", filename) - self.file_saved.emit("SVG", filename) - - def on_file_exportpng(self): - self.defaults.report_usage("on_file_exportpng") - App.log.debug("on_file_exportpng()") - - self.date = str(datetime.today()).rpartition('.')[0] - 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(alpha=False) - 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')) - return - - filter_ = "PNG File (*.png);;All Files (*.*)" - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Export PNG Image"), - directory=self.get_last_save_folder() + '/png_' + self.date, - ext_filter=filter_) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG Image"), ext_filter=filter_) - - filename = str(filename) - - if filename == "": - self.inform.emit(_("Cancelled.")) - return - else: - if self.is_legacy is False: - write_png(filename, data) - else: - self.plotcanvas.figure.savefig(filename) - - if self.defaults["global_open_style"] is False: - self.file_opened.emit("png", filename) - self.file_saved.emit("png", filename) - - def on_file_savegerber(self): - """ - Callback for menu item in Project context menu. - - :return: None - """ - self.defaults.report_usage("on_file_savegerber") - App.log.debug("on_file_savegerber()") - - obj = self.collection.get_active() - if obj is None: - self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) - return - - # Check for more compatible types and add as required - if not isinstance(obj, GerberObject): - self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Gerber objects can be saved as Gerber files...")) - return - - name = self.collection.get_active().options["name"] - - _filter = "Gerber File (*.GBR);;Gerber File (*.GRB);;All Files (*.*)" - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption="Save Gerber source file", - directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Gerber source file"), ext_filter=_filter) - - filename = str(filename) - - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - else: - self.save_source_file(name, filename) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("Gerber", filename) - self.file_saved.emit("Gerber", filename) - - def on_file_savescript(self): - """ - Callback for menu item in Project context menu. - - :return: None - """ - self.defaults.report_usage("on_file_savescript") - App.log.debug("on_file_savescript()") - - obj = self.collection.get_active() - if obj is None: - self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) - return - - # Check for more compatible types and add as required - if not isinstance(obj, ScriptObject): - self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Script objects can be saved as TCL Script files...")) - return - - name = self.collection.get_active().options["name"] - - _filter = "FlatCAM Scripts (*.FlatScript);;All Files (*.*)" - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption="Save Script source file", - directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Script source file"), ext_filter=_filter) - - filename = str(filename) - - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - else: - self.save_source_file(name, filename) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("Script", filename) - self.file_saved.emit("Script", filename) - - def on_file_savedocument(self): - """ - Callback for menu item in Project context menu. - - :return: None - """ - self.defaults.report_usage("on_file_savedocument") - App.log.debug("on_file_savedocument()") - - obj = self.collection.get_active() - if obj is None: - self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) - return - - # Check for more compatible types and add as required - if not isinstance(obj, ScriptObject): - self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Document objects can be saved as Document files...")) - return - - name = self.collection.get_active().options["name"] - - _filter = "FlatCAM Documents (*.FlatDoc);;All Files (*.*)" - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption="Save Document source file", - directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Document source file"), - ext_filter=_filter) - - filename = str(filename) - - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - else: - self.save_source_file(name, filename) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("Document", filename) - self.file_saved.emit("Document", filename) - - def on_file_saveexcellon(self): - """ - Callback for menu item in project context menu. - - :return: None - """ - self.defaults.report_usage("on_file_saveexcellon") - App.log.debug("on_file_saveexcellon()") - - obj = self.collection.get_active() - if obj is None: - self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) - return - - # Check for more compatible types and add as required - if not isinstance(obj, ExcellonObject): - self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Excellon objects can be saved as Excellon files...")) - return - - name = self.collection.get_active().options["name"] - - _filter = "Excellon File (*.DRL);;Excellon File (*.TXT);;All Files (*.*)" - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Save Excellon source file"), - directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Save Excellon source file"), ext_filter=_filter) - - filename = str(filename) - - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - else: - self.save_source_file(name, filename) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("Excellon", filename) - self.file_saved.emit("Excellon", filename) - - def on_file_exportexcellon(self): - """ - Callback for menu item File->Export->Excellon. - - :return: None - """ - self.defaults.report_usage("on_file_exportexcellon") - App.log.debug("on_file_exportexcellon()") - - obj = self.collection.get_active() - if obj is None: - self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) - return - - # Check for more compatible types and add as required - if not isinstance(obj, ExcellonObject): - self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Excellon objects can be saved as Excellon files...")) - return - - name = self.collection.get_active().options["name"] - - _filter = self.defaults["excellon_save_filters"] - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Export Excellon"), - directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Excellon"), ext_filter=_filter) - - filename = str(filename) - - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - else: - used_extension = filename.rpartition('.')[2] - obj.update_filters(last_ext=used_extension, filter_string='excellon_save_filters') - - self.export_excellon(name, filename) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("Excellon", filename) - self.file_saved.emit("Excellon", filename) - - def on_file_exportgerber(self): - """ - Callback for menu item File->Export->Gerber. - - :return: None - """ - self.defaults.report_usage("on_file_exportgerber") - App.log.debug("on_file_exportgerber()") - - obj = self.collection.get_active() - if obj is None: - self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) - return - - # Check for more compatible types and add as required - if not isinstance(obj, GerberObject): - self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Gerber objects can be saved as Gerber files...")) - return - - name = self.collection.get_active().options["name"] - - _filter_ = self.defaults['gerber_save_filters'] - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Export Gerber"), - directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter_) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Gerber"), ext_filter=_filter_) - - filename = str(filename) - - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - else: - used_extension = filename.rpartition('.')[2] - obj.update_filters(last_ext=used_extension, filter_string='gerber_save_filters') - - self.export_gerber(name, filename) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("Gerber", filename) - self.file_saved.emit("Gerber", filename) - - def on_file_exportdxf(self): - """ - Callback for menu item File->Export DXF. - - :return: None - """ - self.defaults.report_usage("on_file_exportdxf") - App.log.debug("on_file_exportdxf()") - - obj = self.collection.get_active() - if obj is None: - 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) - msgbox.exec_() - return - - # Check for more compatible types and add as required - 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) - msgbox.exec_() - - return - - name = self.collection.get_active().options["name"] - - _filter_ = "DXF File .dxf (*.DXF);;All Files (*.*)" - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Export DXF"), - directory=self.get_last_save_folder() + '/' + name, - ext_filter=_filter_) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export DXF"), ext_filter=_filter_) - - filename = str(filename) - - if filename == "": - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - else: - self.export_dxf(name, filename) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("DXF", filename) - self.file_saved.emit("DXF", filename) - - def on_file_importsvg(self, type_of_obj): - """ - Callback for menu item File->Import SVG. - :param type_of_obj: to import the SVG as Geometry or as Gerber - :type type_of_obj: str - :return: None - """ - self.defaults.report_usage("on_file_importsvg") - App.log.debug("on_file_importsvg()") - - _filter_ = "SVG File .svg (*.svg);;All Files (*.*)" - try: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Import SVG"), - directory=self.get_last_folder(), filter=_filter_) - except TypeError: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Import SVG"), - filter=_filter_) - - if type_of_obj != "geometry" and type_of_obj != "gerber": - type_of_obj = "geometry" - - filenames = [str(filename) for filename in filenames] - - if len(filenames) == 0: - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - for filename in filenames: - if filename != '': - self.worker_task.emit({'fcn': self.import_svg, - 'params': [filename, type_of_obj]}) - - def on_file_importdxf(self, type_of_obj): - """ - Callback for menu item File->Import DXF. - :param type_of_obj: to import the DXF as Geometry or as Gerber - :type type_of_obj: str - :return: None - """ - self.defaults.report_usage("on_file_importdxf") - App.log.debug("on_file_importdxf()") - - _filter_ = "DXF File .dxf (*.DXF);;All Files (*.*)" - try: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Import DXF"), - directory=self.get_last_folder(), - filter=_filter_) - except TypeError: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Import DXF"), - filter=_filter_) - - if type_of_obj != "geometry" and type_of_obj != "gerber": - type_of_obj = "geometry" - - filenames = [str(filename) for filename in filenames] - - if len(filenames) == 0: - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - for filename in filenames: - if filename != '': - self.worker_task.emit({'fcn': self.import_dxf, - 'params': [filename, type_of_obj]}) - # ############################################################################################################### # ### The following section has the functions that are displayed and call the Editor tab CNCJob Tab ############# # ############################################################################################################### @@ -7944,1525 +7039,6 @@ class App(QtCore.QObject): # set cursor of the code editor with the cursor at the searcehd line self.ui.plot_tab_area.currentWidget().code_editor.setTextCursor(cursor) - def on_filenewscript(self, silent=False): - """ - Will create a new script file and open it in the Code Editor - - :param silent: if True will not display status messages - :return: None - """ - if silent is False: - self.inform.emit('[success] %s' % _("New TCL script file created in Code Editor.")) - - # delete the absolute and relative position and messages in the infobar - # self.ui.position_label.setText("") - # self.ui.rel_position_label.setText("") - # hide coordinates toolbars in the infobar while in DB - self.ui.coords_toolbar.hide() - self.ui.delta_coords_toolbar.hide() - - self.app_obj.new_script_object() - - # script_text = script_obj.source_file - # - # self.proc_container.view.set_busy(_("Loading...")) - # script_obj.script_editor_tab.t_frame.hide() - # - # script_obj.script_editor_tab.t_frame.show() - # self.proc_container.view.set_idle() - - def on_fileopenscript(self, name=None, silent=False): - """ - Will open a Tcl script file into the Code Editor - - :param silent: if True will not display status messages - :param name: name of a Tcl script file to open - :return: None - """ - - self.defaults.report_usage("on_fileopenscript") - App.log.debug("on_fileopenscript()") - - _filter_ = "TCL script .FlatScript (*.FlatScript);;TCL script .tcl (*.TCL);;TCL script .txt (*.TXT);;" \ - "All Files (*.*)" - - if name: - filenames = [name] - else: - try: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames( - caption=_("Open TCL script"), directory=self.get_last_folder(), filter=_filter_) - except TypeError: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open TCL script"), filter=_filter_) - - if len(filenames) == 0: - if silent is False: - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - for filename in filenames: - if filename != '': - self.worker_task.emit({'fcn': self.open_script, 'params': [filename]}) - - def on_fileopenscript_example(self, name=None, silent=False): - """ - Will open a Tcl script file into the Code Editor - - :param silent: if True will not display status messages - :param name: name of a Tcl script file to open - :return: - """ - - self.defaults.report_usage("on_fileopenscript_example") - log.debug("on_fileopenscript_example()") - - _filter_ = "TCL script .FlatScript (*.FlatScript);;TCL script .tcl (*.TCL);;TCL script .txt (*.TXT);;" \ - "All Files (*.*)" - - # test if the app was frozen and choose the path for the configuration file - if getattr(sys, "frozen", False) is True: - example_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + '\\assets\\examples' - else: - example_path = os.path.dirname(os.path.realpath(__file__)) + '\\assets\\examples' - - if name: - filenames = [name] - else: - try: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames( - caption=_("Open TCL script"), directory=example_path, filter=_filter_) - except TypeError: - filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open TCL script"), filter=_filter_) - - if len(filenames) == 0: - if silent is False: - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - for filename in filenames: - if filename != '': - self.worker_task.emit({'fcn': self.open_script, 'params': [filename]}) - - def on_filerunscript(self, name=None, silent=False): - """ - File menu callback for loading and running a TCL script. - - :param silent: if True will not display status messages - :param name: name of a Tcl script file to be run by FlatCAM - :return: None - """ - - self.defaults.report_usage("on_filerunscript") - App.log.debug("on_file_runscript()") - - if name: - filename = name - if self.cmd_line_headless != 1: - self.splash.showMessage('%s: %ssec\n%s' % - (_("Canvas initialization started.\n" - "Canvas initialization finished in"), '%.2f' % self.used_time, - _("Executing ScriptObject file.") - ), - alignment=Qt.AlignBottom | Qt.AlignLeft, - color=QtGui.QColor("gray")) - else: - _filter_ = "TCL script .FlatScript (*.FlatScript);;TCL script .tcl (*.TCL);;TCL script .txt (*.TXT);;" \ - "All Files (*.*)" - try: - filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Run TCL script"), - directory=self.get_last_folder(), filter=_filter_) - except TypeError: - filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Run TCL script"), filter=_filter_) - - # The Qt methods above will return a QString which can cause problems later. - # So far json.dump() will fail to serialize it. - filename = str(filename) - - if filename == "": - if silent is False: - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - else: - if self.cmd_line_headless != 1: - if self.ui.shell_dock.isHidden(): - self.ui.shell_dock.show() - - try: - with open(filename, "r") as tcl_script: - cmd_line_shellfile_content = tcl_script.read() - if self.cmd_line_headless != 1: - self.shell.exec_command(cmd_line_shellfile_content) - else: - self.shell.exec_command(cmd_line_shellfile_content, no_echo=True) - - if silent is False: - self.inform.emit('[success] %s' % _("TCL script file opened in Code Editor and executed.")) - except Exception as e: - log.debug("App.on_filerunscript() -> %s" % str(e)) - sys.exit(2) - - def on_file_saveproject(self, silent=False): - """ - Callback for menu item File->Save Project. Saves the project to - ``self.project_filename`` or calls ``self.on_file_saveprojectas()`` - if set to None. The project is saved by calling ``self.save_project()``. - - :param silent: if True will not display status messages - :return: None - """ - - self.defaults.report_usage("on_file_saveproject") - - if self.project_filename is None: - self.on_file_saveprojectas() - else: - self.worker_task.emit({'fcn': self.save_project, - 'params': [self.project_filename, silent]}) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("project", self.project_filename) - self.file_saved.emit("project", self.project_filename) - - self.set_ui_title(name=self.project_filename) - - self.should_we_save = False - - def on_file_saveprojectas(self, make_copy=False, use_thread=True, quit_action=False): - """ - Callback for menu item File->Save Project As... Opens a file - chooser and saves the project to the given file via - ``self.save_project()``. - - :param make_copy if to be create a copy of the project; boolean - :param use_thread: if to be run in a separate thread; boolean - :param quit_action: if to be followed by quiting the application; boolean - :return: None - """ - - self.defaults.report_usage("on_file_saveprojectas") - - self.date = str(datetime.today()).rpartition('.')[0] - self.date = ''.join(c for c in self.date if c not in ':-') - self.date = self.date.replace(' ', '_') - - filter_ = "FlatCAM Project .FlatPrj (*.FlatPrj);; All Files (*.*)" - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Save Project As ..."), - directory='{l_save}/{proj}_{date}'.format(l_save=str(self.get_last_save_folder()), date=self.date, - proj=_("Project")), - ext_filter=filter_ - ) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Project As ..."), ext_filter=filter_) - - filename = str(filename) - - if filename == '': - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - - if use_thread is True: - self.worker_task.emit({'fcn': self.save_project, - 'params': [filename, quit_action]}) - else: - self.save_project(filename, quit_action) - - # self.save_project(filename) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("project", filename) - self.file_saved.emit("project", filename) - - if not make_copy: - self.project_filename = filename - - self.set_ui_title(name=self.project_filename) - self.should_we_save = False - - def on_file_save_objects_pdf(self, use_thread=True): - self.date = str(datetime.today()).rpartition('.')[0] - self.date = ''.join(c for c in self.date if c not in ':-') - self.date = self.date.replace(' ', '_') - - try: - obj_selection = self.collection.get_selected() - if len(obj_selection) == 1: - obj_name = str(obj_selection[0].options['name']) - else: - obj_name = _("FlatCAM objects print") - except AttributeError as err: - log.debug("App.on_file_save_object_pdf() --> %s" % str(err)) - self.inform.emit('[ERROR_NOTCL] %s' % _("No object selected.")) - return - - if not obj_selection: - self.inform.emit('[ERROR_NOTCL] %s' % _("No object selected.")) - return - - filter_ = "PDF File .pdf (*.PDF);; All Files (*.*)" - try: - filename, _f = FCFileSaveDialog.get_saved_filename( - caption=_("Save Object as PDF ..."), - directory='{l_save}/{obj_name}_{date}'.format(l_save=str(self.get_last_save_folder()), - obj_name=obj_name, - date=self.date), - ext_filter=filter_ - ) - except TypeError: - filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Object as PDF ..."), ext_filter=filter_) - - filename = str(filename) - - if filename == '': - self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) - return - - if use_thread is True: - self.proc_container.new(_("Printing PDF ... Please wait.")) - self.worker_task.emit({'fcn': self.save_pdf, 'params': [filename, obj_selection]}) - else: - self.save_pdf(filename, obj_selection) - - # self.save_project(filename) - if self.defaults["global_open_style"] is False: - self.file_opened.emit("pdf", filename) - self.file_saved.emit("pdf", filename) - - def save_pdf(self, file_name, obj_selection): - - p_size = self.defaults['global_workspaceT'] - orientation = self.defaults['global_workspace_orientation'] - color = 'black' - transparency_level = 1.0 - - self.pagesize = {} - self.pagesize.update( - { - 'Bounds': None, - 'A0': (841 * mm, 1189 * mm), - 'A1': (594 * mm, 841 * mm), - 'A2': (420 * mm, 594 * mm), - 'A3': (297 * mm, 420 * mm), - 'A4': (210 * mm, 297 * mm), - 'A5': (148 * mm, 210 * mm), - 'A6': (105 * mm, 148 * mm), - 'A7': (74 * mm, 105 * mm), - 'A8': (52 * mm, 74 * mm), - 'A9': (37 * mm, 52 * mm), - 'A10': (26 * mm, 37 * mm), - - 'B0': (1000 * mm, 1414 * mm), - 'B1': (707 * mm, 1000 * mm), - 'B2': (500 * mm, 707 * mm), - 'B3': (353 * mm, 500 * mm), - 'B4': (250 * mm, 353 * mm), - 'B5': (176 * mm, 250 * mm), - 'B6': (125 * mm, 176 * mm), - 'B7': (88 * mm, 125 * mm), - 'B8': (62 * mm, 88 * mm), - 'B9': (44 * mm, 62 * mm), - 'B10': (31 * mm, 44 * mm), - - 'C0': (917 * mm, 1297 * mm), - 'C1': (648 * mm, 917 * mm), - 'C2': (458 * mm, 648 * mm), - 'C3': (324 * mm, 458 * mm), - 'C4': (229 * mm, 324 * mm), - 'C5': (162 * mm, 229 * mm), - 'C6': (114 * mm, 162 * mm), - 'C7': (81 * mm, 114 * mm), - 'C8': (57 * mm, 81 * mm), - 'C9': (40 * mm, 57 * mm), - 'C10': (28 * mm, 40 * mm), - - # American paper sizes - 'LETTER': (8.5 * inch, 11 * inch), - 'LEGAL': (8.5 * inch, 14 * inch), - 'ELEVENSEVENTEEN': (11 * inch, 17 * inch), - - # From https://en.wikipedia.org/wiki/Paper_size - 'JUNIOR_LEGAL': (5 * inch, 8 * inch), - 'HALF_LETTER': (5.5 * inch, 8 * inch), - 'GOV_LETTER': (8 * inch, 10.5 * inch), - 'GOV_LEGAL': (8.5 * inch, 13 * inch), - 'LEDGER': (17 * inch, 11 * inch), - } - ) - - exported_svg = [] - for obj in obj_selection: - svg_obj = obj.export_svg(scale_stroke_factor=0.0, - scale_factor_x=None, scale_factor_y=None, - skew_factor_x=None, skew_factor_y=None, - mirror=None) - - if obj.kind.lower() == 'gerber': - # color = self.defaults["gerber_plot_fill"][:-2] - color = obj.fill_color[:-2] - elif obj.kind.lower() == 'excellon': - color = '#C40000' - elif obj.kind.lower() == 'geometry': - color = self.defaults["global_draw_color"] - - # Change the attributes of the exported SVG - # We don't need stroke-width - # We set opacity to maximum - # We set the colour to WHITE - root = ET.fromstring(svg_obj) - for child in root: - child.set('fill', str(color)) - child.set('opacity', str(transparency_level)) - child.set('stroke', str(color)) - - exported_svg.append(ET.tostring(root)) - - xmin = Inf - ymin = Inf - xmax = -Inf - ymax = -Inf - - for obj in obj_selection: - try: - gxmin, gymin, gxmax, gymax = obj.bounds() - xmin = min([xmin, gxmin]) - ymin = min([ymin, gymin]) - xmax = max([xmax, gxmax]) - ymax = max([ymax, gymax]) - except Exception as e: - log.warning("DEV WARNING: Tried to get bounds of empty geometry in App.save_pdf(). %s" % str(e)) - - # Determine bounding area for svg export - bounds = [xmin, ymin, xmax, ymax] - size = bounds[2] - bounds[0], bounds[3] - bounds[1] - - # This contain the measure units - uom = obj_selection[0].units.lower() - - # Define a boundary around SVG of about 1.0mm (~39mils) - if uom in "mm": - boundary = 1.0 - else: - boundary = 0.0393701 - - # Convert everything to strings for use in the xml doc - svgwidth = str(size[0] + (2 * boundary)) - svgheight = str(size[1] + (2 * boundary)) - minx = str(bounds[0] - boundary) - miny = str(bounds[1] + boundary + size[1]) - - # Add a SVG Header and footer to the svg output from shapely - # The transform flips the Y Axis so that everything renders - # properly within svg apps such as inkscape - svg_header = ' PDF output --> %s" % str(e)) - return 'fail' - - self.inform.emit('[success] %s: %s' % (_("PDF file saved to"), file_name)) - - def export_svg(self, obj_name, filename, scale_stroke_factor=0.00): - """ - Exports a Geometry Object to an SVG file. - - :param obj_name: the name of the FlatCAM object to be saved as SVG - :param filename: Path to the SVG file to save to. - :param scale_stroke_factor: factor by which to change/scale the thickness of the features - :return: - """ - self.defaults.report_usage("export_svg()") - - if filename is None: - filename = self.defaults["global_last_save_folder"] if self.defaults["global_last_save_folder"] \ - is not None else self.defaults["global_last_folder"] - - self.log.debug("export_svg()") - - try: - obj = self.collection.get_by_name(str(obj_name)) - except Exception: - # TODO: The return behavior has not been established... should raise exception? - return "Could not retrieve object: %s" % obj_name - - with self.proc_container.new(_("Exporting SVG")) as proc: - exported_svg = obj.export_svg(scale_stroke_factor=scale_stroke_factor) - - # Determine bounding area for svg export - bounds = obj.bounds() - size = obj.size() - - # Convert everything to strings for use in the xml doc - svgwidth = str(size[0]) - svgheight = str(size[1]) - minx = str(bounds[0]) - miny = str(bounds[1] - size[1]) - uom = obj.units.lower() - - # Add a SVG Header and footer to the svg output from shapely - # The transform flips the Y Axis so that everything renders - # properly within svg apps such as inkscape - svg_header = '' - svg_header += '' - svg_footer = ' ' - svg_elem = svg_header + exported_svg + svg_footer - - # Parse the xml through a xml parser just to add line feeds - # and to make it look more pretty for the output - svgcode = parse_xml_string(svg_elem) - svgcode = svgcode.toprettyxml() - - try: - with open(filename, 'w') as fp: - fp.write(svgcode) - except PermissionError: - self.inform.emit('[WARNING] %s' % - _("Permission denied, saving not possible.\n" - "Most likely another app is holding the file open and not accessible.")) - return 'fail' - - if self.defaults["global_open_style"] is False: - self.file_opened.emit("SVG", filename) - self.file_saved.emit("SVG", filename) - self.inform.emit('[success] %s: %s' % (_("SVG file exported to"), filename)) - - def save_source_file(self, obj_name, filename, use_thread=True): - """ - Exports a FlatCAM Object to an Gerber/Excellon file. - - :param obj_name: the name of the FlatCAM object for which to save it's embedded source file - :param filename: Path to the Gerber file to save to. - :param use_thread: if to be run in a separate thread - :return: - """ - self.defaults.report_usage("save source file()") - - if filename is None: - filename = self.defaults["global_last_save_folder"] if self.defaults["global_last_save_folder"] \ - is not None else self.defaults["global_last_folder"] - - self.log.debug("save source file()") - - obj = self.collection.get_by_name(obj_name) - - file_string = StringIO(obj.source_file) - time_string = "{:%A, %d %B %Y at %H:%M}".format(datetime.now()) - - if file_string.getvalue() == '': - self.inform.emit('[ERROR_NOTCL] %s' % - _("Save cancelled because source file is empty. Try to export the file.")) - return 'fail' - - try: - with open(filename, 'w') as file: - file.writelines('G04*\n') - file.writelines('G04 %s (RE)GENERATED BY FLATCAM v%s - www.flatcam.org - Version Date: %s*\n' % - (obj.kind.upper(), str(self.version), str(self.version_date))) - file.writelines('G04 Filename: %s*\n' % str(obj_name)) - file.writelines('G04 Created on : %s*\n' % time_string) - - for line in file_string: - file.writelines(line) - except PermissionError: - self.inform.emit('[WARNING] %s' % - _("Permission denied, saving not possible.\n" - "Most likely another app is holding the file open and not accessible.")) - return 'fail' - - def export_excellon(self, obj_name, filename, local_use=None, use_thread=True): - """ - Exports a Excellon Object to an Excellon file. - - :param obj_name: the name of the FlatCAM object to be saved as Excellon - :param filename: Path to the Excellon file to save to. - :param local_use: - :param use_thread: if to be run in a separate thread - :return: - """ - self.defaults.report_usage("export_excellon()") - - if filename is None: - if self.defaults["global_last_save_folder"]: - filename = self.defaults["global_last_save_folder"] + '/' + 'exported_excellon' - else: - filename = self.defaults["global_last_folder"] + '/' + 'exported_excellon' - - self.log.debug("export_excellon()") - - format_exc = ';FILE_FORMAT=%d:%d\n' % (self.defaults["excellon_exp_integer"], - self.defaults["excellon_exp_decimals"] - ) - - if local_use is None: - try: - obj = self.collection.get_by_name(str(obj_name)) - except Exception: - return "Could not retrieve object: %s" % obj_name - else: - obj = local_use - - if not isinstance(obj, ExcellonObject): - self.inform.emit('[ERROR_NOTCL] %s' % - _("Failed. Only Excellon objects can be saved as Excellon files...")) - return - - # updated units - eunits = self.defaults["excellon_exp_units"] - ewhole = self.defaults["excellon_exp_integer"] - efract = self.defaults["excellon_exp_decimals"] - ezeros = self.defaults["excellon_exp_zeros"] - eformat = self.defaults["excellon_exp_format"] - slot_type = self.defaults["excellon_exp_slot_type"] - - fc_units = self.defaults['units'].upper() - if fc_units == 'MM': - factor = 1 if eunits == 'METRIC' else 0.03937 - else: - factor = 25.4 if eunits == 'METRIC' else 1 - - def make_excellon(): - try: - time_str = "{:%A, %d %B %Y at %H:%M}".format(datetime.now()) - - header = 'M48\n' - header += ';EXCELLON GENERATED BY FLATCAM v%s - www.flatcam.org - Version Date: %s\n' % \ - (str(self.version), str(self.version_date)) - - header += ';Filename: %s' % str(obj_name) + '\n' - header += ';Created on : %s' % time_str + '\n' - - if eformat == 'dec': - has_slots, excellon_code = obj.export_excellon(ewhole, efract, factor=factor, slot_type=slot_type) - header += eunits + '\n' - - for tool in obj.tools: - if eunits == 'METRIC': - header += "T{tool}F00S00C{:.{dec}f}\n".format(float(obj.tools[tool]['tooldia']) * factor, - tool=str(tool), - dec=2) - else: - header += "T{tool}F00S00C{:.{dec}f}\n".format(float(obj.tools[tool]['tooldia']) * factor, - tool=str(tool), - dec=4) - else: - if ezeros == 'LZ': - has_slots, excellon_code = obj.export_excellon(ewhole, efract, - form='ndec', e_zeros='LZ', factor=factor, - slot_type=slot_type) - header += '%s,%s\n' % (eunits, 'LZ') - header += format_exc - - for tool in obj.tools: - if eunits == 'METRIC': - header += "T{tool}F00S00C{:.{dec}f}\n".format( - float(obj.tools[tool]['tooldia']) * factor, - tool=str(tool), - dec=2) - else: - header += "T{tool}F00S00C{:.{dec}f}\n".format( - float(obj.tools[tool]['tooldia']) * factor, - tool=str(tool), - dec=4) - else: - has_slots, excellon_code = obj.export_excellon(ewhole, efract, - form='ndec', e_zeros='TZ', factor=factor, - slot_type=slot_type) - header += '%s,%s\n' % (eunits, 'TZ') - header += format_exc - - for tool in obj.tools: - if eunits == 'METRIC': - header += "T{tool}F00S00C{:.{dec}f}\n".format( - float(obj.tools[tool]['tooldia']) * factor, - tool=str(tool), - dec=2) - else: - header += "T{tool}F00S00C{:.{dec}f}\n".format( - float(obj.tools[tool]['tooldia']) * factor, - tool=str(tool), - dec=4) - header += '%\n' - footer = 'M30\n' - - exported_excellon = header - exported_excellon += excellon_code - exported_excellon += footer - - if local_use is None: - try: - with open(filename, 'w') as fp: - fp.write(exported_excellon) - except PermissionError: - self.inform.emit('[WARNING] %s' % - _("Permission denied, saving not possible.\n" - "Most likely another app is holding the file open and not accessible.")) - return 'fail' - - if self.defaults["global_open_style"] is False: - self.file_opened.emit("Excellon", filename) - self.file_saved.emit("Excellon", filename) - self.inform.emit('[success] %s: %s' % (_("Excellon file exported to"), filename)) - else: - return exported_excellon - except Exception as e: - log.debug("App.export_excellon.make_excellon() --> %s" % str(e)) - return 'fail' - - if use_thread is True: - - with self.proc_container.new(_("Exporting Excellon")) as proc: - - def job_thread_exc(app_obj): - ret = make_excellon() - if ret == 'fail': - self.inform.emit('[ERROR_NOTCL] %s' % _('Could not export Excellon file.')) - return - - self.worker_task.emit({'fcn': job_thread_exc, 'params': [self]}) - else: - eret = make_excellon() - if eret == 'fail': - self.inform.emit('[ERROR_NOTCL] %s' % _('Could not export Excellon file.')) - return 'fail' - if local_use is not None: - return eret - - def export_gerber(self, obj_name, filename, local_use=None, use_thread=True): - """ - Exports a Gerber Object to an Gerber file. - - :param obj_name: the name of the FlatCAM object to be saved as Gerber - :param filename: Path to the Gerber file to save to. - :param local_use: if the Gerber code is to be saved to a file (None) or used within FlatCAM. - When not None, the value will be the actual Gerber object for which to create - the Gerber code - :param use_thread: if to be run in a separate thread - :return: - """ - self.defaults.report_usage("export_gerber()") - - if filename is None: - filename = self.defaults["global_last_save_folder"] if self.defaults["global_last_save_folder"] \ - is not None else self.defaults["global_last_folder"] - - self.log.debug("export_gerber()") - - if local_use is None: - try: - obj = self.collection.get_by_name(str(obj_name)) - except Exception: - return 'fail' - else: - obj = local_use - - # updated units - gunits = self.defaults["gerber_exp_units"] - gwhole = self.defaults["gerber_exp_integer"] - gfract = self.defaults["gerber_exp_decimals"] - gzeros = self.defaults["gerber_exp_zeros"] - - fc_units = self.defaults['units'].upper() - if fc_units == 'MM': - factor = 1 if gunits == 'MM' else 0.03937 - else: - factor = 25.4 if gunits == 'MM' else 1 - - def make_gerber(): - try: - time_str = "{:%A, %d %B %Y at %H:%M}".format(datetime.now()) - - header = 'G04*\n' - header += 'G04 RS-274X GERBER GENERATED BY FLATCAM v%s - www.flatcam.org - Version Date: %s*\n' % \ - (str(self.version), str(self.version_date)) - - header += 'G04 Filename: %s*' % str(obj_name) + '\n' - header += 'G04 Created on : %s*' % time_str + '\n' - header += '%%FS%sAX%s%sY%s%s*%%\n' % (gzeros, gwhole, gfract, gwhole, gfract) - header += "%MO{units}*%\n".format(units=gunits) - - for apid in obj.apertures: - if obj.apertures[apid]['type'] == 'C': - header += "%ADD{apid}{type},{size}*%\n".format( - apid=str(apid), - type='C', - size=(factor * obj.apertures[apid]['size']) - ) - elif obj.apertures[apid]['type'] == 'R': - header += "%ADD{apid}{type},{width}X{height}*%\n".format( - apid=str(apid), - type='R', - width=(factor * obj.apertures[apid]['width']), - height=(factor * obj.apertures[apid]['height']) - ) - elif obj.apertures[apid]['type'] == 'O': - header += "%ADD{apid}{type},{width}X{height}*%\n".format( - apid=str(apid), - type='O', - width=(factor * obj.apertures[apid]['width']), - height=(factor * obj.apertures[apid]['height']) - ) - - header += '\n' - - # obsolete units but some software may need it - if gunits == 'IN': - header += 'G70*\n' - else: - header += 'G71*\n' - - # Absolute Mode - header += 'G90*\n' - - header += 'G01*\n' - # positive polarity - header += '%LPD*%\n' - - footer = 'M02*\n' - - gerber_code = obj.export_gerber(gwhole, gfract, g_zeros=gzeros, factor=factor) - - exported_gerber = header - exported_gerber += gerber_code - exported_gerber += footer - - if local_use is None: - try: - with open(filename, 'w') as fp: - fp.write(exported_gerber) - except PermissionError: - self.inform.emit('[WARNING] %s' % - _("Permission denied, saving not possible.\n" - "Most likely another app is holding the file open and not accessible.")) - return 'fail' - - if self.defaults["global_open_style"] is False: - self.file_opened.emit("Gerber", filename) - self.file_saved.emit("Gerber", filename) - self.inform.emit('[success] %s: %s' % (_("Gerber file exported to"), filename)) - else: - return exported_gerber - except Exception as e: - log.debug("App.export_gerber.make_gerber() --> %s" % str(e)) - return 'fail' - - if use_thread is True: - with self.proc_container.new(_("Exporting Gerber")) as proc: - - def job_thread_grb(app_obj): - ret = make_gerber() - if ret == 'fail': - self.inform.emit('[ERROR_NOTCL] %s' % _('Could not export file.')) - return - - self.worker_task.emit({'fcn': job_thread_grb, 'params': [self]}) - else: - gret = make_gerber() - if gret == 'fail': - self.inform.emit('[ERROR_NOTCL] %s' % _('Could not export file.')) - return 'fail' - if local_use is not None: - return gret - - def export_dxf(self, obj_name, filename, local_use=None, use_thread=True): - """ - Exports a Geometry Object to an DXF file. - - :param obj_name: the name of the FlatCAM object to be saved as DXF - :param filename: Path to the DXF file to save to. - :param local_use: if the Gerber code is to be saved to a file (None) or used within FlatCAM. - When not None, the value will be the actual Geometry object for which to create - the Geometry/DXF code - :param use_thread: if to be run in a separate thread - :return: - """ - self.defaults.report_usage("export_dxf()") - - if filename is None: - filename = self.defaults["global_last_save_folder"] if self.defaults["global_last_save_folder"] \ - is not None else self.defaults["global_last_folder"] - - self.log.debug("export_dxf()") - - if local_use is None: - try: - obj = self.collection.get_by_name(str(obj_name)) - except Exception: - return 'fail' - else: - obj = local_use - - def make_dxf(): - try: - dxf_code = obj.export_dxf() - if local_use is None: - try: - dxf_code.saveas(filename) - except PermissionError: - self.inform.emit('[WARNING] %s' % - _("Permission denied, saving not possible.\n" - "Most likely another app is holding the file open and not accessible.")) - return 'fail' - - if self.defaults["global_open_style"] is False: - self.file_opened.emit("DXF", filename) - self.file_saved.emit("DXF", filename) - self.inform.emit('[success] %s: %s' % (_("DXF file exported to"), filename)) - else: - return dxf_code - except Exception as e: - log.debug("App.export_dxf.make_dxf() --> %s" % str(e)) - return 'fail' - - if use_thread is True: - - with self.proc_container.new(_("Exporting DXF")) as proc: - - def job_thread_exc(app_obj): - ret_dxf_val = make_dxf() - if ret_dxf_val == 'fail': - app_obj.inform.emit('[WARNING_NOTCL] %s' % _('Could not export DXF file.')) - return - - self.worker_task.emit({'fcn': job_thread_exc, 'params': [self]}) - else: - ret = make_dxf() - if ret == 'fail': - self.inform.emit('[WARNING_NOTCL] %s' % _('Could not export DXF file.')) - return - if local_use is not None: - return ret - - def import_svg(self, filename, geo_type='geometry', outname=None, plot=True): - """ - Adds a new Geometry Object to the projects and populates - it with shapes extracted from the SVG file. - - :param plot: If True then the resulting object will be plotted on canvas - :param filename: Path to the SVG file. - :param geo_type: Type of FlatCAM object that will be created from SVG - :param outname: The name given to the resulting FlatCAM object - :return: - """ - self.defaults.report_usage("import_svg()") - log.debug("App.import_svg()") - - obj_type = "" - if geo_type is None or geo_type == "geometry": - obj_type = "geometry" - elif geo_type == "gerber": - obj_type = "gerber" - else: - self.inform.emit('[ERROR_NOTCL] %s' % - _("Not supported type is picked as parameter. Only Geometry and Gerber are supported")) - return - - units = self.defaults['units'].upper() - - def obj_init(geo_obj, app_obj): - geo_obj.import_svg(filename, obj_type, units=units) - geo_obj.multigeo = True - - with open(filename) as f: - file_content = f.read() - geo_obj.source_file = file_content - - with self.proc_container.new(_("Importing SVG")) as proc: - - # Object name - name = outname or filename.split('/')[-1].split('\\')[-1] - - 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.')) - return 'fail' - - # Register recent file - self.file_opened.emit("svg", filename) - - # appGUI feedback - self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) - - def import_dxf(self, filename, geo_type='geometry', outname=None, plot=True): - """ - Adds a new Geometry Object to the projects and populates - it with shapes extracted from the DXF file. - - :param filename: Path to the DXF file. - :param geo_type: Type of FlatCAM object that will be created from DXF - :param outname: Name for the imported Geometry - :param plot: If True then the resulting object will be plotted on canvas - :return: - """ - log.debug(" ********* Importing DXF as: %s ********* " % geo_type.capitalize()) - - obj_type = "" - if geo_type is None or geo_type == "geometry": - obj_type = "geometry" - elif geo_type == "gerber": - obj_type = geo_type - else: - self.inform.emit('[ERROR_NOTCL] %s' % - _("Not supported type is picked as parameter. Only Geometry and Gerber are supported")) - return - - units = self.defaults['units'].upper() - - def obj_init(geo_obj, app_obj): - if obj_type == "geometry": - geo_obj.import_dxf_as_geo(filename, units=units) - elif obj_type == "gerber": - geo_obj.import_dxf_as_gerber(filename, units=units) - else: - return "fail" - - geo_obj.multigeo = True - with open(filename) as f: - file_content = f.read() - geo_obj.source_file = file_content - - with self.proc_container.new(_("Importing DXF")): - - # Object name - name = outname or filename.split('/')[-1].split('\\')[-1] - - 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.')) - return 'fail' - - # Register recent file - self.file_opened.emit("dxf", filename) - - # appGUI feedback - self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) - - def open_gerber(self, filename, outname=None, plot=True, from_tcl=False): - """ - Opens a Gerber file, parses it and creates a new object for - it in the program. Thread-safe. - - :param outname: Name of the resulting object. None causes the - name to be that of the file. Str. - :param filename: Gerber file filename - :type filename: str - :param plot: boolean, to plot or not the resulting object - :param from_tcl: True if run from Tcl Shell - :return: None - """ - - # How the object should be initialized - def obj_init(gerber_obj, app_obj): - - assert isinstance(gerber_obj, GerberObject), \ - "Expected to initialize a GerberObject but got %s" % type(gerber_obj) - - # Opening the file happens here - try: - gerber_obj.parse_file(filename) - except IOError: - app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open file"), filename)) - return "fail" - except ParseError as err: - app_obj.inform.emit('[ERROR_NOTCL] %s: %s. %s' % (_("Failed to parse file"), filename, str(err))) - app_obj.log.error(str(err)) - return "fail" - except Exception as e: - log.debug("App.open_gerber() --> %s" % str(e)) - msg = '[ERROR] %s' % _("An internal error has occurred. See shell.\n") - msg += traceback.format_exc() - app_obj.inform.emit(msg) - return "fail" - - if gerber_obj.is_empty(): - app_obj.inform.emit('[ERROR_NOTCL] %s' % - _("Object is not Gerber file or empty. Aborting object creation.")) - return "fail" - - App.log.debug("open_gerber()") - - with self.proc_container.new(_("Opening Gerber")): - # Object name - name = outname or filename.split('/')[-1].split('\\')[-1] - - # # ## Object creation # ## - 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.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' - - # Register recent file - self.file_opened.emit("gerber", filename) - - # appGUI feedback - self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) - - def open_excellon(self, filename, outname=None, plot=True, from_tcl=False): - """ - Opens an Excellon file, parses it and creates a new object for - it in the program. Thread-safe. - - :param outname: Name of the resulting object. None causes the name to be that of the file. - :param filename: Excellon file filename - :type filename: str - :param plot: boolean, to plot or not the resulting object - :param from_tcl: True if run from Tcl Shell - :return: None - """ - - App.log.debug("open_excellon()") - - # How the object should be initialized - def obj_init(excellon_obj, app_obj): - try: - ret = excellon_obj.parse_file(filename=filename) - if ret == "fail": - log.debug("Excellon parsing failed.") - self.inform.emit('[ERROR_NOTCL] %s' % _("This is not Excellon file.")) - return "fail" - except IOError: - app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Cannot open file"), filename)) - log.debug("Could not open Excellon object.") - return "fail" - except Exception: - msg = '[ERROR_NOTCL] %s' % _("An internal error has occurred. See shell.\n") - msg += traceback.format_exc() - app_obj.inform.emit(msg) - return "fail" - - ret = excellon_obj.create_geometry() - if ret == 'fail': - log.debug("Could not create geometry for Excellon object.") - return "fail" - - for tool in excellon_obj.tools: - if excellon_obj.tools[tool]['solid_geometry']: - return - app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("No geometry found in file"), filename)) - return "fail" - - with self.proc_container.new(_("Opening Excellon.")): - # Object name - name = outname or filename.split('/')[-1].split('\\')[-1] - 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.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.')) - return - - # Register recent file - self.file_opened.emit("excellon", filename) - - # 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): - """ - Opens a G-gcode file, parses it and creates a new object for - it in the program. Thread-safe. - - :param filename: G-code file filename - :param outname: Name of the resulting object. None causes the name to be that of the file. - :param force_parsing: - :param plot: If True plot the object on canvas - :param from_tcl: True if run from Tcl Shell - :return: None - """ - App.log.debug("open_gcode()") - - # How the object should be initialized - def obj_init(job_obj, app_obj_): - """ - :param job_obj: the resulting object - :type app_obj_: App - """ - assert isinstance(app_obj_, App), \ - "Initializer expected App, got %s" % type(app_obj_) - - app_obj_.inform.emit('%s...' % _("Reading GCode file")) - try: - f = open(filename) - gcode = f.read() - f.close() - except IOError: - app_obj_.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open"), filename)) - return "fail" - - job_obj.gcode = gcode - - gcode_ret = job_obj.gcode_parse(force_parsing=force_parsing) - if gcode_ret == "fail": - self.inform.emit('[ERROR_NOTCL] %s' % _("This is not GCODE")) - return "fail" - - job_obj.create_geometry() - - with self.proc_container.new(_("Opening G-Code.")): - - # Object name - name = outname or filename.split('/')[-1].split('\\')[-1] - - # New object creation and file processing - 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.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. " - "Try to load it from File menu.\n " - "Attempting to create a FlatCAM CNCJob Object from " - "G-Code file failed during processing")) - return "fail" - - # Register recent file - self.file_opened.emit("cncjob", filename) - - # appGUI feedback - self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) - - def open_hpgl2(self, filename, outname=None): - """ - Opens a HPGL2 file, parses it and creates a new object for - it in the program. Thread-safe. - - :param outname: Name of the resulting object. None causes the name to be that of the file. - :param filename: HPGL2 file filename - :return: None - """ - filename = filename - - # How the object should be initialized - def obj_init(geo_obj, app_obj): - - assert isinstance(geo_obj, GeometryObject), \ - "Expected to initialize a GeometryObject but got %s" % type(geo_obj) - - # Opening the file happens here - obj = HPGL2(self) - try: - HPGL2.parse_file(obj, filename) - except IOError: - app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open file"), filename)) - return "fail" - except ParseError as err: - app_obj.inform.emit('[ERROR_NOTCL] %s: %s. %s' % (_("Failed to parse file"), filename, str(err))) - app_obj.log.error(str(err)) - return "fail" - except Exception as e: - log.debug("App.open_hpgl2() --> %s" % str(e)) - msg = '[ERROR] %s' % _("An internal error has occurred. See shell.\n") - msg += traceback.format_exc() - app_obj.inform.emit(msg) - return "fail" - - geo_obj.multigeo = True - geo_obj.solid_geometry = deepcopy(obj.solid_geometry) - geo_obj.tools = deepcopy(obj.tools) - geo_obj.source_file = deepcopy(obj.source_file) - - del obj - - if not geo_obj.solid_geometry: - app_obj.inform.emit('[ERROR_NOTCL] %s' % - _("Object is not HPGL2 file or empty. Aborting object creation.")) - return "fail" - - App.log.debug("open_hpgl2()") - - with self.proc_container.new(_("Opening HPGL2")): - # Object name - name = outname or filename.split('/')[-1].split('\\')[-1] - - # # ## Object creation # ## - 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' - - # Register recent file - self.file_opened.emit("geometry", filename) - - # appGUI feedback - self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) - - def open_script(self, filename, outname=None, silent=False): - """ - Opens a Script file, parses it and creates a new object for - it in the program. Thread-safe. - - :param outname: Name of the resulting object. None causes the name to be that of the file. - :param filename: Script file filename - :param silent: If True there will be no messages printed to StatusBar - :return: None - """ - - def obj_init(script_obj, app_obj): - - assert isinstance(script_obj, ScriptObject), \ - "Expected to initialize a ScriptObject but got %s" % type(script_obj) - - if silent is False: - app_obj.inform.emit('[success] %s' % _("TCL script file opened in Code Editor.")) - - try: - script_obj.parse_file(filename) - except IOError: - app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open file"), filename)) - return "fail" - except ParseError as err: - app_obj.inform.emit('[ERROR_NOTCL] %s: %s. %s' % (_("Failed to parse file"), filename, str(err))) - app_obj.log.error(str(err)) - return "fail" - except Exception as e: - log.debug("App.open_script() -> %s" % str(e)) - msg = '[ERROR] %s' % _("An internal error has occurred. See shell.\n") - msg += traceback.format_exc() - app_obj.inform.emit(msg) - return "fail" - - App.log.debug("open_script()") - - with self.proc_container.new(_("Opening TCL Script...")): - - # Object name - script_name = outname or filename.split('/')[-1].split('\\')[-1] - - # Object creation - 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.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' - - # Register recent file - self.file_opened.emit("script", filename) - - # appGUI feedback - self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) - - def open_config_file(self, filename, run_from_arg=None): - """ - Loads a config file from the specified file. - - :param filename: Name of the file from which to load. - :param run_from_arg: if True the FlatConfig file will be open as an command line argument - :return: None - """ - App.log.debug("Opening config file: " + filename) - - if run_from_arg: - self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" - "Canvas initialization finished in"), '%.2f' % self.used_time, - _("Opening FlatCAM Config file.")), - alignment=Qt.AlignBottom | Qt.AlignLeft, - color=QtGui.QColor("gray")) - # # add the tab if it was closed - # self.ui.plot_tab_area.addTab(self.ui.text_editor_tab, _("Code Editor")) - # # first clear previous text in text editor (if any) - # self.ui.text_editor_tab.code_editor.clear() - # - # # Switch plot_area to CNCJob tab - # self.ui.plot_tab_area.setCurrentWidget(self.ui.text_editor_tab) - - # close the Code editor if already open - if self.toggle_codeeditor: - self.on_toggle_code_editor() - - self.on_toggle_code_editor() - - try: - if filename: - f = QtCore.QFile(filename) - if f.open(QtCore.QIODevice.ReadOnly): - stream = QtCore.QTextStream(f) - code_edited = stream.readAll() - self.text_editor_tab.load_text(code_edited, clear_text=True, move_to_start=True) - f.close() - except IOError: - App.log.error("Failed to open config file: %s" % filename) - self.inform.emit('[ERROR_NOTCL] %s: %s' % - (_("Failed to open config file"), filename)) - return - - def open_project(self, filename, run_from_arg=None, plot=True, cli=None, from_tcl=False): - """ - Loads a project from the specified file. - - 1) Loads and parses file - 2) Registers the file as recently opened. - 3) Calls on_file_new() - 4) Updates options - 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. - :param run_from_arg: True if run for arguments - :param plot: If True plot all objects in the project - :param cli: Run from command line - :param from_tcl: True if run from Tcl Sehll - :return: None - """ - App.log.debug("Opening project: " + filename) - - # block autosaving while a project is loaded - self.block_autosave = True - - # for some reason, setting ui_title does not work when this method is called from Tcl Shell - # it's because the TclCommand is run in another thread (it inherit TclCommandSignaled) - if cli is None: - self.set_ui_title(name=_("Loading Project ... Please Wait ...")) - - if run_from_arg: - self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" - "Canvas initialization finished in"), '%.2f' % self.used_time, - _("Opening FlatCAM Project file.")), - alignment=Qt.AlignBottom | Qt.AlignLeft, - color=QtGui.QColor("gray")) - - # Open and parse an uncompressed Project file - try: - f = open(filename, 'r') - except IOError: - if from_tcl: - name = filename.split('/')[-1].split('\\')[-1] - filename = self.defaults['global_tcl_path'] + '/' + name - try: - f = open(filename, 'r') - except IOError: - log.error("Failed to open project file: %s" % filename) - self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open project file"), filename)) - return - else: - log.error("Failed to open project file: %s" % filename) - self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open project file"), filename)) - return - - try: - d = json.load(f, object_hook=dict2obj) - except Exception as e: - log.error("Failed to parse project file, trying to see if it loads as an LZMA archive: %s because %s" % - (filename, str(e))) - f.close() - - # Open and parse a compressed Project file - try: - with lzma.open(filename) as f: - file_content = f.read().decode('utf-8') - d = json.loads(file_content, object_hook=dict2obj) - except Exception as e: - App.log.error("Failed to open project file: %s with error: %s" % (filename, str(e))) - self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open project file"), filename)) - return - - # Clear the current project - # # NOT THREAD SAFE # ## - if run_from_arg is True: - pass - elif cli is True: - self.delete_selection_shape() - else: - self.on_file_new() - - # Project options - self.options.update(d['options']) - - self.project_filename = filename - - # for some reason, setting ui_title does not work when this method is called from Tcl Shell - # it's because the TclCommand is run in another thread (it inherit TclCommandSignaled) - if cli is None: - self.set_screen_units(self.options["units"]) - - # Re create objects - App.log.debug(" **************** Started PROEJCT loading... **************** ") - - for obj in d['objs']: - def obj_init(obj_inst, app_inst): - try: - obj_inst.from_dict(obj) - except Exception as e: - print('App.open_project() --> ' + str(e)) - return 'fail' - - App.log.debug("Recreating from opened project an %s object: %s" % - (obj['kind'].capitalize(), obj['options']['name'])) - - # for some reason, setting ui_title does not work when this method is called from Tcl Shell - # it's because the TclCommand is run in another thread (it inherit TclCommandSignaled) - if cli is None: - self.set_ui_title(name="{} {}: {}".format(_("Loading Project ... restoring"), - obj['kind'].upper(), - obj['options']['name'] - ) - ) - - self.app_obj.new_object(obj['kind'], obj['options']['name'], obj_init, plot=plot) - - self.inform.emit('[success] %s: %s' % (_("Project loaded from"), filename)) - - self.should_we_save = False - self.file_opened.emit("project", filename) - - # restore autosaving after a project was loaded - self.block_autosave = False - - # for some reason, setting ui_title does not work when this method is called from Tcl Shell - # it's because the TclCommand is run in another thread (it inherit TclCommandSignaled) - if cli is None: - self.set_ui_title(name=self.project_filename) - - App.log.debug(" **************** Finished PROJECT loading... **************** ") - def plot_all(self, fit_view=True, muted=False, use_thread=True): """ Re-generates all plots from all objects. @@ -9544,15 +7120,15 @@ class App(QtCore.QObject): image_opener = None openers = { - 'gerber': lambda fname: self.worker_task.emit({'fcn': self.open_gerber, 'params': [fname]}), - 'excellon': lambda fname: self.worker_task.emit({'fcn': self.open_excellon, 'params': [fname]}), - 'geometry': lambda fname: self.worker_task.emit({'fcn': self.import_dxf, 'params': [fname]}), - 'cncjob': lambda fname: self.worker_task.emit({'fcn': self.open_gcode, 'params': [fname]}), - "script": lambda fname: self.worker_task.emit({'fcn': self.open_script, 'params': [fname]}), + 'gerber': lambda fname: self.worker_task.emit({'fcn': self.f_handlers.open_gerber, 'params': [fname]}), + 'excellon': lambda fname: self.worker_task.emit({'fcn': self.f_handlers.open_excellon, 'params': [fname]}), + 'geometry': lambda fname: self.worker_task.emit({'fcn': self.f_handlers.import_dxf, 'params': [fname]}), + 'cncjob': lambda fname: self.worker_task.emit({'fcn': self.f_handlers.open_gcode, 'params': [fname]}), + "script": lambda fname: self.worker_task.emit({'fcn': self.f_handlers.open_script, 'params': [fname]}), "document": None, - 'project': self.open_project, - 'svg': self.import_svg, - 'dxf': self.import_dxf, + 'project': self.f_handlers.open_project, + 'svg': self.f_handlers.import_svg, + 'dxf': self.f_handlers.import_dxf, 'image': image_opener, 'pdf': lambda fname: self.worker_task.emit({'fcn': self.pdf_tool.open_pdf, 'params': [fname]}) } @@ -10254,96 +7830,6 @@ class App(QtCore.QObject): for obj in objects: obj.on_generatecnc_button_click() - def save_project(self, filename, quit_action=False, silent=False, from_tcl=False): - """ - Saves the current project to the specified file. - - :param filename: Name of the file in which to save. - :type filename: str - :param quit_action: if the project saving will be followed by an app quit; boolean - :param silent: if True will not display status messages - :param from_tcl True is run from Tcl Shell - :return: None - """ - self.log.debug("save_project()") - self.save_in_progress = True - - with self.proc_container.new(_("Saving FlatCAM Project")): - # Capture the latest changes - # Current object - try: - current_object = self.collection.get_active() - if current_object: - current_object.read_form() - except Exception as e: - self.log.debug("save_project() --> There was no active object. Skipping read_form. %s" % str(e)) - pass - - # Serialize the whole project - d = { - "objs": [obj.to_dict() for obj in self.collection.get_list()], - "options": self.options, - "version": self.version - } - - if self.defaults["global_save_compressed"] is True: - with lzma.open(filename, "w", preset=int(self.defaults['global_compression_level'])) as f: - g = json.dumps(d, default=to_dict, indent=2, sort_keys=True).encode('utf-8') - # # Write - f.write(g) - self.inform.emit('[success] %s: %s' % (_("Project saved to"), filename)) - else: - # Open file - try: - f = open(filename, 'w') - except IOError: - App.log.error("Failed to open file for saving: %s", filename) - self.inform.emit('[ERROR_NOTCL] %s' % _("The object is used by another application.")) - return - - # Write - json.dump(d, f, default=to_dict, indent=2, sort_keys=True) - f.close() - - # verification of the saved project - # Open and parse - try: - saved_f = open(filename, 'r') - except IOError: - if silent is False: - self.inform.emit('[ERROR_NOTCL] %s: %s %s' % - (_("Failed to verify project file"), filename, _("Retry to save it."))) - return - - try: - saved_d = json.load(saved_f, object_hook=dict2obj) - except Exception: - if silent is False: - self.inform.emit('[ERROR_NOTCL] %s: %s %s' % - (_("Failed to parse saved project file"), filename, _("Retry to save it."))) - f.close() - return - saved_f.close() - - if silent is False: - if 'version' in saved_d: - self.inform.emit('[success] %s: %s' % (_("Project saved to"), filename)) - else: - self.inform.emit('[ERROR_NOTCL] %s: %s %s' % - (_("Failed to parse saved project file"), filename, _("Retry to save it."))) - - tb_settings = QSettings("Open Source", "FlatCAM") - lock_state = self.ui.lock_action.isChecked() - tb_settings.setValue('toolbar_lock', lock_state) - - # This will write the setting to the platform specific storage. - del tb_settings - - # if quit: - # t = threading.Thread(target=lambda: self.check_project_file_size(1, filename=filename)) - # t.start() - self.start_delayed_quit(delay=500, filename=filename, should_quit=quit_action) - def start_delayed_quit(self, delay, filename, should_quit=None): """ @@ -10520,4 +8006,2490 @@ class ArgsThread(QtCore.QObject): self.thread_exit = True self.listener.close() + +class MenuFileHandlers(QtCore.QObject): + + def __init__(self, app): + super().__init__() + + self.app = app + self.inform = self.app.inform + self.splash = self.app.splash + self.worker_task = self.app.worker_task + self.defaults = self.app.defaults + + def on_fileopengerber(self, signal, name=None): + """ + File menu callback for opening a Gerber. + + :param signal: required because clicking the entry will generate a checked signal which needs a container + :param name: + :return: None + """ + + self.app.log.debug("on_fileopengerber()") + + _filter_ = "Gerber Files (*.gbr *.ger *.gtl *.gbl *.gts *.gbs *.gtp *.gbp *.gto *.gbo *.gm1 *.gml *.gm3 " \ + "*.gko *.cmp *.sol *.stc *.sts *.plc *.pls *.crc *.crs *.tsm *.bsm *.ly2 *.ly15 *.dim *.mil *.grb " \ + "*.top *.bot *.smt *.smb *.sst *.ssb *.spt *.spb *.pho *.gdo *.art *.gbd *.outline);;" \ + "Protel Files (*.gtl *.gbl *.gts *.gbs *.gto *.gbo *.gtp *.gbp *.gml *.gm1 *.gm3 *.gko " \ + "*.outline);;" \ + "Eagle Files (*.cmp *.sol *.stc *.sts *.plc *.pls *.crc *.crs *.tsm *.bsm *.ly2 *.ly15 *.dim " \ + "*.mil);;" \ + "OrCAD Files (*.top *.bot *.smt *.smb *.sst *.ssb *.spt *.spb);;" \ + "Allegro Files (*.art);;" \ + "Mentor Files (*.pho *.gdo);;" \ + "All Files (*.*)" + + if name is None: + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Gerber"), + directory=self.app.get_last_folder(), + filter=_filter_, + initialFilter=self.app.last_op_gerber_filter) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Gerber"), filter=_filter_) + + filenames = [str(filename) for filename in filenames] + self.app.last_op_gerber_filter = _f + else: + filenames = [name] + self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" + "Canvas initialization finished in"), + '%.2f' % self.app.used_time, + _("Opening Gerber file.")), + alignment=Qt.AlignBottom | Qt.AlignLeft, + color=QtGui.QColor("gray")) + + if len(filenames) == 0: + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + for filename in filenames: + if filename != '': + self.worker_task.emit({'fcn': self.open_gerber, 'params': [filename]}) + + def on_fileopenexcellon(self, signal, name=None): + """ + File menu callback for opening an Excellon file. + + :param signal: required because clicking the entry will generate a checked signal which needs a container + :param name: + :return: None + """ + + self.app.log.debug("on_fileopenexcellon()") + + _filter_ = "Excellon Files (*.drl *.txt *.xln *.drd *.tap *.exc *.ncd);;" \ + "All Files (*.*)" + if name is None: + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Excellon"), + directory=self.app.get_last_folder(), + filter=_filter_, + initialFilter=self.app.last_op_excellon_filter) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open Excellon"), filter=_filter_) + filenames = [str(filename) for filename in filenames] + self.app.last_op_excellon_filter = _f + else: + filenames = [str(name)] + self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" + "Canvas initialization finished in"), + '%.2f' % self.app.used_time, + _("Opening Excellon file.")), + alignment=Qt.AlignBottom | Qt.AlignLeft, + color=QtGui.QColor("gray")) + + if len(filenames) == 0: + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + for filename in filenames: + if filename != '': + self.worker_task.emit({'fcn': self.open_excellon, 'params': [filename]}) + + def on_fileopengcode(self, signal, name=None): + """ + + File menu call back for opening gcode. + + :param signal: required because clicking the entry will generate a checked signal which needs a container + :param name: + :return: + """ + + self.app.log.debug("on_fileopengcode()") + + # https://bobcadsupport.com/helpdesk/index.php?/Knowledgebase/Article/View/13/5/known-g-code-file-extensions + _filter_ = "G-Code Files (*.txt *.nc *.ncc *.tap *.gcode *.cnc *.ecs *.fnc *.dnc *.ncg *.gc *.fan *.fgc" \ + " *.din *.xpi *.hnc *.h *.i *.ncp *.min *.gcd *.rol *.mpr *.ply *.out *.eia *.sbp *.mpf);;" \ + "All Files (*.*)" + + if name is None: + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open G-Code"), + directory=self.app.get_last_folder(), + filter=_filter_, + initialFilter=self.app.last_op_gcode_filter) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open G-Code"), filter=_filter_) + + filenames = [str(filename) for filename in filenames] + self.app.last_op_gcode_filter = _f + else: + filenames = [name] + self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" + "Canvas initialization finished in"), + '%.2f' % self.app.used_time, + _("Opening G-Code file.")), + alignment=Qt.AlignBottom | Qt.AlignLeft, + color=QtGui.QColor("gray")) + + if len(filenames) == 0: + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + for filename in filenames: + if filename != '': + self.worker_task.emit({'fcn': self.open_gcode, 'params': [filename, None, True]}) + + def on_file_openproject(self, signal): + """ + File menu callback for opening a project. + + :param signal: required because clicking the entry will generate a checked signal which needs a container + :return: None + """ + + self.app.log.debug("on_file_openproject()") + + _filter_ = "FlatCAM Project (*.FlatPrj);;All Files (*.*)" + try: + filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open Project"), + directory=self.app.get_last_folder(), filter=_filter_) + except TypeError: + filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open Project"), filter=_filter_) + + filename = str(filename) + + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + # self.worker_task.emit({'fcn': self.open_project, + # 'params': [filename]}) + # The above was failing because open_project() is not + # thread safe. The new_project() + self.open_project(filename) + + def on_fileopenhpgl2(self, signal, name=None): + """ + File menu callback for opening a HPGL2. + + :param signal: required because clicking the entry will generate a checked signal which needs a container + :param name: + :return: None + """ + self.app.log.debug("on_fileopenhpgl2()") + + _filter_ = "HPGL2 Files (*.plt);;" \ + "All Files (*.*)" + + if name is None: + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open HPGL2"), + directory=self.app.get_last_folder(), + filter=_filter_) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open HPGL2"), filter=_filter_) + + filenames = [str(filename) for filename in filenames] + else: + filenames = [name] + self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" + "Canvas initialization finished in"), + '%.2f' % self.app.used_time, + _("Opening HPGL2 file.")), + alignment=Qt.AlignBottom | Qt.AlignLeft, + color=QtGui.QColor("gray")) + + if len(filenames) == 0: + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + for filename in filenames: + if filename != '': + self.worker_task.emit({'fcn': self.open_hpgl2, 'params': [filename]}) + + def on_file_openconfig(self, signal): + """ + File menu callback for opening a config file. + + :param signal: required because clicking the entry will generate a checked signal which needs a container + :return: None + """ + + self.app.log.debug("on_file_openconfig()") + + _filter_ = "FlatCAM Config (*.FlatConfig);;FlatCAM Config (*.json);;All Files (*.*)" + try: + filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open Configuration File"), + directory=self.app.data_path, filter=_filter_) + except TypeError: + filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open Configuration File"), + filter=_filter_) + + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + self.open_config_file(filename) + + def on_file_exportsvg(self): + """ + Callback for menu item File->Export SVG. + + :return: None + """ + self.app.log.debug("on_file_exportsvg()") + + obj = self.app.collection.get_active() + if obj is None: + 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) + msgbox.exec_() + return + + # Check for more compatible types and add as required + if (not isinstance(obj, GeometryObject) + and not isinstance(obj, GerberObject) + and not isinstance(obj, CNCJobObject) + and not isinstance(obj, ExcellonObject)): + 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) + msgbox.exec_() + return + + name = obj.options["name"] + + _filter = "SVG File (*.svg);;All Files (*.*)" + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption=_("Export SVG"), + directory=self.app.get_last_save_folder() + '/' + str(name) + '_svg', + ext_filter=_filter) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export SVG"), ext_filter=_filter) + + filename = str(filename) + + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + else: + self.export_svg(name, filename) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("SVG", filename) + self.app.file_saved.emit("SVG", filename) + + def on_file_exportpng(self): + + self.app.log.debug("on_file_exportpng()") + + date = str(datetime.today()).rpartition('.')[0] + date = ''.join(c for c in date if c not in ':-') + date = self.app.date.replace(' ', '_') + + data = None + if self.app.is_legacy is False: + image = _screenshot(alpha=False) + 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')) + return + + filter_ = "PNG File (*.png);;All Files (*.*)" + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption=_("Export PNG Image"), + directory=self.app.get_last_save_folder() + '/png_' + date, + ext_filter=filter_) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export PNG Image"), ext_filter=filter_) + + filename = str(filename) + + if filename == "": + self.inform.emit(_("Cancelled.")) + return + else: + if self.app.is_legacy is False: + write_png(filename, data) + else: + self.app.plotcanvas.figure.savefig(filename) + + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("png", filename) + self.app.file_saved.emit("png", filename) + + def on_file_savegerber(self): + """ + Callback for menu item in Project context menu. + + :return: None + """ + self.app.log.debug("on_file_savegerber()") + + obj = self.app.collection.get_active() + if obj is None: + self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) + return + + # Check for more compatible types and add as required + if not isinstance(obj, GerberObject): + self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Gerber objects can be saved as Gerber files...")) + return + + name = self.app.collection.get_active().options["name"] + + _filter = "Gerber File (*.GBR);;Gerber File (*.GRB);;All Files (*.*)" + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption="Save Gerber source file", + directory=self.app.get_last_save_folder() + '/' + name, + ext_filter=_filter) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Gerber source file"), ext_filter=_filter) + + filename = str(filename) + + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + else: + self.save_source_file(name, filename) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("Gerber", filename) + self.app.file_saved.emit("Gerber", filename) + + def on_file_savescript(self): + """ + Callback for menu item in Project context menu. + + :return: None + """ + self.app.log.debug("on_file_savescript()") + + obj = self.app.collection.get_active() + if obj is None: + self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) + return + + # Check for more compatible types and add as required + if not isinstance(obj, ScriptObject): + self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Script objects can be saved as TCL Script files...")) + return + + name = self.app.collection.get_active().options["name"] + + _filter = "FlatCAM Scripts (*.FlatScript);;All Files (*.*)" + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption="Save Script source file", + directory=self.app.get_last_save_folder() + '/' + name, + ext_filter=_filter) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Script source file"), ext_filter=_filter) + + filename = str(filename) + + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + else: + self.save_source_file(name, filename) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("Script", filename) + self.app.file_saved.emit("Script", filename) + + def on_file_savedocument(self): + """ + Callback for menu item in Project context menu. + + :return: None + """ + self.app.log.debug("on_file_savedocument()") + + obj = self.app.collection.get_active() + if obj is None: + self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) + return + + # Check for more compatible types and add as required + if not isinstance(obj, ScriptObject): + self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Document objects can be saved as Document files...")) + return + + name = self.app.collection.get_active().options["name"] + + _filter = "FlatCAM Documents (*.FlatDoc);;All Files (*.*)" + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption="Save Document source file", + directory=self.app.get_last_save_folder() + '/' + name, + ext_filter=_filter) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Document source file"), + ext_filter=_filter) + + filename = str(filename) + + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + else: + self.save_source_file(name, filename) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("Document", filename) + self.app.file_saved.emit("Document", filename) + + def on_file_saveexcellon(self): + """ + Callback for menu item in project context menu. + + :return: None + """ + self.app.log.debug("on_file_saveexcellon()") + + obj = self.app.collection.get_active() + if obj is None: + self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) + return + + # Check for more compatible types and add as required + if not isinstance(obj, ExcellonObject): + self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Excellon objects can be saved as Excellon files...")) + return + + name = self.app.collection.get_active().options["name"] + + _filter = "Excellon File (*.DRL);;Excellon File (*.TXT);;All Files (*.*)" + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption=_("Save Excellon source file"), + directory=self.app.get_last_save_folder() + '/' + name, + ext_filter=_filter) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption=_("Save Excellon source file"), ext_filter=_filter) + + filename = str(filename) + + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + else: + self.save_source_file(name, filename) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("Excellon", filename) + self.app.file_saved.emit("Excellon", filename) + + def on_file_exportexcellon(self): + """ + Callback for menu item File->Export->Excellon. + + :return: None + """ + self.app.log.debug("on_file_exportexcellon()") + + obj = self.app.collection.get_active() + if obj is None: + self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) + return + + # Check for more compatible types and add as required + if not isinstance(obj, ExcellonObject): + self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Excellon objects can be saved as Excellon files...")) + return + + name = self.app.collection.get_active().options["name"] + + _filter = self.defaults["excellon_save_filters"] + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption=_("Export Excellon"), + directory=self.app.get_last_save_folder() + '/' + name, + ext_filter=_filter) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Excellon"), ext_filter=_filter) + + filename = str(filename) + + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + else: + used_extension = filename.rpartition('.')[2] + obj.update_filters(last_ext=used_extension, filter_string='excellon_save_filters') + + self.export_excellon(name, filename) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("Excellon", filename) + self.app.file_saved.emit("Excellon", filename) + + def on_file_exportgerber(self): + """ + Callback for menu item File->Export->Gerber. + + :return: None + """ + App.log.debug("on_file_exportgerber()") + + obj = self.app.collection.get_active() + if obj is None: + self.inform.emit('[WARNING_NOTCL] %s' % _("No object selected.")) + return + + # Check for more compatible types and add as required + if not isinstance(obj, GerberObject): + self.inform.emit('[ERROR_NOTCL] %s' % _("Failed. Only Gerber objects can be saved as Gerber files...")) + return + + name = self.app.collection.get_active().options["name"] + + _filter_ = self.defaults['gerber_save_filters'] + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption=_("Export Gerber"), + directory=self.app.get_last_save_folder() + '/' + name, + ext_filter=_filter_) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export Gerber"), ext_filter=_filter_) + + filename = str(filename) + + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + else: + used_extension = filename.rpartition('.')[2] + obj.update_filters(last_ext=used_extension, filter_string='gerber_save_filters') + + self.export_gerber(name, filename) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("Gerber", filename) + self.app.file_saved.emit("Gerber", filename) + + def on_file_exportdxf(self): + """ + Callback for menu item File->Export DXF. + + :return: None + """ + App.log.debug("on_file_exportdxf()") + + obj = self.app.collection.get_active() + if obj is None: + 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) + msgbox.exec_() + return + + # Check for more compatible types and add as required + 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) + msgbox.exec_() + + return + + name = self.app.collection.get_active().options["name"] + + _filter_ = "DXF File .dxf (*.DXF);;All Files (*.*)" + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption=_("Export DXF"), + directory=self.app.get_last_save_folder() + '/' + name, + ext_filter=_filter_) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Export DXF"), ext_filter=_filter_) + + filename = str(filename) + + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + else: + self.export_dxf(name, filename) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("DXF", filename) + self.app.file_saved.emit("DXF", filename) + + def on_file_importsvg(self, type_of_obj): + """ + Callback for menu item File->Import SVG. + :param type_of_obj: to import the SVG as Geometry or as Gerber + :type type_of_obj: str + :return: None + """ + self.app.log.debug("on_file_importsvg()") + + _filter_ = "SVG File .svg (*.svg);;All Files (*.*)" + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Import SVG"), + directory=self.app.get_last_folder(), + filter=_filter_) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Import SVG"), + filter=_filter_) + + if type_of_obj != "geometry" and type_of_obj != "gerber": + type_of_obj = "geometry" + + filenames = [str(filename) for filename in filenames] + + if len(filenames) == 0: + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + for filename in filenames: + if filename != '': + self.worker_task.emit({'fcn': self.import_svg, 'params': [filename, type_of_obj]}) + + def on_file_importdxf(self, type_of_obj): + """ + Callback for menu item File->Import DXF. + :param type_of_obj: to import the DXF as Geometry or as Gerber + :type type_of_obj: str + :return: None + """ + self.app.log.debug("on_file_importdxf()") + + _filter_ = "DXF File .dxf (*.DXF);;All Files (*.*)" + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Import DXF"), + directory=self.app.get_last_folder(), + filter=_filter_) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Import DXF"), + filter=_filter_) + + if type_of_obj != "geometry" and type_of_obj != "gerber": + type_of_obj = "geometry" + + filenames = [str(filename) for filename in filenames] + + if len(filenames) == 0: + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + for filename in filenames: + if filename != '': + self.worker_task.emit({'fcn': self.import_dxf, 'params': [filename, type_of_obj]}) + + def on_file_new_click(self): + """ + Callback for menu item File -> New. + Executed on clicking the Menu -> File -> New Project + + :return: + """ + + if self.app.collection.get_list() and self.app.should_we_save: + msgbox = QtWidgets.QMessageBox() + # msgbox.setText("Save changes ...") + msgbox.setText(_("There are files/objects opened in FlatCAM.\n" + "Creating a New project will delete them.\n" + "Do you want to Save the project?")) + msgbox.setWindowTitle(_("Save changes")) + msgbox.setWindowIcon(QtGui.QIcon(self.app.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) + + msgbox.setDefaultButton(bt_yes) + msgbox.exec_() + response = msgbox.clickedButton() + + if response == bt_yes: + self.on_file_saveprojectas() + elif response == bt_cancel: + return + elif response == bt_no: + self.on_file_new() + else: + self.on_file_new() + self.inform.emit('[success] %s...' % _("New Project created")) + + def on_file_new(self, cli=None): + """ + Returns the application to its startup state. This method is thread-safe. + + :param cli: Boolean. If True this method was run from command line + :return: None + """ + + self.defaults.report_usage("on_file_new") + + # Remove everything from memory + self.app.log.debug("on_file_new()") + + # close any editor that might be open + if self.app.call_source != 'app': + self.app.editor2object(cleanup=True) + # ## EDITOR section + self.app.geo_editor = AppGeoEditor(self.app) + self.app.exc_editor = AppExcEditor(self.app) + self.app.grb_editor = AppGerberEditor(self.app) + + # Clear pool + self.app.clear_pool() + + for obj in self.app.collection.get_list(): + # delete shapes left drawn from mark shape_collections, if any + if isinstance(obj, GerberObject): + try: + obj.mark_shapes_storage.clear() + obj.mark_shapes.clear(update=True) + obj.mark_shapes.enabled = False + except AttributeError: + pass + + # also delete annotation shapes, if any + elif isinstance(obj, CNCJobObject): + try: + obj.text_col.enabled = False + del obj.text_col + obj.annotation.clear(update=True) + del obj.annotation + except AttributeError: + pass + + # delete the exclusion areas + self.app.exc_areas.clear_shapes() + + # tcl needs to be reinitialized, otherwise old shell variables etc remains + self.app.shell.init_tcl() + + # delete any selection shape on canvas + self.app.delete_selection_shape() + + # delete all FlatCAM objects + self.app.collection.delete_all() + + # add in Selected tab an initial text that describe the flow of work in FlatCAm + self.app.setup_default_properties_tab() + + # Clear project filename + self.app.project_filename = None + + # Load the application defaults + self.defaults.load(filename=os.path.join(self.app.data_path, 'current_defaults.FlatConfig'), inform=self.inform) + + # Re-fresh project options + self.app.on_options_app2project() + + # Init FlatCAMTools + self.app.init_tools() + + # 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 + # and so on. Therefore the deletion should be done in reverse + wdg_count = self.app.ui.plot_tab_area.tabBar.count() - 1 + for index in range(wdg_count, -1, -1): + try: + self.app.ui.plot_tab_area.closeTab(index) + except Exception as e: + log.debug("App.on_file_new() --> %s" % str(e)) + + # # And then add again the Plot Area + self.app.ui.plot_tab_area.insertTab(0, self.app.ui.plot_tab, _("Plot Area")) + self.app.ui.plot_tab_area.protectTab(0) + + # take the focus of the Notebook on Project Tab. + self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) + + self.app.set_ui_title(name=_("New Project - Not saved")) + + def on_filenewscript(self, silent=False): + """ + Will create a new script file and open it in the Code Editor + + :param silent: if True will not display status messages + :return: None + """ + if silent is False: + self.inform.emit('[success] %s' % _("New TCL script file created in Code Editor.")) + + # hide coordinates toolbars in the infobar while in DB + self.app.ui.coords_toolbar.hide() + self.app.ui.delta_coords_toolbar.hide() + + self.app.app_obj.new_script_object() + + def on_fileopenscript(self, name=None, silent=False): + """ + Will open a Tcl script file into the Code Editor + + :param silent: if True will not display status messages + :param name: name of a Tcl script file to open + :return: None + """ + + self.app.log.debug("on_fileopenscript()") + + _filter_ = "TCL script .FlatScript (*.FlatScript);;TCL script .tcl (*.TCL);;TCL script .txt (*.TXT);;" \ + "All Files (*.*)" + + if name: + filenames = [name] + else: + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames( + caption=_("Open TCL script"), directory=self.app.get_last_folder(), filter=_filter_) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open TCL script"), filter=_filter_) + + if len(filenames) == 0: + if silent is False: + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + for filename in filenames: + if filename != '': + self.worker_task.emit({'fcn': self.open_script, 'params': [filename]}) + + def on_fileopenscript_example(self, name=None, silent=False): + """ + Will open a Tcl script file into the Code Editor + + :param silent: if True will not display status messages + :param name: name of a Tcl script file to open + :return: + """ + + self.app.log.debug("on_fileopenscript_example()") + + _filter_ = "TCL script .FlatScript (*.FlatScript);;TCL script .tcl (*.TCL);;TCL script .txt (*.TXT);;" \ + "All Files (*.*)" + + # test if the app was frozen and choose the path for the configuration file + if getattr(sys, "frozen", False) is True: + example_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + '\\assets\\examples' + else: + example_path = os.path.dirname(os.path.realpath(__file__)) + '\\assets\\examples' + + if name: + filenames = [name] + else: + try: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames( + caption=_("Open TCL script"), directory=example_path, filter=_filter_) + except TypeError: + filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open TCL script"), filter=_filter_) + + if len(filenames) == 0: + if silent is False: + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + for filename in filenames: + if filename != '': + self.worker_task.emit({'fcn': self.open_script, 'params': [filename]}) + + def on_filerunscript(self, name=None, silent=False): + """ + File menu callback for loading and running a TCL script. + + :param silent: if True will not display status messages + :param name: name of a Tcl script file to be run by FlatCAM + :return: None + """ + + self.app.log.debug("on_file_runscript()") + + if name: + filename = name + if self.app.cmd_line_headless != 1: + self.splash.showMessage('%s: %ssec\n%s' % + (_("Canvas initialization started.\n" + "Canvas initialization finished in"), '%.2f' % self.app.used_time, + _("Executing ScriptObject file.") + ), + alignment=Qt.AlignBottom | Qt.AlignLeft, + color=QtGui.QColor("gray")) + else: + _filter_ = "TCL script .FlatScript (*.FlatScript);;TCL script .tcl (*.TCL);;TCL script .txt (*.TXT);;" \ + "All Files (*.*)" + try: + filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Run TCL script"), + directory=self.app.get_last_folder(), + filter=_filter_) + except TypeError: + filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Run TCL script"), filter=_filter_) + + # The Qt methods above will return a QString which can cause problems later. + # So far json.dump() will fail to serialize it. + filename = str(filename) + + if filename == "": + if silent is False: + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + else: + if self.app.cmd_line_headless != 1: + if self.app.ui.shell_dock.isHidden(): + self.app.ui.shell_dock.show() + + try: + with open(filename, "r") as tcl_script: + cmd_line_shellfile_content = tcl_script.read() + if self.app.cmd_line_headless != 1: + self.app.shell.exec_command(cmd_line_shellfile_content) + else: + self.app.shell.exec_command(cmd_line_shellfile_content, no_echo=True) + + if silent is False: + self.inform.emit('[success] %s' % _("TCL script file opened in Code Editor and executed.")) + except Exception as e: + self.app.debug("App.on_filerunscript() -> %s" % str(e)) + sys.exit(2) + + def on_file_saveproject(self, silent=False): + """ + Callback for menu item File->Save Project. Saves the project to + ``self.project_filename`` or calls ``self.on_file_saveprojectas()`` + if set to None. The project is saved by calling ``self.save_project()``. + + :param silent: if True will not display status messages + :return: None + """ + + if self.app.project_filename is None: + self.on_file_saveprojectas() + else: + self.worker_task.emit({'fcn': self.save_project, 'params': [self.app.project_filename, silent]}) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("project", self.project_filename) + self.app.file_saved.emit("project", self.project_filename) + + self.app.set_ui_title(name=self.app.project_filename) + + self.app.should_we_save = False + + def on_file_saveprojectas(self, make_copy=False, use_thread=True, quit_action=False): + """ + Callback for menu item File->Save Project As... Opens a file + chooser and saves the project to the given file via + ``self.save_project()``. + + :param make_copy if to be create a copy of the project; boolean + :param use_thread: if to be run in a separate thread; boolean + :param quit_action: if to be followed by quiting the application; boolean + :return: None + """ + + date = str(datetime.today()).rpartition('.')[0] + date = ''.join(c for c in date if c not in ':-') + date = self.date.replace(' ', '_') + + filter_ = "FlatCAM Project .FlatPrj (*.FlatPrj);; All Files (*.*)" + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption=_("Save Project As ..."), + directory='{l_save}/{proj}_{date}'.format(l_save=str(self.app.get_last_save_folder()), date=date, + proj=_("Project")), + ext_filter=filter_ + ) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Project As ..."), ext_filter=filter_) + + filename = str(filename) + + if filename == '': + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + + if use_thread is True: + self.worker_task.emit({'fcn': self.save_project, 'params': [filename, quit_action]}) + else: + self.save_project(filename, quit_action) + + # self.save_project(filename) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("project", filename) + self.app.file_saved.emit("project", filename) + + if not make_copy: + self.app.project_filename = filename + + self.app.set_ui_title(name=self.app.project_filename) + self.app.should_we_save = False + + def on_file_save_objects_pdf(self, use_thread=True): + date = str(datetime.today()).rpartition('.')[0] + date = ''.join(c for c in date if c not in ':-') + date = date.replace(' ', '_') + + try: + obj_selection = self.app.collection.get_selected() + if len(obj_selection) == 1: + obj_name = str(obj_selection[0].options['name']) + else: + obj_name = _("FlatCAM objects print") + except AttributeError as err: + self.app.log.debug("App.on_file_save_object_pdf() --> %s" % str(err)) + self.inform.emit('[ERROR_NOTCL] %s' % _("No object selected.")) + return + + if not obj_selection: + self.inform.emit('[ERROR_NOTCL] %s' % _("No object selected.")) + return + + filter_ = "PDF File .pdf (*.PDF);; All Files (*.*)" + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption=_("Save Object as PDF ..."), + directory='{l_save}/{obj_name}_{date}'.format(l_save=str(self.app.get_last_save_folder()), + obj_name=obj_name, + date=date), + ext_filter=filter_ + ) + except TypeError: + filename, _f = FCFileSaveDialog.get_saved_filename(caption=_("Save Object as PDF ..."), ext_filter=filter_) + + filename = str(filename) + + if filename == '': + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + + if use_thread is True: + self.app.proc_container.new(_("Printing PDF ... Please wait.")) + self.worker_task.emit({'fcn': self.save_pdf, 'params': [filename, obj_selection]}) + else: + self.save_pdf(filename, obj_selection) + + # self.save_project(filename) + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("pdf", filename) + self.app.file_saved.emit("pdf", filename) + + def save_pdf(self, file_name, obj_selection): + + p_size = self.defaults['global_workspaceT'] + orientation = self.defaults['global_workspace_orientation'] + color = 'black' + transparency_level = 1.0 + + self.app.pagesize = {} + self.app.pagesize.update( + { + 'Bounds': None, + 'A0': (841 * mm, 1189 * mm), + 'A1': (594 * mm, 841 * mm), + 'A2': (420 * mm, 594 * mm), + 'A3': (297 * mm, 420 * mm), + 'A4': (210 * mm, 297 * mm), + 'A5': (148 * mm, 210 * mm), + 'A6': (105 * mm, 148 * mm), + 'A7': (74 * mm, 105 * mm), + 'A8': (52 * mm, 74 * mm), + 'A9': (37 * mm, 52 * mm), + 'A10': (26 * mm, 37 * mm), + + 'B0': (1000 * mm, 1414 * mm), + 'B1': (707 * mm, 1000 * mm), + 'B2': (500 * mm, 707 * mm), + 'B3': (353 * mm, 500 * mm), + 'B4': (250 * mm, 353 * mm), + 'B5': (176 * mm, 250 * mm), + 'B6': (125 * mm, 176 * mm), + 'B7': (88 * mm, 125 * mm), + 'B8': (62 * mm, 88 * mm), + 'B9': (44 * mm, 62 * mm), + 'B10': (31 * mm, 44 * mm), + + 'C0': (917 * mm, 1297 * mm), + 'C1': (648 * mm, 917 * mm), + 'C2': (458 * mm, 648 * mm), + 'C3': (324 * mm, 458 * mm), + 'C4': (229 * mm, 324 * mm), + 'C5': (162 * mm, 229 * mm), + 'C6': (114 * mm, 162 * mm), + 'C7': (81 * mm, 114 * mm), + 'C8': (57 * mm, 81 * mm), + 'C9': (40 * mm, 57 * mm), + 'C10': (28 * mm, 40 * mm), + + # American paper sizes + 'LETTER': (8.5 * inch, 11 * inch), + 'LEGAL': (8.5 * inch, 14 * inch), + 'ELEVENSEVENTEEN': (11 * inch, 17 * inch), + + # From https://en.wikipedia.org/wiki/Paper_size + 'JUNIOR_LEGAL': (5 * inch, 8 * inch), + 'HALF_LETTER': (5.5 * inch, 8 * inch), + 'GOV_LETTER': (8 * inch, 10.5 * inch), + 'GOV_LEGAL': (8.5 * inch, 13 * inch), + 'LEDGER': (17 * inch, 11 * inch), + } + ) + + exported_svg = [] + for obj in obj_selection: + svg_obj = obj.export_svg(scale_stroke_factor=0.0, scale_factor_x=None, scale_factor_y=None, + skew_factor_x=None, skew_factor_y=None, mirror=None) + + if obj.kind.lower() == 'gerber': + # color = self.defaults["gerber_plot_fill"][:-2] + color = obj.fill_color[:-2] + elif obj.kind.lower() == 'excellon': + color = '#C40000' + elif obj.kind.lower() == 'geometry': + color = self.defaults["global_draw_color"] + + # Change the attributes of the exported SVG + # We don't need stroke-width + # We set opacity to maximum + # We set the colour to WHITE + root = ET.fromstring(svg_obj) + for child in root: + child.set('fill', str(color)) + child.set('opacity', str(transparency_level)) + child.set('stroke', str(color)) + + exported_svg.append(ET.tostring(root)) + + xmin = Inf + ymin = Inf + xmax = -Inf + ymax = -Inf + + for obj in obj_selection: + try: + gxmin, gymin, gxmax, gymax = obj.bounds() + xmin = min([xmin, gxmin]) + ymin = min([ymin, gymin]) + xmax = max([xmax, gxmax]) + ymax = max([ymax, gymax]) + except Exception as e: + self.app.log.warning( + "DEV WARNING: Tried to get bounds of empty geometry in App.save_pdf(). %s" % str(e)) + + # Determine bounding area for svg export + bounds = [xmin, ymin, xmax, ymax] + size = bounds[2] - bounds[0], bounds[3] - bounds[1] + + # This contain the measure units + uom = obj_selection[0].units.lower() + + # Define a boundary around SVG of about 1.0mm (~39mils) + if uom in "mm": + boundary = 1.0 + else: + boundary = 0.0393701 + + # Convert everything to strings for use in the xml doc + svgwidth = str(size[0] + (2 * boundary)) + svgheight = str(size[1] + (2 * boundary)) + minx = str(bounds[0] - boundary) + miny = str(bounds[1] + boundary + size[1]) + + # Add a SVG Header and footer to the svg output from shapely + # The transform flips the Y Axis so that everything renders + # properly within svg apps such as inkscape + svg_header = ' PDF output --> %s" % str(e)) + return 'fail' + + self.inform.emit('[success] %s: %s' % (_("PDF file saved to"), file_name)) + + def export_svg(self, obj_name, filename, scale_stroke_factor=0.00): + """ + Exports a Geometry Object to an SVG file. + + :param obj_name: the name of the FlatCAM object to be saved as SVG + :param filename: Path to the SVG file to save to. + :param scale_stroke_factor: factor by which to change/scale the thickness of the features + :return: + """ + if filename is None: + filename = self.defaults["global_last_save_folder"] if self.defaults["global_last_save_folder"] \ + is not None else self.defaults["global_last_folder"] + + self.app.log.debug("export_svg()") + + try: + obj = self.app.collection.get_by_name(str(obj_name)) + except Exception: + return 'fail' + + with self.app.proc_container.new(_("Exporting SVG")) as proc: + exported_svg = obj.export_svg(scale_stroke_factor=scale_stroke_factor) + + # Determine bounding area for svg export + bounds = obj.bounds() + size = obj.size() + + # Convert everything to strings for use in the xml doc + svgwidth = str(size[0]) + svgheight = str(size[1]) + minx = str(bounds[0]) + miny = str(bounds[1] - size[1]) + uom = obj.units.lower() + + # Add a SVG Header and footer to the svg output from shapely + # The transform flips the Y Axis so that everything renders + # properly within svg apps such as inkscape + svg_header = '' + svg_header += '' + svg_footer = ' ' + svg_elem = svg_header + exported_svg + svg_footer + + # Parse the xml through a xml parser just to add line feeds + # and to make it look more pretty for the output + svgcode = parse_xml_string(svg_elem) + svgcode = svgcode.toprettyxml() + + try: + with open(filename, 'w') as fp: + fp.write(svgcode) + except PermissionError: + self.inform.emit('[WARNING] %s' % + _("Permission denied, saving not possible.\n" + "Most likely another app is holding the file open and not accessible.")) + return 'fail' + + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("SVG", filename) + self.app.file_saved.emit("SVG", filename) + self.inform.emit('[success] %s: %s' % (_("SVG file exported to"), filename)) + + def on_import_preferences(self): + """ + Loads the application default settings from a saved file into + ``self.defaults`` dictionary. + + :return: None + """ + + self.app.log.debug("App.on_import_preferences()") + + # Show file chooser + filter_ = "Config File (*.FlatConfig);;All Files (*.*)" + try: + filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Import FlatCAM Preferences"), + directory=self.app.data_path, + filter=filter_) + except TypeError: + filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Import FlatCAM Preferences"), + filter=filter_) + filename = str(filename) + if filename == "": + self.inform.emit('[WARNING_NOTCL] %s' % _("Cancelled.")) + return + + # Load in the defaults from the chosen file + self.defaults.load(filename=filename, inform=self.inform) + + self.app.preferencesUiManager.on_preferences_edited() + self.inform.emit('[success] %s: %s' % (_("Imported Defaults from"), filename)) + + def on_export_preferences(self): + """ + Save the defaults dictionary to a file. + + :return: None + """ + self.app.log.debug("on_export_preferences()") + + # defaults_file_content = None + + # Show file chooser + date = str(datetime.today()).rpartition('.')[0] + date = ''.join(c for c in date if c not in ':-') + date = date.replace(' ', '_') + filter__ = "Config File .FlatConfig (*.FlatConfig);;All Files (*.*)" + try: + filename, _f = FCFileSaveDialog.get_saved_filename( + caption=_("Export FlatCAM Preferences"), + directory=self.app.data_path + '/preferences_' + date, + ext_filter=filter__ + ) + except TypeError: + 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.")) + return 'fail' + + # Update options + self.app.preferencesUiManager.defaults_read_form() + self.defaults.propagate_defaults() + + # Save update options + try: + self.defaults.write(filename=filename) + except Exception: + self.inform.emit('[ERROR_NOTCL] %s %s' % (_("Failed to write defaults to file."), str(filename))) + return + + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("preferences", filename) + self.app.file_saved.emit("preferences", filename) + self.inform.emit('[success] %s: %s' % (_("Exported preferences to"), filename)) + + def export_excellon(self, obj_name, filename, local_use=None, use_thread=True): + """ + Exports a Excellon Object to an Excellon file. + + :param obj_name: the name of the FlatCAM object to be saved as Excellon + :param filename: Path to the Excellon file to save to. + :param local_use: + :param use_thread: if to be run in a separate thread + :return: + """ + + if filename is None: + if self.defaults["global_last_save_folder"]: + filename = self.defaults["global_last_save_folder"] + '/' + 'exported_excellon' + else: + filename = self.defaults["global_last_folder"] + '/' + 'exported_excellon' + + self.app.log.debug("export_excellon()") + + format_exc = ';FILE_FORMAT=%d:%d\n' % (self.defaults["excellon_exp_integer"], + self.defaults["excellon_exp_decimals"] + ) + + if local_use is None: + try: + obj = self.app.collection.get_by_name(str(obj_name)) + except Exception: + return "Could not retrieve object: %s" % obj_name + else: + obj = local_use + + if not isinstance(obj, ExcellonObject): + self.inform.emit('[ERROR_NOTCL] %s' % + _("Failed. Only Excellon objects can be saved as Excellon files...")) + return + + # updated units + eunits = self.defaults["excellon_exp_units"] + ewhole = self.defaults["excellon_exp_integer"] + efract = self.defaults["excellon_exp_decimals"] + ezeros = self.defaults["excellon_exp_zeros"] + eformat = self.defaults["excellon_exp_format"] + slot_type = self.defaults["excellon_exp_slot_type"] + + fc_units = self.defaults['units'].upper() + if fc_units == 'MM': + factor = 1 if eunits == 'METRIC' else 0.03937 + else: + factor = 25.4 if eunits == 'METRIC' else 1 + + def make_excellon(): + try: + time_str = "{:%A, %d %B %Y at %H:%M}".format(datetime.now()) + + header = 'M48\n' + header += ';EXCELLON GENERATED BY FLATCAM v%s - www.flatcam.org - Version Date: %s\n' % \ + (str(self.app.version), str(self.app.version_date)) + + header += ';Filename: %s' % str(obj_name) + '\n' + header += ';Created on : %s' % time_str + '\n' + + if eformat == 'dec': + has_slots, excellon_code = obj.export_excellon(ewhole, efract, factor=factor, slot_type=slot_type) + header += eunits + '\n' + + for tool in obj.tools: + if eunits == 'METRIC': + header += "T{tool}F00S00C{:.{dec}f}\n".format(float(obj.tools[tool]['tooldia']) * factor, + tool=str(tool), + dec=2) + else: + header += "T{tool}F00S00C{:.{dec}f}\n".format(float(obj.tools[tool]['tooldia']) * factor, + tool=str(tool), + dec=4) + else: + if ezeros == 'LZ': + has_slots, excellon_code = obj.export_excellon(ewhole, efract, + form='ndec', e_zeros='LZ', factor=factor, + slot_type=slot_type) + header += '%s,%s\n' % (eunits, 'LZ') + header += format_exc + + for tool in obj.tools: + if eunits == 'METRIC': + header += "T{tool}F00S00C{:.{dec}f}\n".format( + float(obj.tools[tool]['tooldia']) * factor, + tool=str(tool), + dec=2) + else: + header += "T{tool}F00S00C{:.{dec}f}\n".format( + float(obj.tools[tool]['tooldia']) * factor, + tool=str(tool), + dec=4) + else: + has_slots, excellon_code = obj.export_excellon(ewhole, efract, + form='ndec', e_zeros='TZ', factor=factor, + slot_type=slot_type) + header += '%s,%s\n' % (eunits, 'TZ') + header += format_exc + + for tool in obj.tools: + if eunits == 'METRIC': + header += "T{tool}F00S00C{:.{dec}f}\n".format( + float(obj.tools[tool]['tooldia']) * factor, + tool=str(tool), + dec=2) + else: + header += "T{tool}F00S00C{:.{dec}f}\n".format( + float(obj.tools[tool]['tooldia']) * factor, + tool=str(tool), + dec=4) + header += '%\n' + footer = 'M30\n' + + exported_excellon = header + exported_excellon += excellon_code + exported_excellon += footer + + if local_use is None: + try: + with open(filename, 'w') as fp: + fp.write(exported_excellon) + except PermissionError: + self.inform.emit('[WARNING] %s' % + _("Permission denied, saving not possible.\n" + "Most likely another app is holding the file open and not accessible.")) + return 'fail' + + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("Excellon", filename) + self.app.file_saved.emit("Excellon", filename) + self.inform.emit('[success] %s: %s' % (_("Excellon file exported to"), filename)) + else: + return exported_excellon + except Exception as e: + self.app.log.debug("App.export_excellon.make_excellon() --> %s" % str(e)) + return 'fail' + + if use_thread is True: + + with self.app.proc_container.new(_("Exporting Excellon")) as proc: + + def job_thread_exc(app_obj): + ret = make_excellon() + if ret == 'fail': + self.inform.emit('[ERROR_NOTCL] %s' % _('Could not export Excellon file.')) + return + + self.worker_task.emit({'fcn': job_thread_exc, 'params': [self]}) + else: + eret = make_excellon() + if eret == 'fail': + self.inform.emit('[ERROR_NOTCL] %s' % _('Could not export Excellon file.')) + return 'fail' + if local_use is not None: + return eret + + def export_gerber(self, obj_name, filename, local_use=None, use_thread=True): + """ + Exports a Gerber Object to an Gerber file. + + :param obj_name: the name of the FlatCAM object to be saved as Gerber + :param filename: Path to the Gerber file to save to. + :param local_use: if the Gerber code is to be saved to a file (None) or used within FlatCAM. + When not None, the value will be the actual Gerber object for which to create + the Gerber code + :param use_thread: if to be run in a separate thread + :return: + """ + if filename is None: + filename = self.defaults["global_last_save_folder"] if self.defaults["global_last_save_folder"] \ + is not None else self.defaults["global_last_folder"] + + self.app.log.debug("export_gerber()") + + if local_use is None: + try: + obj = self.app.collection.get_by_name(str(obj_name)) + except Exception: + return 'fail' + else: + obj = local_use + + # updated units + gunits = self.defaults["gerber_exp_units"] + gwhole = self.defaults["gerber_exp_integer"] + gfract = self.defaults["gerber_exp_decimals"] + gzeros = self.defaults["gerber_exp_zeros"] + + fc_units = self.defaults['units'].upper() + if fc_units == 'MM': + factor = 1 if gunits == 'MM' else 0.03937 + else: + factor = 25.4 if gunits == 'MM' else 1 + + def make_gerber(): + try: + time_str = "{:%A, %d %B %Y at %H:%M}".format(datetime.now()) + + header = 'G04*\n' + header += 'G04 RS-274X GERBER GENERATED BY FLATCAM v%s - www.flatcam.org - Version Date: %s*\n' % \ + (str(self.app.version), str(self.app.version_date)) + + header += 'G04 Filename: %s*' % str(obj_name) + '\n' + header += 'G04 Created on : %s*' % time_str + '\n' + header += '%%FS%sAX%s%sY%s%s*%%\n' % (gzeros, gwhole, gfract, gwhole, gfract) + header += "%MO{units}*%\n".format(units=gunits) + + for apid in obj.apertures: + if obj.apertures[apid]['type'] == 'C': + header += "%ADD{apid}{type},{size}*%\n".format( + apid=str(apid), + type='C', + size=(factor * obj.apertures[apid]['size']) + ) + elif obj.apertures[apid]['type'] == 'R': + header += "%ADD{apid}{type},{width}X{height}*%\n".format( + apid=str(apid), + type='R', + width=(factor * obj.apertures[apid]['width']), + height=(factor * obj.apertures[apid]['height']) + ) + elif obj.apertures[apid]['type'] == 'O': + header += "%ADD{apid}{type},{width}X{height}*%\n".format( + apid=str(apid), + type='O', + width=(factor * obj.apertures[apid]['width']), + height=(factor * obj.apertures[apid]['height']) + ) + + header += '\n' + + # obsolete units but some software may need it + if gunits == 'IN': + header += 'G70*\n' + else: + header += 'G71*\n' + + # Absolute Mode + header += 'G90*\n' + + header += 'G01*\n' + # positive polarity + header += '%LPD*%\n' + + footer = 'M02*\n' + + gerber_code = obj.export_gerber(gwhole, gfract, g_zeros=gzeros, factor=factor) + + exported_gerber = header + exported_gerber += gerber_code + exported_gerber += footer + + if local_use is None: + try: + with open(filename, 'w') as fp: + fp.write(exported_gerber) + except PermissionError: + self.inform.emit('[WARNING] %s' % + _("Permission denied, saving not possible.\n" + "Most likely another app is holding the file open and not accessible.")) + return 'fail' + + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("Gerber", filename) + self.app.file_saved.emit("Gerber", filename) + self.inform.emit('[success] %s: %s' % (_("Gerber file exported to"), filename)) + else: + return exported_gerber + except Exception as e: + log.debug("App.export_gerber.make_gerber() --> %s" % str(e)) + return 'fail' + + if use_thread is True: + with self.app.proc_container.new(_("Exporting Gerber")) as proc: + + def job_thread_grb(app_obj): + ret = make_gerber() + if ret == 'fail': + self.inform.emit('[ERROR_NOTCL] %s' % _('Could not export file.')) + return + + self.worker_task.emit({'fcn': job_thread_grb, 'params': [self]}) + else: + gret = make_gerber() + if gret == 'fail': + self.inform.emit('[ERROR_NOTCL] %s' % _('Could not export file.')) + return 'fail' + if local_use is not None: + return gret + + def export_dxf(self, obj_name, filename, local_use=None, use_thread=True): + """ + Exports a Geometry Object to an DXF file. + + :param obj_name: the name of the FlatCAM object to be saved as DXF + :param filename: Path to the DXF file to save to. + :param local_use: if the Gerber code is to be saved to a file (None) or used within FlatCAM. + When not None, the value will be the actual Geometry object for which to create + the Geometry/DXF code + :param use_thread: if to be run in a separate thread + :return: + """ + if filename is None: + filename = self.defaults["global_last_save_folder"] if self.defaults["global_last_save_folder"] \ + is not None else self.defaults["global_last_folder"] + + self.app.log.debug("export_dxf()") + + if local_use is None: + try: + obj = self.app.collection.get_by_name(str(obj_name)) + except Exception: + return 'fail' + else: + obj = local_use + + def make_dxf(): + try: + dxf_code = obj.export_dxf() + if local_use is None: + try: + dxf_code.saveas(filename) + except PermissionError: + self.inform.emit('[WARNING] %s' % + _("Permission denied, saving not possible.\n" + "Most likely another app is holding the file open and not accessible.")) + return 'fail' + + if self.defaults["global_open_style"] is False: + self.app.file_opened.emit("DXF", filename) + self.app.file_saved.emit("DXF", filename) + self.inform.emit('[success] %s: %s' % (_("DXF file exported to"), filename)) + else: + return dxf_code + except Exception as e: + log.debug("App.export_dxf.make_dxf() --> %s" % str(e)) + return 'fail' + + if use_thread is True: + + with self.app.proc_container.new(_("Exporting DXF")) as proc: + + def job_thread_exc(app_obj): + ret_dxf_val = make_dxf() + if ret_dxf_val == 'fail': + app_obj.inform.emit('[WARNING_NOTCL] %s' % _('Could not export DXF file.')) + return + + self.worker_task.emit({'fcn': job_thread_exc, 'params': [self]}) + else: + ret = make_dxf() + if ret == 'fail': + self.inform.emit('[WARNING_NOTCL] %s' % _('Could not export DXF file.')) + return + if local_use is not None: + return ret + + def import_svg(self, filename, geo_type='geometry', outname=None, plot=True): + """ + Adds a new Geometry Object to the projects and populates + it with shapes extracted from the SVG file. + + :param plot: If True then the resulting object will be plotted on canvas + :param filename: Path to the SVG file. + :param geo_type: Type of FlatCAM object that will be created from SVG + :param outname: The name given to the resulting FlatCAM object + :return: + """ + self.app.log.debug("App.import_svg()") + + obj_type = "" + if geo_type is None or geo_type == "geometry": + obj_type = "geometry" + elif geo_type == "gerber": + obj_type = "gerber" + else: + self.inform.emit('[ERROR_NOTCL] %s' % + _("Not supported type is picked as parameter. Only Geometry and Gerber are supported")) + return + + units = self.defaults['units'].upper() + + def obj_init(geo_obj, app_obj): + geo_obj.import_svg(filename, obj_type, units=units) + geo_obj.multigeo = True + + with open(filename) as f: + file_content = f.read() + geo_obj.source_file = file_content + + with self.app.proc_container.new(_("Importing SVG")) as proc: + + # Object name + name = outname or filename.split('/')[-1].split('\\')[-1] + + ret = self.app.app_obj.new_object(obj_type, name, obj_init, autoselected=False, plot=plot) + + if ret == 'fail': + self.inform.emit('[ERROR_NOTCL]%s' % _('Import failed.')) + return 'fail' + + # Register recent file + self.app.file_opened.emit("svg", filename) + + # appGUI feedback + self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) + + def import_dxf(self, filename, geo_type='geometry', outname=None, plot=True): + """ + Adds a new Geometry Object to the projects and populates + it with shapes extracted from the DXF file. + + :param filename: Path to the DXF file. + :param geo_type: Type of FlatCAM object that will be created from DXF + :param outname: Name for the imported Geometry + :param plot: If True then the resulting object will be plotted on canvas + :return: + """ + self.app.log.debug(" ********* Importing DXF as: %s ********* " % geo_type.capitalize()) + + obj_type = "" + if geo_type is None or geo_type == "geometry": + obj_type = "geometry" + elif geo_type == "gerber": + obj_type = geo_type + else: + self.inform.emit('[ERROR_NOTCL] %s' % + _("Not supported type is picked as parameter. Only Geometry and Gerber are supported")) + return + + units = self.defaults['units'].upper() + + def obj_init(geo_obj, app_obj): + if obj_type == "geometry": + geo_obj.import_dxf_as_geo(filename, units=units) + elif obj_type == "gerber": + geo_obj.import_dxf_as_gerber(filename, units=units) + else: + return "fail" + + geo_obj.multigeo = True + with open(filename) as f: + file_content = f.read() + geo_obj.source_file = file_content + + with self.app.proc_container.new(_("Importing DXF")): + + # Object name + name = outname or filename.split('/')[-1].split('\\')[-1] + + ret = self.app.app_obj.new_object(obj_type, name, obj_init, autoselected=False, plot=plot) + + if ret == 'fail': + self.inform.emit('[ERROR_NOTCL]%s' % _('Import failed.')) + return 'fail' + + # Register recent file + self.app.file_opened.emit("dxf", filename) + + # appGUI feedback + self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) + + def open_gerber(self, filename, outname=None, plot=True, from_tcl=False): + """ + Opens a Gerber file, parses it and creates a new object for + it in the program. Thread-safe. + + :param outname: Name of the resulting object. None causes the + name to be that of the file. Str. + :param filename: Gerber file filename + :type filename: str + :param plot: boolean, to plot or not the resulting object + :param from_tcl: True if run from Tcl Shell + :return: None + """ + + # How the object should be initialized + def obj_init(gerber_obj, app_obj): + + assert isinstance(gerber_obj, GerberObject), \ + "Expected to initialize a GerberObject but got %s" % type(gerber_obj) + + # Opening the file happens here + try: + gerber_obj.parse_file(filename) + except IOError: + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open file"), filename)) + return "fail" + except ParseError as err: + app_obj.inform.emit('[ERROR_NOTCL] %s: %s. %s' % (_("Failed to parse file"), filename, str(err))) + app_obj.log.error(str(err)) + return "fail" + except Exception as e: + log.debug("App.open_gerber() --> %s" % str(e)) + msg = '[ERROR] %s' % _("An internal error has occurred. See shell.\n") + msg += traceback.format_exc() + app_obj.inform.emit(msg) + return "fail" + + if gerber_obj.is_empty(): + app_obj.inform.emit('[ERROR_NOTCL] %s' % + _("Object is not Gerber file or empty. Aborting object creation.")) + return "fail" + + self.app.log.debug("open_gerber()") + + with self.app.proc_container.new(_("Opening Gerber")): + # Object name + name = outname or filename.split('/')[-1].split('\\')[-1] + + # # ## Object creation # ## + ret_val = self.app.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.app.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' + + # Register recent file + self.app.file_opened.emit("gerber", filename) + + # appGUI feedback + self.app.inform.emit('[success] %s: %s' % (_("Opened"), filename)) + + def open_excellon(self, filename, outname=None, plot=True, from_tcl=False): + """ + Opens an Excellon file, parses it and creates a new object for + it in the program. Thread-safe. + + :param outname: Name of the resulting object. None causes the name to be that of the file. + :param filename: Excellon file filename + :type filename: str + :param plot: boolean, to plot or not the resulting object + :param from_tcl: True if run from Tcl Shell + :return: None + """ + + self.app.log.debug("open_excellon()") + + # How the object should be initialized + def obj_init(excellon_obj, app_obj): + try: + ret = excellon_obj.parse_file(filename=filename) + if ret == "fail": + app_obj.log.debug("Excellon parsing failed.") + self.inform.emit('[ERROR_NOTCL] %s' % _("This is not Excellon file.")) + return "fail" + except IOError: + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Cannot open file"), filename)) + app_obj.log.debug("Could not open Excellon object.") + return "fail" + except Exception: + msg = '[ERROR_NOTCL] %s' % _("An internal error has occurred. See shell.\n") + msg += traceback.format_exc() + app_obj.inform.emit(msg) + return "fail" + + ret = excellon_obj.create_geometry() + if ret == 'fail': + app_obj.log.debug("Could not create geometry for Excellon object.") + return "fail" + + for tool in excellon_obj.tools: + if excellon_obj.tools[tool]['solid_geometry']: + return + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("No geometry found in file"), filename)) + return "fail" + + with self.app.proc_container.new(_("Opening Excellon.")): + # Object name + name = outname or filename.split('/')[-1].split('\\')[-1] + ret_val = self.app.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.app.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.')) + return + + # Register recent file + self.app.file_opened.emit("excellon", filename) + + # 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): + """ + Opens a G-gcode file, parses it and creates a new object for + it in the program. Thread-safe. + + :param filename: G-code file filename + :param outname: Name of the resulting object. None causes the name to be that of the file. + :param force_parsing: + :param plot: If True plot the object on canvas + :param from_tcl: True if run from Tcl Shell + :return: None + """ + self.app.log.debug("open_gcode()") + + # How the object should be initialized + def obj_init(job_obj, app_obj_): + """ + :param job_obj: the resulting object + :type app_obj_: App + """ + assert isinstance(app_obj_, App), \ + "Initializer expected App, got %s" % type(app_obj_) + + app_obj_.inform.emit('%s...' % _("Reading GCode file")) + try: + f = open(filename) + gcode = f.read() + f.close() + except IOError: + app_obj_.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open"), filename)) + return "fail" + + job_obj.gcode = gcode + + gcode_ret = job_obj.gcode_parse(force_parsing=force_parsing) + if gcode_ret == "fail": + self.inform.emit('[ERROR_NOTCL] %s' % _("This is not GCODE")) + return "fail" + + job_obj.create_geometry() + + with self.app.proc_container.new(_("Opening G-Code.")): + + # Object name + name = outname or filename.split('/')[-1].split('\\')[-1] + + # New object creation and file processing + ret_val = self.app.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.app.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. " + "Try to load it from File menu.\n " + "Attempting to create a FlatCAM CNCJob Object from " + "G-Code file failed during processing")) + return "fail" + + # Register recent file + self.app.file_opened.emit("cncjob", filename) + + # appGUI feedback + self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) + + def open_hpgl2(self, filename, outname=None): + """ + Opens a HPGL2 file, parses it and creates a new object for + it in the program. Thread-safe. + + :param outname: Name of the resulting object. None causes the name to be that of the file. + :param filename: HPGL2 file filename + :return: None + """ + filename = filename + + # How the object should be initialized + def obj_init(geo_obj, app_obj): + + assert isinstance(geo_obj, GeometryObject), \ + "Expected to initialize a GeometryObject but got %s" % type(geo_obj) + + # Opening the file happens here + obj = HPGL2(self) + try: + HPGL2.parse_file(obj, filename) + except IOError: + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open file"), filename)) + return "fail" + except ParseError as err: + app_obj.inform.emit('[ERROR_NOTCL] %s: %s. %s' % (_("Failed to parse file"), filename, str(err))) + app_obj.log.error(str(err)) + return "fail" + except Exception as e: + app_obj.log.debug("App.open_hpgl2() --> %s" % str(e)) + msg = '[ERROR] %s' % _("An internal error has occurred. See shell.\n") + msg += traceback.format_exc() + app_obj.inform.emit(msg) + return "fail" + + geo_obj.multigeo = True + geo_obj.solid_geometry = deepcopy(obj.solid_geometry) + geo_obj.tools = deepcopy(obj.tools) + geo_obj.source_file = deepcopy(obj.source_file) + + del obj + + if not geo_obj.solid_geometry: + app_obj.inform.emit('[ERROR_NOTCL] %s' % + _("Object is not HPGL2 file or empty. Aborting object creation.")) + return "fail" + + self.app.log.debug("open_hpgl2()") + + with self.app.proc_container.new(_("Opening HPGL2")): + # Object name + name = outname or filename.split('/')[-1].split('\\')[-1] + + # # ## Object creation # ## + ret = self.app.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' + + # Register recent file + self.app.file_opened.emit("geometry", filename) + + # appGUI feedback + self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) + + def open_script(self, filename, outname=None, silent=False): + """ + Opens a Script file, parses it and creates a new object for + it in the program. Thread-safe. + + :param outname: Name of the resulting object. None causes the name to be that of the file. + :param filename: Script file filename + :param silent: If True there will be no messages printed to StatusBar + :return: None + """ + + def obj_init(script_obj, app_obj): + + assert isinstance(script_obj, ScriptObject), \ + "Expected to initialize a ScriptObject but got %s" % type(script_obj) + + if silent is False: + app_obj.inform.emit('[success] %s' % _("TCL script file opened in Code Editor.")) + + try: + script_obj.parse_file(filename) + except IOError: + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open file"), filename)) + return "fail" + except ParseError as err: + app_obj.inform.emit('[ERROR_NOTCL] %s: %s. %s' % (_("Failed to parse file"), filename, str(err))) + app_obj.log.error(str(err)) + return "fail" + except Exception as e: + app_obj.log.debug("App.open_script() -> %s" % str(e)) + msg = '[ERROR] %s' % _("An internal error has occurred. See shell.\n") + msg += traceback.format_exc() + app_obj.inform.emit(msg) + return "fail" + + self.app.log.debug("open_script()") + + with self.app.proc_container.new(_("Opening TCL Script...")): + + # Object name + script_name = outname or filename.split('/')[-1].split('\\')[-1] + + # Object creation + ret_val = self.app.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.app.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' + + # Register recent file + self.app.file_opened.emit("script", filename) + + # appGUI feedback + self.inform.emit('[success] %s: %s' % (_("Opened"), filename)) + + def open_config_file(self, filename, run_from_arg=None): + """ + Loads a config file from the specified file. + + :param filename: Name of the file from which to load. + :param run_from_arg: if True the FlatConfig file will be open as an command line argument + :return: None + """ + self.app.log.debug("Opening config file: " + filename) + + if run_from_arg: + self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" + "Canvas initialization finished in"), + '%.2f' % self.app.used_time, + _("Opening FlatCAM Config file.")), + alignment=Qt.AlignBottom | Qt.AlignLeft, + color=QtGui.QColor("gray")) + # # add the tab if it was closed + # self.ui.plot_tab_area.addTab(self.ui.text_editor_tab, _("Code Editor")) + # # first clear previous text in text editor (if any) + # self.ui.text_editor_tab.code_editor.clear() + # + # # Switch plot_area to CNCJob tab + # self.ui.plot_tab_area.setCurrentWidget(self.ui.text_editor_tab) + + # close the Code editor if already open + if self.app.toggle_codeeditor: + self.app.on_toggle_code_editor() + + self.app.on_toggle_code_editor() + + try: + if filename: + f = QtCore.QFile(filename) + if f.open(QtCore.QIODevice.ReadOnly): + stream = QtCore.QTextStream(f) + code_edited = stream.readAll() + self.app.text_editor_tab.load_text(code_edited, clear_text=True, move_to_start=True) + f.close() + except IOError: + self.app.log.error("Failed to open config file: %s" % filename) + self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open config file"), filename)) + return + + def open_project(self, filename, run_from_arg=None, plot=True, cli=None, from_tcl=False): + """ + Loads a project from the specified file. + + 1) Loads and parses file + 2) Registers the file as recently opened. + 3) Calls on_file_new() + 4) Updates options + 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. + :param run_from_arg: True if run for arguments + :param plot: If True plot all objects in the project + :param cli: Run from command line + :param from_tcl: True if run from Tcl Sehll + :return: None + """ + self.app.log.debug("Opening project: " + filename) + + # block autosaving while a project is loaded + self.app.block_autosave = True + + # for some reason, setting ui_title does not work when this method is called from Tcl Shell + # it's because the TclCommand is run in another thread (it inherit TclCommandSignaled) + if cli is None: + self.app.set_ui_title(name=_("Loading Project ... Please Wait ...")) + + if run_from_arg: + self.splash.showMessage('%s: %ssec\n%s' % (_("Canvas initialization started.\n" + "Canvas initialization finished in"), + '%.2f' % self.app.used_time, + _("Opening FlatCAM Project file.")), + alignment=Qt.AlignBottom | Qt.AlignLeft, + color=QtGui.QColor("gray")) + + # Open and parse an uncompressed Project file + try: + f = open(filename, 'r') + except IOError: + if from_tcl: + name = filename.split('/')[-1].split('\\')[-1] + filename = self.defaults['global_tcl_path'] + '/' + name + try: + f = open(filename, 'r') + except IOError: + self.app.log.error("Failed to open project file: %s" % filename) + self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open project file"), filename)) + return + else: + self.app.log.error("Failed to open project file: %s" % filename) + self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open project file"), filename)) + return + + try: + d = json.load(f, object_hook=dict2obj) + except Exception as e: + self.app.log.error( + "Failed to parse project file, trying to see if it loads as an LZMA archive: %s because %s" % + (filename, str(e))) + f.close() + + # Open and parse a compressed Project file + try: + with lzma.open(filename) as f: + file_content = f.read().decode('utf-8') + d = json.loads(file_content, object_hook=dict2obj) + except Exception as e: + self.app.log.error("Failed to open project file: %s with error: %s" % (filename, str(e))) + self.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Failed to open project file"), filename)) + return + + # Clear the current project + # # NOT THREAD SAFE # ## + if run_from_arg is True: + pass + elif cli is True: + self.app.delete_selection_shape() + else: + self.on_file_new() + + # Project options + self.app.options.update(d['options']) + + self.app.project_filename = filename + + # for some reason, setting ui_title does not work when this method is called from Tcl Shell + # it's because the TclCommand is run in another thread (it inherit TclCommandSignaled) + if cli is None: + self.app.set_screen_units(self.app.options["units"]) + + # Re create objects + self.app.log.debug(" **************** Started PROEJCT loading... **************** ") + + for obj in d['objs']: + def obj_init(obj_inst, app_inst): + try: + obj_inst.from_dict(obj) + except Exception as e: + self.app.log('App.open_project() --> ' + str(e)) + return 'fail' + + self.app.log.debug("Recreating from opened project an %s object: %s" % + (obj['kind'].capitalize(), obj['options']['name'])) + + # for some reason, setting ui_title does not work when this method is called from Tcl Shell + # it's because the TclCommand is run in another thread (it inherit TclCommandSignaled) + if cli is None: + self.app.set_ui_title(name="{} {}: {}".format( + _("Loading Project ... restoring"), obj['kind'].upper(), obj['options']['name'])) + + self.app.app_obj.new_object(obj['kind'], obj['options']['name'], obj_init, plot=plot) + + self.inform.emit('[success] %s: %s' % (_("Project loaded from"), filename)) + + self.app.should_we_save = False + self.app.file_opened.emit("project", filename) + + # restore autosaving after a project was loaded + self.app.block_autosave = False + + # for some reason, setting ui_title does not work when this method is called from Tcl Shell + # it's because the TclCommand is run in another thread (it inherit TclCommandSignaled) + if cli is None: + self.app.set_ui_title(name=self.app.project_filename) + + self.app.log.debug(" **************** Finished PROJECT loading... **************** ") + + def save_project(self, filename, quit_action=False, silent=False, from_tcl=False): + """ + Saves the current project to the specified file. + + :param filename: Name of the file in which to save. + :type filename: str + :param quit_action: if the project saving will be followed by an app quit; boolean + :param silent: if True will not display status messages + :param from_tcl True is run from Tcl Shell + :return: None + """ + self.app.log.debug("save_project()") + self.app.save_in_progress = True + + with self.app.proc_container.new(_("Saving FlatCAM Project")): + # Capture the latest changes + # Current object + try: + current_object = self.app.collection.get_active() + if current_object: + current_object.read_form() + except Exception as e: + self.app.log.debug("save_project() --> There was no active object. Skipping read_form. %s" % str(e)) + + # Serialize the whole project + d = { + "objs": [obj.to_dict() for obj in self.app.collection.get_list()], + "options": self.options, + "version": self.version + } + + if self.defaults["global_save_compressed"] is True: + with lzma.open(filename, "w", preset=int(self.defaults['global_compression_level'])) as f: + g = json.dumps(d, default=to_dict, indent=2, sort_keys=True).encode('utf-8') + # # Write + f.write(g) + self.inform.emit('[success] %s: %s' % (_("Project saved to"), filename)) + else: + # Open file + try: + f = open(filename, 'w') + except IOError: + self.app.log.error("Failed to open file for saving: %s", filename) + self.inform.emit('[ERROR_NOTCL] %s' % _("The object is used by another application.")) + return + + # Write + json.dump(d, f, default=to_dict, indent=2, sort_keys=True) + f.close() + + # verification of the saved project + # Open and parse + try: + saved_f = open(filename, 'r') + except IOError: + if silent is False: + self.inform.emit('[ERROR_NOTCL] %s: %s %s' % + (_("Failed to verify project file"), filename, _("Retry to save it."))) + return + + try: + saved_d = json.load(saved_f, object_hook=dict2obj) + except Exception: + if silent is False: + self.inform.emit('[ERROR_NOTCL] %s: %s %s' % + (_("Failed to parse saved project file"), filename, _("Retry to save it."))) + f.close() + return + saved_f.close() + + if silent is False: + if 'version' in saved_d: + self.inform.emit('[success] %s: %s' % (_("Project saved to"), filename)) + else: + self.inform.emit('[ERROR_NOTCL] %s: %s %s' % + (_("Failed to parse saved project file"), filename, _("Retry to save it."))) + + tb_settings = QSettings("Open Source", "FlatCAM") + lock_state = self.app.ui.lock_action.isChecked() + tb_settings.setValue('toolbar_lock', lock_state) + + # This will write the setting to the platform specific storage. + del tb_settings + + # if quit: + # t = threading.Thread(target=lambda: self.check_project_file_size(1, filename=filename)) + # t.start() + self.app.start_delayed_quit(delay=500, filename=filename, should_quit=quit_action) + + def save_source_file(self, obj_name, filename, use_thread=True): + """ + Exports a FlatCAM Object to an Gerber/Excellon file. + + :param obj_name: the name of the FlatCAM object for which to save it's embedded source file + :param filename: Path to the Gerber file to save to. + :param use_thread: if to be run in a separate thread + :return: + """ + + if filename is None: + filename = self.defaults["global_last_save_folder"] if self.defaults["global_last_save_folder"] \ + is not None else self.defaults["global_last_folder"] + + self.app.log.debug("save source file()") + + obj = self.app.collection.get_by_name(obj_name) + + file_string = StringIO(obj.source_file) + time_string = "{:%A, %d %B %Y at %H:%M}".format(datetime.now()) + + if file_string.getvalue() == '': + self.inform.emit('[ERROR_NOTCL] %s' % + _("Save cancelled because source file is empty. Try to export the file.")) + return 'fail' + + try: + with open(filename, 'w') as file: + file.writelines('G04*\n') + file.writelines('G04 %s (RE)GENERATED BY FLATCAM v%s - www.flatcam.org - Version Date: %s*\n' % + (obj.kind.upper(), str(self.app.version), str(self.app.version_date))) + file.writelines('G04 Filename: %s*\n' % str(obj_name)) + file.writelines('G04 Created on : %s*\n' % time_string) + + for line in file_string: + file.writelines(line) + except PermissionError: + self.inform.emit('[WARNING] %s' % + _("Permission denied, saving not possible.\n" + "Most likely another app is holding the file open and not accessible.")) + return 'fail' + + def on_file_savedefaults(self): + """ + Callback for menu item File->Save Defaults. Saves application default options + ``self.defaults`` to current_defaults.FlatConfig. + + :return: None + """ + self.app.preferencesUiManager.save_defaults() + + # end of file diff --git a/locale/de/LC_MESSAGES/strings.mo b/locale/de/LC_MESSAGES/strings.mo index c81bd4dcdb4b5b48f3be41b9afeb30bbe578143d..7ba13717ec4369d2b709e68c99154d1fd9fd3b28 100644 GIT binary patch delta 34 ocmZ3vNo?gNv4$4L7N#xC?*&*atxQbYKMODeG0XPP0<2~o0On8(oB#j- delta 34 ocmZ3vNo?gNv4$4L7N#xC?*&*)txS#EKMODeG0XPP0<2~o0Ok4&mjD0& diff --git a/locale/de/LC_MESSAGES/strings.po b/locale/de/LC_MESSAGES/strings.po index b38fb6d6..f9ce32c4 100644 --- a/locale/de/LC_MESSAGES/strings.po +++ b/locale/de/LC_MESSAGES/strings.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-10-24 15:53+0300\n" -"PO-Revision-Date: 2020-10-24 15:53+0300\n" +"POT-Creation-Date: 2020-10-24 19:45+0300\n" +"PO-Revision-Date: 2020-10-24 19:45+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: de\n" @@ -107,24 +107,24 @@ msgstr "Lesezeichen" #: appObjects/FlatCAMCNCJob.py:1750 appObjects/ObjectCollection.py:126 #: appTools/ToolFilm.py:238 appTools/ToolFilm.py:384 appTools/ToolImage.py:112 #: appTools/ToolMove.py:269 appTools/ToolPcbWizard.py:189 -#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:526 -#: appTools/ToolQRCode.py:573 app_Main.py:1753 app_Main.py:2581 -#: app_Main.py:2617 app_Main.py:2664 app_Main.py:4410 app_Main.py:7128 -#: app_Main.py:7167 app_Main.py:7211 app_Main.py:7240 app_Main.py:7281 -#: app_Main.py:7306 app_Main.py:7362 app_Main.py:7398 app_Main.py:7443 -#: app_Main.py:7484 app_Main.py:7526 app_Main.py:7568 app_Main.py:7609 -#: app_Main.py:7653 app_Main.py:7713 app_Main.py:7745 app_Main.py:7777 -#: app_Main.py:8000 app_Main.py:8038 app_Main.py:8081 app_Main.py:8158 -#: app_Main.py:8213 +#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:527 +#: appTools/ToolQRCode.py:574 app_Main.py:1762 app_Main.py:2596 +#: app_Main.py:4333 app_Main.py:8065 app_Main.py:8104 app_Main.py:8148 +#: app_Main.py:8174 app_Main.py:8214 app_Main.py:8239 app_Main.py:8293 +#: app_Main.py:8329 app_Main.py:8373 app_Main.py:8413 app_Main.py:8454 +#: app_Main.py:8495 app_Main.py:8535 app_Main.py:8578 app_Main.py:8637 +#: app_Main.py:8669 app_Main.py:8699 app_Main.py:8874 app_Main.py:8911 +#: app_Main.py:8954 app_Main.py:9026 app_Main.py:9080 app_Main.py:9350 +#: app_Main.py:9385 msgid "Cancelled." msgstr "Abgebrochen." #: Bookmark.py:308 appDatabase.py:2089 appEditors/AppTextEditor.py:312 #: appObjects/FlatCAMCNCJob.py:1672 appObjects/FlatCAMCNCJob.py:1862 #: appObjects/FlatCAMCNCJob.py:2311 appTools/ToolFilm.py:582 -#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2672 -#: app_Main.py:8457 app_Main.py:8505 app_Main.py:8634 app_Main.py:8771 -#: app_Main.py:8839 +#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2604 +#: app_Main.py:9320 app_Main.py:9528 app_Main.py:9663 app_Main.py:9729 +#: app_Main.py:10481 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -158,7 +158,7 @@ msgstr "" "Der Benutzer hat einen ordnungsgemäßen Abschluss der aktuellen Aufgabe " "angefordert." -#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:328 +#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:327 #: appTools/ToolIsolation.py:1436 appTools/ToolNCC.py:1366 msgid "Click the start point of the area." msgstr "Klicken Sie auf den Startpunkt des Bereichs." @@ -168,7 +168,7 @@ msgid "Click the end point of the area." msgstr "Klicken Sie auf den Endpunkt des Bereichs." #: appCommon/Common.py:357 appCommon/Common.py:459 -#: appTools/ToolCopperThieving.py:385 appTools/ToolIsolation.py:2348 +#: appTools/ToolCopperThieving.py:384 appTools/ToolIsolation.py:2348 #: appTools/ToolIsolation.py:2400 appTools/ToolNCC.py:1431 #: appTools/ToolNCC.py:1483 appTools/ToolPaint.py:1216 #: appTools/ToolPaint.py:1267 @@ -266,8 +266,8 @@ msgstr "Schlitze-Parameter" #: appDatabase.py:207 appEditors/AppGeoEditor.py:3287 appGUI/ObjectUI.py:219 #: appGUI/ObjectUI.py:570 appGUI/ObjectUI.py:894 appGUI/ObjectUI.py:1876 #: appGUI/ObjectUI.py:2693 appGUI/ObjectUI.py:2760 -#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:681 -#: app_Main.py:9730 +#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:683 +#: app_Main.py:7306 msgid "Name" msgstr "Name" @@ -342,7 +342,7 @@ msgstr "" #: appDatabase.py:275 appDatabase.py:1778 appDatabase.py:1814 #: appDatabase.py:1877 appDatabase.py:2162 appGUI/MainGUI.py:1299 -#: app_Main.py:9728 +#: app_Main.py:7304 msgid "General" msgstr "Allgemeines" @@ -498,7 +498,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2104 +#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2108 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Schnitttiefe Z" @@ -800,9 +800,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1210 appTools/ToolCopperThieving.py:1461 -#: appTools/ToolCorners.py:411 appTools/ToolCutOut.py:2157 -#: appTools/ToolFiducials.py:786 appTools/ToolInvertGerber.py:234 +#: appTools/ToolCopperThieving.py:1206 appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCorners.py:412 appTools/ToolCutOut.py:2161 +#: appTools/ToolFiducials.py:788 appTools/ToolInvertGerber.py:234 #: appTools/ToolInvertGerber.py:242 appTools/ToolNCC.py:4135 #: appTools/ToolNCC.py:4238 msgid "Margin" @@ -813,8 +813,8 @@ msgstr "Marge" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1212 appTools/ToolCorners.py:413 -#: appTools/ToolFiducials.py:788 appTools/ToolNCC.py:4137 +#: appTools/ToolCopperThieving.py:1208 appTools/ToolCorners.py:414 +#: appTools/ToolFiducials.py:790 appTools/ToolNCC.py:4137 #: appTools/ToolNCC.py:4240 msgid "Bounding box margin." msgstr "Begrenzungsrahmenrand." @@ -826,7 +826,7 @@ msgstr "Begrenzungsrahmenrand." #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 -#: appTools/ToolExtractDrills.py:520 appTools/ToolNCC.py:4112 +#: appTools/ToolExtractDrills.py:521 appTools/ToolNCC.py:4112 #: appTools/ToolPaint.py:2991 appTools/ToolPunchGerber.py:796 msgid "Method" msgstr "Methode" @@ -1123,7 +1123,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 -#: appTools/ToolCutOut.py:2128 appTools/ToolDrilling.py:2167 +#: appTools/ToolCutOut.py:2132 appTools/ToolDrilling.py:2167 #: appTools/ToolMilling.py:1817 msgid "" "Use multiple passes to limit\n" @@ -1139,7 +1139,7 @@ msgstr "" #: appDatabase.py:979 appGUI/ObjectUI.py:1251 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 -#: appTools/ToolCutOut.py:2142 appTools/ToolDrilling.py:2180 +#: appTools/ToolCutOut.py:2146 appTools/ToolDrilling.py:2180 #: appTools/ToolMilling.py:1830 msgid "Depth of each pass (positive)." msgstr "Tiefe jedes Durchgangs (positiv)." @@ -1240,7 +1240,7 @@ msgid "" msgstr "" #: appDatabase.py:1156 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: appTools/ToolCutOut.py:2159 +#: appTools/ToolCutOut.py:2163 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -1251,12 +1251,12 @@ msgstr "" "die tatsächliche PCB-Grenze" #: appDatabase.py:1168 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:131 -#: appTools/ToolCutOut.py:2167 +#: appTools/ToolCutOut.py:2171 msgid "Gap size" msgstr "Spaltgröße" #: appDatabase.py:1170 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:133 -#: appTools/ToolCutOut.py:2169 +#: appTools/ToolCutOut.py:2173 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -1269,14 +1269,14 @@ msgstr "" "von denen die Leiterplatte ausgeschnitten ist)." #: appDatabase.py:1179 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -#: appTools/ToolCutOut.py:2182 +#: appTools/ToolCutOut.py:2186 #, fuzzy #| msgid "Image type" msgid "Gap type" msgstr "Bildtyp" #: appDatabase.py:1181 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150 -#: appTools/ToolCutOut.py:2184 +#: appTools/ToolCutOut.py:2188 msgid "" "The type of gap:\n" "- Bridge -> the cutout will be interrupted by bridges\n" @@ -1286,24 +1286,24 @@ msgid "" msgstr "" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 -#: appTools/ToolCutOut.py:2192 +#: appTools/ToolCutOut.py:2196 msgid "Bridge" msgstr "" #: appDatabase.py:1190 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159 -#: appTools/ToolCutOut.py:2193 +#: appTools/ToolCutOut.py:2197 msgid "Thin" msgstr "" #: appDatabase.py:1201 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169 -#: appTools/ToolCutOut.py:2203 +#: appTools/ToolCutOut.py:2207 #, fuzzy #| msgid "MultiDepth" msgid "Depth" msgstr "Mehrfache Durchgänge" #: appDatabase.py:1203 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171 -#: appTools/ToolCutOut.py:2205 +#: appTools/ToolCutOut.py:2209 #, fuzzy #| msgid "" #| "The width of the travel lines to be\n" @@ -1317,12 +1317,12 @@ msgstr "" #: appDatabase.py:1220 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2220 +#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2224 msgid "Tool Diameter" msgstr "Werkzeugdurchm" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 -#: appTools/ToolCutOut.py:2222 +#: appTools/ToolCutOut.py:2226 msgid "The drill hole diameter when doing mouse bites." msgstr "" @@ -1331,23 +1331,23 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1333 appTools/ToolCopperThieving.py:1373 -#: appTools/ToolCopperThieving.py:1413 appTools/ToolCutOut.py:2232 +#: appTools/ToolCopperThieving.py:1329 appTools/ToolCopperThieving.py:1369 +#: appTools/ToolCopperThieving.py:1409 appTools/ToolCutOut.py:2236 msgid "Spacing" msgstr "Abstand" #: appDatabase.py:1235 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200 -#: appTools/ToolCutOut.py:2234 +#: appTools/ToolCutOut.py:2238 msgid "The spacing between drill holes when doing mouse bites." msgstr "" #: appDatabase.py:1254 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233 -#: appTools/ToolCutOut.py:2034 +#: appTools/ToolCutOut.py:2038 msgid "Convex Shape" msgstr "Konvexe Form" #: appDatabase.py:1257 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235 -#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041 +#: appTools/ToolCutOut.py:2040 appTools/ToolCutOut.py:2045 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -1356,11 +1356,11 @@ msgstr "" "Wird nur verwendet, wenn der Quellobjekttyp Gerber ist." #: appDatabase.py:1265 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209 -#: appTools/ToolCutOut.py:2263 +#: appTools/ToolCutOut.py:2267 msgid "Gaps" msgstr "Spalt" -#: appDatabase.py:1267 appTools/ToolCutOut.py:2265 +#: appDatabase.py:1267 appTools/ToolCutOut.py:2269 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -1445,8 +1445,8 @@ msgstr "" "in der Werkzeugdatenbank." #: appDatabase.py:1364 appGUI/MainGUI.py:1438 -#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2297 -#: app_Main.py:3392 app_Main.py:4347 app_Main.py:4593 app_Main.py:6901 +#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2306 +#: app_Main.py:3315 app_Main.py:4270 app_Main.py:4516 app_Main.py:8725 msgid "Cancel" msgstr "Abbrechen" @@ -1457,16 +1457,16 @@ msgstr "Abbrechen" #: appTools/ToolAlignObjects.py:516 appTools/ToolAlignObjects.py:527 #: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1601 appTools/ToolCopperThieving.py:1612 -#: appTools/ToolCorners.py:462 appTools/ToolCorners.py:473 -#: appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448 -#: appTools/ToolDblSided.py:956 appTools/ToolDblSided.py:967 +#: appTools/ToolCopperThieving.py:1597 appTools/ToolCopperThieving.py:1608 +#: appTools/ToolCorners.py:463 appTools/ToolCorners.py:474 +#: appTools/ToolCutOut.py:2441 appTools/ToolCutOut.py:2452 +#: appTools/ToolDblSided.py:958 appTools/ToolDblSided.py:969 #: appTools/ToolDistance.py:659 appTools/ToolDistance.py:670 #: appTools/ToolDistanceMin.py:324 appTools/ToolDistanceMin.py:335 #: appTools/ToolDrilling.py:2666 appTools/ToolDrilling.py:2677 #: appTools/ToolEtchCompensation.py:476 appTools/ToolEtchCompensation.py:487 -#: appTools/ToolExtractDrills.py:732 appTools/ToolExtractDrills.py:743 -#: appTools/ToolFiducials.py:950 appTools/ToolFiducials.py:961 +#: appTools/ToolExtractDrills.py:733 appTools/ToolExtractDrills.py:744 +#: appTools/ToolFiducials.py:952 appTools/ToolFiducials.py:963 #: appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 #: appTools/ToolImage.py:322 appTools/ToolImage.py:333 #: appTools/ToolInvertGerber.py:304 appTools/ToolInvertGerber.py:315 @@ -1478,7 +1478,7 @@ msgstr "Abbrechen" #: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925 #: appTools/ToolPcbWizard.py:488 appTools/ToolPcbWizard.py:499 #: appTools/ToolPunchGerber.py:1025 appTools/ToolPunchGerber.py:1036 -#: appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933 +#: appTools/ToolQRCode.py:923 appTools/ToolQRCode.py:934 #: appTools/ToolRulesCheck.py:1657 appTools/ToolRulesCheck.py:1668 #: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586 #: appTools/ToolSub.py:772 appTools/ToolSub.py:783 @@ -1493,16 +1493,16 @@ msgstr "Der bearbeitete Wert liegt außerhalb des Bereichs" #: appTools/ToolAlignObjects.py:522 appTools/ToolAlignObjects.py:529 #: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1607 appTools/ToolCopperThieving.py:1614 -#: appTools/ToolCorners.py:468 appTools/ToolCorners.py:475 -#: appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450 -#: appTools/ToolDblSided.py:962 appTools/ToolDblSided.py:969 +#: appTools/ToolCopperThieving.py:1603 appTools/ToolCopperThieving.py:1610 +#: appTools/ToolCorners.py:469 appTools/ToolCorners.py:476 +#: appTools/ToolCutOut.py:2447 appTools/ToolCutOut.py:2454 +#: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:971 #: appTools/ToolDistance.py:665 appTools/ToolDistance.py:672 #: appTools/ToolDistanceMin.py:330 appTools/ToolDistanceMin.py:337 #: appTools/ToolDrilling.py:2672 appTools/ToolDrilling.py:2679 #: appTools/ToolEtchCompensation.py:482 appTools/ToolEtchCompensation.py:489 -#: appTools/ToolExtractDrills.py:738 appTools/ToolExtractDrills.py:745 -#: appTools/ToolFiducials.py:956 appTools/ToolFiducials.py:963 +#: appTools/ToolExtractDrills.py:739 appTools/ToolExtractDrills.py:746 +#: appTools/ToolFiducials.py:958 appTools/ToolFiducials.py:965 #: appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 #: appTools/ToolImage.py:328 appTools/ToolImage.py:335 #: appTools/ToolInvertGerber.py:310 appTools/ToolInvertGerber.py:317 @@ -1514,7 +1514,7 @@ msgstr "Der bearbeitete Wert liegt außerhalb des Bereichs" #: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927 #: appTools/ToolPcbWizard.py:494 appTools/ToolPcbWizard.py:501 #: appTools/ToolPunchGerber.py:1031 appTools/ToolPunchGerber.py:1038 -#: appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935 +#: appTools/ToolQRCode.py:929 appTools/ToolQRCode.py:936 #: appTools/ToolRulesCheck.py:1663 appTools/ToolRulesCheck.py:1670 #: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588 #: appTools/ToolSub.py:778 appTools/ToolSub.py:785 @@ -1534,7 +1534,7 @@ msgstr "Von Datenbank kopieren" msgid "Delete from DB" msgstr "Aus Datenbank löschen" -#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3386 app_Main.py:6895 +#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3309 app_Main.py:8719 msgid "Save changes" msgstr "Änderungen speichern" @@ -1591,8 +1591,8 @@ msgstr "Import der FlatCAM-Werkzeugdatenbank" #: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525 #: appTools/ToolIsolation.py:2583 appTools/ToolIsolation.py:2667 #: appTools/ToolNCC.py:3715 appTools/ToolNCC.py:3795 appTools/ToolPaint.py:2626 -#: appTools/ToolPaint.py:2715 app_Main.py:5682 app_Main.py:5724 -#: app_Main.py:5755 app_Main.py:5775 app_Main.py:5785 +#: appTools/ToolPaint.py:2715 app_Main.py:5605 app_Main.py:5647 +#: app_Main.py:5678 app_Main.py:5698 app_Main.py:5708 msgid "Tools Database" msgstr "Werkzeugdatenbank" @@ -1813,7 +1813,7 @@ msgstr "Abgebrochen. Es ist kein Werkzeug / Bohrer ausgewählt" #: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642 #: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871 #: appTools/ToolAlignObjects.py:253 appTools/ToolAlignObjects.py:275 -#: app_Main.py:4961 app_Main.py:5115 +#: app_Main.py:4884 app_Main.py:5038 msgid "Done." msgstr "Fertig." @@ -1876,7 +1876,7 @@ msgstr "" #: appEditors/AppExcEditor.py:3765 appGUI/ObjectUI.py:1082 #: appGUI/ObjectUI.py:1650 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 -#: appTools/ToolCutOut.py:2060 appTools/ToolIsolation.py:3091 +#: appTools/ToolCutOut.py:2064 appTools/ToolIsolation.py:3091 #: appTools/ToolNCC.py:3966 appTools/ToolNCC.py:3977 appTools/ToolPaint.py:2882 msgid "Tool Dia" msgstr "Werkzeugdurchm" @@ -1968,8 +1968,8 @@ msgstr "Linear" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 -#: appTools/ToolExtractDrills.py:470 appTools/ToolExtractDrills.py:593 -#: appTools/ToolFiducials.py:834 appTools/ToolPunchGerber.py:746 +#: appTools/ToolExtractDrills.py:471 appTools/ToolExtractDrills.py:594 +#: appTools/ToolFiducials.py:836 appTools/ToolPunchGerber.py:746 #: appTools/ToolPunchGerber.py:886 msgid "Circular" msgstr "Kreisförmig" @@ -2137,7 +2137,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:398 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:399 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Länge" @@ -2259,12 +2259,12 @@ msgstr "Runden" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:289 -#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:486 -#: appTools/ToolExtractDrills.py:619 appTools/ToolInvertGerber.py:257 +#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:487 +#: appTools/ToolExtractDrills.py:620 appTools/ToolInvertGerber.py:257 #: appTools/ToolIsolation.py:3430 appTools/ToolMilling.py:2264 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3168 #: appTools/ToolPunchGerber.py:762 appTools/ToolPunchGerber.py:912 -#: appTools/ToolQRCode.py:788 +#: appTools/ToolQRCode.py:789 msgid "Square" msgstr "Quadrat" @@ -2315,8 +2315,8 @@ msgstr "Schrift" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1360 appTools/ToolCopperThieving.py:1400 -#: appTools/ToolFiducials.py:770 +#: appTools/ToolCopperThieving.py:1356 appTools/ToolCopperThieving.py:1396 +#: appTools/ToolFiducials.py:772 msgid "Size" msgstr "Größe" @@ -2340,8 +2340,8 @@ msgstr "Textwerkzeug" #: appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 #: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:329 #: appTools/ToolNCC.py:2280 appTools/ToolNCC.py:4040 appTools/ToolPaint.py:304 -#: appTools/ToolPaint.py:2940 app_Main.py:2053 app_Main.py:2312 -#: app_Main.py:2419 +#: appTools/ToolPaint.py:2940 app_Main.py:2062 app_Main.py:2321 +#: app_Main.py:2428 msgid "Tool" msgstr "Werkzeug" @@ -2431,7 +2431,7 @@ msgstr "Puffer" #: appGUI/GUIElements.py:3015 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 -#: appTools/ToolDblSided.py:681 appTools/ToolDblSided.py:855 +#: appTools/ToolDblSided.py:683 appTools/ToolDblSided.py:857 #: appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 msgid "Reference" msgstr "Referenz" @@ -2477,7 +2477,7 @@ msgstr "Auswahl" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 -#: appTools/ToolDblSided.py:692 appTools/ToolTransform.py:557 +#: appTools/ToolDblSided.py:694 appTools/ToolTransform.py:557 msgid "Point" msgstr "Punkt" @@ -2490,10 +2490,9 @@ msgstr "Minimum" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243 -#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677 +#: appTools/ToolExtractDrills.py:557 appTools/ToolExtractDrills.py:678 #: appTools/ToolPunchGerber.py:849 appTools/ToolPunchGerber.py:965 -#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 -#: app_Main.py:10205 +#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:7781 msgid "Value" msgstr "Wert" @@ -2505,10 +2504,10 @@ msgstr "Ein Bezugspunkt im Format X, Y." #: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590 #: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 -#: appTools/ToolDblSided.py:706 appTools/ToolDblSided.py:892 +#: appTools/ToolDblSided.py:708 appTools/ToolDblSided.py:894 #: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203 -#: appTools/ToolTransform.py:572 app_Main.py:6127 +#: appTools/ToolTransform.py:572 app_Main.py:6050 msgid "Add" msgstr "Hinzufügen" @@ -2721,7 +2720,7 @@ msgstr "Versatz Y" #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216 -#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:787 +#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:788 #: appTools/ToolTransform.py:854 msgid "Rounded" msgstr "Agberundet" @@ -3206,7 +3205,7 @@ msgstr "Geo-Editor" #: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495 #: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 -#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519 +#: appTools/ToolCutOut.py:2017 appTools/ToolDblSided.py:521 #: appTools/ToolTransform.py:579 msgid "Type" msgstr "Typ" @@ -3596,7 +3595,7 @@ msgstr "Fügen Sie der Blendenliste eine neue Blende hinzu." #: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 #: appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 #: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 -#: appTools/ToolSolderPaste.py:1209 app_Main.py:6129 +#: appTools/ToolSolderPaste.py:1209 app_Main.py:6052 msgid "Delete" msgstr "Löschen" @@ -3816,8 +3815,8 @@ msgstr "" #: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:164 #: appObjects/FlatCAMGeometry.py:1917 appParsers/ParseExcellon.py:972 -#: appTools/ToolPcbWizard.py:318 app_Main.py:9010 app_Main.py:9070 -#: app_Main.py:9201 app_Main.py:9266 app_Main.py:9881 +#: appTools/ToolPcbWizard.py:318 app_Main.py:7457 app_Main.py:9899 +#: app_Main.py:9959 app_Main.py:10090 app_Main.py:10155 msgid "An internal error has occurred. See shell.\n" msgstr "Ein interner Fehler ist aufgetreten. Siehe Shell.\n" @@ -3833,7 +3832,7 @@ msgstr "Erledigt. Gerber-Bearbeitung beendet." msgid "Cancelled. No aperture is selected" msgstr "Abgebrochen. Es ist keine Blende ausgewählt" -#: appEditors/AppGerberEditor.py:4555 app_Main.py:6462 +#: appEditors/AppGerberEditor.py:4555 app_Main.py:6385 msgid "Coordinates copied to clipboard." msgstr "Koordinaten in die Zwischenablage kopiert." @@ -3852,8 +3851,8 @@ msgstr "" "es erneut." #: appEditors/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 -#: appTools/ToolCutOut.py:895 appTools/ToolCutOut.py:1118 -#: appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663 +#: appTools/ToolCutOut.py:896 appTools/ToolCutOut.py:1119 +#: appTools/ToolCutOut.py:1267 camlib.py:4899 camlib.py:5663 msgid "Failed." msgstr "Gescheitert." @@ -3885,7 +3884,7 @@ msgstr "Es wurden keine Polygone markiert. Keiner passt in die Grenzen." msgid "Rotation action was not executed." msgstr "Rotationsaktion wurde nicht ausgeführt." -#: appEditors/AppGerberEditor.py:6044 app_Main.py:5885 app_Main.py:5933 +#: appEditors/AppGerberEditor.py:6044 app_Main.py:5808 app_Main.py:5856 msgid "Flip action was not executed." msgstr "Flip-Aktion wurde nicht ausgeführt." @@ -4004,7 +4003,7 @@ msgstr "Datei öffnen" #: appObjects/FlatCAMCNCJob.py:1646 appObjects/FlatCAMCNCJob.py:1651 #: appObjects/FlatCAMCNCJob.py:1836 appObjects/FlatCAMCNCJob.py:1841 #: appObjects/FlatCAMCNCJob.py:1914 appObjects/FlatCAMCNCJob.py:1919 -#: appTools/ToolSolderPaste.py:1063 app_Main.py:7044 app_Main.py:7049 +#: appTools/ToolSolderPaste.py:1063 app_Main.py:6839 app_Main.py:6844 msgid "Export Code ..." msgstr "Code exportieren ..." @@ -4018,7 +4017,7 @@ msgstr "Keine solche Datei oder Ordner" msgid "Saved to" msgstr "Gespeichert in" -#: appEditors/appGCodeEditor.py:66 app_Main.py:7905 +#: appEditors/appGCodeEditor.py:66 app_Main.py:7000 msgid "Code Editor" msgstr "Code-Editor" @@ -4054,7 +4053,7 @@ msgstr "Code-Editor" #: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 appGUI/ObjectUI.py:2019 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1320 +#: appTools/ToolCopperThieving.py:1316 msgid "Dia" msgstr "Durchm" @@ -4153,8 +4152,8 @@ msgstr "" msgid "Save Log" msgstr "Protokoll speichern" -#: appGUI/GUIElements.py:3085 app_Main.py:2809 app_Main.py:3181 -#: app_Main.py:3354 +#: appGUI/GUIElements.py:3085 app_Main.py:2741 app_Main.py:3113 +#: app_Main.py:3286 msgid "Close" msgstr "Schließen" @@ -4799,7 +4798,7 @@ msgstr "Hilfe" msgid "Online Help\tF1" msgstr "Onlinehilfe\tF1" -#: appGUI/MainGUI.py:527 app_Main.py:3319 app_Main.py:3328 +#: appGUI/MainGUI.py:527 app_Main.py:3251 app_Main.py:3260 msgid "Bookmarks Manager" msgstr "Lesezeichen verwalten" @@ -4829,7 +4828,7 @@ msgstr "Youtube Kanal\tF4" msgid "How To" msgstr "How To's" -#: appGUI/MainGUI.py:551 app_Main.py:2776 +#: appGUI/MainGUI.py:551 app_Main.py:2708 msgid "About FlatCAM" msgstr "Über FlatCAM" @@ -4997,47 +4996,47 @@ msgstr "Diagramm deaktivieren" msgid "Set Color" msgstr "Farbsatz" -#: appGUI/MainGUI.py:709 app_Main.py:10148 +#: appGUI/MainGUI.py:709 app_Main.py:7724 msgid "Red" msgstr "Rote" -#: appGUI/MainGUI.py:712 app_Main.py:10150 +#: appGUI/MainGUI.py:712 app_Main.py:7726 msgid "Blue" msgstr "Blau" -#: appGUI/MainGUI.py:715 app_Main.py:10153 +#: appGUI/MainGUI.py:715 app_Main.py:7729 msgid "Yellow" msgstr "Gelb" -#: appGUI/MainGUI.py:718 app_Main.py:10155 +#: appGUI/MainGUI.py:718 app_Main.py:7731 msgid "Green" msgstr "Grün" -#: appGUI/MainGUI.py:721 app_Main.py:10157 +#: appGUI/MainGUI.py:721 app_Main.py:7733 msgid "Purple" msgstr "Lila" -#: appGUI/MainGUI.py:724 app_Main.py:10159 +#: appGUI/MainGUI.py:724 app_Main.py:7735 msgid "Brown" msgstr "Braun" -#: appGUI/MainGUI.py:727 app_Main.py:10161 app_Main.py:10220 +#: appGUI/MainGUI.py:727 app_Main.py:7737 app_Main.py:7796 msgid "White" msgstr "Weiß" -#: appGUI/MainGUI.py:730 app_Main.py:10163 +#: appGUI/MainGUI.py:730 app_Main.py:7739 msgid "Black" msgstr "Schwarz" -#: appGUI/MainGUI.py:735 app_Main.py:10166 +#: appGUI/MainGUI.py:735 app_Main.py:7742 msgid "Custom" msgstr "Benutzerdefiniert" -#: appGUI/MainGUI.py:740 app_Main.py:10200 +#: appGUI/MainGUI.py:740 app_Main.py:7776 msgid "Opacity" msgstr "Opazität" -#: appGUI/MainGUI.py:743 app_Main.py:10176 +#: appGUI/MainGUI.py:743 app_Main.py:7752 msgid "Default" msgstr "Standard" @@ -5117,13 +5116,13 @@ msgstr "Raster-Symbolleiste" msgid "Status Toolbar" msgstr "Symbolleiste bearbeiten" -#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7110 -#: app_Main.py:7115 +#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:8046 +#: app_Main.py:8051 msgid "Open Gerber" msgstr "Gerber öffnen" -#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7150 -#: app_Main.py:7155 +#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:8086 +#: app_Main.py:8091 msgid "Open Excellon" msgstr "Excellon öffnen" @@ -5210,7 +5209,7 @@ msgid "Extract Drills Tool" msgstr "Bohrer Extrahieren Werkzeug" #: appGUI/MainGUI.py:931 appGUI/MainGUI.py:2086 appGUI/ObjectUI.py:387 -#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2052 +#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2056 msgid "Cutout Tool" msgstr "Ausschnittwerkzeug" @@ -5263,19 +5262,19 @@ msgid "Calculators Tool" msgstr "Rechnerwerkzeug" #: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285 -#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628 +#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:629 msgid "QRCode Tool" msgstr "QRCode Werkzeug" # Really don't know #: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1137 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1133 msgid "Copper Thieving Tool" msgstr "Copper Thieving Werkzeug" # Really don't know #: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281 -#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648 +#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:650 msgid "Fiducials Tool" msgstr "Passermarken-Tool" @@ -5294,7 +5293,7 @@ msgid "Invert Gerber Tool" msgstr "Invertieren Sie das Gerber-Werkzeug" #: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284 -#: appTools/ToolCorners.py:297 +#: appTools/ToolCorners.py:298 msgid "Corner Markers Tool" msgstr "Eckmarkierungswerkzeug" @@ -5485,8 +5484,8 @@ msgstr "Schalten Sie die Anzeige der Achse auf der Leinwand um" #: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:899 #: appGUI/preferences/PreferencesUIManager.py:992 #: appGUI/preferences/PreferencesUIManager.py:1020 -#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5585 -#: app_Main.py:5590 app_Main.py:5605 +#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5508 +#: app_Main.py:5513 app_Main.py:5528 msgid "Preferences" msgstr "Einstellungen" @@ -5524,21 +5523,21 @@ msgstr "" msgid "TCL Shell" msgstr "Shell anzeigen" -#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 +#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:9017 msgid "Project" msgstr "Projekt" #: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:3791 -#: appGUI/MainGUI.py:3797 app_Main.py:2480 app_Main.py:7001 +#: appGUI/MainGUI.py:3797 app_Main.py:2489 app_Main.py:8825 msgid "Plot Area" msgstr "Grundstücksfläche" -#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1169 -#: appTools/ToolCorners.py:317 appTools/ToolEtchCompensation.py:291 -#: appTools/ToolExtractDrills.py:453 appTools/ToolFiducials.py:873 +#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1165 +#: appTools/ToolCorners.py:318 appTools/ToolEtchCompensation.py:291 +#: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:875 #: appTools/ToolInvertGerber.py:215 appTools/ToolIsolation.py:2986 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:721 -#: appTools/ToolQRCode.py:659 appTools/ToolRulesCheck.py:1165 +#: appTools/ToolQRCode.py:660 appTools/ToolRulesCheck.py:1165 #: appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:643 msgid "GERBER" msgstr "GERBER" @@ -5627,9 +5626,9 @@ msgstr "Sichtbarkeit umschalten" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:526 -#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:929 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2014 appTools/ToolDblSided.py:528 +#: appTools/ToolDblSided.py:769 appTools/ToolFilm.py:929 #: appTools/ToolFilm.py:952 appTools/ToolImage.py:136 appTools/ToolImage.py:191 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 @@ -5647,9 +5646,9 @@ msgstr "Geometrie" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:892 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolDblSided.py:527 appTools/ToolDblSided.py:724 -#: appTools/ToolDblSided.py:766 appTools/ToolFilm.py:1207 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:768 appTools/ToolFilm.py:1207 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:805 appTools/ToolNCC.py:4323 appTools/ToolPaint.py:167 #: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147 @@ -5727,7 +5726,7 @@ msgstr "Exc-Editor" msgid "Add Drill" msgstr "Bohrer hinzufügen" -#: appGUI/MainGUI.py:1581 app_Main.py:2291 +#: appGUI/MainGUI.py:1581 app_Main.py:2300 msgid "Close Editor" msgstr "Editor schließen" @@ -5753,8 +5752,8 @@ msgstr "Möchten Sie die GUI-Einstellungen wirklich löschen?\n" #: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:931 #: appGUI/preferences/PreferencesUIManager.py:1177 appTranslation.py:111 -#: appTranslation.py:213 app_Main.py:2295 app_Main.py:3390 app_Main.py:5815 -#: app_Main.py:6899 +#: appTranslation.py:213 app_Main.py:2304 app_Main.py:3313 app_Main.py:5738 +#: app_Main.py:8723 msgid "Yes" msgstr "Ja" @@ -5766,7 +5765,7 @@ msgstr "Ja" #: appTools/ToolDrilling.py:2090 appTools/ToolIsolation.py:3066 #: appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3935 #: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 -#: app_Main.py:2296 app_Main.py:3391 app_Main.py:5816 app_Main.py:6900 +#: app_Main.py:2305 app_Main.py:3314 app_Main.py:5739 app_Main.py:8724 msgid "No" msgstr "Nein" @@ -5856,7 +5855,7 @@ msgstr "Tool wird hinzugefügt abgebrochen ..." msgid "Distance Tool exit..." msgstr "Entfernungstool beenden ..." -#: appGUI/MainGUI.py:3725 app_Main.py:3378 +#: appGUI/MainGUI.py:3725 app_Main.py:3301 msgid "Application is saving the project. Please wait ..." msgstr "Anwendung speichert das Projekt. Warten Sie mal ..." @@ -5900,7 +5899,7 @@ msgstr "Neuer Gerber" msgid "Edit Object (if selected)" msgstr "Objekt bearbeiten (falls ausgewählt)" -#: appGUI/MainGUI.py:4261 app_Main.py:6115 +#: appGUI/MainGUI.py:4261 app_Main.py:6038 msgid "Grid On/Off" msgstr "Raster ein/aus" @@ -5971,7 +5970,7 @@ msgstr "Öffnen Sie die Gerber-Datei" msgid "New Project" msgstr "Neues Projekt" -#: appGUI/MainGUI.py:4270 app_Main.py:7229 app_Main.py:7232 +#: appGUI/MainGUI.py:4270 app_Main.py:8166 app_Main.py:8169 msgid "Open Project" msgstr "Projekt öffnen" @@ -6397,7 +6396,7 @@ msgstr "Diagrammoptionen" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1290 +#: appTools/ToolCopperThieving.py:1286 msgid "Solid" msgstr "Solide" @@ -6572,15 +6571,15 @@ msgstr "" msgid "Resulting geometry will have rounded corners." msgstr "Die resultierende Geometrie hat abgerundete Ecken." -#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2287 -#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444 +#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2291 +#: appTools/ToolCutOut.py:2306 appTools/ToolIsolation.py:3444 #: appTools/ToolNCC.py:4372 appTools/ToolPaint.py:3178 msgid "Generate Geometry" msgstr "Geometrie erzeugen" #: appGUI/ObjectUI.py:478 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:782 +#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:783 msgid "Bounding Box" msgstr "Begrenzungsrahmen" @@ -6944,7 +6943,7 @@ msgstr "" msgid "Add from DB" msgstr "Aus DB hinzufügen" -#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2071 +#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2075 #: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3122 #: appTools/ToolNCC.py:3996 appTools/ToolPaint.py:2898 msgid "Search and Add" @@ -6958,7 +6957,7 @@ msgstr "" "Fügen Sie der Werkzeugtabelle ein neues Werkzeug hinzu\n" "mit dem oben angegebenen Durchmesser." -#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2083 +#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2087 #: appTools/ToolIsolation.py:65 appTools/ToolIsolation.py:3133 #: appTools/ToolNCC.py:4007 appTools/ToolPaint.py:2909 #, fuzzy @@ -6966,7 +6965,7 @@ msgstr "" msgid "Pick from DB" msgstr "Aus DB hinzufügen" -#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2086 +#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2090 #: appTools/ToolIsolation.py:3136 appTools/ToolNCC.py:4010 #: appTools/ToolPaint.py:2912 #, fuzzy @@ -7064,7 +7063,7 @@ msgstr "" #: appGUI/ObjectUI.py:1216 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2107 +#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2111 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -7076,7 +7075,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 -#: appTools/ToolCutOut.py:2125 appTools/ToolDrilling.py:2164 +#: appTools/ToolCutOut.py:2129 appTools/ToolDrilling.py:2164 #: appTools/ToolMilling.py:1814 msgid "Multi-Depth" msgstr "Mehrfache Tiefe" @@ -7787,12 +7786,12 @@ msgstr "" #: appGUI/ObjectUI.py:2177 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: appTools/ToolCutOut.py:2324 appTools/ToolFiducials.py:801 +#: appTools/ToolCutOut.py:2328 appTools/ToolFiducials.py:803 msgid "Manual" msgstr "Manuell" #: appGUI/ObjectUI.py:2178 -#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:9736 +#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:7312 #, fuzzy #| msgid "Grids" msgid "Grid" @@ -8139,7 +8138,7 @@ msgstr "Ausrichtung" msgid "Align Left" msgstr "Linksbündig" -#: appGUI/ObjectUI.py:2860 app_Main.py:4999 +#: appGUI/ObjectUI.py:2860 app_Main.py:4922 msgid "Center" msgstr "Center" @@ -8230,7 +8229,7 @@ msgid "Preferences default values are restored." msgstr "Die Standardeinstellungen werden wiederhergestellt." #: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 -#: app_Main.py:2696 +#: app_Main.py:9396 msgid "Failed to write defaults to file." msgstr "Fehler beim Schreiben der Voreinstellungen in die Datei." @@ -8280,10 +8279,10 @@ msgstr "Erw. CNC-Joboptionen" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1188 -#: appTools/ToolCorners.py:377 appTools/ToolEtchCompensation.py:356 -#: appTools/ToolFiducials.py:763 appTools/ToolInvertGerber.py:228 -#: appTools/ToolQRCode.py:695 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1184 +#: appTools/ToolCorners.py:378 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolFiducials.py:765 appTools/ToolInvertGerber.py:228 +#: appTools/ToolQRCode.py:696 msgid "Parameters" msgstr "Parameters" @@ -8406,7 +8405,7 @@ msgid "G-code Decimals" msgstr "G-Code-Dezimalstellen" #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:682 +#: appTools/ToolFiducials.py:684 msgid "Coordinates" msgstr "Koordinaten" @@ -9176,7 +9175,7 @@ msgstr "App Einstellungen" msgid "Grid Settings" msgstr "Rastereinstellungen" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:9744 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:7320 msgid "X value" msgstr "X-Wert" @@ -9184,7 +9183,7 @@ msgstr "X-Wert" 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 app_Main.py:9747 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:7323 msgid "Y value" msgstr "Y-Wert" @@ -9231,14 +9230,14 @@ msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: appTools/ToolFilm.py:1274 app_Main.py:9764 +#: appTools/ToolFilm.py:1274 app_Main.py:7340 msgid "Portrait" msgstr "Hochformat" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: appTools/ToolFilm.py:1275 app_Main.py:9766 +#: appTools/ToolFilm.py:1275 app_Main.py:7342 msgid "Landscape" msgstr "Querformat" @@ -9259,7 +9258,7 @@ msgstr "" "und schließen Sie die Registerkarten Projekt, Ausgewählt und Werkzeug ein." #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -#: appTools/ToolDblSided.py:666 appTools/ToolDblSided.py:838 app_Main.py:9752 +#: appTools/ToolDblSided.py:668 appTools/ToolDblSided.py:840 app_Main.py:7328 msgid "Axis" msgstr "Achse" @@ -9281,7 +9280,7 @@ msgstr "" "Schriftgröße für die Textbox-AppGUI festgelegt\n" "Elemente, die in der Anwendung verwendet werden." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:9769 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:7345 msgid "HUD" msgstr "HUD" @@ -10371,8 +10370,8 @@ msgid "\"Follow\"" msgstr "\"Folgen\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:579 -#: appTools/ToolCopperThieving.py:776 appTools/ToolCopperThieving.py:788 +#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:578 +#: appTools/ToolCopperThieving.py:775 appTools/ToolCopperThieving.py:787 #: appTools/ToolIsolation.py:1353 appTools/ToolNCC.py:1793 #: appTools/ToolNCC.py:1820 appTools/ToolNCC.py:1928 appTools/ToolNCC.py:1941 #: appTools/ToolNCC.py:2845 appTools/ToolNCC.py:2950 appTools/ToolNCC.py:2965 @@ -10401,7 +10400,7 @@ msgstr "" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102 +#: appTools/ToolFiducials.py:817 appTools/ToolFilm.py:1102 #: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -10692,7 +10691,7 @@ msgstr "Anzahl der Schritte (Linien) um Kreise zu interpolieren." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1195 appTools/ToolCopperThieving.py:1530 +#: appTools/ToolCopperThieving.py:1191 appTools/ToolCopperThieving.py:1526 msgid "Clearance" msgstr "Freistellung" @@ -10710,7 +10709,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1224 appTools/ToolNCC.py:1351 +#: appTools/ToolCopperThieving.py:1220 appTools/ToolNCC.py:1351 #: appTools/ToolNCC.py:1667 appTools/ToolNCC.py:1731 appTools/ToolNCC.py:2709 #: appTools/ToolNCC.py:2718 appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4436 #: defaults.py:478 tclCommands/TclCommandCopperClear.py:190 @@ -10721,7 +10720,7 @@ msgstr "Selbst" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1225 appTools/ToolIsolation.py:819 +#: appTools/ToolCopperThieving.py:1221 appTools/ToolIsolation.py:819 #: appTools/ToolIsolation.py:1435 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1365 appTools/ToolNCC.py:1683 appTools/ToolNCC.py:1738 #: appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4446 appTools/ToolPaint.py:1061 @@ -10733,7 +10732,7 @@ msgstr "Bereichsauswahl" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolDblSided.py:757 +#: appTools/ToolCopperThieving.py:1222 appTools/ToolDblSided.py:759 #: appTools/ToolIsolation.py:1475 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1384 appTools/ToolNCC.py:1689 appTools/ToolNCC.py:1746 #: appTools/ToolNCC.py:2124 appTools/ToolNCC.py:2358 appTools/ToolNCC.py:2754 @@ -10744,7 +10743,7 @@ msgid "Reference Object" msgstr "Ref. Objekt" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1224 msgid "Reference:" msgstr "Referenz:" @@ -10767,25 +10766,25 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1270 appTools/ToolExtractDrills.py:494 -#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:770 +#: appTools/ToolCopperThieving.py:1266 appTools/ToolExtractDrills.py:495 +#: appTools/ToolExtractDrills.py:633 appTools/ToolPunchGerber.py:770 #: appTools/ToolPunchGerber.py:925 msgid "Rectangular" msgstr "Rechteckig" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1271 +#: appTools/ToolCopperThieving.py:1267 msgid "Minimal" msgstr "Minimal" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1273 appTools/ToolFilm.py:954 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolFilm.py:954 msgid "Box Type:" msgstr "Box-Typ:" # Double #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1275 +#: appTools/ToolCopperThieving.py:1271 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10794,28 +10793,28 @@ msgstr "" "- 'Minimal' - Der Begrenzungsrahmen ist die konvexe Rumpfform." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1291 +#: appTools/ToolCopperThieving.py:1287 msgid "Dots Grid" msgstr "Punktmuster" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1292 +#: appTools/ToolCopperThieving.py:1288 msgid "Squares Grid" msgstr "Quadratraster" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1293 +#: appTools/ToolCopperThieving.py:1289 msgid "Lines Grid" msgstr "Linienraster" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1295 +#: appTools/ToolCopperThieving.py:1291 msgid "Fill Type:" msgstr "Füllart:" # Double #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1297 +#: appTools/ToolCopperThieving.py:1293 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10829,58 +10828,58 @@ msgstr "" "- 'Linienraster' - Der leere Bereich wird mit einem Linienmuster gefüllt." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1316 +#: appTools/ToolCopperThieving.py:1312 msgid "Dots Grid Parameters" msgstr "Punktmuster Parameter" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1322 +#: appTools/ToolCopperThieving.py:1318 msgid "Dot diameter in Dots Grid." msgstr "Punktdurchmesser im Punktmuster." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1335 +#: appTools/ToolCopperThieving.py:1331 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:1356 +#: appTools/ToolCopperThieving.py:1352 msgid "Squares Grid Parameters" msgstr "Quadratraster Parameter" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1362 +#: appTools/ToolCopperThieving.py:1358 msgid "Square side size in Squares Grid." msgstr "Quadratlängen im Quadratraster." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1375 +#: appTools/ToolCopperThieving.py:1371 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:1396 +#: appTools/ToolCopperThieving.py:1392 msgid "Lines Grid Parameters" msgstr "Schraffurparameter" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1402 +#: appTools/ToolCopperThieving.py:1398 msgid "Line thickness size in Lines Grid." msgstr "Liniendicke." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1415 +#: appTools/ToolCopperThieving.py:1411 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:1453 +#: appTools/ToolCopperThieving.py:1449 msgid "Robber Bar Parameters" msgstr "Robber Bar-Parameter" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1455 +#: appTools/ToolCopperThieving.py:1451 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10889,35 +10888,35 @@ msgstr "" "Eine Robber Bar ist ein Kupferrand bei Lochmustern." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1463 +#: appTools/ToolCopperThieving.py:1459 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:1474 appTools/ToolCorners.py:384 +#: appTools/ToolCopperThieving.py:1470 appTools/ToolCorners.py:385 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Dicke" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1476 +#: appTools/ToolCopperThieving.py:1472 msgid "The robber bar thickness." msgstr "Dicke der Robber Bar." # What is pattern plating? #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1507 +#: appTools/ToolCopperThieving.py:1503 msgid "Pattern Plating Mask" msgstr "Musterbeschichtungsmaske" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1509 +#: appTools/ToolCopperThieving.py:1505 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:1532 +#: appTools/ToolCopperThieving.py:1528 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10934,8 +10933,8 @@ msgstr "Kalibirierungs-Tool-Optionen" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1190 appTools/ToolCorners.py:379 -#: appTools/ToolFiducials.py:765 +#: appTools/ToolCopperThieving.py:1186 appTools/ToolCorners.py:380 +#: appTools/ToolFiducials.py:767 msgid "Parameters used for this tool." msgstr "Parameter für dieses Werkzeug." @@ -11025,12 +11024,12 @@ msgstr "" "- rechts unten -> Der Benutzer richtet die Leiterplatte horizontal aus" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: appTools/ToolCalibration.py:854 app_Main.py:4996 +#: appTools/ToolCalibration.py:854 app_Main.py:4919 msgid "Top-Left" msgstr "Oben links" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: appTools/ToolCalibration.py:855 app_Main.py:4997 +#: appTools/ToolCalibration.py:855 app_Main.py:4920 msgid "Bottom-Right" msgstr "Unten rechts" @@ -11040,13 +11039,13 @@ msgstr "Optionen für Bohrer extrahieren" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:732 +#: appTools/ToolExtractDrills.py:461 appTools/ToolPunchGerber.py:732 msgid "Processed Pads Type" msgstr "Verarbeitete Pads Typ" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:734 +#: appTools/ToolExtractDrills.py:463 appTools/ToolPunchGerber.py:734 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -11058,7 +11057,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:748 +#: appTools/ToolExtractDrills.py:473 appTools/ToolPunchGerber.py:748 msgid "Process Circular Pads." msgstr "Prozessrunde Pads." @@ -11066,26 +11065,26 @@ msgstr "Prozessrunde Pads." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606 +#: appTools/ToolExtractDrills.py:479 appTools/ToolExtractDrills.py:607 #: appTools/ToolPunchGerber.py:754 appTools/ToolPunchGerber.py:899 msgid "Oblong" msgstr "Länglich" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:756 +#: appTools/ToolExtractDrills.py:481 appTools/ToolPunchGerber.py:756 msgid "Process Oblong Pads." msgstr "Längliche Pads verarbeiten." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:764 +#: appTools/ToolExtractDrills.py:489 appTools/ToolPunchGerber.py:764 msgid "Process Square Pads." msgstr "Quadratische Pads verarbeiten." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:772 +#: appTools/ToolExtractDrills.py:497 appTools/ToolPunchGerber.py:772 msgid "Process Rectangular Pads." msgstr "Rechteckige Pads verarbeiten." @@ -11093,15 +11092,15 @@ msgstr "Rechteckige Pads verarbeiten." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502 -#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:171 +#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:503 +#: appTools/ToolExtractDrills.py:646 appTools/ToolProperties.py:171 #: appTools/ToolPunchGerber.py:778 appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "Andere" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:780 +#: appTools/ToolExtractDrills.py:505 appTools/ToolPunchGerber.py:780 msgid "Process pads not in the categories above." msgstr "Prozess-Pads nicht in den oben genannten Kategorien." @@ -11109,7 +11108,7 @@ msgstr "Prozess-Pads nicht in den oben genannten Kategorien." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548 +#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:549 #: appTools/ToolPunchGerber.py:807 appTools/ToolPunchGerber.py:841 msgid "Fixed Diameter" msgstr "Fester Durchmesser" @@ -11118,19 +11117,19 @@ msgstr "Fester Durchmesser" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584 +#: appTools/ToolExtractDrills.py:533 appTools/ToolExtractDrills.py:585 #: appTools/ToolPunchGerber.py:808 appTools/ToolPunchGerber.py:871 msgid "Fixed Annular Ring" msgstr "Fester Ring" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:809 +#: appTools/ToolExtractDrills.py:534 appTools/ToolPunchGerber.py:809 msgid "Proportional" msgstr "Proportional" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: appTools/ToolExtractDrills.py:522 +#: appTools/ToolExtractDrills.py:523 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -11144,13 +11143,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:851 +#: appTools/ToolExtractDrills.py:559 appTools/ToolPunchGerber.py:851 msgid "Fixed hole diameter." msgstr "Fester Lochdurchmesser." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: appTools/ToolExtractDrills.py:586 appTools/ToolPunchGerber.py:873 +#: appTools/ToolExtractDrills.py:587 appTools/ToolPunchGerber.py:873 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -11162,37 +11161,37 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:888 +#: appTools/ToolExtractDrills.py:596 appTools/ToolPunchGerber.py:888 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:608 appTools/ToolPunchGerber.py:901 +#: appTools/ToolExtractDrills.py:609 appTools/ToolPunchGerber.py:901 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:621 appTools/ToolPunchGerber.py:914 +#: appTools/ToolExtractDrills.py:622 appTools/ToolPunchGerber.py:914 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:634 appTools/ToolPunchGerber.py:927 +#: appTools/ToolExtractDrills.py:635 appTools/ToolPunchGerber.py:927 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:647 appTools/ToolPunchGerber.py:940 +#: appTools/ToolExtractDrills.py:648 appTools/ToolPunchGerber.py:940 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:668 appTools/ToolPunchGerber.py:956 +#: appTools/ToolExtractDrills.py:669 appTools/ToolPunchGerber.py:956 msgid "Proportional Diameter" msgstr "Proportionaler Durchmesser" @@ -11203,7 +11202,7 @@ msgstr "Faktor" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:967 +#: appTools/ToolExtractDrills.py:680 appTools/ToolPunchGerber.py:967 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -11217,7 +11216,7 @@ msgid "Fiducials Tool Options" msgstr "Passermarken-Werkzeugoptionen" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: appTools/ToolFiducials.py:772 +#: appTools/ToolFiducials.py:774 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -11228,12 +11227,12 @@ msgstr "" "Der Ausschnitt der Lötmaske ist doppelt so groß." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: appTools/ToolFiducials.py:800 +#: appTools/ToolFiducials.py:802 msgid "Auto" msgstr "Auto" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:803 +#: appTools/ToolFiducials.py:805 msgid "Mode:" msgstr "Modus:" @@ -11248,22 +11247,22 @@ msgstr "" "- \"Manuell\" Die Bezugspunkte werden manuell platziert." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: appTools/ToolFiducials.py:813 +#: appTools/ToolFiducials.py:815 msgid "Up" msgstr "Hoch" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: appTools/ToolFiducials.py:814 +#: appTools/ToolFiducials.py:816 msgid "Down" msgstr "Runter" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: appTools/ToolFiducials.py:817 +#: appTools/ToolFiducials.py:819 msgid "Second fiducial" msgstr "Zweiter Bezugspunkt" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: appTools/ToolFiducials.py:819 +#: appTools/ToolFiducials.py:821 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -11277,22 +11276,22 @@ msgstr "" "Links, Oben-Rechts." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: appTools/ToolFiducials.py:835 +#: appTools/ToolFiducials.py:837 msgid "Cross" msgstr "Kreuzförmig" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: appTools/ToolFiducials.py:836 +#: appTools/ToolFiducials.py:838 msgid "Chess" msgstr "Schachbrett" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: appTools/ToolFiducials.py:838 +#: appTools/ToolFiducials.py:840 msgid "Fiducial Type" msgstr "Bezugspunktart" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: appTools/ToolFiducials.py:840 +#: appTools/ToolFiducials.py:842 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -11305,7 +11304,7 @@ msgstr "" "\"Schachbrett\" Schachbrettförmige Bezugspunkte." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: appTools/ToolFiducials.py:849 +#: appTools/ToolFiducials.py:851 msgid "Line thickness" msgstr "Liniendicke" @@ -11417,12 +11416,12 @@ msgstr "" "in Gerber Dateien einzufügen oder als Datei zu exportieren." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: appTools/ToolQRCode.py:702 app_Main.py:9732 +#: appTools/ToolQRCode.py:703 app_Main.py:7308 msgid "Version" msgstr "Version" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: appTools/ToolQRCode.py:704 +#: appTools/ToolQRCode.py:705 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11431,13 +11430,13 @@ msgstr "" " bis 40 (177x177 Quadrate) angegeben werden." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: appTools/ToolQRCode.py:715 +#: appTools/ToolQRCode.py:716 msgid "Error correction" msgstr "Fehlerausgleich" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: appTools/ToolQRCode.py:717 appTools/ToolQRCode.py:728 +#: appTools/ToolQRCode.py:718 appTools/ToolQRCode.py:729 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -11453,12 +11452,12 @@ msgstr "" "H : max. 30%% Fehler können ausgeglichen warden." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: appTools/ToolQRCode.py:738 +#: appTools/ToolQRCode.py:739 msgid "Box Size" msgstr "Quadratgröße" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: appTools/ToolQRCode.py:740 +#: appTools/ToolQRCode.py:741 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11468,12 +11467,12 @@ msgstr "" "spezifiziert." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: appTools/ToolQRCode.py:751 +#: appTools/ToolQRCode.py:752 msgid "Border Size" msgstr "Randdicke" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: appTools/ToolQRCode.py:753 +#: appTools/ToolQRCode.py:754 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." @@ -11483,27 +11482,27 @@ msgstr "" "an." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: appTools/ToolQRCode.py:673 +#: appTools/ToolQRCode.py:674 msgid "QRCode Data" msgstr "QRCode Daten" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: appTools/ToolQRCode.py:675 +#: appTools/ToolQRCode.py:676 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:679 +#: appTools/ToolQRCode.py:680 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:764 +#: appTools/ToolQRCode.py:765 msgid "Polarity" msgstr "Polarität" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: appTools/ToolQRCode.py:766 +#: appTools/ToolQRCode.py:767 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11514,17 +11513,17 @@ msgstr "" "oder Positiv (die Boxen sind undurchsichtig)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:770 +#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:771 msgid "Negative" msgstr "Negativ" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:771 +#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:772 msgid "Positive" msgstr "Positiv" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: appTools/ToolQRCode.py:773 +#: appTools/ToolQRCode.py:774 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -11538,7 +11537,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: appTools/ToolQRCode.py:784 appTools/ToolQRCode.py:790 +#: appTools/ToolQRCode.py:785 appTools/ToolQRCode.py:791 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -11547,22 +11546,22 @@ msgstr "" "kann abgerundete oder scharfe Ecken haben." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: appTools/ToolQRCode.py:818 +#: appTools/ToolQRCode.py:819 msgid "Fill Color" msgstr "Boxfarbe" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: appTools/ToolQRCode.py:820 +#: appTools/ToolQRCode.py:821 msgid "Set the QRCode fill color (squares color)." msgstr "Wählen Sie die Farbe der Boxen." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: appTools/ToolQRCode.py:842 +#: appTools/ToolQRCode.py:843 msgid "Back Color" msgstr "Hintergrundfarbe" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: appTools/ToolQRCode.py:844 +#: appTools/ToolQRCode.py:845 msgid "Set the QRCode background color." msgstr "Wählen Sie die Farbe im QRCode, die nicht von einer Box bedeckt ist." @@ -11787,7 +11786,7 @@ msgid "Drill dia" msgstr "Bohrdurchmesser" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: appTools/ToolDblSided.py:824 appTools/ToolDblSided.py:829 +#: appTools/ToolDblSided.py:826 appTools/ToolDblSided.py:831 msgid "Diameter of the drill for the alignment holes." msgstr "Durchmesser des Bohrers für die Ausrichtungslöcher." @@ -11797,7 +11796,7 @@ msgstr "Achse ausrichten" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: appTools/ToolDblSided.py:667 appTools/ToolDblSided.py:840 +#: appTools/ToolDblSided.py:669 appTools/ToolDblSided.py:842 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Vertikal spiegeln (X) oder horizontal (Y)." @@ -11806,12 +11805,12 @@ msgid "Mirror Axis:" msgstr "Spiegelachse:" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 -#: appTools/ToolDblSided.py:693 +#: appTools/ToolDblSided.py:695 msgid "Box" msgstr "Box" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 -#: appTools/ToolDblSided.py:694 +#: appTools/ToolDblSided.py:696 #, fuzzy #| msgid "Hole Size" msgid "Hole Snap" @@ -11973,12 +11972,12 @@ msgid "Corner Markers Options" msgstr "Optionen für Eckmarkierungen" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:386 +#: appTools/ToolCorners.py:387 msgid "The thickness of the line that makes the corner marker." msgstr "Die Dicke der Linie, die die Eckmarkierung bildet." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:400 +#: appTools/ToolCorners.py:401 msgid "The length of the line that makes the corner marker." msgstr "Die Länge der Linie, die die Eckmarkierung bildet." @@ -11997,7 +11996,7 @@ msgstr "" "das ursprüngliche Brett." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: appTools/ToolCutOut.py:2062 +#: appTools/ToolCutOut.py:2066 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -12010,7 +12009,7 @@ msgid "Object kind" msgstr "Objektart" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: appTools/ToolCutOut.py:1995 +#: appTools/ToolCutOut.py:1999 msgid "" "Choice of what kind the object we want to cutout is.
- Single: " "contain a single PCB Gerber outline object.
- Panel: a panel PCB " @@ -12023,12 +12022,12 @@ msgstr "" "aus vielen einzelnen PCB-Konturen zusammengesetzt ist." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: appTools/ToolCutOut.py:2001 +#: appTools/ToolCutOut.py:2005 msgid "Single" msgstr "Einzeln" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: appTools/ToolCutOut.py:2002 +#: appTools/ToolCutOut.py:2006 msgid "Panel" msgstr "Platte" @@ -12057,12 +12056,12 @@ msgstr "" "- 8 \t- 2 * links + 2 * rechts + 2 * oben + 2 * unten" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 -#: appTools/ToolCutOut.py:2333 +#: appTools/ToolCutOut.py:2337 msgid "Big cursor" msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 -#: appTools/ToolCutOut.py:2335 +#: appTools/ToolCutOut.py:2339 msgid "Use a big cursor when adding manual gaps." msgstr "" @@ -12339,18 +12338,18 @@ msgstr "" "Dies kann einer der vier Punkte des Geometrie-Begrenzungsrahmens sein." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:342 appTools/ToolFiducials.py:694 +#: appTools/ToolCorners.py:343 appTools/ToolFiducials.py:696 #: appTools/ToolFilm.py:1065 msgid "Bottom Left" msgstr "Unten links" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:350 appTools/ToolFilm.py:1066 +#: appTools/ToolCorners.py:351 appTools/ToolFilm.py:1066 msgid "Top Left" msgstr "Oben links" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:346 appTools/ToolFilm.py:1067 +#: appTools/ToolCorners.py:347 appTools/ToolFilm.py:1067 msgid "Bottom Right" msgstr "Unten rechts" @@ -12633,9 +12632,9 @@ msgstr "Progressiv" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:453 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1044 -#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530 -#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:463 app_Main.py:4682 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCorners.py:264 appTools/ToolFiducials.py:532 +#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:464 app_Main.py:4605 msgid "Plotting" msgstr "Plotten" @@ -12833,9 +12832,9 @@ msgstr "Anzahl der Zeilen des gewünschten Panels" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:891 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2009 appTools/ToolDblSided.py:525 -#: appTools/ToolDblSided.py:765 appTools/ToolFilm.py:928 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:527 +#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:928 #: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 #: appTools/ToolIsolation.py:3339 appTools/ToolIsolation.py:3391 @@ -13469,7 +13468,7 @@ msgid "Export cancelled ..." msgstr "Export abgebrochen ..." #: appObjects/FlatCAMCNCJob.py:1678 appObjects/FlatCAMCNCJob.py:1965 -#: appObjects/FlatCAMScript.py:134 app_Main.py:7830 +#: appObjects/FlatCAMScript.py:134 app_Main.py:6925 msgid "Loading..." msgstr "Wird geladen..." @@ -13615,7 +13614,7 @@ msgstr "Werkzeug aus Werkzeugdatenbank hinzufügen" #: appTools/ToolDrilling.py:1021 appTools/ToolIsolation.py:639 #: appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744 #: appTools/ToolMilling.py:779 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 -#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2194 +#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2203 msgid "No Tool Selected" msgstr "Kein Werkzeug ausgewählt" @@ -13926,7 +13925,7 @@ msgstr "Objekt umbenannt von {old} zu {new}" #: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939 #: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951 #: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 -#: app_Main.py:6707 app_Main.py:6713 app_Main.py:6719 app_Main.py:6725 +#: app_Main.py:6630 app_Main.py:6636 app_Main.py:6642 app_Main.py:6648 msgid "selected" msgstr "ausgewählt" @@ -14096,7 +14095,7 @@ msgid "Click on the START point." msgstr "Klicken Sie auf den START-Punkt." #: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276 -#: appTools/ToolDblSided.py:285 +#: appTools/ToolDblSided.py:287 msgid "Cancelled by user request." msgstr "Auf Benutzerwunsch storniert." @@ -14110,7 +14109,7 @@ msgid "Or right click to cancel." msgstr "Oder klicken Sie mit der rechten Maustaste, um abzubrechen." #: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267 -#: appTools/ToolFiducials.py:718 +#: appTools/ToolFiducials.py:720 msgid "Second Point" msgstr "Zweiter Punkt" @@ -14198,32 +14197,32 @@ msgstr "" "angenommen." #: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1583 -#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394 -#: appTools/ToolDblSided.py:938 appTools/ToolDrilling.py:2649 -#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:702 -#: appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCorners.py:445 appTools/ToolCutOut.py:2398 +#: appTools/ToolDblSided.py:940 appTools/ToolDrilling.py:2649 +#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:703 +#: appTools/ToolFiducials.py:934 appTools/ToolFilm.py:1383 #: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477 #: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4388 #: appTools/ToolOptimal.py:593 appTools/ToolPaint.py:3194 #: appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:996 -#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1620 +#: appTools/ToolQRCode.py:905 appTools/ToolRulesCheck.py:1620 #: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:754 #: appTools/ToolTransform.py:920 msgid "Reset Tool" msgstr "Reset Werkzeug" #: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1586 -#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397 -#: appTools/ToolDblSided.py:941 appTools/ToolDrilling.py:2652 -#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:705 -#: appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1582 +#: appTools/ToolCorners.py:448 appTools/ToolCutOut.py:2401 +#: appTools/ToolDblSided.py:943 appTools/ToolDrilling.py:2652 +#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:706 +#: appTools/ToolFiducials.py:937 appTools/ToolFilm.py:1386 #: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480 #: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4391 #: appTools/ToolOptimal.py:596 appTools/ToolPaint.py:3197 #: appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:999 -#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1623 +#: appTools/ToolQRCode.py:908 appTools/ToolRulesCheck.py:1623 #: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:757 #: appTools/ToolTransform.py:923 msgid "Will reset the tool parameters." @@ -14638,31 +14637,31 @@ msgstr "Punktmusterfüllung gewählt." msgid "Squares grid fill selected." msgstr "Quadratfüllung gewählt." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308 -#: appTools/ToolCopperThieving.py:916 appTools/ToolCorners.py:120 -#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141 +#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:307 +#: appTools/ToolCopperThieving.py:914 appTools/ToolCorners.py:120 +#: appTools/ToolDblSided.py:306 appTools/ToolExtractDrills.py:141 #: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464 #: appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:188 #: appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Es ist kein Gerber-Objekt geladen ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:844 +#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 msgid "Append geometry" msgstr "Geometrie angehängt" -#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:877 -#: appTools/ToolCopperThieving.py:1022 +#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:876 +#: appTools/ToolCopperThieving.py:1020 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:291 appTools/ToolCopperThieving.py:885 +#: appTools/ToolCopperThieving.py:290 appTools/ToolCopperThieving.py:883 msgid "Copper Thieving Tool done." msgstr "'Copper Thieving' Werkzeug fertig." -#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351 -#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917 +#: appTools/ToolCopperThieving.py:317 appTools/ToolCopperThieving.py:350 +#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:918 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 #: appTools/ToolIsolation.py:908 appTools/ToolIsolation.py:1345 @@ -14677,78 +14676,78 @@ msgstr "'Copper Thieving' Werkzeug fertig." msgid "Could not retrieve object" msgstr "Objekt konnte nicht abgerufen werden" -#: appTools/ToolCopperThieving.py:379 +#: appTools/ToolCopperThieving.py:378 msgid "Click the end point of the filling area." msgstr "Klicken Sie auf den Endpunkt des Ausfüllbereichs." -#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511 -#: appTools/ToolCopperThieving.py:570 +#: appTools/ToolCopperThieving.py:506 appTools/ToolCopperThieving.py:510 +#: appTools/ToolCopperThieving.py:569 msgid "Thieving" msgstr "Diebstahl" -#: appTools/ToolCopperThieving.py:518 +#: appTools/ToolCopperThieving.py:517 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Copper Thieving Tool gestartet. Parameter lesen." -#: appTools/ToolCopperThieving.py:543 +#: appTools/ToolCopperThieving.py:542 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Copper Thieving-Tool. Vorbereitung von isolierenden Polygonen." -#: appTools/ToolCopperThieving.py:586 +#: appTools/ToolCopperThieving.py:585 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Copper Thieving Tool: Areale zur Kupferfüllung vorbereiten." -#: appTools/ToolCopperThieving.py:597 appTools/ToolFilm.py:631 +#: appTools/ToolCopperThieving.py:596 appTools/ToolFilm.py:631 #: appTools/ToolFilm.py:879 appTools/ToolIsolation.py:916 #: appTools/ToolNCC.py:853 appTools/ToolOptimal.py:145 #: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:627 msgid "Working..." msgstr "Arbeiten..." -#: appTools/ToolCopperThieving.py:626 +#: appTools/ToolCopperThieving.py:625 msgid "Geometry not supported for bounding box" msgstr "Geometrie für Umriss nicht unterstützt" -#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1681 +#: appTools/ToolCopperThieving.py:631 appTools/ToolNCC.py:1681 #: appTools/ToolNCC.py:1736 appTools/ToolNCC.py:2734 appTools/ToolPaint.py:2457 msgid "No object available." msgstr "Kein Objekt vorhanden." -#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1706 +#: appTools/ToolCopperThieving.py:668 appTools/ToolNCC.py:1706 #: appTools/ToolNCC.py:1759 appTools/ToolNCC.py:2776 msgid "The reference object type is not supported." msgstr "Der Referenzobjekttyp wird nicht unterstützt." -#: appTools/ToolCopperThieving.py:674 +#: appTools/ToolCopperThieving.py:673 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Copper Thieving Tool. Füge neue Geometrie an und puffere sie." -#: appTools/ToolCopperThieving.py:690 +#: appTools/ToolCopperThieving.py:689 msgid "Create geometry" msgstr "Geometrie erstellen" -#: appTools/ToolCopperThieving.py:896 appTools/ToolCopperThieving.py:900 +#: appTools/ToolCopperThieving.py:894 appTools/ToolCopperThieving.py:898 msgid "P-Plating Mask" msgstr "P-Beschichtungsmaske" -#: appTools/ToolCopperThieving.py:922 +#: appTools/ToolCopperThieving.py:920 msgid "Append PP-M geometry" msgstr "PPM Geometrie hinzufügen" -#: appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCopperThieving.py:1036 msgid "Generating Pattern Plating Mask done." msgstr "Erzeugen der PPM abgeschlossen." -#: appTools/ToolCopperThieving.py:1112 +#: appTools/ToolCopperThieving.py:1108 msgid "Copper Thieving Tool exit." msgstr "Copper Thieving Tool verlassen." -#: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 +#: appTools/ToolCopperThieving.py:1167 appTools/ToolFiducials.py:877 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:1197 +#: appTools/ToolCopperThieving.py:1193 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14761,7 +14760,7 @@ msgstr "" "in mehrere aufgeteilt." # Double -#: appTools/ToolCopperThieving.py:1230 +#: appTools/ToolCopperThieving.py:1226 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 " @@ -14776,12 +14775,12 @@ msgstr "" "- 'Referenzobjekt' - 'Copper Thieving' innerhalb des von einem anderen " "Objekt angegebenen Bereichs." -#: appTools/ToolCopperThieving.py:1237 appTools/ToolIsolation.py:3385 +#: appTools/ToolCopperThieving.py:1233 appTools/ToolIsolation.py:3385 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3137 msgid "Ref. Type" msgstr "Ref. Typ" -#: appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1235 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14790,12 +14789,12 @@ msgstr "" "soll.\n" "Es kann Gerber, Excellon oder Geometry sein." -#: appTools/ToolCopperThieving.py:1248 appTools/ToolIsolation.py:3396 +#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3396 #: appTools/ToolNCC.py:4327 appTools/ToolPaint.py:3147 msgid "Ref. Object" msgstr "Ref. Objekt" -#: appTools/ToolCopperThieving.py:1250 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1246 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4329 appTools/ToolPaint.py:3149 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" @@ -14803,12 +14802,12 @@ msgstr "" "soll." # Double -#: appTools/ToolCopperThieving.py:1426 +#: appTools/ToolCopperThieving.py:1422 msgid "Insert Copper thieving" msgstr "'Coper Thieving' einsetzen" # Double -#: appTools/ToolCopperThieving.py:1428 +#: appTools/ToolCopperThieving.py:1424 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14817,12 +14816,12 @@ msgstr "" "das wird die eigentlichen Gerber-Spuren in einem gewissen Abstand umgeben." # Double -#: appTools/ToolCopperThieving.py:1487 +#: appTools/ToolCopperThieving.py:1483 msgid "Insert Robber Bar" msgstr "'Robber Bar' einsetzen" # Double -#: appTools/ToolCopperThieving.py:1489 +#: appTools/ToolCopperThieving.py:1485 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14834,11 +14833,11 @@ msgstr "" "in einem bestimmten Abstand.\n" "Erforderlich für die Lochmusterbeschichtung." -#: appTools/ToolCopperThieving.py:1513 +#: appTools/ToolCopperThieving.py:1509 msgid "Select Soldermask object" msgstr "Lötmaskenobjekt auswählen" -#: appTools/ToolCopperThieving.py:1515 +#: appTools/ToolCopperThieving.py:1511 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14847,11 +14846,11 @@ msgstr "" "Das Gerber Objekt mit der Lötmaske\n" "Wird als Basis verwendet." -#: appTools/ToolCopperThieving.py:1544 +#: appTools/ToolCopperThieving.py:1540 msgid "Plated area" msgstr "Beschichtetes Areal" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1542 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14868,19 +14867,19 @@ msgstr "" "etwas größer als die Pads sind, und dieses Areal aus der Lötmaske berechnet " "wird." -#: appTools/ToolCopperThieving.py:1557 +#: appTools/ToolCopperThieving.py:1553 msgid "mm" msgstr "mm" -#: appTools/ToolCopperThieving.py:1559 +#: appTools/ToolCopperThieving.py:1555 msgid "in" msgstr "in" -#: appTools/ToolCopperThieving.py:1566 +#: appTools/ToolCopperThieving.py:1562 msgid "Generate pattern plating mask" msgstr "Generieren der Beschichtungsmaske" -#: appTools/ToolCopperThieving.py:1568 +#: appTools/ToolCopperThieving.py:1564 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14894,39 +14893,39 @@ msgstr "" msgid "Corners Tool" msgstr "Ecken Werkzeug" -#: appTools/ToolCorners.py:157 +#: appTools/ToolCorners.py:158 msgid "Please select at least a location" msgstr "Bitte wählen Sie mindestens einen Ort aus" -#: appTools/ToolCorners.py:292 +#: appTools/ToolCorners.py:293 msgid "Corners Tool exit." msgstr "Ecken Werkzeugausgang." -#: appTools/ToolCorners.py:319 +#: appTools/ToolCorners.py:320 msgid "The Gerber object to which will be added corner markers." msgstr "Das Gerber-Objekt, dem Eckmarkierungen hinzugefügt werden." -#: appTools/ToolCorners.py:335 +#: appTools/ToolCorners.py:336 msgid "Locations" msgstr "Standorte" -#: appTools/ToolCorners.py:337 +#: appTools/ToolCorners.py:338 msgid "Locations where to place corner markers." msgstr "Orte, an denen Eckmarkierungen platziert werden sollen." -#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706 +#: appTools/ToolCorners.py:355 appTools/ToolFiducials.py:708 msgid "Top Right" msgstr "Oben rechts" -#: appTools/ToolCorners.py:363 +#: appTools/ToolCorners.py:364 msgid "Toggle ALL" msgstr "ALLE umschalten" -#: appTools/ToolCorners.py:429 +#: appTools/ToolCorners.py:430 msgid "Add Marker" msgstr "Marker hinzufügen" -#: appTools/ToolCorners.py:431 +#: appTools/ToolCorners.py:432 msgid "Will add corner markers to the selected Gerber file." msgstr "Fügt der ausgewählten Gerber-Datei Eckmarkierungen hinzu." @@ -14935,7 +14934,7 @@ msgstr "Fügt der ausgewählten Gerber-Datei Eckmarkierungen hinzu." #: appTools/ToolNCC.py:463 appTools/ToolNCC.py:992 appTools/ToolNCC.py:1130 #: appTools/ToolPaint.py:395 appTools/ToolPaint.py:686 #: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131 -#: appTools/ToolSolderPaste.py:464 app_Main.py:4496 +#: appTools/ToolSolderPaste.py:464 app_Main.py:4419 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." @@ -14986,20 +14985,20 @@ 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:555 appTools/ToolCutOut.py:926 -#: appTools/ToolCutOut.py:1300 appTools/ToolCutOut.py:1431 +#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:927 +#: appTools/ToolCutOut.py:1303 appTools/ToolCutOut.py:1434 #: 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:568 appTools/ToolCutOut.py:940 +#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:941 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:573 appTools/ToolCutOut.py:944 +#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:945 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " @@ -15008,18 +15007,18 @@ msgstr "" "\"tb\", \"2lr\", \"2tb\", 4 oder 8. Geben Sie einen korrekten Wert ein und " "wiederholen Sie den Vorgang. " -#: appTools/ToolCutOut.py:891 appTools/ToolCutOut.py:1260 -#: appTools/ToolCutOut.py:1615 +#: appTools/ToolCutOut.py:892 appTools/ToolCutOut.py:1263 +#: appTools/ToolCutOut.py:1619 #, fuzzy #| msgid "Open GCode file failed." msgid "Mouse bites failed." msgstr "Öffnen der GCode-Datei fehlgeschlagen." -#: appTools/ToolCutOut.py:899 +#: appTools/ToolCutOut.py:900 msgid "Any form CutOut operation finished." msgstr "Jede Form CutOut-Operation ist abgeschlossen." -#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586 +#: appTools/ToolCutOut.py:922 appTools/ToolDrilling.py:1586 #: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349 #: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326 @@ -15029,38 +15028,38 @@ msgstr "Jede Form CutOut-Operation ist abgeschlossen." msgid "Object not found" msgstr "Objekt nicht gefunden" -#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187 +#: appTools/ToolCutOut.py:1115 appTools/ToolCutOut.py:1188 msgid "Rectangular cutout with negative margin is not possible." msgstr "Ein rechteckiger Ausschnitt mit negativem Rand ist nicht möglich." -#: appTools/ToolCutOut.py:1268 +#: appTools/ToolCutOut.py:1271 #, fuzzy #| msgid "Any form CutOut operation finished." msgid "Rectangular CutOut operation finished." msgstr "Jede Form CutOut-Operation ist abgeschlossen." -#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316 +#: appTools/ToolCutOut.py:1287 appTools/ToolCutOut.py:1319 msgid "Could not retrieve Geometry object" msgstr "Geometrieobjekt konnte nicht abgerufen werden" -#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344 +#: appTools/ToolCutOut.py:1292 appTools/ToolCutOut.py:1347 msgid "Geometry object for manual cutout not found" msgstr "Geometrieobjekt für manuellen Ausschnitt nicht gefunden" -#: appTools/ToolCutOut.py:1292 +#: appTools/ToolCutOut.py:1295 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:1380 +#: appTools/ToolCutOut.py:1383 #, fuzzy #| msgid "Generate the Geometry object." msgid "No tool in the Geometry object." msgstr "Generieren Sie das Geometrieobjekt." -#: appTools/ToolCutOut.py:1401 +#: appTools/ToolCutOut.py:1404 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -15070,11 +15069,11 @@ 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/ToolCutOut.py:1413 +#: appTools/ToolCutOut.py:1416 msgid "Could not retrieve Gerber object" msgstr "Gerber-Objekt konnte nicht abgerufen werden" -#: appTools/ToolCutOut.py:1418 +#: appTools/ToolCutOut.py:1421 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." @@ -15082,7 +15081,7 @@ 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:1424 +#: appTools/ToolCutOut.py:1427 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -15090,36 +15089,36 @@ 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:1459 +#: appTools/ToolCutOut.py:1462 msgid "Geometry not supported for cutout" msgstr "Geometrie für Ausschnitt nicht unterstützt" -#: appTools/ToolCutOut.py:1531 +#: appTools/ToolCutOut.py:1534 msgid "Making manual bridge gap..." msgstr "Manuelle Brückenlücke herstellen ..." -#: appTools/ToolCutOut.py:1619 +#: appTools/ToolCutOut.py:1623 msgid "Finished manual adding of gaps." msgstr "" -#: appTools/ToolCutOut.py:1961 +#: appTools/ToolCutOut.py:1965 msgid "Cutout PCB" msgstr "Ausschnitt PCB" -#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513 +#: appTools/ToolCutOut.py:1991 appTools/ToolDblSided.py:515 #: appTools/ToolPanelize.py:652 msgid "Source Object" msgstr "Quellobjekt" -#: appTools/ToolCutOut.py:1988 +#: appTools/ToolCutOut.py:1992 msgid "Object to be cutout" msgstr "Auszuschneidendes Objekt" -#: appTools/ToolCutOut.py:1993 +#: appTools/ToolCutOut.py:1997 msgid "Kind" msgstr "Typ" -#: appTools/ToolCutOut.py:2015 +#: appTools/ToolCutOut.py:2019 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -15131,7 +15130,7 @@ msgstr "" "Was hier ausgewählt wird, bestimmt die Art\n" "von Objekten, die die Combobox 'Object' füllen." -#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125 +#: appTools/ToolCutOut.py:2078 appTools/ToolIsolation.py:3125 #: appTools/ToolNCC.py:3999 appTools/ToolPaint.py:2901 msgid "" "Add a new tool to the Tool Table\n" @@ -15141,27 +15140,27 @@ msgid "" "in the Tools DB then a default tool is added." msgstr "" -#: appTools/ToolCutOut.py:2100 +#: appTools/ToolCutOut.py:2104 msgid "Tool Parameters" msgstr "Werkzeugparameter" -#: appTools/ToolCutOut.py:2249 +#: appTools/ToolCutOut.py:2253 #, fuzzy #| msgid "Auto" msgid "Automatic" msgstr "Auto" -#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324 +#: appTools/ToolCutOut.py:2253 appTools/ToolCutOut.py:2328 #, fuzzy #| msgid "B. Manual Bridge Gaps" msgid "Bridge Gaps" msgstr "B. Manuelle Brückenlücken" -#: appTools/ToolCutOut.py:2251 +#: appTools/ToolCutOut.py:2255 msgid "This section handle creation of automatic bridge gaps." msgstr "Dieser Abschnitt behandelt die Erstellung automatischer Brückenlücken." -#: appTools/ToolCutOut.py:2290 +#: appTools/ToolCutOut.py:2294 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -15171,7 +15170,7 @@ msgstr "" "Die Ausschnittform kann eine beliebige Form haben.\n" "Nützlich, wenn die Leiterplatte eine nicht rechteckige Form hat." -#: appTools/ToolCutOut.py:2305 +#: appTools/ToolCutOut.py:2309 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -15183,7 +15182,7 @@ msgstr "" "immer eine rechteckige Form und es wird sein\n" "der Begrenzungsrahmen des Objekts." -#: appTools/ToolCutOut.py:2326 +#: appTools/ToolCutOut.py:2330 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -15193,11 +15192,11 @@ msgstr "" "Dies geschieht durch einen Mausklick auf den Umfang des\n" "Geometrieobjekt, das als Ausschnittobjekt verwendet wird. " -#: appTools/ToolCutOut.py:2342 +#: appTools/ToolCutOut.py:2346 msgid "Generate Manual Geometry" msgstr "Manuelle Geometrie erzeugen" -#: appTools/ToolCutOut.py:2345 +#: appTools/ToolCutOut.py:2349 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -15209,21 +15208,21 @@ msgstr "" "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:2365 +#: appTools/ToolCutOut.py:2369 #, fuzzy #| msgid "Subtract Geometry" msgid "Manual cutout Geometry" msgstr "Geometrie subtrahieren" -#: appTools/ToolCutOut.py:2367 +#: appTools/ToolCutOut.py:2371 msgid "Geometry object used to create the manual cutout." msgstr "Geometrieobjekt zum Erstellen des manuellen Ausschnitts." -#: appTools/ToolCutOut.py:2374 +#: appTools/ToolCutOut.py:2378 msgid "Manual Add Bridge Gaps" msgstr "Manuelles Hinzufügen von Brückenlücken" -#: appTools/ToolCutOut.py:2377 +#: appTools/ToolCutOut.py:2381 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -15267,33 +15266,33 @@ msgstr "" "Es sind keine Ausrichtungsbohrkoordinaten vorhanden. Fügen Sie sie hinzu und " "versuchen Sie es erneut." -#: appTools/ToolDblSided.py:213 +#: appTools/ToolDblSided.py:215 msgid "Excellon object with alignment drills created..." msgstr "Excellon-Objekt mit Ausrichtungsbohrern erstellt ..." -#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209 +#: appTools/ToolDblSided.py:226 appTools/ToolPunchGerber.py:209 msgid "There is no Excellon object loaded ..." msgstr "Es ist kein Excellon-Objekt geladen ..." -#: appTools/ToolDblSided.py:236 +#: appTools/ToolDblSided.py:238 msgid "Click on canvas within the desired Excellon drill hole" msgstr "" -#: appTools/ToolDblSided.py:280 +#: appTools/ToolDblSided.py:282 #, fuzzy #| msgid "Mirror Reference point" msgid "Mirror reference point set." msgstr "Referenzpunkt spiegeln" -#: appTools/ToolDblSided.py:308 +#: appTools/ToolDblSided.py:310 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "Nur Gerber-, Excellon- und Geometrie-Objekte können gespiegelt werden." -#: appTools/ToolDblSided.py:320 +#: appTools/ToolDblSided.py:322 msgid "There is no Box object loaded ..." msgstr "Es ist kein Box-Objekt geladen ..." -#: appTools/ToolDblSided.py:330 +#: appTools/ToolDblSided.py:332 msgid "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." @@ -15301,31 +15300,31 @@ msgstr "" "Das Punktfeld enthält keine Punktkoordinaten. Fügen Sie Coords hinzu und " "versuchen Sie es erneut ..." -#: appTools/ToolDblSided.py:337 camlib.py:2401 +#: appTools/ToolDblSided.py:339 camlib.py:2401 msgid "Object was mirrored" msgstr "Objekt wurde gespiegelt" -#: appTools/ToolDblSided.py:403 app_Main.py:4635 app_Main.py:4790 +#: appTools/ToolDblSided.py:405 app_Main.py:4558 app_Main.py:4713 msgid "Failed. No object(s) selected..." msgstr "Gescheitert. Kein Objekt ausgewählt ..." -#: appTools/ToolDblSided.py:487 +#: appTools/ToolDblSided.py:489 msgid "2-Sided PCB" msgstr "2-seitige PCB" -#: appTools/ToolDblSided.py:514 +#: appTools/ToolDblSided.py:516 msgid "Objects to be mirrored" msgstr "Zu spiegelnde Objekte" -#: appTools/ToolDblSided.py:521 +#: appTools/ToolDblSided.py:523 msgid "Select the type of application object to be processed in this tool." msgstr "" -#: appTools/ToolDblSided.py:555 +#: appTools/ToolDblSided.py:557 msgid "Bounds Values" msgstr "Grenzen Werte" -#: appTools/ToolDblSided.py:557 +#: appTools/ToolDblSided.py:559 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -15333,39 +15332,39 @@ msgstr "" "Wählen Sie auf der Leinwand die Objekte aus.\n" "für die Grenzwerte berechnet werden sollen." -#: appTools/ToolDblSided.py:567 +#: appTools/ToolDblSided.py:569 msgid "X min" msgstr "X min" -#: appTools/ToolDblSided.py:569 appTools/ToolDblSided.py:583 +#: appTools/ToolDblSided.py:571 appTools/ToolDblSided.py:585 msgid "Minimum location." msgstr "Mindeststandort." -#: appTools/ToolDblSided.py:581 +#: appTools/ToolDblSided.py:583 msgid "Y min" msgstr "Y min" -#: appTools/ToolDblSided.py:595 +#: appTools/ToolDblSided.py:597 msgid "X max" msgstr "X max" -#: appTools/ToolDblSided.py:597 appTools/ToolDblSided.py:611 +#: appTools/ToolDblSided.py:599 appTools/ToolDblSided.py:613 msgid "Maximum location." msgstr "Maximaler Standort." -#: appTools/ToolDblSided.py:609 +#: appTools/ToolDblSided.py:611 msgid "Y max" msgstr "Y max" -#: appTools/ToolDblSided.py:620 +#: appTools/ToolDblSided.py:622 msgid "Center point coordinates" msgstr "Mittelpunktskoordinaten" -#: appTools/ToolDblSided.py:622 +#: appTools/ToolDblSided.py:624 msgid "Centroid" msgstr "Schwerpunkt" -#: appTools/ToolDblSided.py:624 +#: appTools/ToolDblSided.py:626 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -15373,11 +15372,11 @@ msgstr "" "Die Mittelpunktposition für das Rechteck\n" "begrenzende Form. Centroid. Das Format ist (x, y)." -#: appTools/ToolDblSided.py:633 +#: appTools/ToolDblSided.py:635 msgid "Calculate Bounds Values" msgstr "Berechnen Sie Grenzwerte" -#: appTools/ToolDblSided.py:635 +#: appTools/ToolDblSided.py:637 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" @@ -15387,15 +15386,15 @@ msgstr "" "zur Auswahl von Objekten.\n" "Die Hüllkurvenform verläuft parallel zur X- und Y-Achse." -#: appTools/ToolDblSided.py:660 +#: appTools/ToolDblSided.py:662 msgid "Mirror Operation" msgstr "Spiegelbetrieb" -#: appTools/ToolDblSided.py:661 +#: appTools/ToolDblSided.py:663 msgid "Parameters for the mirror operation" msgstr "Parameter für die Spiegeloperation" -#: appTools/ToolDblSided.py:683 +#: appTools/ToolDblSided.py:685 #, fuzzy #| msgid "" #| "The coordinates used as reference for the mirror operation.\n" @@ -15422,11 +15421,11 @@ msgstr "" "werden\n" "Begrenzungsrahmen eines anderen unten ausgewählten Objekts" -#: appTools/ToolDblSided.py:703 +#: appTools/ToolDblSided.py:705 msgid "Point coordinates" msgstr "Punktkoordinaten" -#: appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:710 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -15442,21 +15441,21 @@ msgstr "" "und klicken Sie mit der linken Maustaste auf die Leinwand oder Sie können " "die Koordinaten manuell eingeben." -#: appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:728 msgid "Object that holds holes that can be picked as reference for mirroring." msgstr "" -#: appTools/ToolDblSided.py:741 +#: appTools/ToolDblSided.py:743 msgid "Pick hole" msgstr "" -#: appTools/ToolDblSided.py:743 +#: appTools/ToolDblSided.py:745 msgid "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." msgstr "" -#: appTools/ToolDblSided.py:759 +#: appTools/ToolDblSided.py:761 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -15466,11 +15465,11 @@ msgstr "" "Die Koordinaten der Mitte des Begrenzungsrahmens werden verwendet\n" "als Referenz für den Spiegelbetrieb." -#: appTools/ToolDblSided.py:785 +#: appTools/ToolDblSided.py:787 msgid "Mirror" msgstr "Spiegeln" -#: appTools/ToolDblSided.py:787 +#: appTools/ToolDblSided.py:789 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -15480,11 +15479,11 @@ msgstr "" "die angegebene Achse. Erstellt kein neues\n" "Objekt, ändert es aber." -#: appTools/ToolDblSided.py:813 +#: appTools/ToolDblSided.py:815 msgid "PCB Alignment" msgstr "PCB-Ausrichtung" -#: appTools/ToolDblSided.py:815 appTools/ToolDblSided.py:923 +#: appTools/ToolDblSided.py:817 appTools/ToolDblSided.py:925 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -15494,11 +15493,11 @@ msgstr "" "spezifizierte Ausrichtungslöcher und deren Spiegel\n" "Bilder." -#: appTools/ToolDblSided.py:822 +#: appTools/ToolDblSided.py:824 msgid "Drill Diameter" msgstr "Bohrdurchmesser" -#: appTools/ToolDblSided.py:857 appTools/ToolDblSided.py:864 +#: appTools/ToolDblSided.py:859 appTools/ToolDblSided.py:866 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -15509,11 +15508,11 @@ msgstr "" "vom ersten Ausrichtungsbohrer durch Spiegeln.\n" "Sie kann im Abschnitt Spiegelparameter -> Referenz geändert werden" -#: appTools/ToolDblSided.py:877 +#: appTools/ToolDblSided.py:879 msgid "Alignment Drill Coordinates" msgstr "Ausrichtungsbohrkoordinaten" -#: appTools/ToolDblSided.py:879 +#: appTools/ToolDblSided.py:881 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -15531,11 +15530,11 @@ msgstr "" "- Ein Bohrer in Spiegelposition über der oben in 'Achse ausrichten' " "ausgewählten Achse." -#: appTools/ToolDblSided.py:887 +#: appTools/ToolDblSided.py:889 msgid "Drill coordinates" msgstr "Bohrkoordinaten" -#: appTools/ToolDblSided.py:894 +#: appTools/ToolDblSided.py:896 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -15562,15 +15561,15 @@ msgstr "" "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:909 +#: appTools/ToolDblSided.py:911 msgid "Delete Last" msgstr "Letzte löschen" -#: appTools/ToolDblSided.py:911 +#: appTools/ToolDblSided.py:913 msgid "Delete the last coordinates tuple in the list." msgstr "Delete the last coordinates tuple in the list." -#: appTools/ToolDblSided.py:921 +#: appTools/ToolDblSided.py:923 msgid "Create Excellon Object" msgstr "Excellon-Objekt erstellen" @@ -15971,15 +15970,15 @@ msgstr "" msgid "No drills extracted. Try different parameters." msgstr "Keine Bohrer extrahiert. Probieren Sie verschiedene Parameter aus." -#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687 +#: appTools/ToolExtractDrills.py:421 appTools/ToolExtractDrills.py:688 msgid "Extract Drills" msgstr "Bohrer extrahieren" -#: appTools/ToolExtractDrills.py:454 +#: appTools/ToolExtractDrills.py:455 msgid "Gerber from which to extract drill holes" msgstr "Gerber, aus dem Bohrlöcher gezogen werden sollen" -#: appTools/ToolExtractDrills.py:689 +#: appTools/ToolExtractDrills.py:690 msgid "Extract drills from a given Gerber file." msgstr "Extrahieren Sie Bohrer aus einer bestimmten Gerber-Datei." @@ -15987,29 +15986,29 @@ msgstr "Extrahieren Sie Bohrer aus einer bestimmten Gerber-Datei." msgid "Click to add first Fiducial. Bottom Left..." msgstr "Klicken um den ersten Bezugspunkt unten links hinzuzufügen..." -#: appTools/ToolFiducials.py:501 +#: appTools/ToolFiducials.py:503 msgid "Click to add the last fiducial. Top Right..." msgstr "Klicken um den letzten Bezugspunkt oben rechts hinzuzufügen..." -#: appTools/ToolFiducials.py:506 +#: appTools/ToolFiducials.py:508 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:509 appTools/ToolFiducials.py:518 +#: appTools/ToolFiducials.py:511 appTools/ToolFiducials.py:520 msgid "Done. All fiducials have been added." msgstr "Fertig. Alle Bezugspunkte hinzugefügt." -#: appTools/ToolFiducials.py:595 +#: appTools/ToolFiducials.py:597 msgid "Fiducials Tool exit." msgstr "Bezugspunkttool beenden." -#: appTools/ToolFiducials.py:667 +#: appTools/ToolFiducials.py:669 msgid "Fiducials Coordinates" msgstr "Bezugspunktkoordinaten" -#: appTools/ToolFiducials.py:669 +#: appTools/ToolFiducials.py:671 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -16017,7 +16016,7 @@ msgstr "" "Eine Tabelle der Bezugspunkte mit Koordinaten \n" "im Format (x,z)" -#: appTools/ToolFiducials.py:805 +#: appTools/ToolFiducials.py:807 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -16027,31 +16026,31 @@ msgstr "" "platziert.\n" "\"Manuell\" Die Bezugspunkte werden manuell platziert." -#: appTools/ToolFiducials.py:851 +#: appTools/ToolFiducials.py:853 msgid "Thickness of the line that makes the fiducial." msgstr "Dicke der Linie, die den Bezugspunkt macht." -#: appTools/ToolFiducials.py:882 +#: appTools/ToolFiducials.py:884 msgid "Add Fiducial" msgstr "Bezugspunkt hinzufügen" -#: appTools/ToolFiducials.py:884 +#: appTools/ToolFiducials.py:886 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:900 +#: appTools/ToolFiducials.py:902 msgid "Soldermask Gerber" msgstr "Lötpastenmaske Gerber" -#: appTools/ToolFiducials.py:902 +#: appTools/ToolFiducials.py:904 msgid "The Soldermask Gerber object." msgstr "Lötpastenmaske Gerber-Objekt." -#: appTools/ToolFiducials.py:914 +#: appTools/ToolFiducials.py:916 msgid "Add Soldermask Opening" msgstr "Lotpastenmaske Öffnung hinzufügen" -#: appTools/ToolFiducials.py:916 +#: appTools/ToolFiducials.py:918 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -16248,7 +16247,7 @@ msgstr "Bildwerkzeug" msgid "Import IMAGE" msgstr "BILD importieren" -#: appTools/ToolImage.py:142 app_Main.py:8893 app_Main.py:8943 +#: appTools/ToolImage.py:142 app_Main.py:9782 app_Main.py:9832 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -16260,9 +16259,9 @@ msgstr "" msgid "Importing Image" msgstr "Bild importieren" -#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8921 -#: app_Main.py:8976 app_Main.py:9040 app_Main.py:9103 app_Main.py:9169 -#: app_Main.py:9234 app_Main.py:9291 +#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:9810 +#: app_Main.py:9865 app_Main.py:9929 app_Main.py:9992 app_Main.py:10058 +#: app_Main.py:10123 app_Main.py:10180 msgid "Opened" msgstr "Geöffnet" @@ -16391,7 +16390,7 @@ msgid "New Tool" msgstr "Neues Werkzeug" #: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:467 -#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4500 +#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4423 msgid "Adding Tool cancelled" msgstr "Addierwerkzeug abgebrochen" @@ -16561,7 +16560,7 @@ msgid "Click the end point of the paint area." msgstr "Klicken Sie auf den Endpunkt des Malbereichs." #: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3722 -#: appTools/ToolPaint.py:2633 app_Main.py:5779 app_Main.py:5789 +#: appTools/ToolPaint.py:2633 app_Main.py:5702 app_Main.py:5712 msgid "Tool from DB added in Tool Table." msgstr "Werkzeug aus Werkzeugdatenbank zur Werkzeugtabelle hinzugefügt." @@ -17115,11 +17114,11 @@ msgstr "PDF öffnen abgebrochen" msgid "Parsing PDF file ..." msgstr "PDF-Datei wird analysiert ..." -#: appTools/ToolPDF.py:138 app_Main.py:9134 +#: appTools/ToolPDF.py:138 app_Main.py:10023 msgid "Failed to open" msgstr "Gescheitert zu öffnen" -#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9083 +#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9972 msgid "No geometry found in file" msgstr "Keine Geometrie in der Datei gefunden" @@ -17555,7 +17554,7 @@ msgstr "PcbWizard-INF-Datei wurde geladen." msgid "Main PcbWizard Excellon file loaded." msgstr "Haupt-PcbWizard Excellon-Datei geladen." -#: appTools/ToolPcbWizard.py:310 app_Main.py:9063 +#: appTools/ToolPcbWizard.py:310 app_Main.py:9952 msgid "This is not Excellon file." msgstr "Dies ist keine Excellon-Datei." @@ -17686,9 +17685,9 @@ msgstr "" "der andere hat die Erweiterung .INF." #: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 -#: app_Main.py:4976 app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 -#: app_Main.py:7503 app_Main.py:7545 app_Main.py:7587 app_Main.py:7631 -#: app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 +#: app_Main.py:4899 app_Main.py:8253 app_Main.py:8351 app_Main.py:8391 +#: app_Main.py:8431 app_Main.py:8472 app_Main.py:8513 app_Main.py:8556 +#: app_Main.py:8599 app_Main.py:9058 app_Main.py:9062 msgid "No object selected." msgstr "Kein Objekt ausgewählt." @@ -17781,8 +17780,8 @@ msgstr "" "Erstellen Sie innerhalb des ausgewählten Objekts ein Gerber-Objekt\n" "das angegebene Feld." -#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485 -#: appTools/ToolQRCode.py:534 +#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:486 +#: appTools/ToolQRCode.py:535 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Abgebrochen. Es befindet sich kein QRCode im Feld." @@ -17794,32 +17793,32 @@ msgstr "QRCode Geometrie erzeugen" msgid "Click on the Destination point ..." msgstr "Klicken Sie auf den Zielpunkt ..." -#: appTools/ToolQRCode.py:321 +#: appTools/ToolQRCode.py:322 msgid "QRCode Tool done." msgstr "QRCode Tool fertig." -#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521 +#: appTools/ToolQRCode.py:518 appTools/ToolQRCode.py:522 msgid "Export PNG" msgstr "PNG exportieren" -#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7353 -#: app_Main.py:7357 +#: appTools/ToolQRCode.py:565 appTools/ToolQRCode.py:569 app_Main.py:8284 +#: app_Main.py:8288 msgid "Export SVG" msgstr "SVG exportieren" -#: appTools/ToolQRCode.py:661 +#: appTools/ToolQRCode.py:662 msgid "Gerber Object to which the QRCode will be added." msgstr "Gerber-Objekt zu dem der QRCode hinzugefügt wird." -#: appTools/ToolQRCode.py:697 +#: appTools/ToolQRCode.py:698 msgid "The parameters used to shape the QRCode." msgstr "Parameter zum Aussehen des QRCodes." -#: appTools/ToolQRCode.py:797 +#: appTools/ToolQRCode.py:798 msgid "Export QRCode" msgstr "QRCode exportieren" -#: appTools/ToolQRCode.py:799 +#: appTools/ToolQRCode.py:800 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -17827,31 +17826,31 @@ msgstr "" "Zeigt einen Satz von Bedienelementen um den QRCode\n" "in eine SVG oder ein PNG File zu exportieren." -#: appTools/ToolQRCode.py:838 +#: appTools/ToolQRCode.py:839 msgid "Transparent back color" msgstr "Transparente Hintergrundfarbe" -#: appTools/ToolQRCode.py:863 +#: appTools/ToolQRCode.py:864 msgid "Export QRCode SVG" msgstr "QRCode als SVG exportieren" -#: appTools/ToolQRCode.py:865 +#: appTools/ToolQRCode.py:866 msgid "Export a SVG file with the QRCode content." msgstr "Export als SVG Code mit dem QRCode Inhalt." -#: appTools/ToolQRCode.py:876 +#: appTools/ToolQRCode.py:877 msgid "Export QRCode PNG" msgstr "G-Code als PNG exportieren" -#: appTools/ToolQRCode.py:878 +#: appTools/ToolQRCode.py:879 msgid "Export a PNG image file with the QRCode content." msgstr "Exportiert den QRCode als PNG Datei." -#: appTools/ToolQRCode.py:889 +#: appTools/ToolQRCode.py:890 msgid "Insert QRCode" msgstr "QRCode einfügen" -#: appTools/ToolQRCode.py:891 +#: appTools/ToolQRCode.py:892 msgid "Create the QRCode object." msgstr "Erzeugen des QRCode Objektes." @@ -18602,7 +18601,7 @@ msgstr "Möchten Sie die aktuelle Sprache wirklich in ändern" msgid "Apply Language ..." msgstr "Sprache anwenden ..." -#: appTranslation.py:206 app_Main.py:3383 +#: appTranslation.py:206 app_Main.py:3306 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -18638,44 +18637,44 @@ msgstr "" "Die Canvas-Initialisierung wurde gestartet.\n" "Canvas-Initialisierung abgeschlossen in" -#: app_Main.py:1596 app_Main.py:7007 +#: app_Main.py:1292 app_Main.py:8831 msgid "New Project - Not saved" msgstr "Neues Projekt - Nicht gespeichert" -#: app_Main.py:1702 +#: app_Main.py:1711 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." -#: app_Main.py:1769 +#: app_Main.py:1778 msgid "Open Config file failed." msgstr "Öffnen der Config-Datei ist fehlgeschlagen." -#: app_Main.py:1784 +#: app_Main.py:1793 msgid "Open Script file failed." msgstr "Open Script-Datei ist fehlgeschlagen." -#: app_Main.py:1810 +#: app_Main.py:1819 msgid "Open Excellon file failed." msgstr "Öffnen der Excellon-Datei fehlgeschlagen." -#: app_Main.py:1823 +#: app_Main.py:1832 msgid "Open GCode file failed." msgstr "Öffnen der GCode-Datei fehlgeschlagen." -#: app_Main.py:1836 +#: app_Main.py:1845 msgid "Open Gerber file failed." msgstr "Öffnen der Gerber-Datei fehlgeschlagen." -#: app_Main.py:2174 +#: app_Main.py:2183 msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." msgstr "" "Wählen Sie ein zu bearbeitendes Geometrie-, Gerber-, Excellon- oder CNCJob-" "Objekt aus." -#: app_Main.py:2189 +#: app_Main.py:2198 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -18685,27 +18684,27 @@ msgstr "" "Geometrie ist nicht möglich.\n" "Bearbeiten Sie jeweils nur eine Geometrie." -#: app_Main.py:2267 +#: app_Main.py:2276 msgid "EDITOR Area" msgstr "" -#: app_Main.py:2269 +#: app_Main.py:2278 msgid "Editor is activated ..." msgstr "Editor wurde aktiviert ..." -#: app_Main.py:2290 +#: app_Main.py:2299 msgid "Do you want to save the edited object?" msgstr "Möchten Sie das bearbeitete Objekt speichern?" -#: app_Main.py:2331 +#: app_Main.py:2340 msgid "Object empty after edit." msgstr "Das Objekt ist nach der Bearbeitung leer." -#: app_Main.py:2336 app_Main.py:2354 app_Main.py:2385 app_Main.py:2401 +#: app_Main.py:2345 app_Main.py:2363 app_Main.py:2394 app_Main.py:2410 msgid "Editor exited. Editor content saved." msgstr "Editor beendet. Editorinhalt gespeichert." -#: app_Main.py:2405 app_Main.py:2446 +#: app_Main.py:2414 app_Main.py:2455 #, fuzzy #| msgid "Select a Gerber, Geometry or Excellon Object to update." msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update." @@ -18713,77 +18712,61 @@ msgstr "" "Wählen Sie ein Gerber-, Geometrie- oder Excellon-Objekt zum Aktualisieren " "aus." -#: app_Main.py:2408 +#: app_Main.py:2417 msgid "is updated, returning to App..." msgstr "wurde aktualisiert..." -#: app_Main.py:2421 +#: app_Main.py:2430 msgid "Editor exited. Editor content was not saved." msgstr "Editor beendet. Der Inhalt des Editors wurde nicht gespeichert." -#: app_Main.py:2469 +#: app_Main.py:2478 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "" "Wählen Sie ein Gerber-, Geometrie- oder Excellon-Objekt zum Aktualisieren " "aus." -#: app_Main.py:2573 app_Main.py:2577 -msgid "Import FlatCAM Preferences" -msgstr "FlatCAM-Voreinstellungen importieren" - -#: app_Main.py:2588 -msgid "Imported Defaults from" -msgstr "Voreinstellungen wurden importiert von" - -#: app_Main.py:2608 app_Main.py:2614 -msgid "Export FlatCAM Preferences" -msgstr "FlatCAM-Voreinstellungen exportieren" - -#: app_Main.py:2634 -msgid "Exported preferences to" -msgstr "Exportierte Einstellungen nach" - -#: app_Main.py:2654 app_Main.py:2659 +#: app_Main.py:2586 app_Main.py:2591 msgid "Save to file" msgstr "Speichern unter" -#: app_Main.py:2683 +#: app_Main.py:2615 msgid "Could not load the file." msgstr "Die Datei konnte nicht geladen werden." -#: app_Main.py:2699 +#: app_Main.py:2631 msgid "Exported file to" msgstr "Exportierte Datei nach" -#: app_Main.py:2736 +#: app_Main.py:2668 msgid "Failed to open recent files file for writing." msgstr "Fehler beim Öffnen der zuletzt geöffneten Datei zum Schreiben." -#: app_Main.py:2747 +#: app_Main.py:2679 msgid "Failed to open recent projects file for writing." msgstr "Fehler beim Öffnen der letzten Projektdatei zum Schreiben." -#: app_Main.py:2802 +#: app_Main.py:2734 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "2D-Computer-Aided-Printed-Circuit-Board-Herstellung" -#: app_Main.py:2803 +#: app_Main.py:2735 msgid "Development" msgstr "Entwicklung" -#: app_Main.py:2804 +#: app_Main.py:2736 msgid "DOWNLOAD" msgstr "HERUNTERLADEN" -#: app_Main.py:2805 +#: app_Main.py:2737 msgid "Issue tracker" msgstr "Problem Tracker" -#: app_Main.py:2824 +#: app_Main.py:2756 msgid "Licensed under the MIT license" msgstr "Lizenziert unter der MIT-Lizenz" -#: app_Main.py:2833 +#: app_Main.py:2765 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -18838,7 +18821,7 @@ msgstr "" "ZUSAMMENHANG MIT DER\n" " SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWARE ENTSTANDEN." -#: app_Main.py:2855 +#: app_Main.py:2787 msgid "" "Some of the icons used are from the following sources:
Icons by FreepikPixel perfect erstellt wurden von www.flaticon.com
" -#: app_Main.py:2891 +#: app_Main.py:2823 msgid "Splash" msgstr "Begrüßungsbildschirm" -#: app_Main.py:2897 +#: app_Main.py:2829 msgid "Programmers" msgstr "Programmierer" -#: app_Main.py:2903 +#: app_Main.py:2835 msgid "Translators" msgstr "Übersetzer" -#: app_Main.py:2909 +#: app_Main.py:2841 msgid "License" msgstr "Lizenz" -#: app_Main.py:2915 +#: app_Main.py:2847 msgid "Attributions" msgstr "Zuschreibungen" -#: app_Main.py:2938 +#: app_Main.py:2870 msgid "Programmer" msgstr "Programmierer" -#: app_Main.py:2939 +#: app_Main.py:2871 msgid "Status" msgstr "Status" -#: app_Main.py:2940 app_Main.py:3020 +#: app_Main.py:2872 app_Main.py:2952 msgid "E-mail" msgstr "Email" -#: app_Main.py:2943 +#: app_Main.py:2875 msgid "Program Author" msgstr "Programmautor" -#: app_Main.py:2948 +#: app_Main.py:2880 msgid "BETA Maintainer >= 2019" msgstr "Betreuer >= 2019" -#: app_Main.py:3017 +#: app_Main.py:2949 msgid "Language" msgstr "Sprache" -#: app_Main.py:3018 +#: app_Main.py:2950 msgid "Translator" msgstr "Übersetzer" -#: app_Main.py:3019 +#: app_Main.py:2951 msgid "Corrections" msgstr "Korrekturen" -#: app_Main.py:3104 +#: app_Main.py:3036 msgid "Important Information's" msgstr "Important Information's" -#: app_Main.py:3152 +#: app_Main.py:3084 #, python-format msgid "This program is %s and free in a very wide meaning of the word." msgstr "" "Dieses Programm ist %s und in einer sehr weiten Bedeutung des Wortes " "kostenlos." -#: app_Main.py:3153 +#: app_Main.py:3085 msgid "Yet it cannot evolve without contributions." msgstr "Es kann sich jedoch nicht ohne Beiträge entwickeln." -#: app_Main.py:3154 +#: app_Main.py:3086 msgid "If you want to see this application grow and become better and better" msgstr "Wenn Sie möchten, dass diese Anwendung wächst und immer besser wird" -#: app_Main.py:3155 +#: app_Main.py:3087 msgid "you can contribute to the development yourself by:" msgstr "Sie können selbst zur Entwicklung beitragen, indem Sie:" -#: app_Main.py:3156 +#: app_Main.py:3088 msgid "Pull Requests on the Bitbucket repository, if you are a developer" msgstr "Pull-Anfragen im Bitbucket-Repository, wenn Sie Entwickler sind" -#: app_Main.py:3158 +#: app_Main.py:3090 msgid "Bug Reports by providing the steps required to reproduce the bug" msgstr "" "Fehlerberichte, indem Sie die Schritte bereitstellen, die zum Reproduzieren " "des Fehlers erforderlich sind" -#: app_Main.py:3189 +#: app_Main.py:3121 msgid "Contribute" msgstr "Beisteuern" -#: app_Main.py:3212 +#: app_Main.py:3144 msgid "Links Exchange" msgstr "Links austauschen" -#: app_Main.py:3224 app_Main.py:3243 +#: app_Main.py:3156 app_Main.py:3175 msgid "Soon ..." msgstr "Bald ..." -#: app_Main.py:3231 +#: app_Main.py:3163 msgid "How To's" msgstr "How To's" -#: app_Main.py:3343 +#: app_Main.py:3275 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -18982,32 +18965,32 @@ msgstr "" "Wenn Sie keine Informationen zu FlatCAM beta erhalten können\n" "Verwenden Sie den Link zum YouTube-Kanal im Menü Hilfe." -#: app_Main.py:3350 +#: app_Main.py:3282 msgid "Alternative website" msgstr "Alternative Website" -#: app_Main.py:3701 +#: app_Main.py:3624 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "" "Ausgewählte Excellon-Dateierweiterungen, die bei FlatCAM registriert sind." -#: app_Main.py:3723 +#: app_Main.py:3646 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "" "Ausgewählte GCode-Dateierweiterungen, die bei FlatCAM registriert sind." -#: app_Main.py:3745 +#: app_Main.py:3668 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "" "Ausgewählte Gerber-Dateierweiterungen, die bei FlatCAM registriert sind." -#: app_Main.py:3933 app_Main.py:3994 app_Main.py:4024 +#: app_Main.py:3856 app_Main.py:3917 app_Main.py:3947 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "Zum Verbinden sind mindestens zwei Objekte erforderlich. Derzeit ausgewählte " "Objekte" -#: app_Main.py:3942 +#: app_Main.py:3865 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 " @@ -19025,52 +19008,52 @@ msgstr "" "und das Ergebnis entspricht möglicherweise nicht dem, was erwartet wurde.\n" "Überprüfen Sie den generierten GCODE." -#: app_Main.py:3956 app_Main.py:3966 +#: app_Main.py:3879 app_Main.py:3889 msgid "Geometry merging finished" msgstr "Zusammenführung der Geometrien beendet" -#: app_Main.py:3989 +#: app_Main.py:3912 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "" "Gescheitert. Die Zusammenfügung von Excellon funktioniert nur bei Excellon-" "Objekten." -#: app_Main.py:4001 +#: app_Main.py:3924 msgid "Excellon merging finished" msgstr "Excellon-Bearbeitung abgeschlossen" -#: app_Main.py:4019 +#: app_Main.py:3942 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "" "Gescheitert. Das Zusammenfügen für Gerber-Objekte funktioniert nur bei " "Gerber-Objekten." -#: app_Main.py:4029 +#: app_Main.py:3952 msgid "Gerber merging finished" msgstr "Erledigt. Gerber-Bearbeitung beendet" -#: app_Main.py:4049 app_Main.py:4086 +#: app_Main.py:3972 app_Main.py:4009 msgid "Failed. Select a Geometry Object and try again." msgstr "" "Gescheitert. Wählen Sie ein Geometrieobjekt aus und versuchen Sie es erneut." -#: app_Main.py:4053 app_Main.py:4091 +#: app_Main.py:3976 app_Main.py:4014 msgid "Expected a GeometryObject, got" msgstr "Erwartet ein GeometryObject, bekam" -#: app_Main.py:4068 +#: app_Main.py:3991 msgid "A Geometry object was converted to MultiGeo type." msgstr "Ein Geometrieobjekt wurde in den MultiGeo-Typ konvertiert." -#: app_Main.py:4106 +#: app_Main.py:4029 msgid "A Geometry object was converted to SingleGeo type." msgstr "Ein Geometrieobjekt wurde in den SingleGeo-Typ konvertiert." -#: app_Main.py:4339 +#: app_Main.py:4262 msgid "Toggle Units" msgstr "Einheiten wechseln" -#: app_Main.py:4343 +#: app_Main.py:4266 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -19082,24 +19065,24 @@ msgstr "" "aller Objekte entsprechend skaliert.\n" "Wollen Sie Fortsetzen?" -#: app_Main.py:4346 app_Main.py:4509 app_Main.py:4592 app_Main.py:7327 -#: app_Main.py:7343 app_Main.py:7681 app_Main.py:7693 +#: app_Main.py:4269 app_Main.py:4432 app_Main.py:4515 app_Main.py:8259 +#: app_Main.py:8274 app_Main.py:8605 app_Main.py:8617 msgid "Ok" msgstr "Ok" -#: app_Main.py:4396 +#: app_Main.py:4319 msgid "Converted units to" msgstr "Einheiten wurden umgerechnet in" -#: app_Main.py:4436 +#: app_Main.py:4359 msgid "Workspace enabled." msgstr "Arbeitsbereich aktiviert." -#: app_Main.py:4439 +#: app_Main.py:4362 msgid "Workspace disabled." msgstr "Arbeitsbereich deaktiviert." -#: app_Main.py:4503 +#: app_Main.py:4426 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -19108,11 +19091,11 @@ msgstr "" "ist.\n" "Gehen Sie zu Einstellungen -> Allgemein - Erweiterte Optionen anzeigen." -#: app_Main.py:4585 +#: app_Main.py:4508 msgid "Delete objects" msgstr "Objekte löschen" -#: app_Main.py:4590 +#: app_Main.py:4513 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -19120,92 +19103,92 @@ msgstr "" "Möchten Sie die ausgewählten Objekte\n" "wirklich dauerhaft löschen?" -#: app_Main.py:4633 +#: app_Main.py:4556 msgid "Object(s) deleted" msgstr "Objekt (e) gelöscht" -#: app_Main.py:4637 +#: app_Main.py:4560 msgid "Save the work in Editor and try again ..." msgstr "Speichern Sie den Editor und versuchen Sie es erneut ..." -#: app_Main.py:4666 +#: app_Main.py:4589 msgid "Object deleted" msgstr "Objekt (e) gelöscht" -#: app_Main.py:4693 +#: app_Main.py:4616 msgid "Click to set the origin ..." msgstr "Klicken Sie hier, um den Ursprung festzulegen ..." -#: app_Main.py:4715 +#: app_Main.py:4638 msgid "Setting Origin..." msgstr "Ursprung setzten ..." -#: app_Main.py:4728 app_Main.py:4830 +#: app_Main.py:4651 app_Main.py:4753 msgid "Origin set" msgstr "Ursprung gesetzt" -#: app_Main.py:4745 +#: app_Main.py:4668 msgid "Origin coordinates specified but incomplete." msgstr "Ursprungskoordinaten angegeben, aber unvollständig." -#: app_Main.py:4786 +#: app_Main.py:4709 msgid "Moving to Origin..." msgstr "Umzug zum Ursprung ..." -#: app_Main.py:4867 +#: app_Main.py:4790 msgid "Jump to ..." msgstr "Springen zu ..." -#: app_Main.py:4868 +#: app_Main.py:4791 msgid "Enter the coordinates in format X,Y:" msgstr "Geben Sie die Koordinaten im Format X, Y ein:" -#: app_Main.py:4878 +#: app_Main.py:4801 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Falsche Koordinaten. Koordinaten im Format eingeben: X, Y" -#: app_Main.py:4995 +#: app_Main.py:4918 msgid "Bottom-Left" msgstr "Unten links" -#: app_Main.py:4998 +#: app_Main.py:4921 msgid "Top-Right" msgstr "Oben rechts" -#: app_Main.py:5019 +#: app_Main.py:4942 msgid "Locate ..." msgstr "Lokalisieren ..." -#: app_Main.py:5292 app_Main.py:5367 app_Main.py:5530 +#: app_Main.py:5215 app_Main.py:5290 app_Main.py:5453 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." -#: app_Main.py:5556 +#: app_Main.py:5479 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 ..." -#: app_Main.py:5562 +#: app_Main.py:5485 msgid "The current task was gracefully closed on user request..." msgstr "" "Die aktuelle Aufgabe wurde auf Benutzeranforderung ordnungsgemäß " "geschlossen ..." -#: app_Main.py:5752 +#: app_Main.py:5675 msgid "Tools in Tools Database edited but not saved." msgstr "Werkzeugdatenbank geschlossen ohne zu speichern." -#: app_Main.py:5791 +#: app_Main.py:5714 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." -#: app_Main.py:5809 +#: app_Main.py:5732 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -19213,592 +19196,241 @@ msgstr "" "Ein oder mehrere Werkzeuge wurden geändert.\n" "Möchten Sie die Werkzeugdatenbank aktualisieren?" -#: app_Main.py:5811 +#: app_Main.py:5734 msgid "Save Tools Database" msgstr "Werkzeugdatenbank speichern" -#: app_Main.py:5857 +#: app_Main.py:5780 msgid "No object selected to Flip on Y axis." msgstr "Kein Objekt ausgewählt, um auf der Y-Achse zu spiegeln." -#: app_Main.py:5883 +#: app_Main.py:5806 msgid "Flip on Y axis done." msgstr "Y-Achse spiegeln fertig." -#: app_Main.py:5905 +#: app_Main.py:5828 msgid "No object selected to Flip on X axis." msgstr "Es wurde kein Objekt zum Spiegeln auf der X-Achse ausgewählt." -#: app_Main.py:5931 +#: app_Main.py:5854 msgid "Flip on X axis done." msgstr "Flip on X axis done." -#: app_Main.py:5953 +#: app_Main.py:5876 msgid "No object selected to Rotate." msgstr "Es wurde kein Objekt zum Drehen ausgewählt." -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Transform" msgstr "Verwandeln" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Enter the Angle value:" msgstr "Geben Sie den Winkelwert ein:" -#: app_Main.py:5986 +#: app_Main.py:5909 msgid "Rotation done." msgstr "Rotation abgeschlossen." -#: app_Main.py:5988 +#: app_Main.py:5911 msgid "Rotation movement was not executed." msgstr "Drehbewegung wurde nicht ausgeführt." -#: app_Main.py:6005 +#: app_Main.py:5928 msgid "No object selected to Skew/Shear on X axis." msgstr "Auf der X-Achse wurde kein Objekt zum Neigen / Schneiden ausgewählt." -#: app_Main.py:6026 +#: app_Main.py:5949 msgid "Skew on X axis done." msgstr "Neigung auf der X-Achse." -#: app_Main.py:6042 +#: app_Main.py:5965 msgid "No object selected to Skew/Shear on Y axis." msgstr "Kein Objekt für Neigung / Schneiden auf der Y-Achse ausgewählt." -#: app_Main.py:6063 +#: app_Main.py:5986 msgid "Skew on Y axis done." msgstr "Neigung auf der Y-Achse." -#: app_Main.py:6145 +#: app_Main.py:6068 msgid "New Grid ..." msgstr "Neues Raster ..." -#: app_Main.py:6146 +#: app_Main.py:6069 msgid "Enter a Grid Value:" msgstr "Geben Sie einen Rasterwert ein:" -#: app_Main.py:6154 app_Main.py:6178 +#: app_Main.py:6077 app_Main.py:6101 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." -#: app_Main.py:6159 +#: app_Main.py:6082 msgid "New Grid added" msgstr "Neues Raster" -#: app_Main.py:6161 +#: app_Main.py:6084 msgid "Grid already exists" msgstr "Netz existiert bereits" -#: app_Main.py:6163 +#: app_Main.py:6086 msgid "Adding New Grid cancelled" msgstr "Neues Netz wurde abgebrochen" -#: app_Main.py:6184 +#: app_Main.py:6107 msgid " Grid Value does not exist" msgstr " Rasterwert existiert nicht" -#: app_Main.py:6186 +#: app_Main.py:6109 msgid "Grid Value deleted" msgstr "Rasterwert gelöscht" -#: app_Main.py:6188 +#: app_Main.py:6111 msgid "Delete Grid value cancelled" msgstr "Rasterwert löschen abgebrochen" -#: app_Main.py:6194 +#: app_Main.py:6117 msgid "Key Shortcut List" msgstr "Tastenkürzel Liste" -#: app_Main.py:6231 +#: app_Main.py:6154 msgid " No object selected to copy it's name" msgstr " Kein Objekt zum Kopieren des Namens ausgewählt" -#: app_Main.py:6235 +#: app_Main.py:6158 msgid "Name copied on clipboard ..." msgstr "Name in Zwischenablage kopiert ..." -#: app_Main.py:6892 -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 "" -"In FlatCAM sind Dateien / Objekte geöffnet.\n" -"Wenn Sie ein neues Projekt erstellen, werden diese gelöscht.\n" -"Möchten Sie das Projekt speichern?" - -#: app_Main.py:6915 -msgid "New Project created" -msgstr "Neues Projekt erstellt" - -#: app_Main.py:7121 app_Main.py:7160 app_Main.py:7204 app_Main.py:7274 -#: app_Main.py:8060 app_Main.py:9304 app_Main.py:9366 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Die Canvas-Initialisierung wurde gestartet.\n" -"Canvas-Initialisierung abgeschlossen in" - -#: app_Main.py:7123 -msgid "Opening Gerber file." -msgstr "Gerber-Datei öffnen." - -#: app_Main.py:7162 -msgid "Opening Excellon file." -msgstr "Excellon-Datei öffnen." - -#: app_Main.py:7193 app_Main.py:7198 -msgid "Open G-Code" -msgstr "G-Code öffnen" - -#: app_Main.py:7206 -msgid "Opening G-Code file." -msgstr "Öffnen der G-Code-Datei." - -#: app_Main.py:7265 app_Main.py:7269 -msgid "Open HPGL2" -msgstr "HPGL2 öffnen" - -#: app_Main.py:7276 -msgid "Opening HPGL2 file." -msgstr "HPGL2-Datei öffnen." - -#: app_Main.py:7299 app_Main.py:7302 -msgid "Open Configuration File" -msgstr "Einstellungsdatei öffne" - -#: app_Main.py:7322 app_Main.py:7676 -msgid "Please Select a Geometry object to export" -msgstr "Bitte wählen Sie ein Geometrieobjekt zum Exportieren aus" - -#: app_Main.py:7338 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Es können nur Geometrie-, Gerber- und CNCJob-Objekte verwendet werden." - -#: app_Main.py:7383 -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" - -#: app_Main.py:7389 app_Main.py:7393 -msgid "Export PNG Image" -msgstr "PNG-Bild exportieren" - -#: app_Main.py:7426 app_Main.py:7636 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "" -"Fehlgeschlagen. Nur Gerber-Objekte können als Gerber-Dateien gespeichert " -"werden ..." - -#: app_Main.py:7438 -msgid "Save Gerber source file" -msgstr "Gerber-Quelldatei speichern" - -#: app_Main.py:7467 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "" -"Gescheitert. Nur Skriptobjekte können als TCL-Skriptdateien gespeichert " -"werden ..." - -#: app_Main.py:7479 -msgid "Save Script source file" -msgstr "Speichern Sie die Quelldatei des Skripts" - -#: app_Main.py:7508 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "" -"Gescheitert. Nur Dokumentobjekte können als Dokumentdateien gespeichert " -"werden ..." - -#: app_Main.py:7520 -msgid "Save Document source file" -msgstr "Speichern Sie die Quelldatei des Dokuments" - -#: app_Main.py:7550 app_Main.py:7592 app_Main.py:8543 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" -"Fehlgeschlagen. Nur Excellon-Objekte können als Excellon-Dateien gespeichert " -"werden ..." - -#: app_Main.py:7558 app_Main.py:7563 -msgid "Save Excellon source file" -msgstr "Speichern Sie die Excellon-Quelldatei" - -#: app_Main.py:7600 app_Main.py:7604 -msgid "Export Excellon" -msgstr "Excellon exportieren" - -#: app_Main.py:7644 app_Main.py:7648 -msgid "Export Gerber" -msgstr "Gerber exportieren" - -#: app_Main.py:7688 -msgid "Only Geometry objects can be used." -msgstr "Es können nur Geometrieobjekte verwendet werden." - -#: app_Main.py:7704 app_Main.py:7708 -msgid "Export DXF" -msgstr "DXF exportieren" - -#: app_Main.py:7733 app_Main.py:7736 -msgid "Import SVG" -msgstr "SVG importieren" - -#: app_Main.py:7764 app_Main.py:7768 -msgid "Import DXF" -msgstr "Importieren Sie DXF" - -#: app_Main.py:7822 app_Main.py:7826 +#: app_Main.py:6917 app_Main.py:6921 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." -#: app_Main.py:7829 +#: app_Main.py:6924 msgid "Viewing the source code of the selected object." msgstr "Anzeigen des Quellcodes des ausgewählten Objekts." -#: app_Main.py:7843 +#: app_Main.py:6938 msgid "Source Editor" msgstr "Quelleditor" -#: app_Main.py:7879 app_Main.py:7886 +#: app_Main.py:6974 app_Main.py:6981 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." -#: app_Main.py:7894 +#: app_Main.py:6989 msgid "Failed to load the source code for the selected object" msgstr "Fehler beim Laden des Quellcodes für das ausgewählte Objekt" -#: app_Main.py:7927 +#: app_Main.py:7022 msgid "Go to Line ..." msgstr "Gehe zur Linie ..." -#: app_Main.py:7928 +#: app_Main.py:7023 msgid "Line:" msgstr "Linie:" -#: app_Main.py:7955 -msgid "New TCL script file created in Code Editor." -msgstr "Neue TCL-Skriptdatei, die im Code-Editor erstellt wurde." - -#: app_Main.py:7994 app_Main.py:7996 app_Main.py:8032 app_Main.py:8034 -msgid "Open TCL script" -msgstr "Öffnen Sie das TCL-Skript" - -#: app_Main.py:8062 -msgid "Executing ScriptObject file." -msgstr "Ausführen der ScriptObject-Datei." - -#: app_Main.py:8070 app_Main.py:8073 -msgid "Run TCL script" -msgstr "Führen Sie das TCL-Skript aus" - -#: app_Main.py:8096 -msgid "TCL script file opened in Code Editor and executed." -msgstr "TCL-Skriptdatei im Code-Editor geöffnet und ausgeführt." - -#: app_Main.py:8147 app_Main.py:8153 -msgid "Save Project As ..." -msgstr "Projekt speichern als ..." - -#: app_Main.py:8188 -msgid "FlatCAM objects print" -msgstr "FlatCAM-Objekte werden gedruckt" - -#: app_Main.py:8201 app_Main.py:8208 -msgid "Save Object as PDF ..." -msgstr "Objekt als PDF speichern ..." - -#: app_Main.py:8217 -msgid "Printing PDF ... Please wait." -msgstr "PDF wird gedruckt ... Bitte warten." - -#: app_Main.py:8396 -msgid "PDF file saved to" -msgstr "PDF-Datei gespeichert in" - -#: app_Main.py:8421 -msgid "Exporting SVG" -msgstr "SVG exportieren" - -#: app_Main.py:8464 -msgid "SVG file exported to" -msgstr "SVG-Datei exportiert nach" - -#: app_Main.py:8490 -#, fuzzy -#| msgid "" -#| "Save cancelled because source file is empty. Try to export the Gerber " -#| "file." -msgid "Save cancelled because source file is empty. Try to export the file." -msgstr "" -"Speichern abgebrochen, da die Quelldatei leer ist. Versuchen Sie einen " -"Export der Gerber Datei." - -#: app_Main.py:8641 -msgid "Excellon file exported to" -msgstr "Excellon-Datei exportiert nach" - -#: app_Main.py:8650 -msgid "Exporting Excellon" -msgstr "Excellon exportieren" - -#: app_Main.py:8655 app_Main.py:8662 -msgid "Could not export Excellon file." -msgstr "Excellon-Datei konnte nicht exportiert werden." - -#: app_Main.py:8778 -msgid "Gerber file exported to" -msgstr "Gerberdatei exportiert nach" - -#: app_Main.py:8786 -msgid "Exporting Gerber" -msgstr "Gerber exportieren" - -#: app_Main.py:8791 app_Main.py:8798 -#, fuzzy -#| msgid "Could not export DXF file." -msgid "Could not export file." -msgstr "DXF-Datei konnte nicht exportiert werden." - -#: app_Main.py:8846 -msgid "DXF file exported to" -msgstr "DXF-Datei exportiert nach" - -#: app_Main.py:8855 -msgid "Exporting DXF" -msgstr "DXF exportieren" - -#: app_Main.py:8860 app_Main.py:8867 -msgid "Could not export DXF file." -msgstr "DXF-Datei konnte nicht exportiert werden." - -#: app_Main.py:8906 -msgid "Importing SVG" -msgstr "SVG importieren" - -#: app_Main.py:8914 app_Main.py:8969 -msgid "Import failed." -msgstr "Import fehlgeschlagen." - -#: app_Main.py:8961 -msgid "Importing DXF" -msgstr "DXF importieren" - -#: app_Main.py:9002 app_Main.py:9193 app_Main.py:9258 -msgid "Failed to open file" -msgstr "Datei konnte nicht geöffnet werden" - -#: app_Main.py:9005 app_Main.py:9196 app_Main.py:9261 -msgid "Failed to parse file" -msgstr "Datei konnte nicht analysiert werden" - -#: app_Main.py:9017 -msgid "Object is not Gerber file or empty. Aborting object creation." -msgstr "" -"Objekt ist keine Gerberdatei oder leer. Objekterstellung wird abgebrochen." - -#: app_Main.py:9022 -msgid "Opening Gerber" -msgstr "Gerber öffnen" - -#: app_Main.py:9033 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Open Gerber ist fehlgeschlagen. Wahrscheinlich keine Gerber-Datei." - -#: app_Main.py:9066 -msgid "Cannot open file" -msgstr "Kann Datei nicht öffnen" - -#: app_Main.py:9086 -msgid "Opening Excellon." -msgstr "Eröffnung Excellon." - -#: app_Main.py:9096 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "" -"Die Excellon-Datei konnte nicht geöffnet werden. Wahrscheinlich keine " -"Excellon-Datei." - -#: app_Main.py:9128 -msgid "Reading GCode file" -msgstr "GCode-Datei wird gelesen" - -#: app_Main.py:9141 -msgid "This is not GCODE" -msgstr "Dies ist kein GCODE" - -#: app_Main.py:9146 -msgid "Opening G-Code." -msgstr "G-Code öffnen." - -#: app_Main.py:9159 -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 "" -"Fehler beim Erstellen des CNCJob-Objekts. Wahrscheinlich keine GCode-Datei. " -"Versuchen Sie, es aus dem Menü Datei zu laden.\n" -"Der Versuch, ein FlatCAM CNCJob-Objekt aus einer G-Code-Datei zu erstellen, " -"ist während der Verarbeitung fehlgeschlagen" - -#: app_Main.py:9215 -msgid "Object is not HPGL2 file or empty. Aborting object creation." -msgstr "" -"Objekt ist keine HPGL2-Datei oder leer. Objekterstellung wird abgebrochen." - -#: app_Main.py:9220 -msgid "Opening HPGL2" -msgstr "HPGL2 öffnen" - -#: app_Main.py:9227 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " HPGL2 öffnen ist fehlgeschlagen. Wahrscheinlich keine HPGL2-Datei." - -#: app_Main.py:9253 -msgid "TCL script file opened in Code Editor." -msgstr "TCL-Skriptdatei im Code-Editor geöffnet." - -#: app_Main.py:9273 -msgid "Opening TCL Script..." -msgstr "TCL-Skript wird geöffnet ..." - -#: app_Main.py:9284 -msgid "Failed to open TCL Script." -msgstr "TCL-Skript konnte nicht geöffnet werden." - -#: app_Main.py:9306 -msgid "Opening FlatCAM Config file." -msgstr "Öffnen der FlatCAM Config-Datei." - -#: app_Main.py:9334 -msgid "Failed to open config file" -msgstr "Fehler beim Öffnen der Konfigurationsdatei" - -#: app_Main.py:9363 -msgid "Loading Project ... Please Wait ..." -msgstr "Projekt wird geladen ... Bitte warten ..." - -#: app_Main.py:9368 -msgid "Opening FlatCAM Project file." -msgstr "Öffnen der FlatCAM-Projektdatei." - -#: app_Main.py:9383 app_Main.py:9387 app_Main.py:9404 -msgid "Failed to open project file" -msgstr "Projektdatei konnte nicht geöffnet werden" - -#: app_Main.py:9443 -msgid "Loading Project ... restoring" -msgstr "Projekt wird geladen ... wird wiederhergestellt" - -#: app_Main.py:9451 -msgid "Project loaded from" -msgstr "Projekt geladen von" - -#: app_Main.py:9477 +#: app_Main.py:7053 msgid "Redrawing all objects" msgstr "Alle Objekte neu zeichnen" -#: app_Main.py:9565 +#: app_Main.py:7141 msgid "Failed to load recent item list." msgstr "Fehler beim Laden der letzten Elementliste." -#: app_Main.py:9572 +#: app_Main.py:7148 msgid "Failed to parse recent item list." msgstr "Liste der letzten Artikel konnte nicht analysiert werden." -#: app_Main.py:9582 +#: app_Main.py:7158 msgid "Failed to load recent projects item list." msgstr "Fehler beim Laden der Artikelliste der letzten Projekte." -#: app_Main.py:9589 +#: app_Main.py:7165 msgid "Failed to parse recent project item list." msgstr "" "Fehler beim Analysieren der Liste der zuletzt verwendeten Projektelemente." -#: app_Main.py:9650 +#: app_Main.py:7226 msgid "Clear Recent projects" msgstr "Letzte Projekte löschen" -#: app_Main.py:9674 +#: app_Main.py:7250 msgid "Clear Recent files" msgstr "Letzte Dateien löschen" -#: app_Main.py:9730 +#: app_Main.py:7306 #, fuzzy #| msgid "FlatCAM.org" msgid "FlatCAM Evo" msgstr "FlatCAM.org" -#: app_Main.py:9734 +#: app_Main.py:7310 msgid "Release date" msgstr "" -#: app_Main.py:9738 +#: app_Main.py:7314 msgid "Displayed" msgstr "" -#: app_Main.py:9741 +#: app_Main.py:7317 #, fuzzy #| msgid "Snap Max" msgid "Snap" msgstr "Fang Max" -#: app_Main.py:9750 +#: app_Main.py:7326 msgid "Canvas" msgstr "" -#: app_Main.py:9755 +#: app_Main.py:7331 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace active" msgstr "Arbeitsbereichseinstellungen" -#: app_Main.py:9759 +#: app_Main.py:7335 #, fuzzy #| msgid "Workspace disabled." msgid "Workspace size" msgstr "Arbeitsbereich deaktiviert." -#: app_Main.py:9763 +#: app_Main.py:7339 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace orientation" msgstr "Arbeitsbereichseinstellungen" -#: app_Main.py:9826 +#: app_Main.py:7402 msgid "Failed checking for latest version. Could not connect." msgstr "" "Fehler bei der Suche nach der neuesten Version. Konnte keine Verbindung " "herstellen." -#: app_Main.py:9833 +#: app_Main.py:7409 msgid "Could not parse information about latest version." msgstr "Informationen zur neuesten Version konnten nicht analysiert werden." -#: app_Main.py:9843 +#: app_Main.py:7419 msgid "FlatCAM is up to date!" msgstr "FlatCAM ist auf dem neuesten Version!" -#: app_Main.py:9848 +#: app_Main.py:7424 msgid "Newer Version Available" msgstr "Neuere Version verfügbar" -#: app_Main.py:9850 +#: app_Main.py:7426 msgid "There is a newer version of FlatCAM available for download:" msgstr "Es gibt eine neuere Version von FlatCAM zum Download:" -#: app_Main.py:9854 +#: app_Main.py:7430 msgid "info" msgstr "Info" -#: app_Main.py:9882 +#: app_Main.py:7458 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -19810,66 +19442,433 @@ msgstr "" "Einstellungen -> Registerkarte Allgemein in Legacy (2D).\n" "\n" -#: app_Main.py:9960 +#: app_Main.py:7536 msgid "All plots disabled." msgstr "Alle Diagramme sind deaktiviert." -#: app_Main.py:9967 +#: app_Main.py:7543 msgid "All non selected plots disabled." msgstr "Alle nicht ausgewählten Diagramme sind deaktiviert." -#: app_Main.py:9974 +#: app_Main.py:7550 msgid "All plots enabled." msgstr "Alle Diagramme aktiviert." -#: app_Main.py:9980 +#: app_Main.py:7556 msgid "Selected plots enabled..." msgstr "Ausgewählte Diagramme aktiviert ..." -#: app_Main.py:9988 +#: app_Main.py:7564 msgid "Selected plots disabled..." msgstr "Ausgewählte Diagramme deaktiviert ..." -#: app_Main.py:10021 +#: app_Main.py:7597 msgid "Enabling plots ..." msgstr "Diagramm aktivieren..." -#: app_Main.py:10070 +#: app_Main.py:7646 msgid "Disabling plots ..." msgstr "Diagramm deaktivieren..." -#: app_Main.py:10093 +#: app_Main.py:7669 msgid "Working ..." msgstr "Arbeiten ..." -#: app_Main.py:10205 +#: app_Main.py:7781 msgid "Set alpha level ..." msgstr "Alpha-Level einstellen ..." -#: app_Main.py:10271 +#: app_Main.py:8057 app_Main.py:8096 app_Main.py:8140 app_Main.py:8206 +#: app_Main.py:8932 app_Main.py:10193 app_Main.py:10255 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Die Canvas-Initialisierung wurde gestartet.\n" +"Canvas-Initialisierung abgeschlossen in" + +#: app_Main.py:8060 +msgid "Opening Gerber file." +msgstr "Gerber-Datei öffnen." + +#: app_Main.py:8099 +msgid "Opening Excellon file." +msgstr "Excellon-Datei öffnen." + +#: app_Main.py:8129 app_Main.py:8134 +msgid "Open G-Code" +msgstr "G-Code öffnen" + +#: app_Main.py:8143 +msgid "Opening G-Code file." +msgstr "Öffnen der G-Code-Datei." + +#: app_Main.py:8197 app_Main.py:8201 +msgid "Open HPGL2" +msgstr "HPGL2 öffnen" + +#: app_Main.py:8209 +msgid "Opening HPGL2 file." +msgstr "HPGL2-Datei öffnen." + +#: app_Main.py:8232 app_Main.py:8235 +msgid "Open Configuration File" +msgstr "Einstellungsdatei öffne" + +#: app_Main.py:8254 app_Main.py:8600 +msgid "Please Select a Geometry object to export" +msgstr "Bitte wählen Sie ein Geometrieobjekt zum Exportieren aus" + +#: app_Main.py:8269 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Es können nur Geometrie-, Gerber- und CNCJob-Objekte verwendet werden." + +#: app_Main.py:8314 +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" + +#: app_Main.py:8320 app_Main.py:8324 +msgid "Export PNG Image" +msgstr "PNG-Bild exportieren" + +#: app_Main.py:8356 app_Main.py:8561 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "" +"Fehlgeschlagen. Nur Gerber-Objekte können als Gerber-Dateien gespeichert " +"werden ..." + +#: app_Main.py:8368 +msgid "Save Gerber source file" +msgstr "Gerber-Quelldatei speichern" + +#: app_Main.py:8396 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "" +"Gescheitert. Nur Skriptobjekte können als TCL-Skriptdateien gespeichert " +"werden ..." + +#: app_Main.py:8408 +msgid "Save Script source file" +msgstr "Speichern Sie die Quelldatei des Skripts" + +#: app_Main.py:8436 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "" +"Gescheitert. Nur Dokumentobjekte können als Dokumentdateien gespeichert " +"werden ..." + +#: app_Main.py:8448 +msgid "Save Document source file" +msgstr "Speichern Sie die Quelldatei des Dokuments" + +#: app_Main.py:8477 app_Main.py:8518 app_Main.py:9437 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" +"Fehlgeschlagen. Nur Excellon-Objekte können als Excellon-Dateien gespeichert " +"werden ..." + +#: app_Main.py:8485 app_Main.py:8490 +msgid "Save Excellon source file" +msgstr "Speichern Sie die Excellon-Quelldatei" + +#: app_Main.py:8526 app_Main.py:8530 +msgid "Export Excellon" +msgstr "Excellon exportieren" + +#: app_Main.py:8569 app_Main.py:8573 +msgid "Export Gerber" +msgstr "Gerber exportieren" + +#: app_Main.py:8612 +msgid "Only Geometry objects can be used." +msgstr "Es können nur Geometrieobjekte verwendet werden." + +#: app_Main.py:8628 app_Main.py:8632 +msgid "Export DXF" +msgstr "DXF exportieren" + +#: app_Main.py:8656 app_Main.py:8660 +msgid "Import SVG" +msgstr "SVG importieren" + +#: app_Main.py:8686 app_Main.py:8690 +msgid "Import DXF" +msgstr "Importieren Sie DXF" + +#: app_Main.py:8716 +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 "" +"In FlatCAM sind Dateien / Objekte geöffnet.\n" +"Wenn Sie ein neues Projekt erstellen, werden diese gelöscht.\n" +"Möchten Sie das Projekt speichern?" + +#: app_Main.py:8739 +msgid "New Project created" +msgstr "Neues Projekt erstellt" + +#: app_Main.py:8841 +msgid "New TCL script file created in Code Editor." +msgstr "Neue TCL-Skriptdatei, die im Code-Editor erstellt wurde." + +#: app_Main.py:8868 app_Main.py:8870 app_Main.py:8905 app_Main.py:8907 +msgid "Open TCL script" +msgstr "Öffnen Sie das TCL-Skript" + +#: app_Main.py:8934 +msgid "Executing ScriptObject file." +msgstr "Ausführen der ScriptObject-Datei." + +#: app_Main.py:8942 app_Main.py:8946 +msgid "Run TCL script" +msgstr "Führen Sie das TCL-Skript aus" + +#: app_Main.py:8969 +msgid "TCL script file opened in Code Editor and executed." +msgstr "TCL-Skriptdatei im Code-Editor geöffnet und ausgeführt." + +#: app_Main.py:9015 app_Main.py:9021 +msgid "Save Project As ..." +msgstr "Projekt speichern als ..." + +#: app_Main.py:9055 +msgid "FlatCAM objects print" +msgstr "FlatCAM-Objekte werden gedruckt" + +#: app_Main.py:9068 app_Main.py:9075 +msgid "Save Object as PDF ..." +msgstr "Objekt als PDF speichern ..." + +#: app_Main.py:9084 +msgid "Printing PDF ... Please wait." +msgstr "PDF wird gedruckt ... Bitte warten." + +#: app_Main.py:9262 +msgid "PDF file saved to" +msgstr "PDF-Datei gespeichert in" + +#: app_Main.py:9284 +msgid "Exporting SVG" +msgstr "SVG exportieren" + +#: app_Main.py:9327 +msgid "SVG file exported to" +msgstr "SVG-Datei exportiert nach" + +#: app_Main.py:9342 app_Main.py:9346 +msgid "Import FlatCAM Preferences" +msgstr "FlatCAM-Voreinstellungen importieren" + +#: app_Main.py:9357 +msgid "Imported Defaults from" +msgstr "Voreinstellungen wurden importiert von" + +#: app_Main.py:9376 app_Main.py:9382 +msgid "Export FlatCAM Preferences" +msgstr "FlatCAM-Voreinstellungen exportieren" + +#: app_Main.py:9402 +msgid "Exported preferences to" +msgstr "Exportierte Einstellungen nach" + +#: app_Main.py:9535 +msgid "Excellon file exported to" +msgstr "Excellon-Datei exportiert nach" + +#: app_Main.py:9544 +msgid "Exporting Excellon" +msgstr "Excellon exportieren" + +#: app_Main.py:9549 app_Main.py:9556 +msgid "Could not export Excellon file." +msgstr "Excellon-Datei konnte nicht exportiert werden." + +#: app_Main.py:9670 +msgid "Gerber file exported to" +msgstr "Gerberdatei exportiert nach" + +#: app_Main.py:9678 +msgid "Exporting Gerber" +msgstr "Gerber exportieren" + +#: app_Main.py:9683 app_Main.py:9690 +#, fuzzy +#| msgid "Could not export DXF file." +msgid "Could not export file." +msgstr "DXF-Datei konnte nicht exportiert werden." + +#: app_Main.py:9736 +msgid "DXF file exported to" +msgstr "DXF-Datei exportiert nach" + +#: app_Main.py:9745 +msgid "Exporting DXF" +msgstr "DXF exportieren" + +#: app_Main.py:9750 app_Main.py:9757 +msgid "Could not export DXF file." +msgstr "DXF-Datei konnte nicht exportiert werden." + +#: app_Main.py:9795 +msgid "Importing SVG" +msgstr "SVG importieren" + +#: app_Main.py:9803 app_Main.py:9858 +msgid "Import failed." +msgstr "Import fehlgeschlagen." + +#: app_Main.py:9850 +msgid "Importing DXF" +msgstr "DXF importieren" + +#: app_Main.py:9891 app_Main.py:10082 app_Main.py:10147 +msgid "Failed to open file" +msgstr "Datei konnte nicht geöffnet werden" + +#: app_Main.py:9894 app_Main.py:10085 app_Main.py:10150 +msgid "Failed to parse file" +msgstr "Datei konnte nicht analysiert werden" + +#: app_Main.py:9906 +msgid "Object is not Gerber file or empty. Aborting object creation." +msgstr "" +"Objekt ist keine Gerberdatei oder leer. Objekterstellung wird abgebrochen." + +#: app_Main.py:9911 +msgid "Opening Gerber" +msgstr "Gerber öffnen" + +#: app_Main.py:9922 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Open Gerber ist fehlgeschlagen. Wahrscheinlich keine Gerber-Datei." + +#: app_Main.py:9955 +msgid "Cannot open file" +msgstr "Kann Datei nicht öffnen" + +#: app_Main.py:9975 +msgid "Opening Excellon." +msgstr "Eröffnung Excellon." + +#: app_Main.py:9985 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "" +"Die Excellon-Datei konnte nicht geöffnet werden. Wahrscheinlich keine " +"Excellon-Datei." + +#: app_Main.py:10017 +msgid "Reading GCode file" +msgstr "GCode-Datei wird gelesen" + +#: app_Main.py:10030 +msgid "This is not GCODE" +msgstr "Dies ist kein GCODE" + +#: app_Main.py:10035 +msgid "Opening G-Code." +msgstr "G-Code öffnen." + +#: app_Main.py:10048 +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 "" +"Fehler beim Erstellen des CNCJob-Objekts. Wahrscheinlich keine GCode-Datei. " +"Versuchen Sie, es aus dem Menü Datei zu laden.\n" +"Der Versuch, ein FlatCAM CNCJob-Objekt aus einer G-Code-Datei zu erstellen, " +"ist während der Verarbeitung fehlgeschlagen" + +#: app_Main.py:10104 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "" +"Objekt ist keine HPGL2-Datei oder leer. Objekterstellung wird abgebrochen." + +#: app_Main.py:10109 +msgid "Opening HPGL2" +msgstr "HPGL2 öffnen" + +#: app_Main.py:10116 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " HPGL2 öffnen ist fehlgeschlagen. Wahrscheinlich keine HPGL2-Datei." + +#: app_Main.py:10142 +msgid "TCL script file opened in Code Editor." +msgstr "TCL-Skriptdatei im Code-Editor geöffnet." + +#: app_Main.py:10162 +msgid "Opening TCL Script..." +msgstr "TCL-Skript wird geöffnet ..." + +#: app_Main.py:10173 +msgid "Failed to open TCL Script." +msgstr "TCL-Skript konnte nicht geöffnet werden." + +#: app_Main.py:10196 +msgid "Opening FlatCAM Config file." +msgstr "Öffnen der FlatCAM Config-Datei." + +#: app_Main.py:10223 +msgid "Failed to open config file" +msgstr "Fehler beim Öffnen der Konfigurationsdatei" + +#: app_Main.py:10252 +msgid "Loading Project ... Please Wait ..." +msgstr "Projekt wird geladen ... Bitte warten ..." + +#: app_Main.py:10258 +msgid "Opening FlatCAM Project file." +msgstr "Öffnen der FlatCAM-Projektdatei." + +#: app_Main.py:10273 app_Main.py:10277 app_Main.py:10295 +msgid "Failed to open project file" +msgstr "Projektdatei konnte nicht geöffnet werden" + +#: app_Main.py:10335 +msgid "Loading Project ... restoring" +msgstr "Projekt wird geladen ... wird wiederhergestellt" + +#: app_Main.py:10339 +msgid "Project loaded from" +msgstr "Projekt geladen von" + +#: app_Main.py:10368 msgid "Saving FlatCAM Project" msgstr "FlatCAM-Projekt speichern" -#: app_Main.py:10294 app_Main.py:10330 +#: app_Main.py:10390 app_Main.py:10426 msgid "Project saved to" msgstr "Projekt gespeichert in" -#: app_Main.py:10301 +#: app_Main.py:10397 msgid "The object is used by another application." msgstr "Das Objekt wird von einer anderen Anwendung verwendet." -#: app_Main.py:10315 +#: app_Main.py:10411 msgid "Failed to verify project file" msgstr "Fehler beim Überprüfen der Projektdatei" -#: app_Main.py:10315 app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10411 app_Main.py:10419 app_Main.py:10429 msgid "Retry to save it." msgstr "Versuchen Sie erneut, es zu speichern." -#: app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10419 app_Main.py:10429 msgid "Failed to parse saved project file" msgstr "Fehler beim Parsen der Projektdatei" +#: app_Main.py:10466 +#, fuzzy +#| msgid "" +#| "Save cancelled because source file is empty. Try to export the Gerber " +#| "file." +msgid "Save cancelled because source file is empty. Try to export the file." +msgstr "" +"Speichern abgebrochen, da die Quelldatei leer ist. Versuchen Sie einen " +"Export der Gerber Datei." + #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" diff --git a/locale/en/LC_MESSAGES/strings.mo b/locale/en/LC_MESSAGES/strings.mo index 2dfb5dbe08f90b8027ad81c547c340705ff9b51e..e2caa12eae68a8bdd5fdfa8323726efe7c1ebae3 100644 GIT binary patch delta 34 ocmX?eMeNKKv4$4L7N#xC+6gR{RwkzH`U%WH%(7iSfmPNE0N^1C{{R30 delta 34 ocmX?eMeNKKv4$4L7N#xC+6gSCR;DKH`U%WH%(7iSfmPNE0N>gQ`v3p{ diff --git a/locale/en/LC_MESSAGES/strings.po b/locale/en/LC_MESSAGES/strings.po index 565eca24..adba6d0d 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-10-24 15:53+0300\n" -"PO-Revision-Date: 2020-10-24 15:54+0300\n" +"POT-Creation-Date: 2020-10-24 19:45+0300\n" +"PO-Revision-Date: 2020-10-24 19:45+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: en\n" @@ -111,24 +111,24 @@ msgstr "Bookmarks" #: appObjects/FlatCAMCNCJob.py:1750 appObjects/ObjectCollection.py:126 #: appTools/ToolFilm.py:238 appTools/ToolFilm.py:384 appTools/ToolImage.py:112 #: appTools/ToolMove.py:269 appTools/ToolPcbWizard.py:189 -#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:526 -#: appTools/ToolQRCode.py:573 app_Main.py:1753 app_Main.py:2581 -#: app_Main.py:2617 app_Main.py:2664 app_Main.py:4410 app_Main.py:7128 -#: app_Main.py:7167 app_Main.py:7211 app_Main.py:7240 app_Main.py:7281 -#: app_Main.py:7306 app_Main.py:7362 app_Main.py:7398 app_Main.py:7443 -#: app_Main.py:7484 app_Main.py:7526 app_Main.py:7568 app_Main.py:7609 -#: app_Main.py:7653 app_Main.py:7713 app_Main.py:7745 app_Main.py:7777 -#: app_Main.py:8000 app_Main.py:8038 app_Main.py:8081 app_Main.py:8158 -#: app_Main.py:8213 +#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:527 +#: appTools/ToolQRCode.py:574 app_Main.py:1762 app_Main.py:2596 +#: app_Main.py:4333 app_Main.py:8065 app_Main.py:8104 app_Main.py:8148 +#: app_Main.py:8174 app_Main.py:8214 app_Main.py:8239 app_Main.py:8293 +#: app_Main.py:8329 app_Main.py:8373 app_Main.py:8413 app_Main.py:8454 +#: app_Main.py:8495 app_Main.py:8535 app_Main.py:8578 app_Main.py:8637 +#: app_Main.py:8669 app_Main.py:8699 app_Main.py:8874 app_Main.py:8911 +#: app_Main.py:8954 app_Main.py:9026 app_Main.py:9080 app_Main.py:9350 +#: app_Main.py:9385 msgid "Cancelled." msgstr "Cancelled." #: Bookmark.py:308 appDatabase.py:2089 appEditors/AppTextEditor.py:312 #: appObjects/FlatCAMCNCJob.py:1672 appObjects/FlatCAMCNCJob.py:1862 #: appObjects/FlatCAMCNCJob.py:2311 appTools/ToolFilm.py:582 -#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2672 -#: app_Main.py:8457 app_Main.py:8505 app_Main.py:8634 app_Main.py:8771 -#: app_Main.py:8839 +#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2604 +#: app_Main.py:9320 app_Main.py:9528 app_Main.py:9663 app_Main.py:9729 +#: app_Main.py:10481 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -160,7 +160,7 @@ msgstr "Imported Bookmarks from" msgid "The user requested a graceful exit of the current task." msgstr "The user requested a graceful exit of the current task." -#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:328 +#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:327 #: appTools/ToolIsolation.py:1436 appTools/ToolNCC.py:1366 msgid "Click the start point of the area." msgstr "Click the start point of the area." @@ -170,7 +170,7 @@ msgid "Click the end point of the area." msgstr "Click the end point of the area." #: appCommon/Common.py:357 appCommon/Common.py:459 -#: appTools/ToolCopperThieving.py:385 appTools/ToolIsolation.py:2348 +#: appTools/ToolCopperThieving.py:384 appTools/ToolIsolation.py:2348 #: appTools/ToolIsolation.py:2400 appTools/ToolNCC.py:1431 #: appTools/ToolNCC.py:1483 appTools/ToolPaint.py:1216 #: appTools/ToolPaint.py:1267 @@ -254,8 +254,8 @@ msgstr "Cutout Parameters" #: appDatabase.py:207 appEditors/AppGeoEditor.py:3287 appGUI/ObjectUI.py:219 #: appGUI/ObjectUI.py:570 appGUI/ObjectUI.py:894 appGUI/ObjectUI.py:1876 #: appGUI/ObjectUI.py:2693 appGUI/ObjectUI.py:2760 -#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:681 -#: app_Main.py:9730 +#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:683 +#: app_Main.py:7306 msgid "Name" msgstr "Name" @@ -328,7 +328,7 @@ msgstr "The kind of Application Tool where this tool is to be used." #: appDatabase.py:275 appDatabase.py:1778 appDatabase.py:1814 #: appDatabase.py:1877 appDatabase.py:2162 appGUI/MainGUI.py:1299 -#: app_Main.py:9728 +#: app_Main.py:7304 msgid "General" msgstr "General" @@ -478,7 +478,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2104 +#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2108 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Cut Z" @@ -764,9 +764,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1210 appTools/ToolCopperThieving.py:1461 -#: appTools/ToolCorners.py:411 appTools/ToolCutOut.py:2157 -#: appTools/ToolFiducials.py:786 appTools/ToolInvertGerber.py:234 +#: appTools/ToolCopperThieving.py:1206 appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCorners.py:412 appTools/ToolCutOut.py:2161 +#: appTools/ToolFiducials.py:788 appTools/ToolInvertGerber.py:234 #: appTools/ToolInvertGerber.py:242 appTools/ToolNCC.py:4135 #: appTools/ToolNCC.py:4238 msgid "Margin" @@ -777,8 +777,8 @@ msgstr "Margin" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1212 appTools/ToolCorners.py:413 -#: appTools/ToolFiducials.py:788 appTools/ToolNCC.py:4137 +#: appTools/ToolCopperThieving.py:1208 appTools/ToolCorners.py:414 +#: appTools/ToolFiducials.py:790 appTools/ToolNCC.py:4137 #: appTools/ToolNCC.py:4240 msgid "Bounding box margin." msgstr "Bounding box margin." @@ -790,7 +790,7 @@ msgstr "Bounding box margin." #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 -#: appTools/ToolExtractDrills.py:520 appTools/ToolNCC.py:4112 +#: appTools/ToolExtractDrills.py:521 appTools/ToolNCC.py:4112 #: appTools/ToolPaint.py:2991 appTools/ToolPunchGerber.py:796 msgid "Method" msgstr "Method" @@ -1081,7 +1081,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 -#: appTools/ToolCutOut.py:2128 appTools/ToolDrilling.py:2167 +#: appTools/ToolCutOut.py:2132 appTools/ToolDrilling.py:2167 #: appTools/ToolMilling.py:1817 msgid "" "Use multiple passes to limit\n" @@ -1097,7 +1097,7 @@ msgstr "" #: appDatabase.py:979 appGUI/ObjectUI.py:1251 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 -#: appTools/ToolCutOut.py:2142 appTools/ToolDrilling.py:2180 +#: appTools/ToolCutOut.py:2146 appTools/ToolDrilling.py:2180 #: appTools/ToolMilling.py:1830 msgid "Depth of each pass (positive)." msgstr "Depth of each pass (positive)." @@ -1195,7 +1195,7 @@ msgstr "" "add a drill hole on the slot end point." #: appDatabase.py:1156 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: appTools/ToolCutOut.py:2159 +#: appTools/ToolCutOut.py:2163 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -1206,12 +1206,12 @@ msgstr "" "the actual PCB border" #: appDatabase.py:1168 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:131 -#: appTools/ToolCutOut.py:2167 +#: appTools/ToolCutOut.py:2171 msgid "Gap size" msgstr "Gap size" #: appDatabase.py:1170 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:133 -#: appTools/ToolCutOut.py:2169 +#: appTools/ToolCutOut.py:2173 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -1224,12 +1224,12 @@ msgstr "" "from which the PCB is cutout)." #: appDatabase.py:1179 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -#: appTools/ToolCutOut.py:2182 +#: appTools/ToolCutOut.py:2186 msgid "Gap type" msgstr "Gap type" #: appDatabase.py:1181 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150 -#: appTools/ToolCutOut.py:2184 +#: appTools/ToolCutOut.py:2188 msgid "" "The type of gap:\n" "- Bridge -> the cutout will be interrupted by bridges\n" @@ -1244,22 +1244,22 @@ msgstr "" "- M-Bites -> 'Mouse Bites' - same as 'bridge' but covered with drill holes" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 -#: appTools/ToolCutOut.py:2192 +#: appTools/ToolCutOut.py:2196 msgid "Bridge" msgstr "Bridge" #: appDatabase.py:1190 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159 -#: appTools/ToolCutOut.py:2193 +#: appTools/ToolCutOut.py:2197 msgid "Thin" msgstr "Thin" #: appDatabase.py:1201 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169 -#: appTools/ToolCutOut.py:2203 +#: appTools/ToolCutOut.py:2207 msgid "Depth" msgstr "Depth" #: appDatabase.py:1203 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171 -#: appTools/ToolCutOut.py:2205 +#: appTools/ToolCutOut.py:2209 msgid "" "The depth until the milling is done\n" "in order to thin the gaps." @@ -1269,12 +1269,12 @@ msgstr "" #: appDatabase.py:1220 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2220 +#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2224 msgid "Tool Diameter" msgstr "Tool Diameter" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 -#: appTools/ToolCutOut.py:2222 +#: appTools/ToolCutOut.py:2226 msgid "The drill hole diameter when doing mouse bites." msgstr "The drill hole diameter when doing mouse bites." @@ -1283,23 +1283,23 @@ msgstr "The drill hole diameter when doing mouse bites." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1333 appTools/ToolCopperThieving.py:1373 -#: appTools/ToolCopperThieving.py:1413 appTools/ToolCutOut.py:2232 +#: appTools/ToolCopperThieving.py:1329 appTools/ToolCopperThieving.py:1369 +#: appTools/ToolCopperThieving.py:1409 appTools/ToolCutOut.py:2236 msgid "Spacing" msgstr "Spacing" #: appDatabase.py:1235 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200 -#: appTools/ToolCutOut.py:2234 +#: appTools/ToolCutOut.py:2238 msgid "The spacing between drill holes when doing mouse bites." msgstr "The spacing between drill holes when doing mouse bites." #: appDatabase.py:1254 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233 -#: appTools/ToolCutOut.py:2034 +#: appTools/ToolCutOut.py:2038 msgid "Convex Shape" msgstr "Convex Shape" #: appDatabase.py:1257 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235 -#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041 +#: appTools/ToolCutOut.py:2040 appTools/ToolCutOut.py:2045 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -1308,11 +1308,11 @@ msgstr "" "Used only if the source object type is Gerber." #: appDatabase.py:1265 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209 -#: appTools/ToolCutOut.py:2263 +#: appTools/ToolCutOut.py:2267 msgid "Gaps" msgstr "Gaps" -#: appDatabase.py:1267 appTools/ToolCutOut.py:2265 +#: appDatabase.py:1267 appTools/ToolCutOut.py:2269 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -1397,8 +1397,8 @@ msgstr "" "in the Tools Database." #: appDatabase.py:1364 appGUI/MainGUI.py:1438 -#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2297 -#: app_Main.py:3392 app_Main.py:4347 app_Main.py:4593 app_Main.py:6901 +#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2306 +#: app_Main.py:3315 app_Main.py:4270 app_Main.py:4516 app_Main.py:8725 msgid "Cancel" msgstr "Cancel" @@ -1409,16 +1409,16 @@ msgstr "Cancel" #: appTools/ToolAlignObjects.py:516 appTools/ToolAlignObjects.py:527 #: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1601 appTools/ToolCopperThieving.py:1612 -#: appTools/ToolCorners.py:462 appTools/ToolCorners.py:473 -#: appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448 -#: appTools/ToolDblSided.py:956 appTools/ToolDblSided.py:967 +#: appTools/ToolCopperThieving.py:1597 appTools/ToolCopperThieving.py:1608 +#: appTools/ToolCorners.py:463 appTools/ToolCorners.py:474 +#: appTools/ToolCutOut.py:2441 appTools/ToolCutOut.py:2452 +#: appTools/ToolDblSided.py:958 appTools/ToolDblSided.py:969 #: appTools/ToolDistance.py:659 appTools/ToolDistance.py:670 #: appTools/ToolDistanceMin.py:324 appTools/ToolDistanceMin.py:335 #: appTools/ToolDrilling.py:2666 appTools/ToolDrilling.py:2677 #: appTools/ToolEtchCompensation.py:476 appTools/ToolEtchCompensation.py:487 -#: appTools/ToolExtractDrills.py:732 appTools/ToolExtractDrills.py:743 -#: appTools/ToolFiducials.py:950 appTools/ToolFiducials.py:961 +#: appTools/ToolExtractDrills.py:733 appTools/ToolExtractDrills.py:744 +#: appTools/ToolFiducials.py:952 appTools/ToolFiducials.py:963 #: appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 #: appTools/ToolImage.py:322 appTools/ToolImage.py:333 #: appTools/ToolInvertGerber.py:304 appTools/ToolInvertGerber.py:315 @@ -1430,7 +1430,7 @@ msgstr "Cancel" #: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925 #: appTools/ToolPcbWizard.py:488 appTools/ToolPcbWizard.py:499 #: appTools/ToolPunchGerber.py:1025 appTools/ToolPunchGerber.py:1036 -#: appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933 +#: appTools/ToolQRCode.py:923 appTools/ToolQRCode.py:934 #: appTools/ToolRulesCheck.py:1657 appTools/ToolRulesCheck.py:1668 #: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586 #: appTools/ToolSub.py:772 appTools/ToolSub.py:783 @@ -1445,16 +1445,16 @@ msgstr "Edited value is out of range" #: appTools/ToolAlignObjects.py:522 appTools/ToolAlignObjects.py:529 #: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1607 appTools/ToolCopperThieving.py:1614 -#: appTools/ToolCorners.py:468 appTools/ToolCorners.py:475 -#: appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450 -#: appTools/ToolDblSided.py:962 appTools/ToolDblSided.py:969 +#: appTools/ToolCopperThieving.py:1603 appTools/ToolCopperThieving.py:1610 +#: appTools/ToolCorners.py:469 appTools/ToolCorners.py:476 +#: appTools/ToolCutOut.py:2447 appTools/ToolCutOut.py:2454 +#: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:971 #: appTools/ToolDistance.py:665 appTools/ToolDistance.py:672 #: appTools/ToolDistanceMin.py:330 appTools/ToolDistanceMin.py:337 #: appTools/ToolDrilling.py:2672 appTools/ToolDrilling.py:2679 #: appTools/ToolEtchCompensation.py:482 appTools/ToolEtchCompensation.py:489 -#: appTools/ToolExtractDrills.py:738 appTools/ToolExtractDrills.py:745 -#: appTools/ToolFiducials.py:956 appTools/ToolFiducials.py:963 +#: appTools/ToolExtractDrills.py:739 appTools/ToolExtractDrills.py:746 +#: appTools/ToolFiducials.py:958 appTools/ToolFiducials.py:965 #: appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 #: appTools/ToolImage.py:328 appTools/ToolImage.py:335 #: appTools/ToolInvertGerber.py:310 appTools/ToolInvertGerber.py:317 @@ -1466,7 +1466,7 @@ msgstr "Edited value is out of range" #: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927 #: appTools/ToolPcbWizard.py:494 appTools/ToolPcbWizard.py:501 #: appTools/ToolPunchGerber.py:1031 appTools/ToolPunchGerber.py:1038 -#: appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935 +#: appTools/ToolQRCode.py:929 appTools/ToolQRCode.py:936 #: appTools/ToolRulesCheck.py:1663 appTools/ToolRulesCheck.py:1670 #: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588 #: appTools/ToolSub.py:778 appTools/ToolSub.py:785 @@ -1486,7 +1486,7 @@ msgstr "Copy from DB" msgid "Delete from DB" msgstr "Delete from DB" -#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3386 app_Main.py:6895 +#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3309 app_Main.py:8719 msgid "Save changes" msgstr "Save changes" @@ -1543,8 +1543,8 @@ msgstr "Import FlatCAM Tools DB" #: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525 #: appTools/ToolIsolation.py:2583 appTools/ToolIsolation.py:2667 #: appTools/ToolNCC.py:3715 appTools/ToolNCC.py:3795 appTools/ToolPaint.py:2626 -#: appTools/ToolPaint.py:2715 app_Main.py:5682 app_Main.py:5724 -#: app_Main.py:5755 app_Main.py:5775 app_Main.py:5785 +#: appTools/ToolPaint.py:2715 app_Main.py:5605 app_Main.py:5647 +#: app_Main.py:5678 app_Main.py:5698 app_Main.py:5708 msgid "Tools Database" msgstr "Tools Database" @@ -1750,7 +1750,7 @@ msgstr "Cancelled. There is no Tool/Drill selected" #: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642 #: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871 #: appTools/ToolAlignObjects.py:253 appTools/ToolAlignObjects.py:275 -#: app_Main.py:4961 app_Main.py:5115 +#: app_Main.py:4884 app_Main.py:5038 msgid "Done." msgstr "Done." @@ -1811,7 +1811,7 @@ msgstr "" #: appEditors/AppExcEditor.py:3765 appGUI/ObjectUI.py:1082 #: appGUI/ObjectUI.py:1650 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 -#: appTools/ToolCutOut.py:2060 appTools/ToolIsolation.py:3091 +#: appTools/ToolCutOut.py:2064 appTools/ToolIsolation.py:3091 #: appTools/ToolNCC.py:3966 appTools/ToolNCC.py:3977 appTools/ToolPaint.py:2882 msgid "Tool Dia" msgstr "Tool Dia" @@ -1902,8 +1902,8 @@ msgstr "Linear" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 -#: appTools/ToolExtractDrills.py:470 appTools/ToolExtractDrills.py:593 -#: appTools/ToolFiducials.py:834 appTools/ToolPunchGerber.py:746 +#: appTools/ToolExtractDrills.py:471 appTools/ToolExtractDrills.py:594 +#: appTools/ToolFiducials.py:836 appTools/ToolPunchGerber.py:746 #: appTools/ToolPunchGerber.py:886 msgid "Circular" msgstr "Circular" @@ -2070,7 +2070,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:398 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:399 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Length" @@ -2184,12 +2184,12 @@ msgstr "Round" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:289 -#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:486 -#: appTools/ToolExtractDrills.py:619 appTools/ToolInvertGerber.py:257 +#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:487 +#: appTools/ToolExtractDrills.py:620 appTools/ToolInvertGerber.py:257 #: appTools/ToolIsolation.py:3430 appTools/ToolMilling.py:2264 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3168 #: appTools/ToolPunchGerber.py:762 appTools/ToolPunchGerber.py:912 -#: appTools/ToolQRCode.py:788 +#: appTools/ToolQRCode.py:789 msgid "Square" msgstr "Square" @@ -2236,8 +2236,8 @@ msgstr "Font" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1360 appTools/ToolCopperThieving.py:1400 -#: appTools/ToolFiducials.py:770 +#: appTools/ToolCopperThieving.py:1356 appTools/ToolCopperThieving.py:1396 +#: appTools/ToolFiducials.py:772 msgid "Size" msgstr "Size" @@ -2261,8 +2261,8 @@ msgstr "Text Tool" #: appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 #: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:329 #: appTools/ToolNCC.py:2280 appTools/ToolNCC.py:4040 appTools/ToolPaint.py:304 -#: appTools/ToolPaint.py:2940 app_Main.py:2053 app_Main.py:2312 -#: app_Main.py:2419 +#: appTools/ToolPaint.py:2940 app_Main.py:2062 app_Main.py:2321 +#: app_Main.py:2428 msgid "Tool" msgstr "Tool" @@ -2352,7 +2352,7 @@ msgstr "Buffer" #: appGUI/GUIElements.py:3015 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 -#: appTools/ToolDblSided.py:681 appTools/ToolDblSided.py:855 +#: appTools/ToolDblSided.py:683 appTools/ToolDblSided.py:857 #: appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 msgid "Reference" msgstr "Reference" @@ -2398,7 +2398,7 @@ msgstr "Selection" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 -#: appTools/ToolDblSided.py:692 appTools/ToolTransform.py:557 +#: appTools/ToolDblSided.py:694 appTools/ToolTransform.py:557 msgid "Point" msgstr "Point" @@ -2411,10 +2411,9 @@ msgstr "Minimum" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243 -#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677 +#: appTools/ToolExtractDrills.py:557 appTools/ToolExtractDrills.py:678 #: appTools/ToolPunchGerber.py:849 appTools/ToolPunchGerber.py:965 -#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 -#: app_Main.py:10205 +#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:7781 msgid "Value" msgstr "Value" @@ -2426,10 +2425,10 @@ msgstr "A point of reference in format X,Y." #: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590 #: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 -#: appTools/ToolDblSided.py:706 appTools/ToolDblSided.py:892 +#: appTools/ToolDblSided.py:708 appTools/ToolDblSided.py:894 #: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203 -#: appTools/ToolTransform.py:572 app_Main.py:6127 +#: appTools/ToolTransform.py:572 app_Main.py:6050 msgid "Add" msgstr "Add" @@ -2640,7 +2639,7 @@ msgstr "Offset Y" #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216 -#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:787 +#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:788 #: appTools/ToolTransform.py:854 msgid "Rounded" msgstr "Rounded" @@ -3120,7 +3119,7 @@ msgstr "Geometry Editor" #: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495 #: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 -#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519 +#: appTools/ToolCutOut.py:2017 appTools/ToolDblSided.py:521 #: appTools/ToolTransform.py:579 msgid "Type" msgstr "Type" @@ -3498,7 +3497,7 @@ msgstr "Add a new aperture to the aperture list." #: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 #: appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 #: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 -#: appTools/ToolSolderPaste.py:1209 app_Main.py:6129 +#: appTools/ToolSolderPaste.py:1209 app_Main.py:6052 msgid "Delete" msgstr "Delete" @@ -3713,8 +3712,8 @@ msgstr "" #: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:164 #: appObjects/FlatCAMGeometry.py:1917 appParsers/ParseExcellon.py:972 -#: appTools/ToolPcbWizard.py:318 app_Main.py:9010 app_Main.py:9070 -#: app_Main.py:9201 app_Main.py:9266 app_Main.py:9881 +#: appTools/ToolPcbWizard.py:318 app_Main.py:7457 app_Main.py:9899 +#: app_Main.py:9959 app_Main.py:10090 app_Main.py:10155 msgid "An internal error has occurred. See shell.\n" msgstr "An internal error has occurred. See shell.\n" @@ -3730,7 +3729,7 @@ msgstr "Done. Gerber editing finished." msgid "Cancelled. No aperture is selected" msgstr "Cancelled. No aperture is selected" -#: appEditors/AppGerberEditor.py:4555 app_Main.py:6462 +#: appEditors/AppGerberEditor.py:4555 app_Main.py:6385 msgid "Coordinates copied to clipboard." msgstr "Coordinates copied to clipboard." @@ -3747,8 +3746,8 @@ 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/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 -#: appTools/ToolCutOut.py:895 appTools/ToolCutOut.py:1118 -#: appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663 +#: appTools/ToolCutOut.py:896 appTools/ToolCutOut.py:1119 +#: appTools/ToolCutOut.py:1267 camlib.py:4899 camlib.py:5663 msgid "Failed." msgstr "Failed." @@ -3776,7 +3775,7 @@ msgstr "No polygons were marked. None fit within the limits." msgid "Rotation action was not executed." msgstr "Rotation action was not executed." -#: appEditors/AppGerberEditor.py:6044 app_Main.py:5885 app_Main.py:5933 +#: appEditors/AppGerberEditor.py:6044 app_Main.py:5808 app_Main.py:5856 msgid "Flip action was not executed." msgstr "Flip action was not executed." @@ -3885,7 +3884,7 @@ msgstr "Open file" #: appObjects/FlatCAMCNCJob.py:1646 appObjects/FlatCAMCNCJob.py:1651 #: appObjects/FlatCAMCNCJob.py:1836 appObjects/FlatCAMCNCJob.py:1841 #: appObjects/FlatCAMCNCJob.py:1914 appObjects/FlatCAMCNCJob.py:1919 -#: appTools/ToolSolderPaste.py:1063 app_Main.py:7044 app_Main.py:7049 +#: appTools/ToolSolderPaste.py:1063 app_Main.py:6839 app_Main.py:6844 msgid "Export Code ..." msgstr "Export Code ..." @@ -3899,7 +3898,7 @@ msgstr "No such file or directory" msgid "Saved to" msgstr "Saved to" -#: appEditors/appGCodeEditor.py:66 app_Main.py:7905 +#: appEditors/appGCodeEditor.py:66 app_Main.py:7000 msgid "Code Editor" msgstr "Code Editor" @@ -3927,7 +3926,7 @@ msgstr "GCode Editor" #: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 appGUI/ObjectUI.py:2019 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1320 +#: appTools/ToolCopperThieving.py:1316 msgid "Dia" msgstr "Dia" @@ -4018,8 +4017,8 @@ msgstr "" msgid "Save Log" msgstr "Save Log" -#: appGUI/GUIElements.py:3085 app_Main.py:2809 app_Main.py:3181 -#: app_Main.py:3354 +#: appGUI/GUIElements.py:3085 app_Main.py:2741 app_Main.py:3113 +#: app_Main.py:3286 msgid "Close" msgstr "Close" @@ -4579,7 +4578,7 @@ msgstr "Help" msgid "Online Help\tF1" msgstr "Online Help\tF1" -#: appGUI/MainGUI.py:527 app_Main.py:3319 app_Main.py:3328 +#: appGUI/MainGUI.py:527 app_Main.py:3251 app_Main.py:3260 msgid "Bookmarks Manager" msgstr "Bookmarks Manager" @@ -4607,7 +4606,7 @@ msgstr "YouTube Channel\tF4" msgid "How To" msgstr "How To" -#: appGUI/MainGUI.py:551 app_Main.py:2776 +#: appGUI/MainGUI.py:551 app_Main.py:2708 msgid "About FlatCAM" msgstr "About FlatCAM" @@ -4775,47 +4774,47 @@ msgstr "Disable Plot" msgid "Set Color" msgstr "Set Color" -#: appGUI/MainGUI.py:709 app_Main.py:10148 +#: appGUI/MainGUI.py:709 app_Main.py:7724 msgid "Red" msgstr "Red" -#: appGUI/MainGUI.py:712 app_Main.py:10150 +#: appGUI/MainGUI.py:712 app_Main.py:7726 msgid "Blue" msgstr "Blue" -#: appGUI/MainGUI.py:715 app_Main.py:10153 +#: appGUI/MainGUI.py:715 app_Main.py:7729 msgid "Yellow" msgstr "Yellow" -#: appGUI/MainGUI.py:718 app_Main.py:10155 +#: appGUI/MainGUI.py:718 app_Main.py:7731 msgid "Green" msgstr "Green" -#: appGUI/MainGUI.py:721 app_Main.py:10157 +#: appGUI/MainGUI.py:721 app_Main.py:7733 msgid "Purple" msgstr "Purple" -#: appGUI/MainGUI.py:724 app_Main.py:10159 +#: appGUI/MainGUI.py:724 app_Main.py:7735 msgid "Brown" msgstr "Brown" -#: appGUI/MainGUI.py:727 app_Main.py:10161 app_Main.py:10220 +#: appGUI/MainGUI.py:727 app_Main.py:7737 app_Main.py:7796 msgid "White" msgstr "White" -#: appGUI/MainGUI.py:730 app_Main.py:10163 +#: appGUI/MainGUI.py:730 app_Main.py:7739 msgid "Black" msgstr "Black" -#: appGUI/MainGUI.py:735 app_Main.py:10166 +#: appGUI/MainGUI.py:735 app_Main.py:7742 msgid "Custom" msgstr "Custom" -#: appGUI/MainGUI.py:740 app_Main.py:10200 +#: appGUI/MainGUI.py:740 app_Main.py:7776 msgid "Opacity" msgstr "Opacity" -#: appGUI/MainGUI.py:743 app_Main.py:10176 +#: appGUI/MainGUI.py:743 app_Main.py:7752 msgid "Default" msgstr "Default" @@ -4889,13 +4888,13 @@ msgstr "Grid Toolbar" msgid "Status Toolbar" msgstr "Status Toolbar" -#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7110 -#: app_Main.py:7115 +#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:8046 +#: app_Main.py:8051 msgid "Open Gerber" msgstr "Open Gerber" -#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7150 -#: app_Main.py:7155 +#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:8086 +#: app_Main.py:8091 msgid "Open Excellon" msgstr "Open Excellon" @@ -4980,7 +4979,7 @@ msgid "Extract Drills Tool" msgstr "Extract Drills Tool" #: appGUI/MainGUI.py:931 appGUI/MainGUI.py:2086 appGUI/ObjectUI.py:387 -#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2052 +#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2056 msgid "Cutout Tool" msgstr "Cutout Tool" @@ -5031,17 +5030,17 @@ msgid "Calculators Tool" msgstr "Calculators Tool" #: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285 -#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628 +#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:629 msgid "QRCode Tool" msgstr "QRCode Tool" #: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1137 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1133 msgid "Copper Thieving Tool" msgstr "Copper Thieving Tool" #: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281 -#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648 +#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:650 msgid "Fiducials Tool" msgstr "Fiducials Tool" @@ -5060,7 +5059,7 @@ msgid "Invert Gerber Tool" msgstr "Invert Gerber Tool" #: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284 -#: appTools/ToolCorners.py:297 +#: appTools/ToolCorners.py:298 msgid "Corner Markers Tool" msgstr "Corner Markers Tool" @@ -5251,8 +5250,8 @@ msgstr "Toggle the display of axis on canvas" #: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:899 #: appGUI/preferences/PreferencesUIManager.py:992 #: appGUI/preferences/PreferencesUIManager.py:1020 -#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5585 -#: app_Main.py:5590 app_Main.py:5605 +#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5508 +#: app_Main.py:5513 app_Main.py:5528 msgid "Preferences" msgstr "Preferences" @@ -5288,21 +5287,21 @@ msgstr "" msgid "TCL Shell" msgstr "TCL Shell" -#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 +#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:9017 msgid "Project" msgstr "Project" #: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:3791 -#: appGUI/MainGUI.py:3797 app_Main.py:2480 app_Main.py:7001 +#: appGUI/MainGUI.py:3797 app_Main.py:2489 app_Main.py:8825 msgid "Plot Area" msgstr "Plot Area" -#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1169 -#: appTools/ToolCorners.py:317 appTools/ToolEtchCompensation.py:291 -#: appTools/ToolExtractDrills.py:453 appTools/ToolFiducials.py:873 +#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1165 +#: appTools/ToolCorners.py:318 appTools/ToolEtchCompensation.py:291 +#: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:875 #: appTools/ToolInvertGerber.py:215 appTools/ToolIsolation.py:2986 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:721 -#: appTools/ToolQRCode.py:659 appTools/ToolRulesCheck.py:1165 +#: appTools/ToolQRCode.py:660 appTools/ToolRulesCheck.py:1165 #: appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:643 msgid "GERBER" msgstr "GERBER" @@ -5390,9 +5389,9 @@ msgstr "Toggle Visibility" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:526 -#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:929 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2014 appTools/ToolDblSided.py:528 +#: appTools/ToolDblSided.py:769 appTools/ToolFilm.py:929 #: appTools/ToolFilm.py:952 appTools/ToolImage.py:136 appTools/ToolImage.py:191 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 @@ -5410,9 +5409,9 @@ msgstr "Geometry" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:892 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolDblSided.py:527 appTools/ToolDblSided.py:724 -#: appTools/ToolDblSided.py:766 appTools/ToolFilm.py:1207 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:768 appTools/ToolFilm.py:1207 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:805 appTools/ToolNCC.py:4323 appTools/ToolPaint.py:167 #: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147 @@ -5490,7 +5489,7 @@ msgstr "Exc Editor" msgid "Add Drill" msgstr "Add Drill" -#: appGUI/MainGUI.py:1581 app_Main.py:2291 +#: appGUI/MainGUI.py:1581 app_Main.py:2300 msgid "Close Editor" msgstr "Close Editor" @@ -5516,8 +5515,8 @@ msgstr "Are you sure you want to delete the GUI Settings? \n" #: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:931 #: appGUI/preferences/PreferencesUIManager.py:1177 appTranslation.py:111 -#: appTranslation.py:213 app_Main.py:2295 app_Main.py:3390 app_Main.py:5815 -#: app_Main.py:6899 +#: appTranslation.py:213 app_Main.py:2304 app_Main.py:3313 app_Main.py:5738 +#: app_Main.py:8723 msgid "Yes" msgstr "Yes" @@ -5529,7 +5528,7 @@ msgstr "Yes" #: appTools/ToolDrilling.py:2090 appTools/ToolIsolation.py:3066 #: appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3935 #: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 -#: app_Main.py:2296 app_Main.py:3391 app_Main.py:5816 app_Main.py:6900 +#: app_Main.py:2305 app_Main.py:3314 app_Main.py:5739 app_Main.py:8724 msgid "No" msgstr "No" @@ -5619,7 +5618,7 @@ msgstr "Adding Tool cancelled ..." msgid "Distance Tool exit..." msgstr "Distance Tool exit..." -#: appGUI/MainGUI.py:3725 app_Main.py:3378 +#: appGUI/MainGUI.py:3725 app_Main.py:3301 msgid "Application is saving the project. Please wait ..." msgstr "Application is saving the project. Please wait ..." @@ -5663,7 +5662,7 @@ msgstr "New Gerber" msgid "Edit Object (if selected)" msgstr "Edit Object (if selected)" -#: appGUI/MainGUI.py:4261 app_Main.py:6115 +#: appGUI/MainGUI.py:4261 app_Main.py:6038 msgid "Grid On/Off" msgstr "Grid On/Off" @@ -5733,7 +5732,7 @@ msgstr "Open Gerber File" msgid "New Project" msgstr "New Project" -#: appGUI/MainGUI.py:4270 app_Main.py:7229 app_Main.py:7232 +#: appGUI/MainGUI.py:4270 app_Main.py:8166 app_Main.py:8169 msgid "Open Project" msgstr "Open Project" @@ -6155,7 +6154,7 @@ msgstr "Plot Options" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1290 +#: appTools/ToolCopperThieving.py:1286 msgid "Solid" msgstr "Solid" @@ -6319,15 +6318,15 @@ msgstr "" msgid "Resulting geometry will have rounded corners." msgstr "Resulting geometry will have rounded corners." -#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2287 -#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444 +#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2291 +#: appTools/ToolCutOut.py:2306 appTools/ToolIsolation.py:3444 #: appTools/ToolNCC.py:4372 appTools/ToolPaint.py:3178 msgid "Generate Geometry" msgstr "Generate Geometry" #: appGUI/ObjectUI.py:478 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:782 +#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:783 msgid "Bounding Box" msgstr "Bounding Box" @@ -6657,7 +6656,7 @@ msgstr "" msgid "Add from DB" msgstr "Add from DB" -#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2071 +#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2075 #: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3122 #: appTools/ToolNCC.py:3996 appTools/ToolPaint.py:2898 msgid "Search and Add" @@ -6671,13 +6670,13 @@ msgstr "" "Add a new tool to the Tool Table\n" "with the diameter specified above." -#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2083 +#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2087 #: appTools/ToolIsolation.py:65 appTools/ToolIsolation.py:3133 #: appTools/ToolNCC.py:4007 appTools/ToolPaint.py:2909 msgid "Pick from DB" msgstr "Pick from DB" -#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2086 +#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2090 #: appTools/ToolIsolation.py:3136 appTools/ToolNCC.py:4010 #: appTools/ToolPaint.py:2912 msgid "" @@ -6773,7 +6772,7 @@ msgstr "" #: appGUI/ObjectUI.py:1216 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2107 +#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2111 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -6785,7 +6784,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 -#: appTools/ToolCutOut.py:2125 appTools/ToolDrilling.py:2164 +#: appTools/ToolCutOut.py:2129 appTools/ToolDrilling.py:2164 #: appTools/ToolMilling.py:1814 msgid "Multi-Depth" msgstr "Multi-Depth" @@ -7460,12 +7459,12 @@ msgstr "" #: appGUI/ObjectUI.py:2177 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: appTools/ToolCutOut.py:2324 appTools/ToolFiducials.py:801 +#: appTools/ToolCutOut.py:2328 appTools/ToolFiducials.py:803 msgid "Manual" msgstr "Manual" #: appGUI/ObjectUI.py:2178 -#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:9736 +#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:7312 msgid "Grid" msgstr "Grid" @@ -7511,7 +7510,6 @@ msgstr "Rows" #: appGUI/ObjectUI.py:2218 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 -#| msgid "The number of gird rows." msgid "The number of grid rows." msgstr "The number of grid rows." @@ -7783,7 +7781,7 @@ msgstr "Alignment" msgid "Align Left" msgstr "Align Left" -#: appGUI/ObjectUI.py:2860 app_Main.py:4999 +#: appGUI/ObjectUI.py:2860 app_Main.py:4922 msgid "Center" msgstr "Center" @@ -7872,7 +7870,7 @@ msgid "Preferences default values are restored." msgstr "Preferences default values are restored." #: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 -#: app_Main.py:2696 +#: app_Main.py:9396 msgid "Failed to write defaults to file." msgstr "Failed to write defaults to file." @@ -7922,10 +7920,10 @@ msgstr "CNC Job Adv. Options" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1188 -#: appTools/ToolCorners.py:377 appTools/ToolEtchCompensation.py:356 -#: appTools/ToolFiducials.py:763 appTools/ToolInvertGerber.py:228 -#: appTools/ToolQRCode.py:695 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1184 +#: appTools/ToolCorners.py:378 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolFiducials.py:765 appTools/ToolInvertGerber.py:228 +#: appTools/ToolQRCode.py:696 msgid "Parameters" msgstr "Parameters" @@ -8042,7 +8040,7 @@ msgid "G-code Decimals" msgstr "G-code Decimals" #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:682 +#: appTools/ToolFiducials.py:684 msgid "Coordinates" msgstr "Coordinates" @@ -8611,15 +8609,6 @@ msgid "Algorithm:" msgstr "Algorithm:" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215 -#| 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" -#| "Some options are disabled when FlatCAM works in 32bit mode." msgid "" "This sets the optimization type for the Excellon drill path.\n" "If <> is checked then Google OR-Tools algorithm with\n" @@ -8698,9 +8687,6 @@ msgstr "Fuse Tools" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:260 #: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:143 -#| msgid "" -#| "When checked the joined (merged) object tools\n" -#| "will be merged also but only if they share some of their attributes." msgid "" "When checked, the tools will be merged\n" "but only if they share some of their attributes." @@ -8799,7 +8785,7 @@ msgstr "App Settings" msgid "Grid Settings" msgstr "Grid Settings" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:9744 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:7320 msgid "X value" msgstr "X value" @@ -8807,7 +8793,7 @@ msgstr "X value" 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 app_Main.py:9747 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:7323 msgid "Y value" msgstr "Y value" @@ -8854,14 +8840,14 @@ msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: appTools/ToolFilm.py:1274 app_Main.py:9764 +#: appTools/ToolFilm.py:1274 app_Main.py:7340 msgid "Portrait" msgstr "Portrait" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: appTools/ToolFilm.py:1275 app_Main.py:9766 +#: appTools/ToolFilm.py:1275 app_Main.py:7342 msgid "Landscape" msgstr "Landscape" @@ -8880,7 +8866,7 @@ msgstr "" "and include the Project, Selected and Tool tabs." #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -#: appTools/ToolDblSided.py:666 appTools/ToolDblSided.py:838 app_Main.py:9752 +#: appTools/ToolDblSided.py:668 appTools/ToolDblSided.py:840 app_Main.py:7328 msgid "Axis" msgstr "Axis" @@ -8900,7 +8886,7 @@ msgstr "" "This sets the font size for the Textbox GUI\n" "elements that are used in the application." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:9769 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:7345 msgid "HUD" msgstr "HUD" @@ -9026,10 +9012,6 @@ msgid "Allow Edit" msgstr "Allow Edit" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:389 -#| msgid "" -#| "When cheched, the user can edit the objects in the Project Tab\n" -#| "by using the left mouse button click on the object name.\n" -#| "Active after restart." msgid "" "When checked, the user can edit the object names in the Project Tab\n" "by clicking on the object name. Active after restart." @@ -9842,15 +9824,6 @@ msgstr "" "Valid values: 0.3, 1.0" #: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96 -#| msgid "" -#| "This sets the path optimization algorithm.\n" -#| "- Rtre -> Rtree algorithm\n" -#| "- MetaHeuristic -> Google OR-Tools algorithm with\n" -#| "MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" -#| "- Basic -> Using Google OR-Tools Basic algorithm\n" -#| "- TSA -> Using Travelling Salesman algorithm\n" -#| "\n" -#| "Some options are disabled when FlatCAM works in 32bit mode." msgid "" "This sets the path optimization algorithm.\n" "- Rtre -> Rtree algorithm\n" @@ -9943,8 +9916,8 @@ msgid "\"Follow\"" msgstr "\"Follow\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:579 -#: appTools/ToolCopperThieving.py:776 appTools/ToolCopperThieving.py:788 +#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:578 +#: appTools/ToolCopperThieving.py:775 appTools/ToolCopperThieving.py:787 #: appTools/ToolIsolation.py:1353 appTools/ToolNCC.py:1793 #: appTools/ToolNCC.py:1820 appTools/ToolNCC.py:1928 appTools/ToolNCC.py:1941 #: appTools/ToolNCC.py:2845 appTools/ToolNCC.py:2950 appTools/ToolNCC.py:2965 @@ -9971,7 +9944,7 @@ msgstr "" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102 +#: appTools/ToolFiducials.py:817 appTools/ToolFilm.py:1102 #: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -10253,7 +10226,7 @@ msgstr "Number of steps (lines) used to interpolate circles." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1195 appTools/ToolCopperThieving.py:1530 +#: appTools/ToolCopperThieving.py:1191 appTools/ToolCopperThieving.py:1526 msgid "Clearance" msgstr "Clearance" @@ -10269,7 +10242,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1224 appTools/ToolNCC.py:1351 +#: appTools/ToolCopperThieving.py:1220 appTools/ToolNCC.py:1351 #: appTools/ToolNCC.py:1667 appTools/ToolNCC.py:1731 appTools/ToolNCC.py:2709 #: appTools/ToolNCC.py:2718 appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4436 #: defaults.py:478 tclCommands/TclCommandCopperClear.py:190 @@ -10280,7 +10253,7 @@ msgstr "Itself" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1225 appTools/ToolIsolation.py:819 +#: appTools/ToolCopperThieving.py:1221 appTools/ToolIsolation.py:819 #: appTools/ToolIsolation.py:1435 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1365 appTools/ToolNCC.py:1683 appTools/ToolNCC.py:1738 #: appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4446 appTools/ToolPaint.py:1061 @@ -10292,7 +10265,7 @@ msgstr "Area Selection" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolDblSided.py:757 +#: appTools/ToolCopperThieving.py:1222 appTools/ToolDblSided.py:759 #: appTools/ToolIsolation.py:1475 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1384 appTools/ToolNCC.py:1689 appTools/ToolNCC.py:1746 #: appTools/ToolNCC.py:2124 appTools/ToolNCC.py:2358 appTools/ToolNCC.py:2754 @@ -10303,7 +10276,7 @@ msgid "Reference Object" msgstr "Reference Object" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1224 msgid "Reference:" msgstr "Reference:" @@ -10326,24 +10299,24 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1270 appTools/ToolExtractDrills.py:494 -#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:770 +#: appTools/ToolCopperThieving.py:1266 appTools/ToolExtractDrills.py:495 +#: appTools/ToolExtractDrills.py:633 appTools/ToolPunchGerber.py:770 #: appTools/ToolPunchGerber.py:925 msgid "Rectangular" msgstr "Rectangular" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1271 +#: appTools/ToolCopperThieving.py:1267 msgid "Minimal" msgstr "Minimal" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1273 appTools/ToolFilm.py:954 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolFilm.py:954 msgid "Box Type:" msgstr "Box Type:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1275 +#: appTools/ToolCopperThieving.py:1271 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10352,27 +10325,27 @@ msgstr "" "- 'Minimal' - the bounding box will be the convex hull shape." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1291 +#: appTools/ToolCopperThieving.py:1287 msgid "Dots Grid" msgstr "Dots Grid" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1292 +#: appTools/ToolCopperThieving.py:1288 msgid "Squares Grid" msgstr "Squares Grid" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1293 +#: appTools/ToolCopperThieving.py:1289 msgid "Lines Grid" msgstr "Lines Grid" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1295 +#: appTools/ToolCopperThieving.py:1291 msgid "Fill Type:" msgstr "Fill Type:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1297 +#: appTools/ToolCopperThieving.py:1293 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10385,57 +10358,57 @@ msgstr "" "- 'Lines Grid' - the empty area will be filled with a pattern of lines." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1316 +#: appTools/ToolCopperThieving.py:1312 msgid "Dots Grid Parameters" msgstr "Dots Grid Parameters" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1322 +#: appTools/ToolCopperThieving.py:1318 msgid "Dot diameter in Dots Grid." msgstr "Dot diameter in Dots Grid." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1335 +#: appTools/ToolCopperThieving.py:1331 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:1356 +#: appTools/ToolCopperThieving.py:1352 msgid "Squares Grid Parameters" msgstr "Squares Grid Parameters" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1362 +#: appTools/ToolCopperThieving.py:1358 msgid "Square side size in Squares Grid." msgstr "Square side size in Squares Grid." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1375 +#: appTools/ToolCopperThieving.py:1371 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:1396 +#: appTools/ToolCopperThieving.py:1392 msgid "Lines Grid Parameters" msgstr "Lines Grid Parameters" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1402 +#: appTools/ToolCopperThieving.py:1398 msgid "Line thickness size in Lines Grid." msgstr "Line thickness size in Lines Grid." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1415 +#: appTools/ToolCopperThieving.py:1411 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:1453 +#: appTools/ToolCopperThieving.py:1449 msgid "Robber Bar Parameters" msgstr "Robber Bar Parameters" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1455 +#: appTools/ToolCopperThieving.py:1451 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10444,34 +10417,34 @@ msgstr "" "Robber bar = copper border to help in pattern hole plating." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1463 +#: appTools/ToolCopperThieving.py:1459 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:1474 appTools/ToolCorners.py:384 +#: appTools/ToolCopperThieving.py:1470 appTools/ToolCorners.py:385 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Thickness" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1476 +#: appTools/ToolCopperThieving.py:1472 msgid "The robber bar thickness." msgstr "The robber bar thickness." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1507 +#: appTools/ToolCopperThieving.py:1503 msgid "Pattern Plating Mask" msgstr "Pattern Plating Mask" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1509 +#: appTools/ToolCopperThieving.py:1505 msgid "Generate a mask for pattern plating." msgstr "Generate a mask for pattern plating." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1532 +#: appTools/ToolCopperThieving.py:1528 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10488,8 +10461,8 @@ msgstr "Calibration Tool Options" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1190 appTools/ToolCorners.py:379 -#: appTools/ToolFiducials.py:765 +#: appTools/ToolCopperThieving.py:1186 appTools/ToolCorners.py:380 +#: appTools/ToolFiducials.py:767 msgid "Parameters used for this tool." msgstr "Parameters used for this tool." @@ -10578,12 +10551,12 @@ msgstr "" "- bottom-right -> the user will align the PCB horizontally" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: appTools/ToolCalibration.py:854 app_Main.py:4996 +#: appTools/ToolCalibration.py:854 app_Main.py:4919 msgid "Top-Left" msgstr "Top-Left" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: appTools/ToolCalibration.py:855 app_Main.py:4997 +#: appTools/ToolCalibration.py:855 app_Main.py:4920 msgid "Bottom-Right" msgstr "Bottom-Right" @@ -10593,13 +10566,13 @@ msgstr "Extract Drills Options" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:732 +#: appTools/ToolExtractDrills.py:461 appTools/ToolPunchGerber.py:732 msgid "Processed Pads Type" msgstr "Processed Pads Type" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:734 +#: appTools/ToolExtractDrills.py:463 appTools/ToolPunchGerber.py:734 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -10611,7 +10584,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:748 +#: appTools/ToolExtractDrills.py:473 appTools/ToolPunchGerber.py:748 msgid "Process Circular Pads." msgstr "Process Circular Pads." @@ -10619,26 +10592,26 @@ msgstr "Process Circular Pads." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606 +#: appTools/ToolExtractDrills.py:479 appTools/ToolExtractDrills.py:607 #: appTools/ToolPunchGerber.py:754 appTools/ToolPunchGerber.py:899 msgid "Oblong" msgstr "Oblong" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:756 +#: appTools/ToolExtractDrills.py:481 appTools/ToolPunchGerber.py:756 msgid "Process Oblong Pads." msgstr "Process Oblong Pads." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:764 +#: appTools/ToolExtractDrills.py:489 appTools/ToolPunchGerber.py:764 msgid "Process Square Pads." msgstr "Process Square Pads." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:772 +#: appTools/ToolExtractDrills.py:497 appTools/ToolPunchGerber.py:772 msgid "Process Rectangular Pads." msgstr "Process Rectangular Pads." @@ -10646,15 +10619,15 @@ msgstr "Process Rectangular Pads." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502 -#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:171 +#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:503 +#: appTools/ToolExtractDrills.py:646 appTools/ToolProperties.py:171 #: appTools/ToolPunchGerber.py:778 appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "Others" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:780 +#: appTools/ToolExtractDrills.py:505 appTools/ToolPunchGerber.py:780 msgid "Process pads not in the categories above." msgstr "Process pads not in the categories above." @@ -10662,7 +10635,7 @@ msgstr "Process pads not in the categories above." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548 +#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:549 #: appTools/ToolPunchGerber.py:807 appTools/ToolPunchGerber.py:841 msgid "Fixed Diameter" msgstr "Fixed Diameter" @@ -10671,19 +10644,19 @@ msgstr "Fixed Diameter" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584 +#: appTools/ToolExtractDrills.py:533 appTools/ToolExtractDrills.py:585 #: appTools/ToolPunchGerber.py:808 appTools/ToolPunchGerber.py:871 msgid "Fixed Annular Ring" msgstr "Fixed Annular Ring" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:809 +#: appTools/ToolExtractDrills.py:534 appTools/ToolPunchGerber.py:809 msgid "Proportional" msgstr "Proportional" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: appTools/ToolExtractDrills.py:522 +#: appTools/ToolExtractDrills.py:523 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -10697,13 +10670,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:851 +#: appTools/ToolExtractDrills.py:559 appTools/ToolPunchGerber.py:851 msgid "Fixed hole diameter." msgstr "Fixed hole diameter." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: appTools/ToolExtractDrills.py:586 appTools/ToolPunchGerber.py:873 +#: appTools/ToolExtractDrills.py:587 appTools/ToolPunchGerber.py:873 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -10715,37 +10688,37 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:888 +#: appTools/ToolExtractDrills.py:596 appTools/ToolPunchGerber.py:888 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:608 appTools/ToolPunchGerber.py:901 +#: appTools/ToolExtractDrills.py:609 appTools/ToolPunchGerber.py:901 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:621 appTools/ToolPunchGerber.py:914 +#: appTools/ToolExtractDrills.py:622 appTools/ToolPunchGerber.py:914 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:634 appTools/ToolPunchGerber.py:927 +#: appTools/ToolExtractDrills.py:635 appTools/ToolPunchGerber.py:927 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:647 appTools/ToolPunchGerber.py:940 +#: appTools/ToolExtractDrills.py:648 appTools/ToolPunchGerber.py:940 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:668 appTools/ToolPunchGerber.py:956 +#: appTools/ToolExtractDrills.py:669 appTools/ToolPunchGerber.py:956 msgid "Proportional Diameter" msgstr "Proportional Diameter" @@ -10756,7 +10729,7 @@ msgstr "Factor" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:967 +#: appTools/ToolExtractDrills.py:680 appTools/ToolPunchGerber.py:967 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -10769,7 +10742,7 @@ msgid "Fiducials Tool Options" msgstr "Fiducials Tool Options" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: appTools/ToolFiducials.py:772 +#: appTools/ToolFiducials.py:774 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -10780,12 +10753,12 @@ msgstr "" "The soldermask opening is double than that." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: appTools/ToolFiducials.py:800 +#: appTools/ToolFiducials.py:802 msgid "Auto" msgstr "Auto" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:803 +#: appTools/ToolFiducials.py:805 msgid "Mode:" msgstr "Mode:" @@ -10800,22 +10773,22 @@ msgstr "" "- 'Manual' - manual placement of fiducials." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: appTools/ToolFiducials.py:813 +#: appTools/ToolFiducials.py:815 msgid "Up" msgstr "Up" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: appTools/ToolFiducials.py:814 +#: appTools/ToolFiducials.py:816 msgid "Down" msgstr "Down" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: appTools/ToolFiducials.py:817 +#: appTools/ToolFiducials.py:819 msgid "Second fiducial" msgstr "Second fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: appTools/ToolFiducials.py:819 +#: appTools/ToolFiducials.py:821 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -10828,22 +10801,22 @@ msgstr "" "- 'None' - there is no second fiducial. The order is: bottom-left, top-right." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: appTools/ToolFiducials.py:835 +#: appTools/ToolFiducials.py:837 msgid "Cross" msgstr "Cross" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: appTools/ToolFiducials.py:836 +#: appTools/ToolFiducials.py:838 msgid "Chess" msgstr "Chess" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: appTools/ToolFiducials.py:838 +#: appTools/ToolFiducials.py:840 msgid "Fiducial Type" msgstr "Fiducial Type" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: appTools/ToolFiducials.py:840 +#: appTools/ToolFiducials.py:842 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -10856,7 +10829,7 @@ msgstr "" "- 'Chess' - chess pattern fiducial." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: appTools/ToolFiducials.py:849 +#: appTools/ToolFiducials.py:851 msgid "Line thickness" msgstr "Line thickness" @@ -10965,12 +10938,12 @@ msgstr "" "into a selected Gerber file, or it can be exported as a file." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: appTools/ToolQRCode.py:702 app_Main.py:9732 +#: appTools/ToolQRCode.py:703 app_Main.py:7308 msgid "Version" msgstr "Version" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: appTools/ToolQRCode.py:704 +#: appTools/ToolQRCode.py:705 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -10979,13 +10952,13 @@ msgstr "" "to 40 (177x177 boxes)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: appTools/ToolQRCode.py:715 +#: appTools/ToolQRCode.py:716 msgid "Error correction" msgstr "Error correction" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: appTools/ToolQRCode.py:717 appTools/ToolQRCode.py:728 +#: appTools/ToolQRCode.py:718 appTools/ToolQRCode.py:729 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -11001,12 +10974,12 @@ msgstr "" "H = maximum 30%% errors can be corrected." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: appTools/ToolQRCode.py:738 +#: appTools/ToolQRCode.py:739 msgid "Box Size" msgstr "Box Size" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: appTools/ToolQRCode.py:740 +#: appTools/ToolQRCode.py:741 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11015,12 +10988,12 @@ msgstr "" "by adjusting the size of each box in the code." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: appTools/ToolQRCode.py:751 +#: appTools/ToolQRCode.py:752 msgid "Border Size" msgstr "Border Size" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: appTools/ToolQRCode.py:753 +#: appTools/ToolQRCode.py:754 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." @@ -11029,27 +11002,27 @@ msgstr "" "Default value is 4. The width of the clearance around the QRCode." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: appTools/ToolQRCode.py:673 +#: appTools/ToolQRCode.py:674 msgid "QRCode Data" msgstr "QRCode Data" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: appTools/ToolQRCode.py:675 +#: appTools/ToolQRCode.py:676 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:679 +#: appTools/ToolQRCode.py:680 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:764 +#: appTools/ToolQRCode.py:765 msgid "Polarity" msgstr "Polarity" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: appTools/ToolQRCode.py:766 +#: appTools/ToolQRCode.py:767 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11060,17 +11033,17 @@ msgstr "" "or in a positive way (squares are opaque)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:770 +#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:771 msgid "Negative" msgstr "Negative" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:771 +#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:772 msgid "Positive" msgstr "Positive" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: appTools/ToolQRCode.py:773 +#: appTools/ToolQRCode.py:774 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -11084,7 +11057,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: appTools/ToolQRCode.py:784 appTools/ToolQRCode.py:790 +#: appTools/ToolQRCode.py:785 appTools/ToolQRCode.py:791 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -11093,22 +11066,22 @@ msgstr "" "the QRCode geometry, can have a rounded or a square shape." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: appTools/ToolQRCode.py:818 +#: appTools/ToolQRCode.py:819 msgid "Fill Color" msgstr "Fill Color" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: appTools/ToolQRCode.py:820 +#: appTools/ToolQRCode.py:821 msgid "Set the QRCode fill color (squares color)." msgstr "Set the QRCode fill color (squares color)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: appTools/ToolQRCode.py:842 +#: appTools/ToolQRCode.py:843 msgid "Back Color" msgstr "Back Color" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: appTools/ToolQRCode.py:844 +#: appTools/ToolQRCode.py:845 msgid "Set the QRCode background color." msgstr "Set the QRCode background color." @@ -11333,7 +11306,7 @@ msgid "Drill dia" msgstr "Drill dia" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: appTools/ToolDblSided.py:824 appTools/ToolDblSided.py:829 +#: appTools/ToolDblSided.py:826 appTools/ToolDblSided.py:831 msgid "Diameter of the drill for the alignment holes." msgstr "Diameter of the drill for the alignment holes." @@ -11343,7 +11316,7 @@ msgstr "Align Axis" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: appTools/ToolDblSided.py:667 appTools/ToolDblSided.py:840 +#: appTools/ToolDblSided.py:669 appTools/ToolDblSided.py:842 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Mirror vertically (X) or horizontally (Y)." @@ -11352,12 +11325,12 @@ msgid "Mirror Axis:" msgstr "Mirror Axis:" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 -#: appTools/ToolDblSided.py:693 +#: appTools/ToolDblSided.py:695 msgid "Box" msgstr "Box" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 -#: appTools/ToolDblSided.py:694 +#: appTools/ToolDblSided.py:696 msgid "Hole Snap" msgstr "Hole Snap" @@ -11506,12 +11479,12 @@ msgid "Corner Markers Options" msgstr "Corner Markers Options" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:386 +#: appTools/ToolCorners.py:387 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:400 +#: appTools/ToolCorners.py:401 msgid "The length of the line that makes the corner marker." msgstr "The length of the line that makes the corner marker." @@ -11530,7 +11503,7 @@ msgstr "" "the original board." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: appTools/ToolCutOut.py:2062 +#: appTools/ToolCutOut.py:2066 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -11543,7 +11516,7 @@ msgid "Object kind" msgstr "Object kind" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: appTools/ToolCutOut.py:1995 +#: appTools/ToolCutOut.py:1999 msgid "" "Choice of what kind the object we want to cutout is.
- Single: " "contain a single PCB Gerber outline object.
- Panel: a panel PCB " @@ -11556,12 +11529,12 @@ msgstr "" "out of many individual PCB outlines." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: appTools/ToolCutOut.py:2001 +#: appTools/ToolCutOut.py:2005 msgid "Single" msgstr "Single" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: appTools/ToolCutOut.py:2002 +#: appTools/ToolCutOut.py:2006 msgid "Panel" msgstr "Panel" @@ -11590,12 +11563,12 @@ msgstr "" "- 8 - 2*left + 2*right +2*top + 2*bottom" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 -#: appTools/ToolCutOut.py:2333 +#: appTools/ToolCutOut.py:2337 msgid "Big cursor" msgstr "Big cursor" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 -#: appTools/ToolCutOut.py:2335 +#: appTools/ToolCutOut.py:2339 msgid "Use a big cursor when adding manual gaps." msgstr "Use a big cursor when adding manual gaps." @@ -11860,18 +11833,18 @@ msgstr "" "It can be one of the four points of the geometry bounding box." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:342 appTools/ToolFiducials.py:694 +#: appTools/ToolCorners.py:343 appTools/ToolFiducials.py:696 #: appTools/ToolFilm.py:1065 msgid "Bottom Left" msgstr "Bottom Left" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:350 appTools/ToolFilm.py:1066 +#: appTools/ToolCorners.py:351 appTools/ToolFilm.py:1066 msgid "Top Left" msgstr "Top Left" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:346 appTools/ToolFilm.py:1067 +#: appTools/ToolCorners.py:347 appTools/ToolFilm.py:1067 msgid "Bottom Right" msgstr "Bottom Right" @@ -12151,9 +12124,9 @@ msgstr "Progressive" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:453 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1044 -#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530 -#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:463 app_Main.py:4682 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCorners.py:264 appTools/ToolFiducials.py:532 +#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:464 app_Main.py:4605 msgid "Plotting" msgstr "Plotting" @@ -12348,9 +12321,9 @@ msgstr "Number of rows of the desired panel" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:891 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2009 appTools/ToolDblSided.py:525 -#: appTools/ToolDblSided.py:765 appTools/ToolFilm.py:928 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:527 +#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:928 #: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 #: appTools/ToolIsolation.py:3339 appTools/ToolIsolation.py:3391 @@ -12384,11 +12357,6 @@ msgstr "" #: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 #: appTools/ToolPanelize.py:823 -#| msgid "" -#| "Active only for Geometry panel type.\n" -#| "When checked the application will find\n" -#| "any two overlapping Line elements in the panel\n" -#| "and remove the overlapping parts, keeping only one of them." msgid "" "Active only for Geometry panel type.\n" "When checked the application will find\n" @@ -12973,7 +12941,7 @@ msgid "Export cancelled ..." msgstr "Export cancelled ..." #: appObjects/FlatCAMCNCJob.py:1678 appObjects/FlatCAMCNCJob.py:1965 -#: appObjects/FlatCAMScript.py:134 app_Main.py:7830 +#: appObjects/FlatCAMScript.py:134 app_Main.py:6925 msgid "Loading..." msgstr "Loading..." @@ -13106,7 +13074,7 @@ msgstr "Add from Tool DB" #: appTools/ToolDrilling.py:1021 appTools/ToolIsolation.py:639 #: appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744 #: appTools/ToolMilling.py:779 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 -#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2194 +#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2203 msgid "No Tool Selected" msgstr "No Tool Selected" @@ -13412,7 +13380,7 @@ msgstr "Object renamed from {old} to {new}" #: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939 #: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951 #: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 -#: app_Main.py:6707 app_Main.py:6713 app_Main.py:6719 app_Main.py:6725 +#: app_Main.py:6630 app_Main.py:6636 app_Main.py:6642 app_Main.py:6648 msgid "selected" msgstr "selected" @@ -13582,7 +13550,7 @@ msgid "Click on the START point." msgstr "Click on the START point." #: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276 -#: appTools/ToolDblSided.py:285 +#: appTools/ToolDblSided.py:287 msgid "Cancelled by user request." msgstr "Cancelled by user request." @@ -13596,7 +13564,7 @@ msgid "Or right click to cancel." msgstr "Or right click to cancel." #: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267 -#: appTools/ToolFiducials.py:718 +#: appTools/ToolFiducials.py:720 msgid "Second Point" msgstr "Second Point" @@ -13681,32 +13649,32 @@ msgstr "" "If tho points are used it assume translation and rotation." #: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1583 -#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394 -#: appTools/ToolDblSided.py:938 appTools/ToolDrilling.py:2649 -#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:702 -#: appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCorners.py:445 appTools/ToolCutOut.py:2398 +#: appTools/ToolDblSided.py:940 appTools/ToolDrilling.py:2649 +#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:703 +#: appTools/ToolFiducials.py:934 appTools/ToolFilm.py:1383 #: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477 #: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4388 #: appTools/ToolOptimal.py:593 appTools/ToolPaint.py:3194 #: appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:996 -#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1620 +#: appTools/ToolQRCode.py:905 appTools/ToolRulesCheck.py:1620 #: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:754 #: appTools/ToolTransform.py:920 msgid "Reset Tool" msgstr "Reset Tool" #: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1586 -#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397 -#: appTools/ToolDblSided.py:941 appTools/ToolDrilling.py:2652 -#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:705 -#: appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1582 +#: appTools/ToolCorners.py:448 appTools/ToolCutOut.py:2401 +#: appTools/ToolDblSided.py:943 appTools/ToolDrilling.py:2652 +#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:706 +#: appTools/ToolFiducials.py:937 appTools/ToolFilm.py:1386 #: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480 #: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4391 #: appTools/ToolOptimal.py:596 appTools/ToolPaint.py:3197 #: appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:999 -#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1623 +#: appTools/ToolQRCode.py:908 appTools/ToolRulesCheck.py:1623 #: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:757 #: appTools/ToolTransform.py:923 msgid "Will reset the tool parameters." @@ -14114,30 +14082,30 @@ msgstr "Dots grid fill selected." msgid "Squares grid fill selected." msgstr "Squares grid fill selected." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308 -#: appTools/ToolCopperThieving.py:916 appTools/ToolCorners.py:120 -#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141 +#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:307 +#: appTools/ToolCopperThieving.py:914 appTools/ToolCorners.py:120 +#: appTools/ToolDblSided.py:306 appTools/ToolExtractDrills.py:141 #: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464 #: appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:188 #: appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "There is no Gerber object loaded ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:844 +#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 msgid "Append geometry" msgstr "Append geometry" -#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:877 -#: appTools/ToolCopperThieving.py:1022 +#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:876 +#: appTools/ToolCopperThieving.py:1020 msgid "Append source file" msgstr "Append source file" -#: appTools/ToolCopperThieving.py:291 appTools/ToolCopperThieving.py:885 +#: appTools/ToolCopperThieving.py:290 appTools/ToolCopperThieving.py:883 msgid "Copper Thieving Tool done." msgstr "Copper Thieving Tool done." -#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351 -#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917 +#: appTools/ToolCopperThieving.py:317 appTools/ToolCopperThieving.py:350 +#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:918 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 #: appTools/ToolIsolation.py:908 appTools/ToolIsolation.py:1345 @@ -14152,77 +14120,77 @@ msgstr "Copper Thieving Tool done." msgid "Could not retrieve object" msgstr "Could not retrieve object" -#: appTools/ToolCopperThieving.py:379 +#: appTools/ToolCopperThieving.py:378 msgid "Click the end point of the filling area." msgstr "Click the end point of the filling area." -#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511 -#: appTools/ToolCopperThieving.py:570 +#: appTools/ToolCopperThieving.py:506 appTools/ToolCopperThieving.py:510 +#: appTools/ToolCopperThieving.py:569 msgid "Thieving" msgstr "Thieving" -#: appTools/ToolCopperThieving.py:518 +#: appTools/ToolCopperThieving.py:517 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Copper Thieving Tool started. Reading parameters." -#: appTools/ToolCopperThieving.py:543 +#: appTools/ToolCopperThieving.py:542 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Copper Thieving Tool. Preparing isolation polygons." -#: appTools/ToolCopperThieving.py:586 +#: appTools/ToolCopperThieving.py:585 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Copper Thieving Tool. Preparing areas to fill with copper." -#: appTools/ToolCopperThieving.py:597 appTools/ToolFilm.py:631 +#: appTools/ToolCopperThieving.py:596 appTools/ToolFilm.py:631 #: appTools/ToolFilm.py:879 appTools/ToolIsolation.py:916 #: appTools/ToolNCC.py:853 appTools/ToolOptimal.py:145 #: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:627 msgid "Working..." msgstr "Working..." -#: appTools/ToolCopperThieving.py:626 +#: appTools/ToolCopperThieving.py:625 msgid "Geometry not supported for bounding box" msgstr "Geometry not supported for bounding box" -#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1681 +#: appTools/ToolCopperThieving.py:631 appTools/ToolNCC.py:1681 #: appTools/ToolNCC.py:1736 appTools/ToolNCC.py:2734 appTools/ToolPaint.py:2457 msgid "No object available." msgstr "No object available." -#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1706 +#: appTools/ToolCopperThieving.py:668 appTools/ToolNCC.py:1706 #: appTools/ToolNCC.py:1759 appTools/ToolNCC.py:2776 msgid "The reference object type is not supported." msgstr "The reference object type is not supported." -#: appTools/ToolCopperThieving.py:674 +#: appTools/ToolCopperThieving.py:673 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Copper Thieving Tool. Appending new geometry and buffering." -#: appTools/ToolCopperThieving.py:690 +#: appTools/ToolCopperThieving.py:689 msgid "Create geometry" msgstr "Create geometry" -#: appTools/ToolCopperThieving.py:896 appTools/ToolCopperThieving.py:900 +#: appTools/ToolCopperThieving.py:894 appTools/ToolCopperThieving.py:898 msgid "P-Plating Mask" msgstr "P-Plating Mask" -#: appTools/ToolCopperThieving.py:922 +#: appTools/ToolCopperThieving.py:920 msgid "Append PP-M geometry" msgstr "Append PP-M geometry" -#: appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCopperThieving.py:1036 msgid "Generating Pattern Plating Mask done." msgstr "Generating Pattern Plating Mask done." -#: appTools/ToolCopperThieving.py:1112 +#: appTools/ToolCopperThieving.py:1108 msgid "Copper Thieving Tool exit." msgstr "Copper Thieving Tool exit." -#: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 +#: appTools/ToolCopperThieving.py:1167 appTools/ToolFiducials.py:877 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:1197 +#: appTools/ToolCopperThieving.py:1193 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14232,7 +14200,7 @@ msgstr "" "(the polygon fill may be split in multiple polygons)\n" "and the copper traces in the Gerber file." -#: appTools/ToolCopperThieving.py:1230 +#: appTools/ToolCopperThieving.py:1226 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 " @@ -14246,12 +14214,12 @@ msgstr "" "- 'Reference Object' - will do copper thieving within the area specified by " "another object." -#: appTools/ToolCopperThieving.py:1237 appTools/ToolIsolation.py:3385 +#: appTools/ToolCopperThieving.py:1233 appTools/ToolIsolation.py:3385 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3137 msgid "Ref. Type" msgstr "Ref. Type" -#: appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1235 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14259,21 +14227,21 @@ msgstr "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." -#: appTools/ToolCopperThieving.py:1248 appTools/ToolIsolation.py:3396 +#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3396 #: appTools/ToolNCC.py:4327 appTools/ToolPaint.py:3147 msgid "Ref. Object" msgstr "Ref. Object" -#: appTools/ToolCopperThieving.py:1250 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1246 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4329 appTools/ToolPaint.py:3149 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:1426 +#: appTools/ToolCopperThieving.py:1422 msgid "Insert Copper thieving" msgstr "Insert Copper thieving" -#: appTools/ToolCopperThieving.py:1428 +#: appTools/ToolCopperThieving.py:1424 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14281,11 +14249,11 @@ 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:1487 +#: appTools/ToolCopperThieving.py:1483 msgid "Insert Robber Bar" msgstr "Insert Robber Bar" -#: appTools/ToolCopperThieving.py:1489 +#: appTools/ToolCopperThieving.py:1485 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14297,11 +14265,11 @@ msgstr "" "at a certain distance.\n" "Required when doing holes pattern plating." -#: appTools/ToolCopperThieving.py:1513 +#: appTools/ToolCopperThieving.py:1509 msgid "Select Soldermask object" msgstr "Select Soldermask object" -#: appTools/ToolCopperThieving.py:1515 +#: appTools/ToolCopperThieving.py:1511 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14311,11 +14279,11 @@ msgstr "" "It will be used as a base for\n" "the pattern plating mask." -#: appTools/ToolCopperThieving.py:1544 +#: appTools/ToolCopperThieving.py:1540 msgid "Plated area" msgstr "Plated area" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1542 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14333,19 +14301,19 @@ msgstr "" "a bit larger than the copper pads, and this area is\n" "calculated from the soldermask openings." -#: appTools/ToolCopperThieving.py:1557 +#: appTools/ToolCopperThieving.py:1553 msgid "mm" msgstr "mm" -#: appTools/ToolCopperThieving.py:1559 +#: appTools/ToolCopperThieving.py:1555 msgid "in" msgstr "in" -#: appTools/ToolCopperThieving.py:1566 +#: appTools/ToolCopperThieving.py:1562 msgid "Generate pattern plating mask" msgstr "Generate pattern plating mask" -#: appTools/ToolCopperThieving.py:1568 +#: appTools/ToolCopperThieving.py:1564 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14359,39 +14327,39 @@ msgstr "" msgid "Corners Tool" msgstr "Corners Tool" -#: appTools/ToolCorners.py:157 +#: appTools/ToolCorners.py:158 msgid "Please select at least a location" msgstr "Please select at least a location" -#: appTools/ToolCorners.py:292 +#: appTools/ToolCorners.py:293 msgid "Corners Tool exit." msgstr "Corners Tool exit." -#: appTools/ToolCorners.py:319 +#: appTools/ToolCorners.py:320 msgid "The Gerber object to which will be added corner markers." msgstr "The Gerber object to which will be added corner markers." -#: appTools/ToolCorners.py:335 +#: appTools/ToolCorners.py:336 msgid "Locations" msgstr "Locations" -#: appTools/ToolCorners.py:337 +#: appTools/ToolCorners.py:338 msgid "Locations where to place corner markers." msgstr "Locations where to place corner markers." -#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706 +#: appTools/ToolCorners.py:355 appTools/ToolFiducials.py:708 msgid "Top Right" msgstr "Top Right" -#: appTools/ToolCorners.py:363 +#: appTools/ToolCorners.py:364 msgid "Toggle ALL" msgstr "Toggle ALL" -#: appTools/ToolCorners.py:429 +#: appTools/ToolCorners.py:430 msgid "Add Marker" msgstr "Add Marker" -#: appTools/ToolCorners.py:431 +#: appTools/ToolCorners.py:432 msgid "Will add corner markers to the selected Gerber file." msgstr "Will add corner markers to the selected Gerber file." @@ -14400,7 +14368,7 @@ msgstr "Will add corner markers to the selected Gerber file." #: appTools/ToolNCC.py:463 appTools/ToolNCC.py:992 appTools/ToolNCC.py:1130 #: appTools/ToolPaint.py:395 appTools/ToolPaint.py:686 #: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131 -#: appTools/ToolSolderPaste.py:464 app_Main.py:4496 +#: appTools/ToolSolderPaste.py:464 app_Main.py:4419 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." @@ -14444,17 +14412,17 @@ msgstr "" "There is no object selected for Cutout.\n" "Select one and try again." -#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:926 -#: appTools/ToolCutOut.py:1300 appTools/ToolCutOut.py:1431 +#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:927 +#: appTools/ToolCutOut.py:1303 appTools/ToolCutOut.py:1434 #: 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:568 appTools/ToolCutOut.py:940 +#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:941 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:573 appTools/ToolCutOut.py:944 +#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:945 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " @@ -14462,16 +14430,16 @@ 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:891 appTools/ToolCutOut.py:1260 -#: appTools/ToolCutOut.py:1615 +#: appTools/ToolCutOut.py:892 appTools/ToolCutOut.py:1263 +#: appTools/ToolCutOut.py:1619 msgid "Mouse bites failed." msgstr "Mouse bites failed." -#: appTools/ToolCutOut.py:899 +#: appTools/ToolCutOut.py:900 msgid "Any form CutOut operation finished." msgstr "Any form CutOut operation finished." -#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586 +#: appTools/ToolCutOut.py:922 appTools/ToolDrilling.py:1586 #: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349 #: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326 @@ -14481,43 +14449,43 @@ msgstr "Any form CutOut operation finished." msgid "Object not found" msgstr "Object not found" -#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187 +#: appTools/ToolCutOut.py:1115 appTools/ToolCutOut.py:1188 msgid "Rectangular cutout with negative margin is not possible." msgstr "Rectangular cutout with negative margin is not possible." -#: appTools/ToolCutOut.py:1268 +#: appTools/ToolCutOut.py:1271 msgid "Rectangular CutOut operation finished." msgstr "Rectangular CutOut operation finished." -#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316 +#: appTools/ToolCutOut.py:1287 appTools/ToolCutOut.py:1319 msgid "Could not retrieve Geometry object" msgstr "Could not retrieve Geometry object" -#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344 +#: appTools/ToolCutOut.py:1292 appTools/ToolCutOut.py:1347 msgid "Geometry object for manual cutout not found" msgstr "Geometry object for manual cutout not found" -#: appTools/ToolCutOut.py:1292 +#: appTools/ToolCutOut.py:1295 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:1380 +#: appTools/ToolCutOut.py:1383 msgid "No tool in the Geometry object." msgstr "No tool in the Geometry object." -#: appTools/ToolCutOut.py:1401 +#: appTools/ToolCutOut.py:1404 msgid "" "Added manual Bridge Gap. Left click to add another or right click to finish." msgstr "" "Added manual Bridge Gap. Left click to add another or right click to finish." -#: appTools/ToolCutOut.py:1413 +#: appTools/ToolCutOut.py:1416 msgid "Could not retrieve Gerber object" msgstr "Could not retrieve Gerber object" -#: appTools/ToolCutOut.py:1418 +#: appTools/ToolCutOut.py:1421 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." @@ -14525,7 +14493,7 @@ msgstr "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." -#: appTools/ToolCutOut.py:1424 +#: appTools/ToolCutOut.py:1427 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -14533,36 +14501,36 @@ msgstr "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." -#: appTools/ToolCutOut.py:1459 +#: appTools/ToolCutOut.py:1462 msgid "Geometry not supported for cutout" msgstr "Geometry not supported for cutout" -#: appTools/ToolCutOut.py:1531 +#: appTools/ToolCutOut.py:1534 msgid "Making manual bridge gap..." msgstr "Making manual bridge gap..." -#: appTools/ToolCutOut.py:1619 +#: appTools/ToolCutOut.py:1623 msgid "Finished manual adding of gaps." msgstr "Finished manual adding of gaps." -#: appTools/ToolCutOut.py:1961 +#: appTools/ToolCutOut.py:1965 msgid "Cutout PCB" msgstr "Cutout PCB" -#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513 +#: appTools/ToolCutOut.py:1991 appTools/ToolDblSided.py:515 #: appTools/ToolPanelize.py:652 msgid "Source Object" msgstr "Source Object" -#: appTools/ToolCutOut.py:1988 +#: appTools/ToolCutOut.py:1992 msgid "Object to be cutout" msgstr "Object to be cutout" -#: appTools/ToolCutOut.py:1993 +#: appTools/ToolCutOut.py:1997 msgid "Kind" msgstr "Kind" -#: appTools/ToolCutOut.py:2015 +#: appTools/ToolCutOut.py:2019 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -14574,7 +14542,7 @@ msgstr "" "What is selected here will dictate the kind\n" "of objects that will populate the 'Object' combobox." -#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125 +#: appTools/ToolCutOut.py:2078 appTools/ToolIsolation.py:3125 #: appTools/ToolNCC.py:3999 appTools/ToolPaint.py:2901 msgid "" "Add a new tool to the Tool Table\n" @@ -14589,23 +14557,23 @@ msgstr "" "in the Tools Database. If nothing is found\n" "in the Tools DB then a default tool is added." -#: appTools/ToolCutOut.py:2100 +#: appTools/ToolCutOut.py:2104 msgid "Tool Parameters" msgstr "Tool Parameters" -#: appTools/ToolCutOut.py:2249 +#: appTools/ToolCutOut.py:2253 msgid "Automatic" msgstr "Automatic" -#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324 +#: appTools/ToolCutOut.py:2253 appTools/ToolCutOut.py:2328 msgid "Bridge Gaps" msgstr "Bridge Gaps" -#: appTools/ToolCutOut.py:2251 +#: appTools/ToolCutOut.py:2255 msgid "This section handle creation of automatic bridge gaps." msgstr "This section handle creation of automatic bridge gaps." -#: appTools/ToolCutOut.py:2290 +#: appTools/ToolCutOut.py:2294 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -14615,7 +14583,7 @@ msgstr "" "The cutout shape can be of any shape.\n" "Useful when the PCB has a non-rectangular shape." -#: appTools/ToolCutOut.py:2305 +#: appTools/ToolCutOut.py:2309 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -14627,7 +14595,7 @@ msgstr "" "always a rectangle shape and it will be\n" "the bounding box of the Object." -#: appTools/ToolCutOut.py:2326 +#: appTools/ToolCutOut.py:2330 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -14637,11 +14605,11 @@ msgstr "" "This is done by mouse clicking on the perimeter of the\n" "Geometry object that is used as a cutout object. " -#: appTools/ToolCutOut.py:2342 +#: appTools/ToolCutOut.py:2346 msgid "Generate Manual Geometry" msgstr "Generate Manual Geometry" -#: appTools/ToolCutOut.py:2345 +#: appTools/ToolCutOut.py:2349 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -14653,19 +14621,19 @@ msgstr "" "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:2365 +#: appTools/ToolCutOut.py:2369 msgid "Manual cutout Geometry" msgstr "Manual cutout Geometry" -#: appTools/ToolCutOut.py:2367 +#: appTools/ToolCutOut.py:2371 msgid "Geometry object used to create the manual cutout." msgstr "Geometry object used to create the manual cutout." -#: appTools/ToolCutOut.py:2374 +#: appTools/ToolCutOut.py:2378 msgid "Manual Add Bridge Gaps" msgstr "Manual Add Bridge Gaps" -#: appTools/ToolCutOut.py:2377 +#: appTools/ToolCutOut.py:2381 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -14703,31 +14671,31 @@ msgstr "No value or wrong format in Drill Dia entry. Add it and retry." 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:213 +#: appTools/ToolDblSided.py:215 msgid "Excellon object with alignment drills created..." msgstr "Excellon object with alignment drills created..." -#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209 +#: appTools/ToolDblSided.py:226 appTools/ToolPunchGerber.py:209 msgid "There is no Excellon object loaded ..." msgstr "There is no Excellon object loaded ..." -#: appTools/ToolDblSided.py:236 +#: appTools/ToolDblSided.py:238 msgid "Click on canvas within the desired Excellon drill hole" msgstr "Click on canvas within the desired Excellon drill hole" -#: appTools/ToolDblSided.py:280 +#: appTools/ToolDblSided.py:282 msgid "Mirror reference point set." msgstr "Mirror reference point set." -#: appTools/ToolDblSided.py:308 +#: appTools/ToolDblSided.py:310 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "Only Gerber, Excellon and Geometry objects can be mirrored." -#: appTools/ToolDblSided.py:320 +#: appTools/ToolDblSided.py:322 msgid "There is no Box object loaded ..." msgstr "There is no Box object loaded ..." -#: appTools/ToolDblSided.py:330 +#: appTools/ToolDblSided.py:332 msgid "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." @@ -14735,31 +14703,31 @@ msgstr "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." -#: appTools/ToolDblSided.py:337 camlib.py:2401 +#: appTools/ToolDblSided.py:339 camlib.py:2401 msgid "Object was mirrored" msgstr "Object was mirrored" -#: appTools/ToolDblSided.py:403 app_Main.py:4635 app_Main.py:4790 +#: appTools/ToolDblSided.py:405 app_Main.py:4558 app_Main.py:4713 msgid "Failed. No object(s) selected..." msgstr "Failed. No object(s) selected..." -#: appTools/ToolDblSided.py:487 +#: appTools/ToolDblSided.py:489 msgid "2-Sided PCB" msgstr "2-Sided PCB" -#: appTools/ToolDblSided.py:514 +#: appTools/ToolDblSided.py:516 msgid "Objects to be mirrored" msgstr "Objects to be mirrored" -#: appTools/ToolDblSided.py:521 +#: appTools/ToolDblSided.py:523 msgid "Select the type of application object to be processed in this tool." msgstr "Select the type of application object to be processed in this tool." -#: appTools/ToolDblSided.py:555 +#: appTools/ToolDblSided.py:557 msgid "Bounds Values" msgstr "Bounds Values" -#: appTools/ToolDblSided.py:557 +#: appTools/ToolDblSided.py:559 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -14767,39 +14735,39 @@ msgstr "" "Select on canvas the object(s)\n" "for which to calculate bounds values." -#: appTools/ToolDblSided.py:567 +#: appTools/ToolDblSided.py:569 msgid "X min" msgstr "X min" -#: appTools/ToolDblSided.py:569 appTools/ToolDblSided.py:583 +#: appTools/ToolDblSided.py:571 appTools/ToolDblSided.py:585 msgid "Minimum location." msgstr "Minimum location." -#: appTools/ToolDblSided.py:581 +#: appTools/ToolDblSided.py:583 msgid "Y min" msgstr "Y min" -#: appTools/ToolDblSided.py:595 +#: appTools/ToolDblSided.py:597 msgid "X max" msgstr "X max" -#: appTools/ToolDblSided.py:597 appTools/ToolDblSided.py:611 +#: appTools/ToolDblSided.py:599 appTools/ToolDblSided.py:613 msgid "Maximum location." msgstr "Maximum location." -#: appTools/ToolDblSided.py:609 +#: appTools/ToolDblSided.py:611 msgid "Y max" msgstr "Y max" -#: appTools/ToolDblSided.py:620 +#: appTools/ToolDblSided.py:622 msgid "Center point coordinates" msgstr "Center point coordinates" -#: appTools/ToolDblSided.py:622 +#: appTools/ToolDblSided.py:624 msgid "Centroid" msgstr "Centroid" -#: appTools/ToolDblSided.py:624 +#: appTools/ToolDblSided.py:626 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -14807,11 +14775,11 @@ msgstr "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." -#: appTools/ToolDblSided.py:633 +#: appTools/ToolDblSided.py:635 msgid "Calculate Bounds Values" msgstr "Calculate Bounds Values" -#: appTools/ToolDblSided.py:635 +#: appTools/ToolDblSided.py:637 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" @@ -14821,24 +14789,15 @@ msgstr "" "for the selection of objects.\n" "The envelope shape is parallel with the X, Y axis." -#: appTools/ToolDblSided.py:660 +#: appTools/ToolDblSided.py:662 msgid "Mirror Operation" msgstr "Mirror Operation" -#: appTools/ToolDblSided.py:661 +#: appTools/ToolDblSided.py:663 msgid "Parameters for the mirror operation" msgstr "Parameters for the mirror operation" -#: appTools/ToolDblSided.py:683 -#| 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\n" -#| "- Hole Snap -> a point defined by the center of a drill hone in a " -#| "Excellon object" +#: appTools/ToolDblSided.py:685 msgid "" "The coordinates used as reference for the mirror operation.\n" "Can be:\n" @@ -14856,11 +14815,11 @@ msgstr "" "- Hole Snap -> a point defined by the center of a drill hole in a Excellon " "object" -#: appTools/ToolDblSided.py:703 +#: appTools/ToolDblSided.py:705 msgid "Point coordinates" msgstr "Point coordinates" -#: appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:710 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -14876,17 +14835,15 @@ msgstr "" "and left mouse button click on canvas or you can enter the coordinates " "manually." -#: appTools/ToolDblSided.py:726 -#| msgid "" -#| "Object that holds holes that can be picked as reference for mirroing." +#: appTools/ToolDblSided.py:728 msgid "Object that holds holes that can be picked as reference for mirroring." msgstr "Object that holds holes that can be picked as reference for mirroring." -#: appTools/ToolDblSided.py:741 +#: appTools/ToolDblSided.py:743 msgid "Pick hole" msgstr "Pick hole" -#: appTools/ToolDblSided.py:743 +#: appTools/ToolDblSided.py:745 msgid "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." @@ -14894,7 +14851,7 @@ msgstr "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." -#: appTools/ToolDblSided.py:759 +#: appTools/ToolDblSided.py:761 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -14904,11 +14861,11 @@ msgstr "" "The coordinates of the center of the bounding box are used\n" "as reference for mirror operation." -#: appTools/ToolDblSided.py:785 +#: appTools/ToolDblSided.py:787 msgid "Mirror" msgstr "Mirror" -#: appTools/ToolDblSided.py:787 +#: appTools/ToolDblSided.py:789 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -14918,11 +14875,11 @@ msgstr "" "the specified axis. Does not create a new \n" "object, but modifies it." -#: appTools/ToolDblSided.py:813 +#: appTools/ToolDblSided.py:815 msgid "PCB Alignment" msgstr "PCB Alignment" -#: appTools/ToolDblSided.py:815 appTools/ToolDblSided.py:923 +#: appTools/ToolDblSided.py:817 appTools/ToolDblSided.py:925 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -14932,11 +14889,11 @@ msgstr "" "specified alignment holes and their mirror\n" "images." -#: appTools/ToolDblSided.py:822 +#: appTools/ToolDblSided.py:824 msgid "Drill Diameter" msgstr "Drill Diameter" -#: appTools/ToolDblSided.py:857 appTools/ToolDblSided.py:864 +#: appTools/ToolDblSided.py:859 appTools/ToolDblSided.py:866 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -14946,11 +14903,11 @@ msgstr "" "from the first alignment drill, by doing mirror.\n" "It can be modified in the Mirror Parameters -> Reference section" -#: appTools/ToolDblSided.py:877 +#: appTools/ToolDblSided.py:879 msgid "Alignment Drill Coordinates" msgstr "Alignment Drill Coordinates" -#: appTools/ToolDblSided.py:879 +#: appTools/ToolDblSided.py:881 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -14968,11 +14925,11 @@ msgstr "" "- one drill in mirror position over the axis selected above in the 'Align " "Axis'." -#: appTools/ToolDblSided.py:887 +#: appTools/ToolDblSided.py:889 msgid "Drill coordinates" msgstr "Drill coordinates" -#: appTools/ToolDblSided.py:894 +#: appTools/ToolDblSided.py:896 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -14998,15 +14955,15 @@ msgstr "" "field and click Paste.\n" "- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." -#: appTools/ToolDblSided.py:909 +#: appTools/ToolDblSided.py:911 msgid "Delete Last" msgstr "Delete Last" -#: appTools/ToolDblSided.py:911 +#: appTools/ToolDblSided.py:913 msgid "Delete the last coordinates tuple in the list." msgstr "Delete the last coordinates tuple in the list." -#: appTools/ToolDblSided.py:921 +#: appTools/ToolDblSided.py:923 msgid "Create Excellon Object" msgstr "Create Excellon Object" @@ -15400,15 +15357,15 @@ msgstr "" msgid "No drills extracted. Try different parameters." msgstr "No drills extracted. Try different parameters." -#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687 +#: appTools/ToolExtractDrills.py:421 appTools/ToolExtractDrills.py:688 msgid "Extract Drills" msgstr "Extract Drills" -#: appTools/ToolExtractDrills.py:454 +#: appTools/ToolExtractDrills.py:455 msgid "Gerber from which to extract drill holes" msgstr "Gerber from which to extract drill holes" -#: appTools/ToolExtractDrills.py:689 +#: appTools/ToolExtractDrills.py:690 msgid "Extract drills from a given Gerber file." msgstr "Extract drills from a given Gerber file." @@ -15416,27 +15373,27 @@ msgstr "Extract drills from a given Gerber file." msgid "Click to add first Fiducial. Bottom Left..." msgstr "Click to add first Fiducial. Bottom Left..." -#: appTools/ToolFiducials.py:501 +#: appTools/ToolFiducials.py:503 msgid "Click to add the last fiducial. Top Right..." msgstr "Click to add the last fiducial. Top Right..." -#: appTools/ToolFiducials.py:506 +#: appTools/ToolFiducials.py:508 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:509 appTools/ToolFiducials.py:518 +#: appTools/ToolFiducials.py:511 appTools/ToolFiducials.py:520 msgid "Done. All fiducials have been added." msgstr "Done. All fiducials have been added." -#: appTools/ToolFiducials.py:595 +#: appTools/ToolFiducials.py:597 msgid "Fiducials Tool exit." msgstr "Fiducials Tool exit." -#: appTools/ToolFiducials.py:667 +#: appTools/ToolFiducials.py:669 msgid "Fiducials Coordinates" msgstr "Fiducials Coordinates" -#: appTools/ToolFiducials.py:669 +#: appTools/ToolFiducials.py:671 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -15444,7 +15401,7 @@ msgstr "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." -#: appTools/ToolFiducials.py:805 +#: appTools/ToolFiducials.py:807 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -15454,31 +15411,31 @@ msgstr "" "box.\n" " - 'Manual' - manual placement of fiducials." -#: appTools/ToolFiducials.py:851 +#: appTools/ToolFiducials.py:853 msgid "Thickness of the line that makes the fiducial." msgstr "Thickness of the line that makes the fiducial." -#: appTools/ToolFiducials.py:882 +#: appTools/ToolFiducials.py:884 msgid "Add Fiducial" msgstr "Add Fiducial" -#: appTools/ToolFiducials.py:884 +#: appTools/ToolFiducials.py:886 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:900 +#: appTools/ToolFiducials.py:902 msgid "Soldermask Gerber" msgstr "Soldermask Gerber" -#: appTools/ToolFiducials.py:902 +#: appTools/ToolFiducials.py:904 msgid "The Soldermask Gerber object." msgstr "The Soldermask Gerber object." -#: appTools/ToolFiducials.py:914 +#: appTools/ToolFiducials.py:916 msgid "Add Soldermask Opening" msgstr "Add Soldermask Opening" -#: appTools/ToolFiducials.py:916 +#: appTools/ToolFiducials.py:918 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -15667,7 +15624,7 @@ msgstr "Image Tool" msgid "Import IMAGE" msgstr "Import IMAGE" -#: appTools/ToolImage.py:142 app_Main.py:8893 app_Main.py:8943 +#: appTools/ToolImage.py:142 app_Main.py:9782 app_Main.py:9832 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -15679,9 +15636,9 @@ msgstr "" msgid "Importing Image" msgstr "Importing Image" -#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8921 -#: app_Main.py:8976 app_Main.py:9040 app_Main.py:9103 app_Main.py:9169 -#: app_Main.py:9234 app_Main.py:9291 +#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:9810 +#: app_Main.py:9865 app_Main.py:9929 app_Main.py:9992 app_Main.py:10058 +#: app_Main.py:10123 app_Main.py:10180 msgid "Opened" msgstr "Opened" @@ -15810,7 +15767,7 @@ msgid "New Tool" msgstr "New Tool" #: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:467 -#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4500 +#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4423 msgid "Adding Tool cancelled" msgstr "Adding Tool cancelled" @@ -15966,7 +15923,7 @@ msgid "Click the end point of the paint area." msgstr "Click the end point of the paint area." #: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3722 -#: appTools/ToolPaint.py:2633 app_Main.py:5779 app_Main.py:5789 +#: appTools/ToolPaint.py:2633 app_Main.py:5702 app_Main.py:5712 msgid "Tool from DB added in Tool Table." msgstr "Tool from DB added in Tool Table." @@ -16501,11 +16458,11 @@ msgstr "Open PDF cancelled" msgid "Parsing PDF file ..." msgstr "Parsing PDF file ..." -#: appTools/ToolPDF.py:138 app_Main.py:9134 +#: appTools/ToolPDF.py:138 app_Main.py:10023 msgid "Failed to open" msgstr "Failed to open" -#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9083 +#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9972 msgid "No geometry found in file" msgstr "No geometry found in file" @@ -16919,7 +16876,7 @@ msgstr "PcbWizard .INF file loaded." msgid "Main PcbWizard Excellon file loaded." msgstr "Main PcbWizard Excellon file loaded." -#: appTools/ToolPcbWizard.py:310 app_Main.py:9063 +#: appTools/ToolPcbWizard.py:310 app_Main.py:9952 msgid "This is not Excellon file." msgstr "This is not Excellon file." @@ -17050,9 +17007,9 @@ msgstr "" "the other has .INF extension." #: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 -#: app_Main.py:4976 app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 -#: app_Main.py:7503 app_Main.py:7545 app_Main.py:7587 app_Main.py:7631 -#: app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 +#: app_Main.py:4899 app_Main.py:8253 app_Main.py:8351 app_Main.py:8391 +#: app_Main.py:8431 app_Main.py:8472 app_Main.py:8513 app_Main.py:8556 +#: app_Main.py:8599 app_Main.py:9058 app_Main.py:9062 msgid "No object selected." msgstr "No object selected." @@ -17144,8 +17101,8 @@ msgstr "" "Create a Gerber object from the selected object, within\n" "the specified box." -#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485 -#: appTools/ToolQRCode.py:534 +#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:486 +#: appTools/ToolQRCode.py:535 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Cancelled. There is no QRCode Data in the text box." @@ -17157,32 +17114,32 @@ msgstr "Generating QRCode geometry" msgid "Click on the Destination point ..." msgstr "Click on the Destination point ..." -#: appTools/ToolQRCode.py:321 +#: appTools/ToolQRCode.py:322 msgid "QRCode Tool done." msgstr "QRCode Tool done." -#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521 +#: appTools/ToolQRCode.py:518 appTools/ToolQRCode.py:522 msgid "Export PNG" msgstr "Export PNG" -#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7353 -#: app_Main.py:7357 +#: appTools/ToolQRCode.py:565 appTools/ToolQRCode.py:569 app_Main.py:8284 +#: app_Main.py:8288 msgid "Export SVG" msgstr "Export SVG" -#: appTools/ToolQRCode.py:661 +#: appTools/ToolQRCode.py:662 msgid "Gerber Object to which the QRCode will be added." msgstr "Gerber Object to which the QRCode will be added." -#: appTools/ToolQRCode.py:697 +#: appTools/ToolQRCode.py:698 msgid "The parameters used to shape the QRCode." msgstr "The parameters used to shape the QRCode." -#: appTools/ToolQRCode.py:797 +#: appTools/ToolQRCode.py:798 msgid "Export QRCode" msgstr "Export QRCode" -#: appTools/ToolQRCode.py:799 +#: appTools/ToolQRCode.py:800 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -17190,31 +17147,31 @@ msgstr "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." -#: appTools/ToolQRCode.py:838 +#: appTools/ToolQRCode.py:839 msgid "Transparent back color" msgstr "Transparent back color" -#: appTools/ToolQRCode.py:863 +#: appTools/ToolQRCode.py:864 msgid "Export QRCode SVG" msgstr "Export QRCode SVG" -#: appTools/ToolQRCode.py:865 +#: appTools/ToolQRCode.py:866 msgid "Export a SVG file with the QRCode content." msgstr "Export a SVG file with the QRCode content." -#: appTools/ToolQRCode.py:876 +#: appTools/ToolQRCode.py:877 msgid "Export QRCode PNG" msgstr "Export QRCode PNG" -#: appTools/ToolQRCode.py:878 +#: appTools/ToolQRCode.py:879 msgid "Export a PNG image file with the QRCode content." msgstr "Export a PNG image file with the QRCode content." -#: appTools/ToolQRCode.py:889 +#: appTools/ToolQRCode.py:890 msgid "Insert QRCode" msgstr "Insert QRCode" -#: appTools/ToolQRCode.py:891 +#: appTools/ToolQRCode.py:892 msgid "Create the QRCode object." msgstr "Create the QRCode object." @@ -17945,7 +17902,7 @@ msgstr "Are you sure do you want to change the current language to" msgid "Apply Language ..." msgstr "Apply Language ..." -#: appTranslation.py:206 app_Main.py:3383 +#: appTranslation.py:206 app_Main.py:3306 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -17979,41 +17936,41 @@ msgstr "" "Canvas initialization started.\n" "Canvas initialization finished in" -#: app_Main.py:1596 app_Main.py:7007 +#: app_Main.py:1292 app_Main.py:8831 msgid "New Project - Not saved" msgstr "New Project - Not saved" -#: app_Main.py:1702 +#: app_Main.py:1711 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:1769 +#: app_Main.py:1778 msgid "Open Config file failed." msgstr "Open Config file failed." -#: app_Main.py:1784 +#: app_Main.py:1793 msgid "Open Script file failed." msgstr "Open Script file failed." -#: app_Main.py:1810 +#: app_Main.py:1819 msgid "Open Excellon file failed." msgstr "Open Excellon file failed." -#: app_Main.py:1823 +#: app_Main.py:1832 msgid "Open GCode file failed." msgstr "Open GCode file failed." -#: app_Main.py:1836 +#: app_Main.py:1845 msgid "Open Gerber file failed." msgstr "Open Gerber file failed." -#: app_Main.py:2174 +#: app_Main.py:2183 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:2189 +#: app_Main.py:2198 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -18023,99 +17980,83 @@ msgstr "" "possible.\n" "Edit only one geometry at a time." -#: app_Main.py:2267 +#: app_Main.py:2276 msgid "EDITOR Area" msgstr "EDITOR Area" -#: app_Main.py:2269 +#: app_Main.py:2278 msgid "Editor is activated ..." msgstr "Editor is activated ..." -#: app_Main.py:2290 +#: app_Main.py:2299 msgid "Do you want to save the edited object?" msgstr "Do you want to save the edited object?" -#: app_Main.py:2331 +#: app_Main.py:2340 msgid "Object empty after edit." msgstr "Object empty after edit." -#: app_Main.py:2336 app_Main.py:2354 app_Main.py:2385 app_Main.py:2401 +#: app_Main.py:2345 app_Main.py:2363 app_Main.py:2394 app_Main.py:2410 msgid "Editor exited. Editor content saved." msgstr "Editor exited. Editor content saved." -#: app_Main.py:2405 app_Main.py:2446 +#: app_Main.py:2414 app_Main.py:2455 msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update." msgstr "Select a Gerber, Geometry, Excellon or CNCJob Object to update." -#: app_Main.py:2408 +#: app_Main.py:2417 msgid "is updated, returning to App..." msgstr "is updated, returning to App..." -#: app_Main.py:2421 +#: app_Main.py:2430 msgid "Editor exited. Editor content was not saved." msgstr "Editor exited. Editor content was not saved." -#: app_Main.py:2469 +#: app_Main.py:2478 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Select a Gerber, Geometry or Excellon Object to update." -#: app_Main.py:2573 app_Main.py:2577 -msgid "Import FlatCAM Preferences" -msgstr "Import FlatCAM Preferences" - -#: app_Main.py:2588 -msgid "Imported Defaults from" -msgstr "Imported Defaults from" - -#: app_Main.py:2608 app_Main.py:2614 -msgid "Export FlatCAM Preferences" -msgstr "Export FlatCAM Preferences" - -#: app_Main.py:2634 -msgid "Exported preferences to" -msgstr "Exported preferences to" - -#: app_Main.py:2654 app_Main.py:2659 +#: app_Main.py:2586 app_Main.py:2591 msgid "Save to file" msgstr "Save to file" -#: app_Main.py:2683 +#: app_Main.py:2615 msgid "Could not load the file." msgstr "Could not load the file." -#: app_Main.py:2699 +#: app_Main.py:2631 msgid "Exported file to" msgstr "Exported file to" -#: app_Main.py:2736 +#: app_Main.py:2668 msgid "Failed to open recent files file for writing." msgstr "Failed to open recent files file for writing." -#: app_Main.py:2747 +#: app_Main.py:2679 msgid "Failed to open recent projects file for writing." msgstr "Failed to open recent projects file for writing." -#: app_Main.py:2802 +#: app_Main.py:2734 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "2D Computer-Aided Printed Circuit Board Manufacturing" -#: app_Main.py:2803 +#: app_Main.py:2735 msgid "Development" msgstr "Development" -#: app_Main.py:2804 +#: app_Main.py:2736 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: app_Main.py:2805 +#: app_Main.py:2737 msgid "Issue tracker" msgstr "Issue tracker" -#: app_Main.py:2824 +#: app_Main.py:2756 msgid "Licensed under the MIT license" msgstr "Licensed under the MIT license" -#: app_Main.py:2833 +#: app_Main.py:2765 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -18163,7 +18104,7 @@ msgstr "" "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" "THE SOFTWARE." -#: app_Main.py:2855 +#: app_Main.py:2787 msgid "" "Some of the icons used are from the following sources:
" -#: app_Main.py:2891 +#: app_Main.py:2823 msgid "Splash" msgstr "Splash" -#: app_Main.py:2897 +#: app_Main.py:2829 msgid "Programmers" msgstr "Programmers" -#: app_Main.py:2903 +#: app_Main.py:2835 msgid "Translators" msgstr "Translators" -#: app_Main.py:2909 +#: app_Main.py:2841 msgid "License" msgstr "License" -#: app_Main.py:2915 +#: app_Main.py:2847 msgid "Attributions" msgstr "Attributions" -#: app_Main.py:2938 +#: app_Main.py:2870 msgid "Programmer" msgstr "Programmer" -#: app_Main.py:2939 +#: app_Main.py:2871 msgid "Status" msgstr "Status" -#: app_Main.py:2940 app_Main.py:3020 +#: app_Main.py:2872 app_Main.py:2952 msgid "E-mail" msgstr "E-mail" -#: app_Main.py:2943 +#: app_Main.py:2875 msgid "Program Author" msgstr "Program Author" -#: app_Main.py:2948 +#: app_Main.py:2880 msgid "BETA Maintainer >= 2019" msgstr "BETA Maintainer >= 2019" -#: app_Main.py:3017 +#: app_Main.py:2949 msgid "Language" msgstr "Language" -#: app_Main.py:3018 +#: app_Main.py:2950 msgid "Translator" msgstr "Translator" -#: app_Main.py:3019 +#: app_Main.py:2951 msgid "Corrections" msgstr "Corrections" -#: app_Main.py:3104 +#: app_Main.py:3036 msgid "Important Information's" msgstr "Important Information's" -#: app_Main.py:3152 +#: app_Main.py:3084 #, python-format msgid "This program is %s and free in a very wide meaning of the word." msgstr "This program is %s and free in a very wide meaning of the word." -#: app_Main.py:3153 +#: app_Main.py:3085 msgid "Yet it cannot evolve without contributions." msgstr "Yet it cannot evolve without contributions." -#: app_Main.py:3154 +#: app_Main.py:3086 msgid "If you want to see this application grow and become better and better" msgstr "If you want to see this application grow and become better and better" -#: app_Main.py:3155 +#: app_Main.py:3087 msgid "you can contribute to the development yourself by:" msgstr "you can contribute to the development yourself by:" -#: app_Main.py:3156 +#: app_Main.py:3088 msgid "Pull Requests on the Bitbucket repository, if you are a developer" msgstr "Pull Requests on the Bitbucket repository, if you are a developer" -#: app_Main.py:3158 +#: app_Main.py:3090 msgid "Bug Reports by providing the steps required to reproduce the bug" msgstr "Bug Reports by providing the steps required to reproduce the bug" -#: app_Main.py:3189 +#: app_Main.py:3121 msgid "Contribute" msgstr "Contribute" -#: app_Main.py:3212 +#: app_Main.py:3144 msgid "Links Exchange" msgstr "Links Exchange" -#: app_Main.py:3224 app_Main.py:3243 +#: app_Main.py:3156 app_Main.py:3175 msgid "Soon ..." msgstr "Soon ..." -#: app_Main.py:3231 +#: app_Main.py:3163 msgid "How To's" msgstr "How To's" -#: app_Main.py:3343 +#: app_Main.py:3275 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -18302,27 +18243,27 @@ msgstr "" "If you can't get any informations about FlatCAM beta\n" "use the YouTube channel link from the Help menu." -#: app_Main.py:3350 +#: app_Main.py:3282 msgid "Alternative website" msgstr "Alternative website" -#: app_Main.py:3701 +#: app_Main.py:3624 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Selected Excellon file extensions registered with FlatCAM." -#: app_Main.py:3723 +#: app_Main.py:3646 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Selected GCode file extensions registered with FlatCAM." -#: app_Main.py:3745 +#: app_Main.py:3668 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Selected Gerber file extensions registered with FlatCAM." -#: app_Main.py:3933 app_Main.py:3994 app_Main.py:4024 +#: app_Main.py:3856 app_Main.py:3917 app_Main.py:3947 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:3942 +#: app_Main.py:3865 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 " @@ -18338,47 +18279,47 @@ msgstr "" "be lost and the result may not be what was expected. \n" "Check the generated GCODE." -#: app_Main.py:3956 app_Main.py:3966 +#: app_Main.py:3879 app_Main.py:3889 msgid "Geometry merging finished" msgstr "Geometry merging finished" -#: app_Main.py:3989 +#: app_Main.py:3912 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Failed. Excellon joining works only on Excellon objects." -#: app_Main.py:4001 +#: app_Main.py:3924 msgid "Excellon merging finished" msgstr "Excellon merging finished" -#: app_Main.py:4019 +#: app_Main.py:3942 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Failed. Gerber joining works only on Gerber objects." -#: app_Main.py:4029 +#: app_Main.py:3952 msgid "Gerber merging finished" msgstr "Gerber merging finished" -#: app_Main.py:4049 app_Main.py:4086 +#: app_Main.py:3972 app_Main.py:4009 msgid "Failed. Select a Geometry Object and try again." msgstr "Failed. Select a Geometry Object and try again." -#: app_Main.py:4053 app_Main.py:4091 +#: app_Main.py:3976 app_Main.py:4014 msgid "Expected a GeometryObject, got" msgstr "Expected a GeometryObject, got" -#: app_Main.py:4068 +#: app_Main.py:3991 msgid "A Geometry object was converted to MultiGeo type." msgstr "A Geometry object was converted to MultiGeo type." -#: app_Main.py:4106 +#: app_Main.py:4029 msgid "A Geometry object was converted to SingleGeo type." msgstr "A Geometry object was converted to SingleGeo type." -#: app_Main.py:4339 +#: app_Main.py:4262 msgid "Toggle Units" msgstr "Toggle Units" -#: app_Main.py:4343 +#: app_Main.py:4266 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -18390,24 +18331,24 @@ msgstr "" "\n" "Do you want to continue?" -#: app_Main.py:4346 app_Main.py:4509 app_Main.py:4592 app_Main.py:7327 -#: app_Main.py:7343 app_Main.py:7681 app_Main.py:7693 +#: app_Main.py:4269 app_Main.py:4432 app_Main.py:4515 app_Main.py:8259 +#: app_Main.py:8274 app_Main.py:8605 app_Main.py:8617 msgid "Ok" msgstr "Ok" -#: app_Main.py:4396 +#: app_Main.py:4319 msgid "Converted units to" msgstr "Converted units to" -#: app_Main.py:4436 +#: app_Main.py:4359 msgid "Workspace enabled." msgstr "Workspace enabled." -#: app_Main.py:4439 +#: app_Main.py:4362 msgid "Workspace disabled." msgstr "Workspace disabled." -#: app_Main.py:4503 +#: app_Main.py:4426 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -18415,11 +18356,11 @@ msgstr "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." -#: app_Main.py:4585 +#: app_Main.py:4508 msgid "Delete objects" msgstr "Delete objects" -#: app_Main.py:4590 +#: app_Main.py:4513 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -18427,85 +18368,85 @@ msgstr "" "Are you sure you want to permanently delete\n" "the selected objects?" -#: app_Main.py:4633 +#: app_Main.py:4556 msgid "Object(s) deleted" msgstr "Object(s) deleted" -#: app_Main.py:4637 +#: app_Main.py:4560 msgid "Save the work in Editor and try again ..." msgstr "Save the work in Editor and try again ..." -#: app_Main.py:4666 +#: app_Main.py:4589 msgid "Object deleted" msgstr "Object deleted" -#: app_Main.py:4693 +#: app_Main.py:4616 msgid "Click to set the origin ..." msgstr "Click to set the origin ..." -#: app_Main.py:4715 +#: app_Main.py:4638 msgid "Setting Origin..." msgstr "Setting Origin..." -#: app_Main.py:4728 app_Main.py:4830 +#: app_Main.py:4651 app_Main.py:4753 msgid "Origin set" msgstr "Origin set" -#: app_Main.py:4745 +#: app_Main.py:4668 msgid "Origin coordinates specified but incomplete." msgstr "Origin coordinates specified but incomplete." -#: app_Main.py:4786 +#: app_Main.py:4709 msgid "Moving to Origin..." msgstr "Moving to Origin..." -#: app_Main.py:4867 +#: app_Main.py:4790 msgid "Jump to ..." msgstr "Jump to ..." -#: app_Main.py:4868 +#: app_Main.py:4791 msgid "Enter the coordinates in format X,Y:" msgstr "Enter the coordinates in format X,Y:" -#: app_Main.py:4878 +#: app_Main.py:4801 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Wrong coordinates. Enter coordinates in format: X,Y" -#: app_Main.py:4995 +#: app_Main.py:4918 msgid "Bottom-Left" msgstr "Bottom-Left" -#: app_Main.py:4998 +#: app_Main.py:4921 msgid "Top-Right" msgstr "Top-Right" -#: app_Main.py:5019 +#: app_Main.py:4942 msgid "Locate ..." msgstr "Locate ..." -#: app_Main.py:5292 app_Main.py:5367 app_Main.py:5530 +#: app_Main.py:5215 app_Main.py:5290 app_Main.py:5453 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:5556 +#: app_Main.py:5479 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:5562 +#: app_Main.py:5485 msgid "The current task was gracefully closed on user request..." msgstr "The current task was gracefully closed on user request..." -#: app_Main.py:5752 +#: app_Main.py:5675 msgid "Tools in Tools Database edited but not saved." msgstr "Tools in Tools Database edited but not saved." -#: app_Main.py:5791 +#: app_Main.py:5714 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:5809 +#: app_Main.py:5732 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -18513,554 +18454,223 @@ msgstr "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" -#: app_Main.py:5811 +#: app_Main.py:5734 msgid "Save Tools Database" msgstr "Save Tools Database" -#: app_Main.py:5857 +#: app_Main.py:5780 msgid "No object selected to Flip on Y axis." msgstr "No object selected to Flip on Y axis." -#: app_Main.py:5883 +#: app_Main.py:5806 msgid "Flip on Y axis done." msgstr "Flip on Y axis done." -#: app_Main.py:5905 +#: app_Main.py:5828 msgid "No object selected to Flip on X axis." msgstr "No object selected to Flip on X axis." -#: app_Main.py:5931 +#: app_Main.py:5854 msgid "Flip on X axis done." msgstr "Flip on X axis done." -#: app_Main.py:5953 +#: app_Main.py:5876 msgid "No object selected to Rotate." msgstr "No object selected to Rotate." -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Transform" msgstr "Transform" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Enter the Angle value:" msgstr "Enter the Angle value:" -#: app_Main.py:5986 +#: app_Main.py:5909 msgid "Rotation done." msgstr "Rotation done." -#: app_Main.py:5988 +#: app_Main.py:5911 msgid "Rotation movement was not executed." msgstr "Rotation movement was not executed." -#: app_Main.py:6005 +#: app_Main.py:5928 msgid "No object selected to Skew/Shear on X axis." msgstr "No object selected to Skew/Shear on X axis." -#: app_Main.py:6026 +#: app_Main.py:5949 msgid "Skew on X axis done." msgstr "Skew on X axis done." -#: app_Main.py:6042 +#: app_Main.py:5965 msgid "No object selected to Skew/Shear on Y axis." msgstr "No object selected to Skew/Shear on Y axis." -#: app_Main.py:6063 +#: app_Main.py:5986 msgid "Skew on Y axis done." msgstr "Skew on Y axis done." -#: app_Main.py:6145 +#: app_Main.py:6068 msgid "New Grid ..." msgstr "New Grid ..." -#: app_Main.py:6146 +#: app_Main.py:6069 msgid "Enter a Grid Value:" msgstr "Enter a Grid Value:" -#: app_Main.py:6154 app_Main.py:6178 +#: app_Main.py:6077 app_Main.py:6101 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:6159 +#: app_Main.py:6082 msgid "New Grid added" msgstr "New Grid added" -#: app_Main.py:6161 +#: app_Main.py:6084 msgid "Grid already exists" msgstr "Grid already exists" -#: app_Main.py:6163 +#: app_Main.py:6086 msgid "Adding New Grid cancelled" msgstr "Adding New Grid cancelled" -#: app_Main.py:6184 +#: app_Main.py:6107 msgid " Grid Value does not exist" msgstr " Grid Value does not exist" -#: app_Main.py:6186 +#: app_Main.py:6109 msgid "Grid Value deleted" msgstr "Grid Value deleted" -#: app_Main.py:6188 +#: app_Main.py:6111 msgid "Delete Grid value cancelled" msgstr "Delete Grid value cancelled" -#: app_Main.py:6194 +#: app_Main.py:6117 msgid "Key Shortcut List" msgstr "Key Shortcut List" -#: app_Main.py:6231 +#: app_Main.py:6154 msgid " No object selected to copy it's name" msgstr " No object selected to copy it's name" -#: app_Main.py:6235 +#: app_Main.py:6158 msgid "Name copied on clipboard ..." msgstr "Name copied on clipboard ..." -#: app_Main.py:6892 -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:6915 -msgid "New Project created" -msgstr "New Project created" - -#: app_Main.py:7121 app_Main.py:7160 app_Main.py:7204 app_Main.py:7274 -#: app_Main.py:8060 app_Main.py:9304 app_Main.py:9366 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Canvas initialization started.\n" -"Canvas initialization finished in" - -#: app_Main.py:7123 -msgid "Opening Gerber file." -msgstr "Opening Gerber file." - -#: app_Main.py:7162 -msgid "Opening Excellon file." -msgstr "Opening Excellon file." - -#: app_Main.py:7193 app_Main.py:7198 -msgid "Open G-Code" -msgstr "Open G-Code" - -#: app_Main.py:7206 -msgid "Opening G-Code file." -msgstr "Opening G-Code file." - -#: app_Main.py:7265 app_Main.py:7269 -msgid "Open HPGL2" -msgstr "Open HPGL2" - -#: app_Main.py:7276 -msgid "Opening HPGL2 file." -msgstr "Opening HPGL2 file." - -#: app_Main.py:7299 app_Main.py:7302 -msgid "Open Configuration File" -msgstr "Open Configuration File" - -#: app_Main.py:7322 app_Main.py:7676 -msgid "Please Select a Geometry object to export" -msgstr "Please Select a Geometry object to export" - -#: app_Main.py:7338 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Only Geometry, Gerber and CNCJob objects can be used." - -#: app_Main.py:7383 -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:7389 app_Main.py:7393 -msgid "Export PNG Image" -msgstr "Export PNG Image" - -#: app_Main.py:7426 app_Main.py:7636 -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:7438 -msgid "Save Gerber source file" -msgstr "Save Gerber source file" - -#: app_Main.py:7467 -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:7479 -msgid "Save Script source file" -msgstr "Save Script source file" - -#: app_Main.py:7508 -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:7520 -msgid "Save Document source file" -msgstr "Save Document source file" - -#: app_Main.py:7550 app_Main.py:7592 app_Main.py:8543 -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:7558 app_Main.py:7563 -msgid "Save Excellon source file" -msgstr "Save Excellon source file" - -#: app_Main.py:7600 app_Main.py:7604 -msgid "Export Excellon" -msgstr "Export Excellon" - -#: app_Main.py:7644 app_Main.py:7648 -msgid "Export Gerber" -msgstr "Export Gerber" - -#: app_Main.py:7688 -msgid "Only Geometry objects can be used." -msgstr "Only Geometry objects can be used." - -#: app_Main.py:7704 app_Main.py:7708 -msgid "Export DXF" -msgstr "Export DXF" - -#: app_Main.py:7733 app_Main.py:7736 -msgid "Import SVG" -msgstr "Import SVG" - -#: app_Main.py:7764 app_Main.py:7768 -msgid "Import DXF" -msgstr "Import DXF" - -#: app_Main.py:7822 app_Main.py:7826 +#: app_Main.py:6917 app_Main.py:6921 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:7829 +#: app_Main.py:6924 msgid "Viewing the source code of the selected object." msgstr "Viewing the source code of the selected object." -#: app_Main.py:7843 +#: app_Main.py:6938 msgid "Source Editor" msgstr "Source Editor" -#: app_Main.py:7879 app_Main.py:7886 +#: app_Main.py:6974 app_Main.py:6981 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:7894 +#: app_Main.py:6989 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:7927 +#: app_Main.py:7022 msgid "Go to Line ..." msgstr "Go to Line ..." -#: app_Main.py:7928 +#: app_Main.py:7023 msgid "Line:" msgstr "Line:" -#: app_Main.py:7955 -msgid "New TCL script file created in Code Editor." -msgstr "New TCL script file created in Code Editor." - -#: app_Main.py:7994 app_Main.py:7996 app_Main.py:8032 app_Main.py:8034 -msgid "Open TCL script" -msgstr "Open TCL script" - -#: app_Main.py:8062 -msgid "Executing ScriptObject file." -msgstr "Executing ScriptObject file." - -#: app_Main.py:8070 app_Main.py:8073 -msgid "Run TCL script" -msgstr "Run TCL script" - -#: app_Main.py:8096 -msgid "TCL script file opened in Code Editor and executed." -msgstr "TCL script file opened in Code Editor and executed." - -#: app_Main.py:8147 app_Main.py:8153 -msgid "Save Project As ..." -msgstr "Save Project As ..." - -#: app_Main.py:8188 -msgid "FlatCAM objects print" -msgstr "FlatCAM objects print" - -#: app_Main.py:8201 app_Main.py:8208 -msgid "Save Object as PDF ..." -msgstr "Save Object as PDF ..." - -#: app_Main.py:8217 -msgid "Printing PDF ... Please wait." -msgstr "Printing PDF ... Please wait." - -#: app_Main.py:8396 -msgid "PDF file saved to" -msgstr "PDF file saved to" - -#: app_Main.py:8421 -msgid "Exporting SVG" -msgstr "Exporting SVG" - -#: app_Main.py:8464 -msgid "SVG file exported to" -msgstr "SVG file exported to" - -#: app_Main.py:8490 -msgid "Save cancelled because source file is empty. Try to export the file." -msgstr "Save cancelled because source file is empty. Try to export the file." - -#: app_Main.py:8641 -msgid "Excellon file exported to" -msgstr "Excellon file exported to" - -#: app_Main.py:8650 -msgid "Exporting Excellon" -msgstr "Exporting Excellon" - -#: app_Main.py:8655 app_Main.py:8662 -msgid "Could not export Excellon file." -msgstr "Could not export Excellon file." - -#: app_Main.py:8778 -msgid "Gerber file exported to" -msgstr "Gerber file exported to" - -#: app_Main.py:8786 -msgid "Exporting Gerber" -msgstr "Exporting Gerber" - -#: app_Main.py:8791 app_Main.py:8798 -msgid "Could not export file." -msgstr "Could not export file." - -#: app_Main.py:8846 -msgid "DXF file exported to" -msgstr "DXF file exported to" - -#: app_Main.py:8855 -msgid "Exporting DXF" -msgstr "Exporting DXF" - -#: app_Main.py:8860 app_Main.py:8867 -msgid "Could not export DXF file." -msgstr "Could not export DXF file." - -#: app_Main.py:8906 -msgid "Importing SVG" -msgstr "Importing SVG" - -#: app_Main.py:8914 app_Main.py:8969 -msgid "Import failed." -msgstr "Import failed." - -#: app_Main.py:8961 -msgid "Importing DXF" -msgstr "Importing DXF" - -#: app_Main.py:9002 app_Main.py:9193 app_Main.py:9258 -msgid "Failed to open file" -msgstr "Failed to open file" - -#: app_Main.py:9005 app_Main.py:9196 app_Main.py:9261 -msgid "Failed to parse file" -msgstr "Failed to parse file" - -#: app_Main.py:9017 -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:9022 -msgid "Opening Gerber" -msgstr "Opening Gerber" - -#: app_Main.py:9033 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Open Gerber failed. Probable not a Gerber file." - -#: app_Main.py:9066 -msgid "Cannot open file" -msgstr "Cannot open file" - -#: app_Main.py:9086 -msgid "Opening Excellon." -msgstr "Opening Excellon." - -#: app_Main.py:9096 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "Open Excellon file failed. Probable not an Excellon file." - -#: app_Main.py:9128 -msgid "Reading GCode file" -msgstr "Reading GCode file" - -#: app_Main.py:9141 -msgid "This is not GCODE" -msgstr "This is not GCODE" - -#: app_Main.py:9146 -msgid "Opening G-Code." -msgstr "Opening G-Code." - -#: app_Main.py:9159 -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:9215 -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:9220 -msgid "Opening HPGL2" -msgstr "Opening HPGL2" - -#: app_Main.py:9227 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " Open HPGL2 failed. Probable not a HPGL2 file." - -#: app_Main.py:9253 -msgid "TCL script file opened in Code Editor." -msgstr "TCL script file opened in Code Editor." - -#: app_Main.py:9273 -msgid "Opening TCL Script..." -msgstr "Opening TCL Script..." - -#: app_Main.py:9284 -msgid "Failed to open TCL Script." -msgstr "Failed to open TCL Script." - -#: app_Main.py:9306 -msgid "Opening FlatCAM Config file." -msgstr "Opening FlatCAM Config file." - -#: app_Main.py:9334 -msgid "Failed to open config file" -msgstr "Failed to open config file" - -#: app_Main.py:9363 -msgid "Loading Project ... Please Wait ..." -msgstr "Loading Project ... Please Wait ..." - -#: app_Main.py:9368 -msgid "Opening FlatCAM Project file." -msgstr "Opening FlatCAM Project file." - -#: app_Main.py:9383 app_Main.py:9387 app_Main.py:9404 -msgid "Failed to open project file" -msgstr "Failed to open project file" - -#: app_Main.py:9443 -msgid "Loading Project ... restoring" -msgstr "Loading Project ... restoring" - -#: app_Main.py:9451 -msgid "Project loaded from" -msgstr "Project loaded from" - -#: app_Main.py:9477 +#: app_Main.py:7053 msgid "Redrawing all objects" msgstr "Redrawing all objects" -#: app_Main.py:9565 +#: app_Main.py:7141 msgid "Failed to load recent item list." msgstr "Failed to load recent item list." -#: app_Main.py:9572 +#: app_Main.py:7148 msgid "Failed to parse recent item list." msgstr "Failed to parse recent item list." -#: app_Main.py:9582 +#: app_Main.py:7158 msgid "Failed to load recent projects item list." msgstr "Failed to load recent projects item list." -#: app_Main.py:9589 +#: app_Main.py:7165 msgid "Failed to parse recent project item list." msgstr "Failed to parse recent project item list." -#: app_Main.py:9650 +#: app_Main.py:7226 msgid "Clear Recent projects" msgstr "Clear Recent projects" -#: app_Main.py:9674 +#: app_Main.py:7250 msgid "Clear Recent files" msgstr "Clear Recent files" -#: app_Main.py:9730 +#: app_Main.py:7306 msgid "FlatCAM Evo" msgstr "FlatCAM Evo" -#: app_Main.py:9734 +#: app_Main.py:7310 msgid "Release date" msgstr "Release date" -#: app_Main.py:9738 +#: app_Main.py:7314 msgid "Displayed" msgstr "Displayed" -#: app_Main.py:9741 +#: app_Main.py:7317 msgid "Snap" msgstr "Snap" -#: app_Main.py:9750 +#: app_Main.py:7326 msgid "Canvas" msgstr "Canvas" -#: app_Main.py:9755 +#: app_Main.py:7331 msgid "Workspace active" msgstr "Workspace active" -#: app_Main.py:9759 +#: app_Main.py:7335 msgid "Workspace size" msgstr "Workspace size" -#: app_Main.py:9763 +#: app_Main.py:7339 msgid "Workspace orientation" msgstr "Workspace orientation" -#: app_Main.py:9826 +#: app_Main.py:7402 msgid "Failed checking for latest version. Could not connect." msgstr "Failed checking for latest version. Could not connect." -#: app_Main.py:9833 +#: app_Main.py:7409 msgid "Could not parse information about latest version." msgstr "Could not parse information about latest version." -#: app_Main.py:9843 +#: app_Main.py:7419 msgid "FlatCAM is up to date!" msgstr "FlatCAM is up to date!" -#: app_Main.py:9848 +#: app_Main.py:7424 msgid "Newer Version Available" msgstr "Newer Version Available" -#: app_Main.py:9850 +#: app_Main.py:7426 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:9854 +#: app_Main.py:7430 msgid "info" msgstr "info" -#: app_Main.py:9882 +#: app_Main.py:7458 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -19072,66 +18682,413 @@ msgstr "" "tab.\n" "\n" -#: app_Main.py:9960 +#: app_Main.py:7536 msgid "All plots disabled." msgstr "All plots disabled." -#: app_Main.py:9967 +#: app_Main.py:7543 msgid "All non selected plots disabled." msgstr "All non selected plots disabled." -#: app_Main.py:9974 +#: app_Main.py:7550 msgid "All plots enabled." msgstr "All plots enabled." -#: app_Main.py:9980 +#: app_Main.py:7556 msgid "Selected plots enabled..." msgstr "Selected plots enabled..." -#: app_Main.py:9988 +#: app_Main.py:7564 msgid "Selected plots disabled..." msgstr "Selected plots disabled..." -#: app_Main.py:10021 +#: app_Main.py:7597 msgid "Enabling plots ..." msgstr "Enabling plots ..." -#: app_Main.py:10070 +#: app_Main.py:7646 msgid "Disabling plots ..." msgstr "Disabling plots ..." -#: app_Main.py:10093 +#: app_Main.py:7669 msgid "Working ..." msgstr "Working ..." -#: app_Main.py:10205 +#: app_Main.py:7781 msgid "Set alpha level ..." msgstr "Set alpha level ..." -#: app_Main.py:10271 +#: app_Main.py:8057 app_Main.py:8096 app_Main.py:8140 app_Main.py:8206 +#: app_Main.py:8932 app_Main.py:10193 app_Main.py:10255 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Canvas initialization started.\n" +"Canvas initialization finished in" + +#: app_Main.py:8060 +msgid "Opening Gerber file." +msgstr "Opening Gerber file." + +#: app_Main.py:8099 +msgid "Opening Excellon file." +msgstr "Opening Excellon file." + +#: app_Main.py:8129 app_Main.py:8134 +msgid "Open G-Code" +msgstr "Open G-Code" + +#: app_Main.py:8143 +msgid "Opening G-Code file." +msgstr "Opening G-Code file." + +#: app_Main.py:8197 app_Main.py:8201 +msgid "Open HPGL2" +msgstr "Open HPGL2" + +#: app_Main.py:8209 +msgid "Opening HPGL2 file." +msgstr "Opening HPGL2 file." + +#: app_Main.py:8232 app_Main.py:8235 +msgid "Open Configuration File" +msgstr "Open Configuration File" + +#: app_Main.py:8254 app_Main.py:8600 +msgid "Please Select a Geometry object to export" +msgstr "Please Select a Geometry object to export" + +#: app_Main.py:8269 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Only Geometry, Gerber and CNCJob objects can be used." + +#: app_Main.py:8314 +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:8320 app_Main.py:8324 +msgid "Export PNG Image" +msgstr "Export PNG Image" + +#: app_Main.py:8356 app_Main.py:8561 +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:8368 +msgid "Save Gerber source file" +msgstr "Save Gerber source file" + +#: app_Main.py:8396 +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:8408 +msgid "Save Script source file" +msgstr "Save Script source file" + +#: app_Main.py:8436 +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:8448 +msgid "Save Document source file" +msgstr "Save Document source file" + +#: app_Main.py:8477 app_Main.py:8518 app_Main.py:9437 +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:8485 app_Main.py:8490 +msgid "Save Excellon source file" +msgstr "Save Excellon source file" + +#: app_Main.py:8526 app_Main.py:8530 +msgid "Export Excellon" +msgstr "Export Excellon" + +#: app_Main.py:8569 app_Main.py:8573 +msgid "Export Gerber" +msgstr "Export Gerber" + +#: app_Main.py:8612 +msgid "Only Geometry objects can be used." +msgstr "Only Geometry objects can be used." + +#: app_Main.py:8628 app_Main.py:8632 +msgid "Export DXF" +msgstr "Export DXF" + +#: app_Main.py:8656 app_Main.py:8660 +msgid "Import SVG" +msgstr "Import SVG" + +#: app_Main.py:8686 app_Main.py:8690 +msgid "Import DXF" +msgstr "Import DXF" + +#: app_Main.py:8716 +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:8739 +msgid "New Project created" +msgstr "New Project created" + +#: app_Main.py:8841 +msgid "New TCL script file created in Code Editor." +msgstr "New TCL script file created in Code Editor." + +#: app_Main.py:8868 app_Main.py:8870 app_Main.py:8905 app_Main.py:8907 +msgid "Open TCL script" +msgstr "Open TCL script" + +#: app_Main.py:8934 +msgid "Executing ScriptObject file." +msgstr "Executing ScriptObject file." + +#: app_Main.py:8942 app_Main.py:8946 +msgid "Run TCL script" +msgstr "Run TCL script" + +#: app_Main.py:8969 +msgid "TCL script file opened in Code Editor and executed." +msgstr "TCL script file opened in Code Editor and executed." + +#: app_Main.py:9015 app_Main.py:9021 +msgid "Save Project As ..." +msgstr "Save Project As ..." + +#: app_Main.py:9055 +msgid "FlatCAM objects print" +msgstr "FlatCAM objects print" + +#: app_Main.py:9068 app_Main.py:9075 +msgid "Save Object as PDF ..." +msgstr "Save Object as PDF ..." + +#: app_Main.py:9084 +msgid "Printing PDF ... Please wait." +msgstr "Printing PDF ... Please wait." + +#: app_Main.py:9262 +msgid "PDF file saved to" +msgstr "PDF file saved to" + +#: app_Main.py:9284 +msgid "Exporting SVG" +msgstr "Exporting SVG" + +#: app_Main.py:9327 +msgid "SVG file exported to" +msgstr "SVG file exported to" + +#: app_Main.py:9342 app_Main.py:9346 +msgid "Import FlatCAM Preferences" +msgstr "Import FlatCAM Preferences" + +#: app_Main.py:9357 +msgid "Imported Defaults from" +msgstr "Imported Defaults from" + +#: app_Main.py:9376 app_Main.py:9382 +msgid "Export FlatCAM Preferences" +msgstr "Export FlatCAM Preferences" + +#: app_Main.py:9402 +msgid "Exported preferences to" +msgstr "Exported preferences to" + +#: app_Main.py:9535 +msgid "Excellon file exported to" +msgstr "Excellon file exported to" + +#: app_Main.py:9544 +msgid "Exporting Excellon" +msgstr "Exporting Excellon" + +#: app_Main.py:9549 app_Main.py:9556 +msgid "Could not export Excellon file." +msgstr "Could not export Excellon file." + +#: app_Main.py:9670 +msgid "Gerber file exported to" +msgstr "Gerber file exported to" + +#: app_Main.py:9678 +msgid "Exporting Gerber" +msgstr "Exporting Gerber" + +#: app_Main.py:9683 app_Main.py:9690 +msgid "Could not export file." +msgstr "Could not export file." + +#: app_Main.py:9736 +msgid "DXF file exported to" +msgstr "DXF file exported to" + +#: app_Main.py:9745 +msgid "Exporting DXF" +msgstr "Exporting DXF" + +#: app_Main.py:9750 app_Main.py:9757 +msgid "Could not export DXF file." +msgstr "Could not export DXF file." + +#: app_Main.py:9795 +msgid "Importing SVG" +msgstr "Importing SVG" + +#: app_Main.py:9803 app_Main.py:9858 +msgid "Import failed." +msgstr "Import failed." + +#: app_Main.py:9850 +msgid "Importing DXF" +msgstr "Importing DXF" + +#: app_Main.py:9891 app_Main.py:10082 app_Main.py:10147 +msgid "Failed to open file" +msgstr "Failed to open file" + +#: app_Main.py:9894 app_Main.py:10085 app_Main.py:10150 +msgid "Failed to parse file" +msgstr "Failed to parse file" + +#: app_Main.py:9906 +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:9911 +msgid "Opening Gerber" +msgstr "Opening Gerber" + +#: app_Main.py:9922 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Open Gerber failed. Probable not a Gerber file." + +#: app_Main.py:9955 +msgid "Cannot open file" +msgstr "Cannot open file" + +#: app_Main.py:9975 +msgid "Opening Excellon." +msgstr "Opening Excellon." + +#: app_Main.py:9985 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "Open Excellon file failed. Probable not an Excellon file." + +#: app_Main.py:10017 +msgid "Reading GCode file" +msgstr "Reading GCode file" + +#: app_Main.py:10030 +msgid "This is not GCODE" +msgstr "This is not GCODE" + +#: app_Main.py:10035 +msgid "Opening G-Code." +msgstr "Opening G-Code." + +#: app_Main.py:10048 +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:10104 +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:10109 +msgid "Opening HPGL2" +msgstr "Opening HPGL2" + +#: app_Main.py:10116 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Open HPGL2 failed. Probable not a HPGL2 file." + +#: app_Main.py:10142 +msgid "TCL script file opened in Code Editor." +msgstr "TCL script file opened in Code Editor." + +#: app_Main.py:10162 +msgid "Opening TCL Script..." +msgstr "Opening TCL Script..." + +#: app_Main.py:10173 +msgid "Failed to open TCL Script." +msgstr "Failed to open TCL Script." + +#: app_Main.py:10196 +msgid "Opening FlatCAM Config file." +msgstr "Opening FlatCAM Config file." + +#: app_Main.py:10223 +msgid "Failed to open config file" +msgstr "Failed to open config file" + +#: app_Main.py:10252 +msgid "Loading Project ... Please Wait ..." +msgstr "Loading Project ... Please Wait ..." + +#: app_Main.py:10258 +msgid "Opening FlatCAM Project file." +msgstr "Opening FlatCAM Project file." + +#: app_Main.py:10273 app_Main.py:10277 app_Main.py:10295 +msgid "Failed to open project file" +msgstr "Failed to open project file" + +#: app_Main.py:10335 +msgid "Loading Project ... restoring" +msgstr "Loading Project ... restoring" + +#: app_Main.py:10339 +msgid "Project loaded from" +msgstr "Project loaded from" + +#: app_Main.py:10368 msgid "Saving FlatCAM Project" msgstr "Saving FlatCAM Project" -#: app_Main.py:10294 app_Main.py:10330 +#: app_Main.py:10390 app_Main.py:10426 msgid "Project saved to" msgstr "Project saved to" -#: app_Main.py:10301 +#: app_Main.py:10397 msgid "The object is used by another application." msgstr "The object is used by another application." -#: app_Main.py:10315 +#: app_Main.py:10411 msgid "Failed to verify project file" msgstr "Failed to verify project file" -#: app_Main.py:10315 app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10411 app_Main.py:10419 app_Main.py:10429 msgid "Retry to save it." msgstr "Retry to save it." -#: app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10419 app_Main.py:10429 msgid "Failed to parse saved project file" msgstr "Failed to parse saved project file" +#: app_Main.py:10466 +msgid "Save cancelled because source file is empty. Try to export the file." +msgstr "Save cancelled because source file is empty. Try to export the file." + #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" @@ -19224,7 +19181,6 @@ msgid "G91 coordinates not implemented" msgstr "G91 coordinates not implemented" #: camlib.py:3447 -#| msgid "Finished G-Code generation for tool: %s" msgid "Finished G-Code generation for tool:" msgstr "Finished G-Code generation for tool:" diff --git a/locale/es/LC_MESSAGES/strings.mo b/locale/es/LC_MESSAGES/strings.mo index 57807687897eb4e101787144e0f266ee9921c844..b6bbb1f4bc7a8fc694afda78db8b7166cf1bf9c2 100644 GIT binary patch delta 34 ocmexzNbJiYv4$4L7N#xC?*&*atxQbYKMODeG0XPP0<4V_0R8C=r2qf` delta 34 ocmexzNbJiYv4$4L7N#xC?*&*)txQeYKMODeG0XPP0<4V_0R5s3p#T5? diff --git a/locale/es/LC_MESSAGES/strings.po b/locale/es/LC_MESSAGES/strings.po index 99eff8d0..8eebe5c3 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-10-24 15:54+0300\n" -"PO-Revision-Date: 2020-10-24 15:54+0300\n" +"POT-Creation-Date: 2020-10-24 19:45+0300\n" +"PO-Revision-Date: 2020-10-24 19:45+0300\n" "Last-Translator: Marius Stanciu - Google Translate\n" "Language-Team: \n" "Language: es\n" @@ -111,24 +111,24 @@ msgstr "Marcadores" #: appObjects/FlatCAMCNCJob.py:1750 appObjects/ObjectCollection.py:126 #: appTools/ToolFilm.py:238 appTools/ToolFilm.py:384 appTools/ToolImage.py:112 #: appTools/ToolMove.py:269 appTools/ToolPcbWizard.py:189 -#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:526 -#: appTools/ToolQRCode.py:573 app_Main.py:1753 app_Main.py:2581 -#: app_Main.py:2617 app_Main.py:2664 app_Main.py:4410 app_Main.py:7128 -#: app_Main.py:7167 app_Main.py:7211 app_Main.py:7240 app_Main.py:7281 -#: app_Main.py:7306 app_Main.py:7362 app_Main.py:7398 app_Main.py:7443 -#: app_Main.py:7484 app_Main.py:7526 app_Main.py:7568 app_Main.py:7609 -#: app_Main.py:7653 app_Main.py:7713 app_Main.py:7745 app_Main.py:7777 -#: app_Main.py:8000 app_Main.py:8038 app_Main.py:8081 app_Main.py:8158 -#: app_Main.py:8213 +#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:527 +#: appTools/ToolQRCode.py:574 app_Main.py:1762 app_Main.py:2596 +#: app_Main.py:4333 app_Main.py:8065 app_Main.py:8104 app_Main.py:8148 +#: app_Main.py:8174 app_Main.py:8214 app_Main.py:8239 app_Main.py:8293 +#: app_Main.py:8329 app_Main.py:8373 app_Main.py:8413 app_Main.py:8454 +#: app_Main.py:8495 app_Main.py:8535 app_Main.py:8578 app_Main.py:8637 +#: app_Main.py:8669 app_Main.py:8699 app_Main.py:8874 app_Main.py:8911 +#: app_Main.py:8954 app_Main.py:9026 app_Main.py:9080 app_Main.py:9350 +#: app_Main.py:9385 msgid "Cancelled." msgstr "Cancelado." #: Bookmark.py:308 appDatabase.py:2089 appEditors/AppTextEditor.py:312 #: appObjects/FlatCAMCNCJob.py:1672 appObjects/FlatCAMCNCJob.py:1862 #: appObjects/FlatCAMCNCJob.py:2311 appTools/ToolFilm.py:582 -#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2672 -#: app_Main.py:8457 app_Main.py:8505 app_Main.py:8634 app_Main.py:8771 -#: app_Main.py:8839 +#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2604 +#: app_Main.py:9320 app_Main.py:9528 app_Main.py:9663 app_Main.py:9729 +#: app_Main.py:10481 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -161,7 +161,7 @@ msgstr "Marcadores importados de" msgid "The user requested a graceful exit of the current task." msgstr "El usuario solicitó una salida elegante de la tarea actual." -#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:328 +#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:327 #: appTools/ToolIsolation.py:1436 appTools/ToolNCC.py:1366 msgid "Click the start point of the area." msgstr "Haga clic en el punto de inicio del área." @@ -171,7 +171,7 @@ msgid "Click the end point of the area." msgstr "Haga clic en el punto final del área." #: appCommon/Common.py:357 appCommon/Common.py:459 -#: appTools/ToolCopperThieving.py:385 appTools/ToolIsolation.py:2348 +#: appTools/ToolCopperThieving.py:384 appTools/ToolIsolation.py:2348 #: appTools/ToolIsolation.py:2400 appTools/ToolNCC.py:1431 #: appTools/ToolNCC.py:1483 appTools/ToolPaint.py:1216 #: appTools/ToolPaint.py:1267 @@ -270,8 +270,8 @@ msgstr "Parámetros de ranura" #: appDatabase.py:207 appEditors/AppGeoEditor.py:3287 appGUI/ObjectUI.py:219 #: appGUI/ObjectUI.py:570 appGUI/ObjectUI.py:894 appGUI/ObjectUI.py:1876 #: appGUI/ObjectUI.py:2693 appGUI/ObjectUI.py:2760 -#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:681 -#: app_Main.py:9730 +#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:683 +#: app_Main.py:7306 msgid "Name" msgstr "Nombre" @@ -346,7 +346,7 @@ msgstr "" #: appDatabase.py:275 appDatabase.py:1778 appDatabase.py:1814 #: appDatabase.py:1877 appDatabase.py:2162 appGUI/MainGUI.py:1299 -#: app_Main.py:9728 +#: app_Main.py:7304 msgid "General" msgstr "General" @@ -501,7 +501,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2104 +#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2108 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Corte Z" @@ -799,9 +799,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1210 appTools/ToolCopperThieving.py:1461 -#: appTools/ToolCorners.py:411 appTools/ToolCutOut.py:2157 -#: appTools/ToolFiducials.py:786 appTools/ToolInvertGerber.py:234 +#: appTools/ToolCopperThieving.py:1206 appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCorners.py:412 appTools/ToolCutOut.py:2161 +#: appTools/ToolFiducials.py:788 appTools/ToolInvertGerber.py:234 #: appTools/ToolInvertGerber.py:242 appTools/ToolNCC.py:4135 #: appTools/ToolNCC.py:4238 msgid "Margin" @@ -812,8 +812,8 @@ msgstr "Margen" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1212 appTools/ToolCorners.py:413 -#: appTools/ToolFiducials.py:788 appTools/ToolNCC.py:4137 +#: appTools/ToolCopperThieving.py:1208 appTools/ToolCorners.py:414 +#: appTools/ToolFiducials.py:790 appTools/ToolNCC.py:4137 #: appTools/ToolNCC.py:4240 msgid "Bounding box margin." msgstr "Margen de cuadro delimitador." @@ -825,7 +825,7 @@ msgstr "Margen de cuadro delimitador." #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 -#: appTools/ToolExtractDrills.py:520 appTools/ToolNCC.py:4112 +#: appTools/ToolExtractDrills.py:521 appTools/ToolNCC.py:4112 #: appTools/ToolPaint.py:2991 appTools/ToolPunchGerber.py:796 msgid "Method" msgstr "Método" @@ -1120,7 +1120,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 -#: appTools/ToolCutOut.py:2128 appTools/ToolDrilling.py:2167 +#: appTools/ToolCutOut.py:2132 appTools/ToolDrilling.py:2167 #: appTools/ToolMilling.py:1817 msgid "" "Use multiple passes to limit\n" @@ -1136,7 +1136,7 @@ msgstr "" #: appDatabase.py:979 appGUI/ObjectUI.py:1251 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 -#: appTools/ToolCutOut.py:2142 appTools/ToolDrilling.py:2180 +#: appTools/ToolCutOut.py:2146 appTools/ToolDrilling.py:2180 #: appTools/ToolMilling.py:1830 msgid "Depth of each pass (positive)." msgstr "Profundidad de cada pase (positivo)." @@ -1237,7 +1237,7 @@ msgid "" msgstr "" #: appDatabase.py:1156 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: appTools/ToolCutOut.py:2159 +#: appTools/ToolCutOut.py:2163 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -1248,12 +1248,12 @@ msgstr "" "el borde real de PCB" #: appDatabase.py:1168 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:131 -#: appTools/ToolCutOut.py:2167 +#: appTools/ToolCutOut.py:2171 msgid "Gap size" msgstr "Tamaño de la brecha" #: appDatabase.py:1170 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:133 -#: appTools/ToolCutOut.py:2169 +#: appTools/ToolCutOut.py:2173 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -1266,14 +1266,14 @@ msgstr "" "de la cual se corta el PCB)." #: appDatabase.py:1179 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -#: appTools/ToolCutOut.py:2182 +#: appTools/ToolCutOut.py:2186 #, fuzzy #| msgid "Image type" msgid "Gap type" msgstr "Tipo de imagen" #: appDatabase.py:1181 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150 -#: appTools/ToolCutOut.py:2184 +#: appTools/ToolCutOut.py:2188 msgid "" "The type of gap:\n" "- Bridge -> the cutout will be interrupted by bridges\n" @@ -1283,24 +1283,24 @@ msgid "" msgstr "" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 -#: appTools/ToolCutOut.py:2192 +#: appTools/ToolCutOut.py:2196 msgid "Bridge" msgstr "" #: appDatabase.py:1190 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159 -#: appTools/ToolCutOut.py:2193 +#: appTools/ToolCutOut.py:2197 msgid "Thin" msgstr "" #: appDatabase.py:1201 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169 -#: appTools/ToolCutOut.py:2203 +#: appTools/ToolCutOut.py:2207 #, fuzzy #| msgid "MultiDepth" msgid "Depth" msgstr "Profund. Múlti" #: appDatabase.py:1203 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171 -#: appTools/ToolCutOut.py:2205 +#: appTools/ToolCutOut.py:2209 #, fuzzy #| msgid "" #| "The width of the travel lines to be\n" @@ -1314,12 +1314,12 @@ msgstr "" #: appDatabase.py:1220 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2220 +#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2224 msgid "Tool Diameter" msgstr "Diá. de Herram" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 -#: appTools/ToolCutOut.py:2222 +#: appTools/ToolCutOut.py:2226 msgid "The drill hole diameter when doing mouse bites." msgstr "" @@ -1328,23 +1328,23 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1333 appTools/ToolCopperThieving.py:1373 -#: appTools/ToolCopperThieving.py:1413 appTools/ToolCutOut.py:2232 +#: appTools/ToolCopperThieving.py:1329 appTools/ToolCopperThieving.py:1369 +#: appTools/ToolCopperThieving.py:1409 appTools/ToolCutOut.py:2236 msgid "Spacing" msgstr "Spacing" #: appDatabase.py:1235 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200 -#: appTools/ToolCutOut.py:2234 +#: appTools/ToolCutOut.py:2238 msgid "The spacing between drill holes when doing mouse bites." msgstr "" #: appDatabase.py:1254 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233 -#: appTools/ToolCutOut.py:2034 +#: appTools/ToolCutOut.py:2038 msgid "Convex Shape" msgstr "Forma convexa" #: appDatabase.py:1257 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235 -#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041 +#: appTools/ToolCutOut.py:2040 appTools/ToolCutOut.py:2045 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -1353,11 +1353,11 @@ msgstr "" "Se usa solo si el tipo de objeto de origen es Gerber." #: appDatabase.py:1265 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209 -#: appTools/ToolCutOut.py:2263 +#: appTools/ToolCutOut.py:2267 msgid "Gaps" msgstr "Brechas" -#: appDatabase.py:1267 appTools/ToolCutOut.py:2265 +#: appDatabase.py:1267 appTools/ToolCutOut.py:2269 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -1445,8 +1445,8 @@ msgstr "" "en la base de datos de herramientas." #: appDatabase.py:1364 appGUI/MainGUI.py:1438 -#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2297 -#: app_Main.py:3392 app_Main.py:4347 app_Main.py:4593 app_Main.py:6901 +#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2306 +#: app_Main.py:3315 app_Main.py:4270 app_Main.py:4516 app_Main.py:8725 msgid "Cancel" msgstr "Cancelar" @@ -1457,16 +1457,16 @@ msgstr "Cancelar" #: appTools/ToolAlignObjects.py:516 appTools/ToolAlignObjects.py:527 #: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1601 appTools/ToolCopperThieving.py:1612 -#: appTools/ToolCorners.py:462 appTools/ToolCorners.py:473 -#: appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448 -#: appTools/ToolDblSided.py:956 appTools/ToolDblSided.py:967 +#: appTools/ToolCopperThieving.py:1597 appTools/ToolCopperThieving.py:1608 +#: appTools/ToolCorners.py:463 appTools/ToolCorners.py:474 +#: appTools/ToolCutOut.py:2441 appTools/ToolCutOut.py:2452 +#: appTools/ToolDblSided.py:958 appTools/ToolDblSided.py:969 #: appTools/ToolDistance.py:659 appTools/ToolDistance.py:670 #: appTools/ToolDistanceMin.py:324 appTools/ToolDistanceMin.py:335 #: appTools/ToolDrilling.py:2666 appTools/ToolDrilling.py:2677 #: appTools/ToolEtchCompensation.py:476 appTools/ToolEtchCompensation.py:487 -#: appTools/ToolExtractDrills.py:732 appTools/ToolExtractDrills.py:743 -#: appTools/ToolFiducials.py:950 appTools/ToolFiducials.py:961 +#: appTools/ToolExtractDrills.py:733 appTools/ToolExtractDrills.py:744 +#: appTools/ToolFiducials.py:952 appTools/ToolFiducials.py:963 #: appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 #: appTools/ToolImage.py:322 appTools/ToolImage.py:333 #: appTools/ToolInvertGerber.py:304 appTools/ToolInvertGerber.py:315 @@ -1478,7 +1478,7 @@ msgstr "Cancelar" #: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925 #: appTools/ToolPcbWizard.py:488 appTools/ToolPcbWizard.py:499 #: appTools/ToolPunchGerber.py:1025 appTools/ToolPunchGerber.py:1036 -#: appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933 +#: appTools/ToolQRCode.py:923 appTools/ToolQRCode.py:934 #: appTools/ToolRulesCheck.py:1657 appTools/ToolRulesCheck.py:1668 #: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586 #: appTools/ToolSub.py:772 appTools/ToolSub.py:783 @@ -1493,16 +1493,16 @@ msgstr "El valor editado está fuera de rango" #: appTools/ToolAlignObjects.py:522 appTools/ToolAlignObjects.py:529 #: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1607 appTools/ToolCopperThieving.py:1614 -#: appTools/ToolCorners.py:468 appTools/ToolCorners.py:475 -#: appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450 -#: appTools/ToolDblSided.py:962 appTools/ToolDblSided.py:969 +#: appTools/ToolCopperThieving.py:1603 appTools/ToolCopperThieving.py:1610 +#: appTools/ToolCorners.py:469 appTools/ToolCorners.py:476 +#: appTools/ToolCutOut.py:2447 appTools/ToolCutOut.py:2454 +#: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:971 #: appTools/ToolDistance.py:665 appTools/ToolDistance.py:672 #: appTools/ToolDistanceMin.py:330 appTools/ToolDistanceMin.py:337 #: appTools/ToolDrilling.py:2672 appTools/ToolDrilling.py:2679 #: appTools/ToolEtchCompensation.py:482 appTools/ToolEtchCompensation.py:489 -#: appTools/ToolExtractDrills.py:738 appTools/ToolExtractDrills.py:745 -#: appTools/ToolFiducials.py:956 appTools/ToolFiducials.py:963 +#: appTools/ToolExtractDrills.py:739 appTools/ToolExtractDrills.py:746 +#: appTools/ToolFiducials.py:958 appTools/ToolFiducials.py:965 #: appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 #: appTools/ToolImage.py:328 appTools/ToolImage.py:335 #: appTools/ToolInvertGerber.py:310 appTools/ToolInvertGerber.py:317 @@ -1514,7 +1514,7 @@ msgstr "El valor editado está fuera de rango" #: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927 #: appTools/ToolPcbWizard.py:494 appTools/ToolPcbWizard.py:501 #: appTools/ToolPunchGerber.py:1031 appTools/ToolPunchGerber.py:1038 -#: appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935 +#: appTools/ToolQRCode.py:929 appTools/ToolQRCode.py:936 #: appTools/ToolRulesCheck.py:1663 appTools/ToolRulesCheck.py:1670 #: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588 #: appTools/ToolSub.py:778 appTools/ToolSub.py:785 @@ -1534,7 +1534,7 @@ msgstr "Copiar de DB" msgid "Delete from DB" msgstr "Eliminar de la DB" -#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3386 app_Main.py:6895 +#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3309 app_Main.py:8719 msgid "Save changes" msgstr "Guardar cambios" @@ -1591,8 +1591,8 @@ msgstr "Importe la base de datos de herramientas FlatCAM" #: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525 #: appTools/ToolIsolation.py:2583 appTools/ToolIsolation.py:2667 #: appTools/ToolNCC.py:3715 appTools/ToolNCC.py:3795 appTools/ToolPaint.py:2626 -#: appTools/ToolPaint.py:2715 app_Main.py:5682 app_Main.py:5724 -#: app_Main.py:5755 app_Main.py:5775 app_Main.py:5785 +#: appTools/ToolPaint.py:2715 app_Main.py:5605 app_Main.py:5647 +#: app_Main.py:5678 app_Main.py:5698 app_Main.py:5708 msgid "Tools Database" msgstr "Base de Datos de Herramientas" @@ -1812,7 +1812,7 @@ msgstr "Cancelado. No hay herramienta / taladro seleccionado" #: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642 #: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871 #: appTools/ToolAlignObjects.py:253 appTools/ToolAlignObjects.py:275 -#: app_Main.py:4961 app_Main.py:5115 +#: app_Main.py:4884 app_Main.py:5038 msgid "Done." msgstr "Hecho." @@ -1875,7 +1875,7 @@ msgstr "" #: appEditors/AppExcEditor.py:3765 appGUI/ObjectUI.py:1082 #: appGUI/ObjectUI.py:1650 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 -#: appTools/ToolCutOut.py:2060 appTools/ToolIsolation.py:3091 +#: appTools/ToolCutOut.py:2064 appTools/ToolIsolation.py:3091 #: appTools/ToolNCC.py:3966 appTools/ToolNCC.py:3977 appTools/ToolPaint.py:2882 msgid "Tool Dia" msgstr "Diá. de Herram" @@ -1966,8 +1966,8 @@ msgstr "Lineal" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 -#: appTools/ToolExtractDrills.py:470 appTools/ToolExtractDrills.py:593 -#: appTools/ToolFiducials.py:834 appTools/ToolPunchGerber.py:746 +#: appTools/ToolExtractDrills.py:471 appTools/ToolExtractDrills.py:594 +#: appTools/ToolFiducials.py:836 appTools/ToolPunchGerber.py:746 #: appTools/ToolPunchGerber.py:886 msgid "Circular" msgstr "Circular" @@ -2134,7 +2134,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:398 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:399 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Longitud" @@ -2255,12 +2255,12 @@ msgstr "Redondo" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:289 -#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:486 -#: appTools/ToolExtractDrills.py:619 appTools/ToolInvertGerber.py:257 +#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:487 +#: appTools/ToolExtractDrills.py:620 appTools/ToolInvertGerber.py:257 #: appTools/ToolIsolation.py:3430 appTools/ToolMilling.py:2264 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3168 #: appTools/ToolPunchGerber.py:762 appTools/ToolPunchGerber.py:912 -#: appTools/ToolQRCode.py:788 +#: appTools/ToolQRCode.py:789 msgid "Square" msgstr "Cuadrado" @@ -2311,8 +2311,8 @@ msgstr "Font" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1360 appTools/ToolCopperThieving.py:1400 -#: appTools/ToolFiducials.py:770 +#: appTools/ToolCopperThieving.py:1356 appTools/ToolCopperThieving.py:1396 +#: appTools/ToolFiducials.py:772 msgid "Size" msgstr "Tamaño" @@ -2336,8 +2336,8 @@ msgstr "Herramienta de texto" #: appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 #: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:329 #: appTools/ToolNCC.py:2280 appTools/ToolNCC.py:4040 appTools/ToolPaint.py:304 -#: appTools/ToolPaint.py:2940 app_Main.py:2053 app_Main.py:2312 -#: app_Main.py:2419 +#: appTools/ToolPaint.py:2940 app_Main.py:2062 app_Main.py:2321 +#: app_Main.py:2428 msgid "Tool" msgstr "Herramienta" @@ -2427,7 +2427,7 @@ msgstr "Buffer" #: appGUI/GUIElements.py:3015 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 -#: appTools/ToolDblSided.py:681 appTools/ToolDblSided.py:855 +#: appTools/ToolDblSided.py:683 appTools/ToolDblSided.py:857 #: appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 msgid "Reference" msgstr "Referencia" @@ -2474,7 +2474,7 @@ msgstr "Selección" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 -#: appTools/ToolDblSided.py:692 appTools/ToolTransform.py:557 +#: appTools/ToolDblSided.py:694 appTools/ToolTransform.py:557 msgid "Point" msgstr "Punto" @@ -2487,10 +2487,9 @@ msgstr "Mínimo" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243 -#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677 +#: appTools/ToolExtractDrills.py:557 appTools/ToolExtractDrills.py:678 #: appTools/ToolPunchGerber.py:849 appTools/ToolPunchGerber.py:965 -#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 -#: app_Main.py:10205 +#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:7781 msgid "Value" msgstr "Valor" @@ -2502,10 +2501,10 @@ msgstr "Un punto de referencia en formato X, Y." #: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590 #: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 -#: appTools/ToolDblSided.py:706 appTools/ToolDblSided.py:892 +#: appTools/ToolDblSided.py:708 appTools/ToolDblSided.py:894 #: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203 -#: appTools/ToolTransform.py:572 app_Main.py:6127 +#: appTools/ToolTransform.py:572 app_Main.py:6050 msgid "Add" msgstr "Añadir" @@ -2716,7 +2715,7 @@ msgstr "Offset Y" #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216 -#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:787 +#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:788 #: appTools/ToolTransform.py:854 msgid "Rounded" msgstr "Redondeado" @@ -3197,7 +3196,7 @@ msgstr "Editor de geometría" #: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495 #: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 -#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519 +#: appTools/ToolCutOut.py:2017 appTools/ToolDblSided.py:521 #: appTools/ToolTransform.py:579 msgid "Type" msgstr "Tipo" @@ -3585,7 +3584,7 @@ msgstr "Agregar una nueva apertura a la lista de apertura." #: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 #: appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 #: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 -#: appTools/ToolSolderPaste.py:1209 app_Main.py:6129 +#: appTools/ToolSolderPaste.py:1209 app_Main.py:6052 msgid "Delete" msgstr "Borrar" @@ -3805,8 +3804,8 @@ msgstr "" #: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:164 #: appObjects/FlatCAMGeometry.py:1917 appParsers/ParseExcellon.py:972 -#: appTools/ToolPcbWizard.py:318 app_Main.py:9010 app_Main.py:9070 -#: app_Main.py:9201 app_Main.py:9266 app_Main.py:9881 +#: appTools/ToolPcbWizard.py:318 app_Main.py:7457 app_Main.py:9899 +#: app_Main.py:9959 app_Main.py:10090 app_Main.py:10155 msgid "An internal error has occurred. See shell.\n" msgstr "Ha ocurrido un error interno. Ver concha\n" @@ -3822,7 +3821,7 @@ msgstr "La edición de gerber terminó." msgid "Cancelled. No aperture is selected" msgstr "Cancelado. No se selecciona ninguna apertura" -#: appEditors/AppGerberEditor.py:4555 app_Main.py:6462 +#: appEditors/AppGerberEditor.py:4555 app_Main.py:6385 msgid "Coordinates copied to clipboard." msgstr "Coordenadas copiadas al portapapeles." @@ -3841,8 +3840,8 @@ msgstr "" "de nuevo." #: appEditors/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 -#: appTools/ToolCutOut.py:895 appTools/ToolCutOut.py:1118 -#: appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663 +#: appTools/ToolCutOut.py:896 appTools/ToolCutOut.py:1119 +#: appTools/ToolCutOut.py:1267 camlib.py:4899 camlib.py:5663 msgid "Failed." msgstr "Ha fallado." @@ -3873,7 +3872,7 @@ msgstr "No se marcaron polígonos. Ninguno encaja dentro de los límites." msgid "Rotation action was not executed." msgstr "La acción de Rotación no se ejecutó." -#: appEditors/AppGerberEditor.py:6044 app_Main.py:5885 app_Main.py:5933 +#: appEditors/AppGerberEditor.py:6044 app_Main.py:5808 app_Main.py:5856 msgid "Flip action was not executed." msgstr "La acción de voltear no se ejecutó." @@ -3987,7 +3986,7 @@ msgstr "Abrir documento" #: appObjects/FlatCAMCNCJob.py:1646 appObjects/FlatCAMCNCJob.py:1651 #: appObjects/FlatCAMCNCJob.py:1836 appObjects/FlatCAMCNCJob.py:1841 #: appObjects/FlatCAMCNCJob.py:1914 appObjects/FlatCAMCNCJob.py:1919 -#: appTools/ToolSolderPaste.py:1063 app_Main.py:7044 app_Main.py:7049 +#: appTools/ToolSolderPaste.py:1063 app_Main.py:6839 app_Main.py:6844 msgid "Export Code ..." msgstr "Exportar el código ..." @@ -4001,7 +4000,7 @@ msgstr "El fichero o directorio no existe" msgid "Saved to" msgstr "Guardado en" -#: appEditors/appGCodeEditor.py:66 app_Main.py:7905 +#: appEditors/appGCodeEditor.py:66 app_Main.py:7000 msgid "Code Editor" msgstr "Editor de código" @@ -4037,7 +4036,7 @@ msgstr "Editor de código" #: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 appGUI/ObjectUI.py:2019 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1320 +#: appTools/ToolCopperThieving.py:1316 msgid "Dia" msgstr "Dia" @@ -4136,8 +4135,8 @@ msgstr "" msgid "Save Log" msgstr "Guardar Registro" -#: appGUI/GUIElements.py:3085 app_Main.py:2809 app_Main.py:3181 -#: app_Main.py:3354 +#: appGUI/GUIElements.py:3085 app_Main.py:2741 app_Main.py:3113 +#: app_Main.py:3286 msgid "Close" msgstr "Cerca" @@ -4781,7 +4780,7 @@ msgstr "Ayuda" msgid "Online Help\tF1" msgstr "Ayuda en Online\tF1" -#: appGUI/MainGUI.py:527 app_Main.py:3319 app_Main.py:3328 +#: appGUI/MainGUI.py:527 app_Main.py:3251 app_Main.py:3260 msgid "Bookmarks Manager" msgstr "Administrador de Marcadores" @@ -4811,7 +4810,7 @@ msgstr "Canal de Youtube\tF4" msgid "How To" msgstr "How To's" -#: appGUI/MainGUI.py:551 app_Main.py:2776 +#: appGUI/MainGUI.py:551 app_Main.py:2708 msgid "About FlatCAM" msgstr "Sobre FlatCAM" @@ -4979,47 +4978,47 @@ msgstr "Desactivar parcela" msgid "Set Color" msgstr "Establecer color" -#: appGUI/MainGUI.py:709 app_Main.py:10148 +#: appGUI/MainGUI.py:709 app_Main.py:7724 msgid "Red" msgstr "Rojo" -#: appGUI/MainGUI.py:712 app_Main.py:10150 +#: appGUI/MainGUI.py:712 app_Main.py:7726 msgid "Blue" msgstr "Azul" -#: appGUI/MainGUI.py:715 app_Main.py:10153 +#: appGUI/MainGUI.py:715 app_Main.py:7729 msgid "Yellow" msgstr "Amarillo" -#: appGUI/MainGUI.py:718 app_Main.py:10155 +#: appGUI/MainGUI.py:718 app_Main.py:7731 msgid "Green" msgstr "Verde" -#: appGUI/MainGUI.py:721 app_Main.py:10157 +#: appGUI/MainGUI.py:721 app_Main.py:7733 msgid "Purple" msgstr "Púrpura" -#: appGUI/MainGUI.py:724 app_Main.py:10159 +#: appGUI/MainGUI.py:724 app_Main.py:7735 msgid "Brown" msgstr "Marrón" -#: appGUI/MainGUI.py:727 app_Main.py:10161 app_Main.py:10220 +#: appGUI/MainGUI.py:727 app_Main.py:7737 app_Main.py:7796 msgid "White" msgstr "Blanca" -#: appGUI/MainGUI.py:730 app_Main.py:10163 +#: appGUI/MainGUI.py:730 app_Main.py:7739 msgid "Black" msgstr "Negra" -#: appGUI/MainGUI.py:735 app_Main.py:10166 +#: appGUI/MainGUI.py:735 app_Main.py:7742 msgid "Custom" msgstr "Personalizado" -#: appGUI/MainGUI.py:740 app_Main.py:10200 +#: appGUI/MainGUI.py:740 app_Main.py:7776 msgid "Opacity" msgstr "Opacidad" -#: appGUI/MainGUI.py:743 app_Main.py:10176 +#: appGUI/MainGUI.py:743 app_Main.py:7752 msgid "Default" msgstr "Predeterminado" @@ -5099,13 +5098,13 @@ msgstr "Barra de herramientas de cuadrícula" msgid "Status Toolbar" msgstr "Barra de herramientas de edición" -#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7110 -#: app_Main.py:7115 +#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:8046 +#: app_Main.py:8051 msgid "Open Gerber" msgstr "Abrir gerber" -#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7150 -#: app_Main.py:7155 +#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:8086 +#: app_Main.py:8091 msgid "Open Excellon" msgstr "Abierto Excellon" @@ -5192,7 +5191,7 @@ msgid "Extract Drills Tool" msgstr "Herram. de Extracción de Taladros" #: appGUI/MainGUI.py:931 appGUI/MainGUI.py:2086 appGUI/ObjectUI.py:387 -#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2052 +#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2056 msgid "Cutout Tool" msgstr "Herramienta de Corte" @@ -5245,17 +5244,17 @@ msgid "Calculators Tool" msgstr "Herramienta de Calculadoras" #: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285 -#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628 +#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:629 msgid "QRCode Tool" msgstr "Herramienta QRCode" #: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1137 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1133 msgid "Copper Thieving Tool" msgstr "Herramienta Thieving Tool" #: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281 -#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648 +#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:650 msgid "Fiducials Tool" msgstr "Herramienta de Fiduciales" @@ -5274,7 +5273,7 @@ msgid "Invert Gerber Tool" msgstr "Herram. Invertir Gerber" #: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284 -#: appTools/ToolCorners.py:297 +#: appTools/ToolCorners.py:298 msgid "Corner Markers Tool" msgstr "Herram. de Marca. de Esquina" @@ -5465,8 +5464,8 @@ msgstr "Alternar la visualización del eje en el lienzo" #: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:899 #: appGUI/preferences/PreferencesUIManager.py:992 #: appGUI/preferences/PreferencesUIManager.py:1020 -#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5585 -#: app_Main.py:5590 app_Main.py:5605 +#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5508 +#: app_Main.py:5513 app_Main.py:5528 msgid "Preferences" msgstr "Preferencias" @@ -5504,21 +5503,21 @@ msgstr "" msgid "TCL Shell" msgstr "Mostrar la línea de comando" -#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 +#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:9017 msgid "Project" msgstr "Proyecto" #: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:3791 -#: appGUI/MainGUI.py:3797 app_Main.py:2480 app_Main.py:7001 +#: appGUI/MainGUI.py:3797 app_Main.py:2489 app_Main.py:8825 msgid "Plot Area" msgstr "Área de la parcela" -#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1169 -#: appTools/ToolCorners.py:317 appTools/ToolEtchCompensation.py:291 -#: appTools/ToolExtractDrills.py:453 appTools/ToolFiducials.py:873 +#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1165 +#: appTools/ToolCorners.py:318 appTools/ToolEtchCompensation.py:291 +#: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:875 #: appTools/ToolInvertGerber.py:215 appTools/ToolIsolation.py:2986 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:721 -#: appTools/ToolQRCode.py:659 appTools/ToolRulesCheck.py:1165 +#: appTools/ToolQRCode.py:660 appTools/ToolRulesCheck.py:1165 #: appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:643 msgid "GERBER" msgstr "GERBER" @@ -5606,9 +5605,9 @@ msgstr "Alternar visibilidad" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:526 -#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:929 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2014 appTools/ToolDblSided.py:528 +#: appTools/ToolDblSided.py:769 appTools/ToolFilm.py:929 #: appTools/ToolFilm.py:952 appTools/ToolImage.py:136 appTools/ToolImage.py:191 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 @@ -5626,9 +5625,9 @@ msgstr "Geometría" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:892 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolDblSided.py:527 appTools/ToolDblSided.py:724 -#: appTools/ToolDblSided.py:766 appTools/ToolFilm.py:1207 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:768 appTools/ToolFilm.py:1207 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:805 appTools/ToolNCC.py:4323 appTools/ToolPaint.py:167 #: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147 @@ -5706,7 +5705,7 @@ msgstr "Exc Editor" msgid "Add Drill" msgstr "Añadir taladro" -#: appGUI/MainGUI.py:1581 app_Main.py:2291 +#: appGUI/MainGUI.py:1581 app_Main.py:2300 msgid "Close Editor" msgstr "Cerrar Editor" @@ -5732,8 +5731,8 @@ msgstr "¿Está seguro de que desea eliminar la configuración de la GUI?\n" #: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:931 #: appGUI/preferences/PreferencesUIManager.py:1177 appTranslation.py:111 -#: appTranslation.py:213 app_Main.py:2295 app_Main.py:3390 app_Main.py:5815 -#: app_Main.py:6899 +#: appTranslation.py:213 app_Main.py:2304 app_Main.py:3313 app_Main.py:5738 +#: app_Main.py:8723 msgid "Yes" msgstr "Sí" @@ -5745,7 +5744,7 @@ msgstr "Sí" #: appTools/ToolDrilling.py:2090 appTools/ToolIsolation.py:3066 #: appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3935 #: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 -#: app_Main.py:2296 app_Main.py:3391 app_Main.py:5816 app_Main.py:6900 +#: app_Main.py:2305 app_Main.py:3314 app_Main.py:5739 app_Main.py:8724 msgid "No" msgstr "No" @@ -5835,7 +5834,7 @@ msgstr "Añadiendo herramienta cancelada ..." msgid "Distance Tool exit..." msgstr "Salida de Herramienta de Distancia ..." -#: appGUI/MainGUI.py:3725 app_Main.py:3378 +#: appGUI/MainGUI.py:3725 app_Main.py:3301 msgid "Application is saving the project. Please wait ..." msgstr "La aplicación es guardar el proyecto. Por favor espera ..." @@ -5879,7 +5878,7 @@ msgstr "Nuevo Gerber" msgid "Edit Object (if selected)" msgstr "Editar objeto (si está seleccionado)" -#: appGUI/MainGUI.py:4261 app_Main.py:6115 +#: appGUI/MainGUI.py:4261 app_Main.py:6038 msgid "Grid On/Off" msgstr "Grid On/Off" @@ -5950,7 +5949,7 @@ msgstr "Abrir Gerber" msgid "New Project" msgstr "Nuevo Proyecto" -#: appGUI/MainGUI.py:4270 app_Main.py:7229 app_Main.py:7232 +#: appGUI/MainGUI.py:4270 app_Main.py:8166 app_Main.py:8169 msgid "Open Project" msgstr "Proyecto abierto" @@ -6376,7 +6375,7 @@ msgstr "Opciones de parcela" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1290 +#: appTools/ToolCopperThieving.py:1286 msgid "Solid" msgstr "Sólido" @@ -6550,15 +6549,15 @@ msgstr "" msgid "Resulting geometry will have rounded corners." msgstr "La geometría resultante tendrá esquinas redondeadas." -#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2287 -#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444 +#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2291 +#: appTools/ToolCutOut.py:2306 appTools/ToolIsolation.py:3444 #: appTools/ToolNCC.py:4372 appTools/ToolPaint.py:3178 msgid "Generate Geometry" msgstr "Generar Geometría" #: appGUI/ObjectUI.py:478 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:782 +#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:783 msgid "Bounding Box" msgstr "Cuadro delimitador" @@ -6923,7 +6922,7 @@ msgstr "" msgid "Add from DB" msgstr "Agregar desde DB" -#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2071 +#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2075 #: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3122 #: appTools/ToolNCC.py:3996 appTools/ToolPaint.py:2898 msgid "Search and Add" @@ -6937,7 +6936,7 @@ msgstr "" "Agregar una nueva herramienta a la tabla de herramientas\n" "con el diámetro especificado anteriormente." -#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2083 +#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2087 #: appTools/ToolIsolation.py:65 appTools/ToolIsolation.py:3133 #: appTools/ToolNCC.py:4007 appTools/ToolPaint.py:2909 #, fuzzy @@ -6945,7 +6944,7 @@ msgstr "" msgid "Pick from DB" msgstr "Agregar desde DB" -#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2086 +#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2090 #: appTools/ToolIsolation.py:3136 appTools/ToolNCC.py:4010 #: appTools/ToolPaint.py:2912 #, fuzzy @@ -7043,7 +7042,7 @@ msgstr "" #: appGUI/ObjectUI.py:1216 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2107 +#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2111 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -7055,7 +7054,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 -#: appTools/ToolCutOut.py:2125 appTools/ToolDrilling.py:2164 +#: appTools/ToolCutOut.py:2129 appTools/ToolDrilling.py:2164 #: appTools/ToolMilling.py:1814 msgid "Multi-Depth" msgstr "Profund. Múlti" @@ -7764,12 +7763,12 @@ msgstr "" #: appGUI/ObjectUI.py:2177 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: appTools/ToolCutOut.py:2324 appTools/ToolFiducials.py:801 +#: appTools/ToolCutOut.py:2328 appTools/ToolFiducials.py:803 msgid "Manual" msgstr "Manual" #: appGUI/ObjectUI.py:2178 -#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:9736 +#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:7312 #, fuzzy #| msgid "Grids" msgid "Grid" @@ -8116,7 +8115,7 @@ msgstr "Alineación" msgid "Align Left" msgstr "Alinear a la izquierda" -#: appGUI/ObjectUI.py:2860 app_Main.py:4999 +#: appGUI/ObjectUI.py:2860 app_Main.py:4922 msgid "Center" msgstr "Centrar" @@ -8207,7 +8206,7 @@ msgid "Preferences default values are restored." msgstr "Se restauran los valores predeterminados de las preferencias." #: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 -#: app_Main.py:2696 +#: app_Main.py:9396 msgid "Failed to write defaults to file." msgstr "Error al escribir los valores predeterminados en el archivo." @@ -8257,10 +8256,10 @@ msgstr "CNCJob Adv. Opciones" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1188 -#: appTools/ToolCorners.py:377 appTools/ToolEtchCompensation.py:356 -#: appTools/ToolFiducials.py:763 appTools/ToolInvertGerber.py:228 -#: appTools/ToolQRCode.py:695 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1184 +#: appTools/ToolCorners.py:378 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolFiducials.py:765 appTools/ToolInvertGerber.py:228 +#: appTools/ToolQRCode.py:696 msgid "Parameters" msgstr "Parámetros" @@ -8383,7 +8382,7 @@ msgid "G-code Decimals" msgstr "Decimales del código G" #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:682 +#: appTools/ToolFiducials.py:684 msgid "Coordinates" msgstr "Coordenadas" @@ -9151,7 +9150,7 @@ msgstr "Configuración de Aplicación" msgid "Grid Settings" msgstr "Configuración de cuadrícula" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:9744 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:7320 msgid "X value" msgstr "Valor X" @@ -9159,7 +9158,7 @@ msgstr "Valor X" 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 app_Main.py:9747 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:7323 msgid "Y value" msgstr "Valor Y" @@ -9206,14 +9205,14 @@ msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: appTools/ToolFilm.py:1274 app_Main.py:9764 +#: appTools/ToolFilm.py:1274 app_Main.py:7340 msgid "Portrait" msgstr "Retrato" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: appTools/ToolFilm.py:1275 app_Main.py:9766 +#: appTools/ToolFilm.py:1275 app_Main.py:7342 msgid "Landscape" msgstr "Paisaje" @@ -9233,7 +9232,7 @@ msgstr "" "e incluye las pestañas Proyecto, Seleccionado y Herramienta." #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -#: appTools/ToolDblSided.py:666 appTools/ToolDblSided.py:838 app_Main.py:9752 +#: appTools/ToolDblSided.py:668 appTools/ToolDblSided.py:840 app_Main.py:7328 msgid "Axis" msgstr "Eje" @@ -9253,7 +9252,7 @@ msgstr "" "Esto establece el tamaño de fuente para la aplicación Textbox GUI\n" "elementos que se usan en la aplicación." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:9769 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:7345 msgid "HUD" msgstr "HUD" @@ -10336,8 +10335,8 @@ msgid "\"Follow\"" msgstr "\"Seguir\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:579 -#: appTools/ToolCopperThieving.py:776 appTools/ToolCopperThieving.py:788 +#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:578 +#: appTools/ToolCopperThieving.py:775 appTools/ToolCopperThieving.py:787 #: appTools/ToolIsolation.py:1353 appTools/ToolNCC.py:1793 #: appTools/ToolNCC.py:1820 appTools/ToolNCC.py:1928 appTools/ToolNCC.py:1941 #: appTools/ToolNCC.py:2845 appTools/ToolNCC.py:2950 appTools/ToolNCC.py:2965 @@ -10366,7 +10365,7 @@ msgstr "" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102 +#: appTools/ToolFiducials.py:817 appTools/ToolFilm.py:1102 #: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -10654,7 +10653,7 @@ 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:1195 appTools/ToolCopperThieving.py:1530 +#: appTools/ToolCopperThieving.py:1191 appTools/ToolCopperThieving.py:1526 msgid "Clearance" msgstr "Despeje" @@ -10670,7 +10669,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1224 appTools/ToolNCC.py:1351 +#: appTools/ToolCopperThieving.py:1220 appTools/ToolNCC.py:1351 #: appTools/ToolNCC.py:1667 appTools/ToolNCC.py:1731 appTools/ToolNCC.py:2709 #: appTools/ToolNCC.py:2718 appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4436 #: defaults.py:478 tclCommands/TclCommandCopperClear.py:190 @@ -10681,7 +10680,7 @@ msgstr "Sí mismo" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1225 appTools/ToolIsolation.py:819 +#: appTools/ToolCopperThieving.py:1221 appTools/ToolIsolation.py:819 #: appTools/ToolIsolation.py:1435 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1365 appTools/ToolNCC.py:1683 appTools/ToolNCC.py:1738 #: appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4446 appTools/ToolPaint.py:1061 @@ -10693,7 +10692,7 @@ msgstr "Selección de área" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolDblSided.py:757 +#: appTools/ToolCopperThieving.py:1222 appTools/ToolDblSided.py:759 #: appTools/ToolIsolation.py:1475 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1384 appTools/ToolNCC.py:1689 appTools/ToolNCC.py:1746 #: appTools/ToolNCC.py:2124 appTools/ToolNCC.py:2358 appTools/ToolNCC.py:2754 @@ -10704,7 +10703,7 @@ msgid "Reference Object" msgstr "Objeto de referencia" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1224 msgid "Reference:" msgstr "Referencia:" @@ -10728,24 +10727,24 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1270 appTools/ToolExtractDrills.py:494 -#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:770 +#: appTools/ToolCopperThieving.py:1266 appTools/ToolExtractDrills.py:495 +#: appTools/ToolExtractDrills.py:633 appTools/ToolPunchGerber.py:770 #: appTools/ToolPunchGerber.py:925 msgid "Rectangular" msgstr "Rectangular" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1271 +#: appTools/ToolCopperThieving.py:1267 msgid "Minimal" msgstr "Mínimo" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1273 appTools/ToolFilm.py:954 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolFilm.py:954 msgid "Box Type:" msgstr "Tipo de cercado:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1275 +#: appTools/ToolCopperThieving.py:1271 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10754,27 +10753,27 @@ msgstr "" "- 'Mínimo': el cuadro delimitador tendrá forma de casco convexo." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1291 +#: appTools/ToolCopperThieving.py:1287 msgid "Dots Grid" msgstr "Cuadrícula de puntos" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1292 +#: appTools/ToolCopperThieving.py:1288 msgid "Squares Grid" msgstr "Cuadrícula de cuadrados" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1293 +#: appTools/ToolCopperThieving.py:1289 msgid "Lines Grid" msgstr "Cuadrícula de líneas" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1295 +#: appTools/ToolCopperThieving.py:1291 msgid "Fill Type:" msgstr "Tipo de relleno:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1297 +#: appTools/ToolCopperThieving.py:1293 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10789,57 +10788,57 @@ msgstr "" "- '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:1316 +#: appTools/ToolCopperThieving.py:1312 msgid "Dots Grid Parameters" msgstr "Parámetros de cuadrícula de puntos" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1322 +#: appTools/ToolCopperThieving.py:1318 msgid "Dot diameter in Dots Grid." msgstr "Diámetro de punto en cuadrícula de puntos." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1335 +#: appTools/ToolCopperThieving.py:1331 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:1356 +#: appTools/ToolCopperThieving.py:1352 msgid "Squares Grid Parameters" msgstr "Parámetros de la cuadrícula de cuadrados" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1362 +#: appTools/ToolCopperThieving.py:1358 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:1375 +#: appTools/ToolCopperThieving.py:1371 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:1396 +#: appTools/ToolCopperThieving.py:1392 msgid "Lines Grid Parameters" msgstr "Parámetros de cuadrícula de líneas" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1402 +#: appTools/ToolCopperThieving.py:1398 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:1415 +#: appTools/ToolCopperThieving.py:1411 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:1453 +#: appTools/ToolCopperThieving.py:1449 msgid "Robber Bar Parameters" msgstr "Parámetros de la Robber Bar" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1455 +#: appTools/ToolCopperThieving.py:1451 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10848,34 +10847,34 @@ msgstr "" "Robber Bar = borde de cobre para ayudar en el enchapado de agujeros." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1463 +#: appTools/ToolCopperThieving.py:1459 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:1474 appTools/ToolCorners.py:384 +#: appTools/ToolCopperThieving.py:1470 appTools/ToolCorners.py:385 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Espesor" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1476 +#: appTools/ToolCopperThieving.py:1472 msgid "The robber bar thickness." msgstr "El grosor de la Robber Bar." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1507 +#: appTools/ToolCopperThieving.py:1503 msgid "Pattern Plating Mask" msgstr "Máscara de baño de patrones" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1509 +#: appTools/ToolCopperThieving.py:1505 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:1532 +#: appTools/ToolCopperThieving.py:1528 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10892,8 +10891,8 @@ msgstr "Opc. de Herram. de Calibración" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1190 appTools/ToolCorners.py:379 -#: appTools/ToolFiducials.py:765 +#: appTools/ToolCopperThieving.py:1186 appTools/ToolCorners.py:380 +#: appTools/ToolFiducials.py:767 msgid "Parameters used for this tool." msgstr "Parámetros utilizados para esta herramienta." @@ -10984,12 +10983,12 @@ msgstr "" "- abajo a la derecha -> el usuario alineará la PCB horizontalmente" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: appTools/ToolCalibration.py:854 app_Main.py:4996 +#: appTools/ToolCalibration.py:854 app_Main.py:4919 msgid "Top-Left" msgstr "Arriba a la izquierda" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: appTools/ToolCalibration.py:855 app_Main.py:4997 +#: appTools/ToolCalibration.py:855 app_Main.py:4920 msgid "Bottom-Right" msgstr "Abajo a la derecha" @@ -10999,13 +10998,13 @@ msgstr "Opciones de Extracción de Taladros" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:732 +#: appTools/ToolExtractDrills.py:461 appTools/ToolPunchGerber.py:732 msgid "Processed Pads Type" msgstr "Tipo de almohadillas procesadas" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:734 +#: appTools/ToolExtractDrills.py:463 appTools/ToolPunchGerber.py:734 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -11017,7 +11016,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:748 +#: appTools/ToolExtractDrills.py:473 appTools/ToolPunchGerber.py:748 msgid "Process Circular Pads." msgstr "Proceso de Almohadillas Circulares." @@ -11025,26 +11024,26 @@ msgstr "Proceso de Almohadillas Circulares." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606 +#: appTools/ToolExtractDrills.py:479 appTools/ToolExtractDrills.py:607 #: appTools/ToolPunchGerber.py:754 appTools/ToolPunchGerber.py:899 msgid "Oblong" msgstr "Oblongo" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:756 +#: appTools/ToolExtractDrills.py:481 appTools/ToolPunchGerber.py:756 msgid "Process Oblong Pads." msgstr "Procesar almohadillas oblongas." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:764 +#: appTools/ToolExtractDrills.py:489 appTools/ToolPunchGerber.py:764 msgid "Process Square Pads." msgstr "Procesar almohadillas cuadradas." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:772 +#: appTools/ToolExtractDrills.py:497 appTools/ToolPunchGerber.py:772 msgid "Process Rectangular Pads." msgstr "Proceso Almohadillas Rectangulares." @@ -11052,15 +11051,15 @@ msgstr "Proceso Almohadillas Rectangulares." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502 -#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:171 +#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:503 +#: appTools/ToolExtractDrills.py:646 appTools/ToolProperties.py:171 #: appTools/ToolPunchGerber.py:778 appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "Otros" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:780 +#: appTools/ToolExtractDrills.py:505 appTools/ToolPunchGerber.py:780 msgid "Process pads not in the categories above." msgstr "Procese los pads no en las categorías anteriores." @@ -11068,7 +11067,7 @@ msgstr "Procese los pads no en las categorías anteriores." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548 +#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:549 #: appTools/ToolPunchGerber.py:807 appTools/ToolPunchGerber.py:841 msgid "Fixed Diameter" msgstr "Diámetro fijo" @@ -11077,19 +11076,19 @@ msgstr "Diámetro fijo" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584 +#: appTools/ToolExtractDrills.py:533 appTools/ToolExtractDrills.py:585 #: appTools/ToolPunchGerber.py:808 appTools/ToolPunchGerber.py:871 msgid "Fixed Annular Ring" msgstr "Anillo anular fijo" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:809 +#: appTools/ToolExtractDrills.py:534 appTools/ToolPunchGerber.py:809 msgid "Proportional" msgstr "Proporcional" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: appTools/ToolExtractDrills.py:522 +#: appTools/ToolExtractDrills.py:523 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -11105,13 +11104,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:851 +#: appTools/ToolExtractDrills.py:559 appTools/ToolPunchGerber.py:851 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:586 appTools/ToolPunchGerber.py:873 +#: appTools/ToolExtractDrills.py:587 appTools/ToolPunchGerber.py:873 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -11123,37 +11122,37 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:888 +#: appTools/ToolExtractDrills.py:596 appTools/ToolPunchGerber.py:888 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:608 appTools/ToolPunchGerber.py:901 +#: appTools/ToolExtractDrills.py:609 appTools/ToolPunchGerber.py:901 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:621 appTools/ToolPunchGerber.py:914 +#: appTools/ToolExtractDrills.py:622 appTools/ToolPunchGerber.py:914 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:634 appTools/ToolPunchGerber.py:927 +#: appTools/ToolExtractDrills.py:635 appTools/ToolPunchGerber.py:927 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:647 appTools/ToolPunchGerber.py:940 +#: appTools/ToolExtractDrills.py:648 appTools/ToolPunchGerber.py:940 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:668 appTools/ToolPunchGerber.py:956 +#: appTools/ToolExtractDrills.py:669 appTools/ToolPunchGerber.py:956 msgid "Proportional Diameter" msgstr "Diá. proporcional" @@ -11164,7 +11163,7 @@ msgstr "Factor" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:967 +#: appTools/ToolExtractDrills.py:680 appTools/ToolPunchGerber.py:967 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -11177,7 +11176,7 @@ msgid "Fiducials Tool Options" msgstr "Opc. de Herram. Fiduciales" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: appTools/ToolFiducials.py:772 +#: appTools/ToolFiducials.py:774 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -11188,12 +11187,12 @@ msgstr "" "La apertura de la máscara de soldadura es el doble que eso." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: appTools/ToolFiducials.py:800 +#: appTools/ToolFiducials.py:802 msgid "Auto" msgstr "Auto" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:803 +#: appTools/ToolFiducials.py:805 msgid "Mode:" msgstr "Modo:" @@ -11208,22 +11207,22 @@ msgstr "" "- 'Manual' - colocación manual de fiduciales." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: appTools/ToolFiducials.py:813 +#: appTools/ToolFiducials.py:815 msgid "Up" msgstr "Arriba" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: appTools/ToolFiducials.py:814 +#: appTools/ToolFiducials.py:816 msgid "Down" msgstr "Abajo" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: appTools/ToolFiducials.py:817 +#: appTools/ToolFiducials.py:819 msgid "Second fiducial" msgstr "Segundo fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: appTools/ToolFiducials.py:819 +#: appTools/ToolFiducials.py:821 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -11239,22 +11238,22 @@ msgstr "" "arriba a la derecha." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: appTools/ToolFiducials.py:835 +#: appTools/ToolFiducials.py:837 msgid "Cross" msgstr "Cruce" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: appTools/ToolFiducials.py:836 +#: appTools/ToolFiducials.py:838 msgid "Chess" msgstr "Ajedrez" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: appTools/ToolFiducials.py:838 +#: appTools/ToolFiducials.py:840 msgid "Fiducial Type" msgstr "Tipo fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: appTools/ToolFiducials.py:840 +#: appTools/ToolFiducials.py:842 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -11267,7 +11266,7 @@ msgstr "" "- 'Ajedrez' - patrón de ajedrez fiducial." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: appTools/ToolFiducials.py:849 +#: appTools/ToolFiducials.py:851 msgid "Line thickness" msgstr "Grosor de la línea" @@ -11379,12 +11378,12 @@ msgstr "" "en un archivo Gerber seleccionado, o puede exportarse como un archivo." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: appTools/ToolQRCode.py:702 app_Main.py:9732 +#: appTools/ToolQRCode.py:703 app_Main.py:7308 msgid "Version" msgstr "Versión" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: appTools/ToolQRCode.py:704 +#: appTools/ToolQRCode.py:705 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11393,13 +11392,13 @@ msgstr "" "a 40 (177x177 elementos)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: appTools/ToolQRCode.py:715 +#: appTools/ToolQRCode.py:716 msgid "Error correction" msgstr "Corrección de error" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: appTools/ToolQRCode.py:717 appTools/ToolQRCode.py:728 +#: appTools/ToolQRCode.py:718 appTools/ToolQRCode.py:729 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -11416,12 +11415,12 @@ msgstr "" "H = máximo 30 %% de errores pueden ser corregidos." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: appTools/ToolQRCode.py:738 +#: appTools/ToolQRCode.py:739 msgid "Box Size" msgstr "Tamaño de Elementos" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: appTools/ToolQRCode.py:740 +#: appTools/ToolQRCode.py:741 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11430,12 +11429,12 @@ msgstr "" "ajustando el tamaño de cada cuadro en el código." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: appTools/ToolQRCode.py:751 +#: appTools/ToolQRCode.py:752 msgid "Border Size" msgstr "Tamaño de borde" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: appTools/ToolQRCode.py:753 +#: appTools/ToolQRCode.py:754 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." @@ -11445,27 +11444,27 @@ msgstr "" "Código QR." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: appTools/ToolQRCode.py:673 +#: appTools/ToolQRCode.py:674 msgid "QRCode Data" msgstr "Datos de QRCode" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: appTools/ToolQRCode.py:675 +#: appTools/ToolQRCode.py:676 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:679 +#: appTools/ToolQRCode.py:680 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:764 +#: appTools/ToolQRCode.py:765 msgid "Polarity" msgstr "Polaridad" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: appTools/ToolQRCode.py:766 +#: appTools/ToolQRCode.py:767 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11476,17 +11475,17 @@ msgstr "" "o de manera positiva (los cuadrados son opacos)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:770 +#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:771 msgid "Negative" msgstr "Negativa" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:771 +#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:772 msgid "Positive" msgstr "Positivo" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: appTools/ToolQRCode.py:773 +#: appTools/ToolQRCode.py:774 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -11500,7 +11499,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: appTools/ToolQRCode.py:784 appTools/ToolQRCode.py:790 +#: appTools/ToolQRCode.py:785 appTools/ToolQRCode.py:791 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -11509,24 +11508,24 @@ msgstr "" "La geometría QRCode, puede tener una forma redondeada o cuadrada." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: appTools/ToolQRCode.py:818 +#: appTools/ToolQRCode.py:819 msgid "Fill Color" msgstr "Color de relleno" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: appTools/ToolQRCode.py:820 +#: appTools/ToolQRCode.py:821 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:162 -#: appTools/ToolQRCode.py:842 +#: appTools/ToolQRCode.py:843 msgid "Back Color" msgstr "Color de fondo" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: appTools/ToolQRCode.py:844 +#: appTools/ToolQRCode.py:845 msgid "Set the QRCode background color." msgstr "Establece el color de fondo del QRCode." @@ -11752,7 +11751,7 @@ msgid "Drill dia" msgstr "Diá. del taladro" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: appTools/ToolDblSided.py:824 appTools/ToolDblSided.py:829 +#: appTools/ToolDblSided.py:826 appTools/ToolDblSided.py:831 msgid "Diameter of the drill for the alignment holes." msgstr "Diámetro del taladro para los orificios de alineación." @@ -11762,7 +11761,7 @@ msgstr "Alinear eje" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: appTools/ToolDblSided.py:667 appTools/ToolDblSided.py:840 +#: appTools/ToolDblSided.py:669 appTools/ToolDblSided.py:842 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Espejo verticalmente (X) u horizontal (Y)." @@ -11771,12 +11770,12 @@ msgid "Mirror Axis:" msgstr "Eje del espejo:" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 -#: appTools/ToolDblSided.py:693 +#: appTools/ToolDblSided.py:695 msgid "Box" msgstr "Caja" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 -#: appTools/ToolDblSided.py:694 +#: appTools/ToolDblSided.py:696 #, fuzzy #| msgid "Hole Size" msgid "Hole Snap" @@ -11936,12 +11935,12 @@ msgid "Corner Markers Options" msgstr "Opciones de Marca. de Esquina" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:386 +#: appTools/ToolCorners.py:387 msgid "The thickness of the line that makes the corner marker." msgstr "El grosor de la línea que hace el marcador de esquina." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:400 +#: appTools/ToolCorners.py:401 msgid "The length of the line that makes the corner marker." msgstr "La longitud de la línea que hace el marcador de esquina." @@ -11960,7 +11959,7 @@ msgstr "" "El tablero original." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: appTools/ToolCutOut.py:2062 +#: appTools/ToolCutOut.py:2066 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -11973,7 +11972,7 @@ msgid "Object kind" msgstr "Tipo de objeto" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: appTools/ToolCutOut.py:1995 +#: appTools/ToolCutOut.py:1999 msgid "" "Choice of what kind the object we want to cutout is.
- Single: " "contain a single PCB Gerber outline object.
- Panel: a panel PCB " @@ -11986,12 +11985,12 @@ msgstr "" "de muchos esquemas de PCB individuales." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: appTools/ToolCutOut.py:2001 +#: appTools/ToolCutOut.py:2005 msgid "Single" msgstr "Soltero" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: appTools/ToolCutOut.py:2002 +#: appTools/ToolCutOut.py:2006 msgid "Panel" msgstr "Panel" @@ -12020,12 +12019,12 @@ msgstr "" "- 8 - 2 * izquierda + 2 * derecha + 2 * arriba + 2 * abajo" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 -#: appTools/ToolCutOut.py:2333 +#: appTools/ToolCutOut.py:2337 msgid "Big cursor" msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 -#: appTools/ToolCutOut.py:2335 +#: appTools/ToolCutOut.py:2339 msgid "Use a big cursor when adding manual gaps." msgstr "" @@ -12306,18 +12305,18 @@ msgstr "" "Puede ser uno de los cuatro puntos del cuadro delimitador de geometría." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:342 appTools/ToolFiducials.py:694 +#: appTools/ToolCorners.py:343 appTools/ToolFiducials.py:696 #: appTools/ToolFilm.py:1065 msgid "Bottom Left" msgstr "Abajo a la izquierda" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:350 appTools/ToolFilm.py:1066 +#: appTools/ToolCorners.py:351 appTools/ToolFilm.py:1066 msgid "Top Left" msgstr "Arriba a la izquierda" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:346 appTools/ToolFilm.py:1067 +#: appTools/ToolCorners.py:347 appTools/ToolFilm.py:1067 msgid "Bottom Right" msgstr "Abajo a la derecha" @@ -12599,9 +12598,9 @@ msgstr "Progresivo" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:453 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1044 -#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530 -#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:463 app_Main.py:4682 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCorners.py:264 appTools/ToolFiducials.py:532 +#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:464 app_Main.py:4605 msgid "Plotting" msgstr "Trazado" @@ -12798,9 +12797,9 @@ msgstr "Número de filas del panel deseado" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:891 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2009 appTools/ToolDblSided.py:525 -#: appTools/ToolDblSided.py:765 appTools/ToolFilm.py:928 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:527 +#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:928 #: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 #: appTools/ToolIsolation.py:3339 appTools/ToolIsolation.py:3391 @@ -13430,7 +13429,7 @@ msgid "Export cancelled ..." msgstr "Exportación cancelada ..." #: appObjects/FlatCAMCNCJob.py:1678 appObjects/FlatCAMCNCJob.py:1965 -#: appObjects/FlatCAMScript.py:134 app_Main.py:7830 +#: appObjects/FlatCAMScript.py:134 app_Main.py:6925 msgid "Loading..." msgstr "Cargando..." @@ -13578,7 +13577,7 @@ msgstr "Agregar desde la DB de herramientas" #: appTools/ToolDrilling.py:1021 appTools/ToolIsolation.py:639 #: appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744 #: appTools/ToolMilling.py:779 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 -#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2194 +#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2203 msgid "No Tool Selected" msgstr "Ninguna herramienta seleccionada" @@ -13888,7 +13887,7 @@ msgstr "Objeto renombrado de {old} a {new}" #: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939 #: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951 #: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 -#: app_Main.py:6707 app_Main.py:6713 app_Main.py:6719 app_Main.py:6725 +#: app_Main.py:6630 app_Main.py:6636 app_Main.py:6642 app_Main.py:6648 msgid "selected" msgstr "seleccionado" @@ -14058,7 +14057,7 @@ msgid "Click on the START point." msgstr "Haga clic en el punto de INICIO." #: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276 -#: appTools/ToolDblSided.py:285 +#: appTools/ToolDblSided.py:287 msgid "Cancelled by user request." msgstr "Cancelado por solicitud del usuario." @@ -14072,7 +14071,7 @@ msgid "Or right click to cancel." msgstr "O haga clic derecho para cancelar." #: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267 -#: appTools/ToolFiducials.py:718 +#: appTools/ToolFiducials.py:720 msgid "Second Point" msgstr "Segundo punto" @@ -14159,32 +14158,32 @@ msgstr "" "Si se utilizan estos puntos, se supone traslación y rotación." #: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1583 -#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394 -#: appTools/ToolDblSided.py:938 appTools/ToolDrilling.py:2649 -#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:702 -#: appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCorners.py:445 appTools/ToolCutOut.py:2398 +#: appTools/ToolDblSided.py:940 appTools/ToolDrilling.py:2649 +#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:703 +#: appTools/ToolFiducials.py:934 appTools/ToolFilm.py:1383 #: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477 #: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4388 #: appTools/ToolOptimal.py:593 appTools/ToolPaint.py:3194 #: appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:996 -#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1620 +#: appTools/ToolQRCode.py:905 appTools/ToolRulesCheck.py:1620 #: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:754 #: appTools/ToolTransform.py:920 msgid "Reset Tool" msgstr "Restablecer la Herramienta" #: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1586 -#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397 -#: appTools/ToolDblSided.py:941 appTools/ToolDrilling.py:2652 -#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:705 -#: appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1582 +#: appTools/ToolCorners.py:448 appTools/ToolCutOut.py:2401 +#: appTools/ToolDblSided.py:943 appTools/ToolDrilling.py:2652 +#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:706 +#: appTools/ToolFiducials.py:937 appTools/ToolFilm.py:1386 #: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480 #: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4391 #: appTools/ToolOptimal.py:596 appTools/ToolPaint.py:3197 #: appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:999 -#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1623 +#: appTools/ToolQRCode.py:908 appTools/ToolRulesCheck.py:1623 #: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:757 #: appTools/ToolTransform.py:923 msgid "Will reset the tool parameters." @@ -14599,30 +14598,30 @@ msgstr "Relleno de cuadrícula de puntos seleccionado." msgid "Squares grid fill selected." msgstr "Rellenar cuadrícula de cuadrados seleccionados." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308 -#: appTools/ToolCopperThieving.py:916 appTools/ToolCorners.py:120 -#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141 +#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:307 +#: appTools/ToolCopperThieving.py:914 appTools/ToolCorners.py:120 +#: appTools/ToolDblSided.py:306 appTools/ToolExtractDrills.py:141 #: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464 #: appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:188 #: appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "No hay ningún objeto Gerber cargado ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:844 +#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 msgid "Append geometry" msgstr "Añadir geometría" -#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:877 -#: appTools/ToolCopperThieving.py:1022 +#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:876 +#: appTools/ToolCopperThieving.py:1020 msgid "Append source file" msgstr "Agregar archivo fuente" -#: appTools/ToolCopperThieving.py:291 appTools/ToolCopperThieving.py:885 +#: appTools/ToolCopperThieving.py:290 appTools/ToolCopperThieving.py:883 msgid "Copper Thieving Tool done." msgstr "Herramienta Copper Thieving hecha." -#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351 -#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917 +#: appTools/ToolCopperThieving.py:317 appTools/ToolCopperThieving.py:350 +#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:918 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 #: appTools/ToolIsolation.py:908 appTools/ToolIsolation.py:1345 @@ -14637,79 +14636,79 @@ msgstr "Herramienta Copper Thieving hecha." msgid "Could not retrieve object" msgstr "No se pudo recuperar el objeto" -#: appTools/ToolCopperThieving.py:379 +#: appTools/ToolCopperThieving.py:378 msgid "Click the end point of the filling area." msgstr "Haga clic en el punto final del área de relleno." -#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511 -#: appTools/ToolCopperThieving.py:570 +#: appTools/ToolCopperThieving.py:506 appTools/ToolCopperThieving.py:510 +#: appTools/ToolCopperThieving.py:569 msgid "Thieving" msgstr "Ladrón" -#: appTools/ToolCopperThieving.py:518 +#: appTools/ToolCopperThieving.py:517 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Herramienta de Copper Thieving iniciada. Parámetros de lectura." -#: appTools/ToolCopperThieving.py:543 +#: appTools/ToolCopperThieving.py:542 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Herramienta Copper Thieving. Preparación de polígonos de aislamiento." -#: appTools/ToolCopperThieving.py:586 +#: appTools/ToolCopperThieving.py:585 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:597 appTools/ToolFilm.py:631 +#: appTools/ToolCopperThieving.py:596 appTools/ToolFilm.py:631 #: appTools/ToolFilm.py:879 appTools/ToolIsolation.py:916 #: appTools/ToolNCC.py:853 appTools/ToolOptimal.py:145 #: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:627 msgid "Working..." msgstr "Trabajando..." -#: appTools/ToolCopperThieving.py:626 +#: appTools/ToolCopperThieving.py:625 msgid "Geometry not supported for bounding box" msgstr "Geometría no admitida para cuadro delimitador" -#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1681 +#: appTools/ToolCopperThieving.py:631 appTools/ToolNCC.py:1681 #: appTools/ToolNCC.py:1736 appTools/ToolNCC.py:2734 appTools/ToolPaint.py:2457 msgid "No object available." msgstr "No hay objeto disponible." -#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1706 +#: appTools/ToolCopperThieving.py:668 appTools/ToolNCC.py:1706 #: appTools/ToolNCC.py:1759 appTools/ToolNCC.py:2776 msgid "The reference object type is not supported." msgstr "El tipo de objeto de referencia no es compatible." -#: appTools/ToolCopperThieving.py:674 +#: appTools/ToolCopperThieving.py:673 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:690 +#: appTools/ToolCopperThieving.py:689 msgid "Create geometry" msgstr "Crear geometría" -#: appTools/ToolCopperThieving.py:896 appTools/ToolCopperThieving.py:900 +#: appTools/ToolCopperThieving.py:894 appTools/ToolCopperThieving.py:898 msgid "P-Plating Mask" msgstr "Mascarilla P" -#: appTools/ToolCopperThieving.py:922 +#: appTools/ToolCopperThieving.py:920 msgid "Append PP-M geometry" msgstr "Añadir geometría de máscara de recubrimiento P" -#: appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCopperThieving.py:1036 msgid "Generating Pattern Plating Mask done." msgstr "Generando patrón de recubrimiento de máscara hecho." -#: appTools/ToolCopperThieving.py:1112 +#: appTools/ToolCopperThieving.py:1108 msgid "Copper Thieving Tool exit." msgstr "Salida de herramienta de Copper Thieving." -#: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 +#: appTools/ToolCopperThieving.py:1167 appTools/ToolFiducials.py:877 msgid "Gerber Object to which will be added a copper thieving." msgstr "Gerber Objeto al que se agregará un Copper Thieving." -#: appTools/ToolCopperThieving.py:1197 +#: appTools/ToolCopperThieving.py:1193 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14719,7 +14718,7 @@ msgstr "" "(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:1230 +#: appTools/ToolCopperThieving.py:1226 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 " @@ -14734,12 +14733,12 @@ msgstr "" "- 'Objeto de referencia': 'Copper Thieving' dentro del área especificada por " "otro objeto." -#: appTools/ToolCopperThieving.py:1237 appTools/ToolIsolation.py:3385 +#: appTools/ToolCopperThieving.py:1233 appTools/ToolIsolation.py:3385 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3137 msgid "Ref. Type" msgstr "Tipo de Ref" -#: appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1235 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14748,22 +14747,22 @@ msgstr "" "Thieving'.\n" "Puede ser Gerber, Excellon o Geometry." -#: appTools/ToolCopperThieving.py:1248 appTools/ToolIsolation.py:3396 +#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3396 #: appTools/ToolNCC.py:4327 appTools/ToolPaint.py:3147 msgid "Ref. Object" msgstr "Objeto de Ref" -#: appTools/ToolCopperThieving.py:1250 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1246 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4329 appTools/ToolPaint.py:3149 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:1426 +#: appTools/ToolCopperThieving.py:1422 msgid "Insert Copper thieving" msgstr "Insertar Copper thieving" -#: appTools/ToolCopperThieving.py:1428 +#: appTools/ToolCopperThieving.py:1424 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14771,11 +14770,11 @@ msgstr "" "Agregará un polígono (puede dividirse en varias partes)\n" "eso rodeará las huellas reales de Gerber a cierta distancia." -#: appTools/ToolCopperThieving.py:1487 +#: appTools/ToolCopperThieving.py:1483 msgid "Insert Robber Bar" msgstr "Insertar Robber Bar" -#: appTools/ToolCopperThieving.py:1489 +#: appTools/ToolCopperThieving.py:1485 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14787,11 +14786,11 @@ msgstr "" "a cierta distancia.\n" "Se requiere cuando se hace un patrón de agujeros." -#: appTools/ToolCopperThieving.py:1513 +#: appTools/ToolCopperThieving.py:1509 msgid "Select Soldermask object" msgstr "Seleccionar objeto Soldermask" -#: appTools/ToolCopperThieving.py:1515 +#: appTools/ToolCopperThieving.py:1511 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14801,11 +14800,11 @@ msgstr "" "Se utilizará como base para\n" "El patrón de la máscara de recubrimiento." -#: appTools/ToolCopperThieving.py:1544 +#: appTools/ToolCopperThieving.py:1540 msgid "Plated area" msgstr "Área chapada" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1542 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14824,19 +14823,19 @@ msgstr "" "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:1557 +#: appTools/ToolCopperThieving.py:1553 msgid "mm" msgstr "mm" -#: appTools/ToolCopperThieving.py:1559 +#: appTools/ToolCopperThieving.py:1555 msgid "in" msgstr "in" -#: appTools/ToolCopperThieving.py:1566 +#: appTools/ToolCopperThieving.py:1562 msgid "Generate pattern plating mask" msgstr "Generar máscara de recubrimiento de patrón" -#: appTools/ToolCopperThieving.py:1568 +#: appTools/ToolCopperThieving.py:1564 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14850,39 +14849,39 @@ msgstr "" msgid "Corners Tool" msgstr "Herramienta de Esquinas" -#: appTools/ToolCorners.py:157 +#: appTools/ToolCorners.py:158 msgid "Please select at least a location" msgstr "Seleccione al menos una ubicación" -#: appTools/ToolCorners.py:292 +#: appTools/ToolCorners.py:293 msgid "Corners Tool exit." msgstr "Salida de herramienta de Esquinas." -#: appTools/ToolCorners.py:319 +#: appTools/ToolCorners.py:320 msgid "The Gerber object to which will be added corner markers." msgstr "El objeto Gerber al que se agregarán marcadores de esquina." -#: appTools/ToolCorners.py:335 +#: appTools/ToolCorners.py:336 msgid "Locations" msgstr "Localizaciones" -#: appTools/ToolCorners.py:337 +#: appTools/ToolCorners.py:338 msgid "Locations where to place corner markers." msgstr "Lugares donde colocar marcadores de esquina." -#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706 +#: appTools/ToolCorners.py:355 appTools/ToolFiducials.py:708 msgid "Top Right" msgstr "Arriba a la derecha" -#: appTools/ToolCorners.py:363 +#: appTools/ToolCorners.py:364 msgid "Toggle ALL" msgstr "Alternar Todo" -#: appTools/ToolCorners.py:429 +#: appTools/ToolCorners.py:430 msgid "Add Marker" msgstr "Agregar Marcador" -#: appTools/ToolCorners.py:431 +#: appTools/ToolCorners.py:432 msgid "Will add corner markers to the selected Gerber file." msgstr "Agregará marcadores de esquina al archivo Gerber seleccionado." @@ -14891,7 +14890,7 @@ msgstr "Agregará marcadores de esquina al archivo Gerber seleccionado." #: appTools/ToolNCC.py:463 appTools/ToolNCC.py:992 appTools/ToolNCC.py:1130 #: appTools/ToolPaint.py:395 appTools/ToolPaint.py:686 #: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131 -#: appTools/ToolSolderPaste.py:464 app_Main.py:4496 +#: appTools/ToolSolderPaste.py:464 app_Main.py:4419 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 " @@ -14944,17 +14943,17 @@ msgstr "" "No hay ningún objeto seleccionado para Recorte.\n" "Seleccione uno e intente nuevamente." -#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:926 -#: appTools/ToolCutOut.py:1300 appTools/ToolCutOut.py:1431 +#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:927 +#: appTools/ToolCutOut.py:1303 appTools/ToolCutOut.py:1434 #: 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:568 appTools/ToolCutOut.py:940 +#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:941 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:573 appTools/ToolCutOut.py:944 +#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:945 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " @@ -14962,18 +14961,18 @@ 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:891 appTools/ToolCutOut.py:1260 -#: appTools/ToolCutOut.py:1615 +#: appTools/ToolCutOut.py:892 appTools/ToolCutOut.py:1263 +#: appTools/ToolCutOut.py:1619 #, fuzzy #| msgid "Open GCode file failed." msgid "Mouse bites failed." msgstr "Error al abrir el archivo GCode." -#: appTools/ToolCutOut.py:899 +#: appTools/ToolCutOut.py:900 msgid "Any form CutOut operation finished." msgstr "Cualquier forma de operación de corte finalizada." -#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586 +#: appTools/ToolCutOut.py:922 appTools/ToolDrilling.py:1586 #: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349 #: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326 @@ -14983,38 +14982,38 @@ msgstr "Cualquier forma de operación de corte finalizada." msgid "Object not found" msgstr "Objeto no encontrado" -#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187 +#: appTools/ToolCutOut.py:1115 appTools/ToolCutOut.py:1188 msgid "Rectangular cutout with negative margin is not possible." msgstr "El corte rectangular con margen negativo no es posible." -#: appTools/ToolCutOut.py:1268 +#: appTools/ToolCutOut.py:1271 #, fuzzy #| msgid "Any form CutOut operation finished." msgid "Rectangular CutOut operation finished." msgstr "Cualquier forma de operación de corte finalizada." -#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316 +#: appTools/ToolCutOut.py:1287 appTools/ToolCutOut.py:1319 msgid "Could not retrieve Geometry object" msgstr "No se pudo recuperar el objeto Geometry" -#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344 +#: appTools/ToolCutOut.py:1292 appTools/ToolCutOut.py:1347 msgid "Geometry object for manual cutout not found" msgstr "Objeto de geometría para corte manual no encontrado" -#: appTools/ToolCutOut.py:1292 +#: appTools/ToolCutOut.py:1295 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:1380 +#: appTools/ToolCutOut.py:1383 #, fuzzy #| msgid "Generate the Geometry object." msgid "No tool in the Geometry object." msgstr "Genera el objeto Geometry." -#: appTools/ToolCutOut.py:1401 +#: appTools/ToolCutOut.py:1404 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -15024,11 +15023,11 @@ msgstr "" "Zona agregada. Haga clic para comenzar a agregar la siguiente zona o haga " "clic con el botón derecho para finalizar." -#: appTools/ToolCutOut.py:1413 +#: appTools/ToolCutOut.py:1416 msgid "Could not retrieve Gerber object" msgstr "No se pudo recuperar el objeto Gerber" -#: appTools/ToolCutOut.py:1418 +#: appTools/ToolCutOut.py:1421 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." @@ -15036,7 +15035,7 @@ msgstr "" "No hay ningún objeto Gerber seleccionado para Recorte.\n" "Seleccione uno e intente nuevamente." -#: appTools/ToolCutOut.py:1424 +#: appTools/ToolCutOut.py:1427 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -15044,36 +15043,36 @@ msgstr "" "El objeto seleccionado debe ser del tipo Gerber.\n" "Seleccione un archivo Gerber e intente nuevamente." -#: appTools/ToolCutOut.py:1459 +#: appTools/ToolCutOut.py:1462 msgid "Geometry not supported for cutout" msgstr "Geometría no admitida para recorte" -#: appTools/ToolCutOut.py:1531 +#: appTools/ToolCutOut.py:1534 msgid "Making manual bridge gap..." msgstr "Hacer un puente manual ..." -#: appTools/ToolCutOut.py:1619 +#: appTools/ToolCutOut.py:1623 msgid "Finished manual adding of gaps." msgstr "" -#: appTools/ToolCutOut.py:1961 +#: appTools/ToolCutOut.py:1965 msgid "Cutout PCB" msgstr "PCB de corte" -#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513 +#: appTools/ToolCutOut.py:1991 appTools/ToolDblSided.py:515 #: appTools/ToolPanelize.py:652 msgid "Source Object" msgstr "Objeto fuente" -#: appTools/ToolCutOut.py:1988 +#: appTools/ToolCutOut.py:1992 msgid "Object to be cutout" msgstr "Objeto a recortar" -#: appTools/ToolCutOut.py:1993 +#: appTools/ToolCutOut.py:1997 msgid "Kind" msgstr "Tipo" -#: appTools/ToolCutOut.py:2015 +#: appTools/ToolCutOut.py:2019 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -15085,7 +15084,7 @@ msgstr "" "Lo que se seleccione aquí dictará el tipo\n" "de objetos que llenarán el cuadro combinado 'Objeto'." -#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125 +#: appTools/ToolCutOut.py:2078 appTools/ToolIsolation.py:3125 #: appTools/ToolNCC.py:3999 appTools/ToolPaint.py:2901 msgid "" "Add a new tool to the Tool Table\n" @@ -15095,27 +15094,27 @@ msgid "" "in the Tools DB then a default tool is added." msgstr "" -#: appTools/ToolCutOut.py:2100 +#: appTools/ToolCutOut.py:2104 msgid "Tool Parameters" msgstr "Parámetros de Herramienta" -#: appTools/ToolCutOut.py:2249 +#: appTools/ToolCutOut.py:2253 #, fuzzy #| msgid "Auto" msgid "Automatic" msgstr "Auto" -#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324 +#: appTools/ToolCutOut.py:2253 appTools/ToolCutOut.py:2328 #, fuzzy #| msgid "B. Manual Bridge Gaps" msgid "Bridge Gaps" msgstr "B. Brechas manuales del puente" -#: appTools/ToolCutOut.py:2251 +#: appTools/ToolCutOut.py:2255 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:2290 +#: appTools/ToolCutOut.py:2294 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -15125,7 +15124,7 @@ msgstr "" "La forma recortada puede ser de cualquier forma.\n" "Útil cuando la PCB tiene una forma no rectangular." -#: appTools/ToolCutOut.py:2305 +#: appTools/ToolCutOut.py:2309 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -15137,7 +15136,7 @@ msgstr "" "siempre una forma rectangular y será\n" "El cuadro delimitador del objeto." -#: appTools/ToolCutOut.py:2326 +#: appTools/ToolCutOut.py:2330 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -15147,11 +15146,11 @@ msgstr "" "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:2342 +#: appTools/ToolCutOut.py:2346 msgid "Generate Manual Geometry" msgstr "Generar geometría manual" -#: appTools/ToolCutOut.py:2345 +#: appTools/ToolCutOut.py:2349 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -15164,21 +15163,21 @@ msgstr "" "Seleccione el archivo fuente de Gerber en el cuadro combinado de objeto " "superior." -#: appTools/ToolCutOut.py:2365 +#: appTools/ToolCutOut.py:2369 #, fuzzy #| msgid "Subtract Geometry" msgid "Manual cutout Geometry" msgstr "Restar Geometría" -#: appTools/ToolCutOut.py:2367 +#: appTools/ToolCutOut.py:2371 msgid "Geometry object used to create the manual cutout." msgstr "Objeto de geometría utilizado para crear el recorte manual." -#: appTools/ToolCutOut.py:2374 +#: appTools/ToolCutOut.py:2378 msgid "Manual Add Bridge Gaps" msgstr "Agregar huecos de puente manuales" -#: appTools/ToolCutOut.py:2377 +#: appTools/ToolCutOut.py:2381 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -15222,33 +15221,33 @@ msgstr "" "No hay coordenadas de taladro de alineación para usar. Añádelos y vuelve a " "intentarlo." -#: appTools/ToolDblSided.py:213 +#: appTools/ToolDblSided.py:215 msgid "Excellon object with alignment drills created..." msgstr "Objeto Excellon con taladros de alineación creados ..." -#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209 +#: appTools/ToolDblSided.py:226 appTools/ToolPunchGerber.py:209 msgid "There is no Excellon object loaded ..." msgstr "No hay ningún objeto Excellon cargado ..." -#: appTools/ToolDblSided.py:236 +#: appTools/ToolDblSided.py:238 msgid "Click on canvas within the desired Excellon drill hole" msgstr "" -#: appTools/ToolDblSided.py:280 +#: appTools/ToolDblSided.py:282 #, fuzzy #| msgid "Mirror Reference point" msgid "Mirror reference point set." msgstr "Punto de Ref del Espejo" -#: appTools/ToolDblSided.py:308 +#: appTools/ToolDblSided.py:310 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "Solo los objetos Gerber, Excellon y Geometry se pueden reflejar." -#: appTools/ToolDblSided.py:320 +#: appTools/ToolDblSided.py:322 msgid "There is no Box object loaded ..." msgstr "No hay ningún objeto caja cargado ..." -#: appTools/ToolDblSided.py:330 +#: appTools/ToolDblSided.py:332 msgid "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." @@ -15256,31 +15255,31 @@ msgstr "" "No hay coordenadas de punto en el campo Punto. Agregue coords e intente " "nuevamente ..." -#: appTools/ToolDblSided.py:337 camlib.py:2401 +#: appTools/ToolDblSided.py:339 camlib.py:2401 msgid "Object was mirrored" msgstr "El objeto fue reflejado" -#: appTools/ToolDblSided.py:403 app_Main.py:4635 app_Main.py:4790 +#: appTools/ToolDblSided.py:405 app_Main.py:4558 app_Main.py:4713 msgid "Failed. No object(s) selected..." msgstr "Ha fallado. Ningún objeto (s) seleccionado ..." -#: appTools/ToolDblSided.py:487 +#: appTools/ToolDblSided.py:489 msgid "2-Sided PCB" msgstr "PCB a 2 caras" -#: appTools/ToolDblSided.py:514 +#: appTools/ToolDblSided.py:516 msgid "Objects to be mirrored" msgstr "Objetos a ser reflejados" -#: appTools/ToolDblSided.py:521 +#: appTools/ToolDblSided.py:523 msgid "Select the type of application object to be processed in this tool." msgstr "" -#: appTools/ToolDblSided.py:555 +#: appTools/ToolDblSided.py:557 msgid "Bounds Values" msgstr "Valores de límites" -#: appTools/ToolDblSided.py:557 +#: appTools/ToolDblSided.py:559 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -15288,39 +15287,39 @@ msgstr "" "Seleccione en lienzo los objetos\n" "para el cual calcular valores de límites." -#: appTools/ToolDblSided.py:567 +#: appTools/ToolDblSided.py:569 msgid "X min" msgstr "X min" -#: appTools/ToolDblSided.py:569 appTools/ToolDblSided.py:583 +#: appTools/ToolDblSided.py:571 appTools/ToolDblSided.py:585 msgid "Minimum location." msgstr "Ubicacion minima." -#: appTools/ToolDblSided.py:581 +#: appTools/ToolDblSided.py:583 msgid "Y min" msgstr "Y min" -#: appTools/ToolDblSided.py:595 +#: appTools/ToolDblSided.py:597 msgid "X max" msgstr "X max" -#: appTools/ToolDblSided.py:597 appTools/ToolDblSided.py:611 +#: appTools/ToolDblSided.py:599 appTools/ToolDblSided.py:613 msgid "Maximum location." msgstr "Máxima ubicación." -#: appTools/ToolDblSided.py:609 +#: appTools/ToolDblSided.py:611 msgid "Y max" msgstr "Y max" -#: appTools/ToolDblSided.py:620 +#: appTools/ToolDblSided.py:622 msgid "Center point coordinates" msgstr "Coords del punto central" -#: appTools/ToolDblSided.py:622 +#: appTools/ToolDblSided.py:624 msgid "Centroid" msgstr "Centroide" -#: appTools/ToolDblSided.py:624 +#: appTools/ToolDblSided.py:626 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -15328,11 +15327,11 @@ msgstr "" "La ubicación del punto central para el rectangular\n" "forma delimitadora. Centroide. El formato es (x, y)." -#: appTools/ToolDblSided.py:633 +#: appTools/ToolDblSided.py:635 msgid "Calculate Bounds Values" msgstr "Calcular valores de límites" -#: appTools/ToolDblSided.py:635 +#: appTools/ToolDblSided.py:637 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" @@ -15342,15 +15341,15 @@ msgstr "" "para la selección de objetos.\n" "La forma de la envoltura es paralela al eje X, Y." -#: appTools/ToolDblSided.py:660 +#: appTools/ToolDblSided.py:662 msgid "Mirror Operation" msgstr "Operación Espejo" -#: appTools/ToolDblSided.py:661 +#: appTools/ToolDblSided.py:663 msgid "Parameters for the mirror operation" msgstr "Parámetros para la operación Reflejar" -#: appTools/ToolDblSided.py:683 +#: appTools/ToolDblSided.py:685 #, fuzzy #| msgid "" #| "The coordinates used as reference for the mirror operation.\n" @@ -15375,11 +15374,11 @@ msgstr "" "- 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:703 +#: appTools/ToolDblSided.py:705 msgid "Point coordinates" msgstr "Coordenadas de puntos" -#: appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:710 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -15395,21 +15394,21 @@ msgstr "" "y haga clic con el botón izquierdo del mouse en el lienzo o puede ingresar " "las coordenadas manualmente." -#: appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:728 msgid "Object that holds holes that can be picked as reference for mirroring." msgstr "" -#: appTools/ToolDblSided.py:741 +#: appTools/ToolDblSided.py:743 msgid "Pick hole" msgstr "" -#: appTools/ToolDblSided.py:743 +#: appTools/ToolDblSided.py:745 msgid "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." msgstr "" -#: appTools/ToolDblSided.py:759 +#: appTools/ToolDblSided.py:761 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -15419,11 +15418,11 @@ msgstr "" "Se utilizan las coordenadas del centro del cuadro delimitador.\n" "como referencia para la operación del espejo." -#: appTools/ToolDblSided.py:785 +#: appTools/ToolDblSided.py:787 msgid "Mirror" msgstr "Espejo" -#: appTools/ToolDblSided.py:787 +#: appTools/ToolDblSided.py:789 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -15433,11 +15432,11 @@ msgstr "" "El eje especificado. No crea un nuevo\n" "objeto, pero lo modifica." -#: appTools/ToolDblSided.py:813 +#: appTools/ToolDblSided.py:815 msgid "PCB Alignment" msgstr "Alineación de PCB" -#: appTools/ToolDblSided.py:815 appTools/ToolDblSided.py:923 +#: appTools/ToolDblSided.py:817 appTools/ToolDblSided.py:925 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -15447,11 +15446,11 @@ msgstr "" "agujeros de alineación especificados y su espejo\n" "imágenes." -#: appTools/ToolDblSided.py:822 +#: appTools/ToolDblSided.py:824 msgid "Drill Diameter" msgstr "Diá del Taladro" -#: appTools/ToolDblSided.py:857 appTools/ToolDblSided.py:864 +#: appTools/ToolDblSided.py:859 appTools/ToolDblSided.py:866 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -15462,11 +15461,11 @@ msgstr "" "desde el primer ejercicio de alineación, haciendo espejo.\n" "Se puede modificar en la sección Parámetros Espejo -> Referencia" -#: appTools/ToolDblSided.py:877 +#: appTools/ToolDblSided.py:879 msgid "Alignment Drill Coordinates" msgstr "Taladro de alineación Coords" -#: appTools/ToolDblSided.py:879 +#: appTools/ToolDblSided.py:881 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -15484,11 +15483,11 @@ msgstr "" "- un taladro en posición de espejo sobre el eje seleccionado arriba en " "'Alinear eje'." -#: appTools/ToolDblSided.py:887 +#: appTools/ToolDblSided.py:889 msgid "Drill coordinates" msgstr "Coords de Perforación" -#: appTools/ToolDblSided.py:894 +#: appTools/ToolDblSided.py:896 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -15516,15 +15515,15 @@ msgstr "" "- ingresando las coordenadas manualmente en el formato: (x1, y1), (x2, " "y2), ..." -#: appTools/ToolDblSided.py:909 +#: appTools/ToolDblSided.py:911 msgid "Delete Last" msgstr "Eliminar último" -#: appTools/ToolDblSided.py:911 +#: appTools/ToolDblSided.py:913 msgid "Delete the last coordinates tuple in the list." msgstr "Eliminar la última tupla de coordenadas en la lista." -#: appTools/ToolDblSided.py:921 +#: appTools/ToolDblSided.py:923 msgid "Create Excellon Object" msgstr "Crear objeto Excellon" @@ -15927,15 +15926,15 @@ msgstr "" msgid "No drills extracted. Try different parameters." msgstr "No se extraen taladros. Prueba diferentes parámetros." -#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687 +#: appTools/ToolExtractDrills.py:421 appTools/ToolExtractDrills.py:688 msgid "Extract Drills" msgstr "Extraer Taladros" -#: appTools/ToolExtractDrills.py:454 +#: appTools/ToolExtractDrills.py:455 msgid "Gerber from which to extract drill holes" msgstr "Gerber de donde extraer agujeros de perforación" -#: appTools/ToolExtractDrills.py:689 +#: appTools/ToolExtractDrills.py:690 msgid "Extract drills from a given Gerber file." msgstr "Extraer simulacros de un archivo Gerber dado." @@ -15943,29 +15942,29 @@ msgstr "Extraer simulacros de un archivo Gerber dado." msgid "Click to add first Fiducial. Bottom Left..." msgstr "Haga clic para agregar primero Fiducial. Abajo a la izquierda ..." -#: appTools/ToolFiducials.py:501 +#: appTools/ToolFiducials.py:503 msgid "Click to add the last fiducial. Top Right..." msgstr "Haga clic para agregar el último fiducial. Parte superior derecha..." -#: appTools/ToolFiducials.py:506 +#: appTools/ToolFiducials.py:508 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:509 appTools/ToolFiducials.py:518 +#: appTools/ToolFiducials.py:511 appTools/ToolFiducials.py:520 msgid "Done. All fiducials have been added." msgstr "Hecho. Se han agregado todos los fiduciales." -#: appTools/ToolFiducials.py:595 +#: appTools/ToolFiducials.py:597 msgid "Fiducials Tool exit." msgstr "Herram. Fiduciales de salida." -#: appTools/ToolFiducials.py:667 +#: appTools/ToolFiducials.py:669 msgid "Fiducials Coordinates" msgstr "Coordenadas Fiduciales" -#: appTools/ToolFiducials.py:669 +#: appTools/ToolFiducials.py:671 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -15973,7 +15972,7 @@ msgstr "" "Una tabla con las coordenadas de los puntos fiduciales,\n" "en el formato (x, y)." -#: appTools/ToolFiducials.py:805 +#: appTools/ToolFiducials.py:807 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -15983,31 +15982,31 @@ msgstr "" "delimitador.\n" " - 'Manual' - colocación manual de fiduciales." -#: appTools/ToolFiducials.py:851 +#: appTools/ToolFiducials.py:853 msgid "Thickness of the line that makes the fiducial." msgstr "Espesor de la línea que hace al fiducial." -#: appTools/ToolFiducials.py:882 +#: appTools/ToolFiducials.py:884 msgid "Add Fiducial" msgstr "Añadir Fiducial" -#: appTools/ToolFiducials.py:884 +#: appTools/ToolFiducials.py:886 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:900 +#: appTools/ToolFiducials.py:902 msgid "Soldermask Gerber" msgstr "Soldermask Gerber" -#: appTools/ToolFiducials.py:902 +#: appTools/ToolFiducials.py:904 msgid "The Soldermask Gerber object." msgstr "El objeto Soldermask Gerber." -#: appTools/ToolFiducials.py:914 +#: appTools/ToolFiducials.py:916 msgid "Add Soldermask Opening" msgstr "Agregar apertura de Soldermask" -#: appTools/ToolFiducials.py:916 +#: appTools/ToolFiducials.py:918 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -16209,7 +16208,7 @@ msgstr "Herra. de imagen" msgid "Import IMAGE" msgstr "Importar IMAGEN" -#: appTools/ToolImage.py:142 app_Main.py:8893 app_Main.py:8943 +#: appTools/ToolImage.py:142 app_Main.py:9782 app_Main.py:9832 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -16221,9 +16220,9 @@ msgstr "" msgid "Importing Image" msgstr "Importando imagen" -#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8921 -#: app_Main.py:8976 app_Main.py:9040 app_Main.py:9103 app_Main.py:9169 -#: app_Main.py:9234 app_Main.py:9291 +#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:9810 +#: app_Main.py:9865 app_Main.py:9929 app_Main.py:9992 app_Main.py:10058 +#: app_Main.py:10123 app_Main.py:10180 msgid "Opened" msgstr "Abierto" @@ -16353,7 +16352,7 @@ msgid "New Tool" msgstr "Nueva Herram" #: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:467 -#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4500 +#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4423 msgid "Adding Tool cancelled" msgstr "Añadiendo herramienta cancelada" @@ -16522,7 +16521,7 @@ msgid "Click the end point of the paint area." msgstr "Haga clic en el punto final del área de pintura." #: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3722 -#: appTools/ToolPaint.py:2633 app_Main.py:5779 app_Main.py:5789 +#: appTools/ToolPaint.py:2633 app_Main.py:5702 app_Main.py:5712 msgid "Tool from DB added in Tool Table." msgstr "Herramienta de DB agregada en la Tabla de herramientas." @@ -17079,11 +17078,11 @@ msgstr "Abrir PDF cancelado" msgid "Parsing PDF file ..." msgstr "Analizando archivo PDF ..." -#: appTools/ToolPDF.py:138 app_Main.py:9134 +#: appTools/ToolPDF.py:138 app_Main.py:10023 msgid "Failed to open" msgstr "Falló al abrir" -#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9083 +#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9972 msgid "No geometry found in file" msgstr "No se encontró geometría en el archivo" @@ -17520,7 +17519,7 @@ msgstr "PcbWizard .INF archivo cargado." msgid "Main PcbWizard Excellon file loaded." msgstr "Archivo PcbWizard Excellon principal cargado." -#: appTools/ToolPcbWizard.py:310 app_Main.py:9063 +#: appTools/ToolPcbWizard.py:310 app_Main.py:9952 msgid "This is not Excellon file." msgstr "Este no es un archivo de Excellon." @@ -17651,9 +17650,9 @@ msgstr "" "el otro tiene extensión .INF." #: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 -#: app_Main.py:4976 app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 -#: app_Main.py:7503 app_Main.py:7545 app_Main.py:7587 app_Main.py:7631 -#: app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 +#: app_Main.py:4899 app_Main.py:8253 app_Main.py:8351 app_Main.py:8391 +#: app_Main.py:8431 app_Main.py:8472 app_Main.py:8513 app_Main.py:8556 +#: app_Main.py:8599 app_Main.py:9058 app_Main.py:9062 msgid "No object selected." msgstr "Ningún objeto seleccionado." @@ -17747,8 +17746,8 @@ msgstr "" "Cree un objeto Gerber a partir del objeto seleccionado, dentro de\n" "El cuadro especificado." -#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485 -#: appTools/ToolQRCode.py:534 +#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:486 +#: appTools/ToolQRCode.py:535 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Cancelado. No hay datos de QRCode en el cuadro de texto." @@ -17760,32 +17759,32 @@ msgstr "Generando geometría QRCode" msgid "Click on the Destination point ..." msgstr "Haga clic en el punto de destino ..." -#: appTools/ToolQRCode.py:321 +#: appTools/ToolQRCode.py:322 msgid "QRCode Tool done." msgstr "Herramienta QRCode hecha." -#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521 +#: appTools/ToolQRCode.py:518 appTools/ToolQRCode.py:522 msgid "Export PNG" msgstr "Exportar PNG" -#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7353 -#: app_Main.py:7357 +#: appTools/ToolQRCode.py:565 appTools/ToolQRCode.py:569 app_Main.py:8284 +#: app_Main.py:8288 msgid "Export SVG" msgstr "Exportar SVG" -#: appTools/ToolQRCode.py:661 +#: appTools/ToolQRCode.py:662 msgid "Gerber Object to which the QRCode will be added." msgstr "Objeto Gerber al que se agregará el QRCode." -#: appTools/ToolQRCode.py:697 +#: appTools/ToolQRCode.py:698 msgid "The parameters used to shape the QRCode." msgstr "Los parámetros utilizados para dar forma al QRCode." -#: appTools/ToolQRCode.py:797 +#: appTools/ToolQRCode.py:798 msgid "Export QRCode" msgstr "Exportar el código QR" -#: appTools/ToolQRCode.py:799 +#: appTools/ToolQRCode.py:800 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -17793,31 +17792,31 @@ msgstr "" "Mostrar un conjunto de controles que permiten exportar el QRCode\n" "a un archivo SVG o un archivo PNG." -#: appTools/ToolQRCode.py:838 +#: appTools/ToolQRCode.py:839 msgid "Transparent back color" msgstr "Color de fondo transparente" -#: appTools/ToolQRCode.py:863 +#: appTools/ToolQRCode.py:864 msgid "Export QRCode SVG" msgstr "Exportar el QRCode SVG" -#: appTools/ToolQRCode.py:865 +#: appTools/ToolQRCode.py:866 msgid "Export a SVG file with the QRCode content." msgstr "Exporte un archivo SVG con el contenido de QRCode." -#: appTools/ToolQRCode.py:876 +#: appTools/ToolQRCode.py:877 msgid "Export QRCode PNG" msgstr "Exportar el QRCode PNG" -#: appTools/ToolQRCode.py:878 +#: appTools/ToolQRCode.py:879 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:889 +#: appTools/ToolQRCode.py:890 msgid "Insert QRCode" msgstr "Insertar QRCode" -#: appTools/ToolQRCode.py:891 +#: appTools/ToolQRCode.py:892 msgid "Create the QRCode object." msgstr "Crea el objeto QRCode." @@ -18579,7 +18578,7 @@ msgstr "¿Está seguro de que desea cambiar el idioma actual a" msgid "Apply Language ..." msgstr "Aplicar Idioma ..." -#: appTranslation.py:206 app_Main.py:3383 +#: appTranslation.py:206 app_Main.py:3306 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -18615,43 +18614,43 @@ msgstr "" "Se inició la inicialización del lienzo.\n" "La inicialización del lienzo terminó en" -#: app_Main.py:1596 app_Main.py:7007 +#: app_Main.py:1292 app_Main.py:8831 msgid "New Project - Not saved" msgstr "Proyecto nuevo: no guardado" -#: app_Main.py:1702 +#: app_Main.py:1711 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." -#: app_Main.py:1769 +#: app_Main.py:1778 msgid "Open Config file failed." msgstr "El archivo de configuración abierto falló." -#: app_Main.py:1784 +#: app_Main.py:1793 msgid "Open Script file failed." msgstr "Error al abrir el archivo de script." -#: app_Main.py:1810 +#: app_Main.py:1819 msgid "Open Excellon file failed." msgstr "Abrir archivo Excellon falló." -#: app_Main.py:1823 +#: app_Main.py:1832 msgid "Open GCode file failed." msgstr "Error al abrir el archivo GCode." -#: app_Main.py:1836 +#: app_Main.py:1845 msgid "Open Gerber file failed." msgstr "Error al abrir el archivo Gerber." -#: app_Main.py:2174 +#: app_Main.py:2183 msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." msgstr "" "Seleccione un objeto de Geometría, Gerber, Excellon o CNCJob para editar." -#: app_Main.py:2189 +#: app_Main.py:2198 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -18661,101 +18660,85 @@ msgstr "" "MultiGeo no es posible.\n" "Edite solo una geometría a la vez." -#: app_Main.py:2267 +#: app_Main.py:2276 msgid "EDITOR Area" msgstr "" -#: app_Main.py:2269 +#: app_Main.py:2278 msgid "Editor is activated ..." msgstr "Editor está activado ..." -#: app_Main.py:2290 +#: app_Main.py:2299 msgid "Do you want to save the edited object?" msgstr "Quieres guardar el objeto editado?" -#: app_Main.py:2331 +#: app_Main.py:2340 msgid "Object empty after edit." msgstr "Objeto vacío después de editar." -#: app_Main.py:2336 app_Main.py:2354 app_Main.py:2385 app_Main.py:2401 +#: app_Main.py:2345 app_Main.py:2363 app_Main.py:2394 app_Main.py:2410 msgid "Editor exited. Editor content saved." msgstr "Editor salido. Contenido del editor guardado." -#: app_Main.py:2405 app_Main.py:2446 +#: app_Main.py:2414 app_Main.py:2455 #, fuzzy #| msgid "Select a Gerber, Geometry or Excellon Object to update." msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update." msgstr "Seleccione un objeto Gerber, Geometry o Excellon para actualizar." -#: app_Main.py:2408 +#: app_Main.py:2417 msgid "is updated, returning to App..." msgstr "se actualiza, volviendo a la aplicación ..." -#: app_Main.py:2421 +#: app_Main.py:2430 msgid "Editor exited. Editor content was not saved." msgstr "Editor salido. El contenido del editor no se guardó." -#: app_Main.py:2469 +#: app_Main.py:2478 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Seleccione un objeto Gerber, Geometry o Excellon para actualizar." -#: app_Main.py:2573 app_Main.py:2577 -msgid "Import FlatCAM Preferences" -msgstr "Importar preferencias de FlatCAM" - -#: app_Main.py:2588 -msgid "Imported Defaults from" -msgstr "Valores predeterminados importados de" - -#: app_Main.py:2608 app_Main.py:2614 -msgid "Export FlatCAM Preferences" -msgstr "Exportar preferencias de FlatCAM" - -#: app_Main.py:2634 -msgid "Exported preferences to" -msgstr "Preferencias exportadas a" - -#: app_Main.py:2654 app_Main.py:2659 +#: app_Main.py:2586 app_Main.py:2591 msgid "Save to file" msgstr "Guardar en archivo" -#: app_Main.py:2683 +#: app_Main.py:2615 msgid "Could not load the file." msgstr "No se pudo cargar el archivo." -#: app_Main.py:2699 +#: app_Main.py:2631 msgid "Exported file to" msgstr "Exported file to" -#: app_Main.py:2736 +#: app_Main.py:2668 msgid "Failed to open recent files file for writing." msgstr "Error al abrir archivos recientes para escritura." -#: app_Main.py:2747 +#: app_Main.py:2679 msgid "Failed to open recent projects file for writing." msgstr "Error al abrir el archivo de proyectos recientes para escribir." -#: app_Main.py:2802 +#: app_Main.py:2734 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Fabricación de placa de circuito impreso asistida por computadora 2D" -#: app_Main.py:2803 +#: app_Main.py:2735 msgid "Development" msgstr "Desarrollo" -#: app_Main.py:2804 +#: app_Main.py:2736 msgid "DOWNLOAD" msgstr "DESCARGAR" -#: app_Main.py:2805 +#: app_Main.py:2737 msgid "Issue tracker" msgstr "Rastreador de problemas" -#: app_Main.py:2824 +#: app_Main.py:2756 msgid "Licensed under the MIT license" msgstr "Licenciado bajo la licencia MIT" -#: app_Main.py:2833 +#: app_Main.py:2765 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -18805,7 +18788,7 @@ msgstr "" "FUERA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRAS OFERTAS EN\n" "EL SOFTWARE." -#: app_Main.py:2855 +#: app_Main.py:2787 msgid "" "Some of the icons used are from the following sources:
" -#: app_Main.py:2891 +#: app_Main.py:2823 msgid "Splash" msgstr "Pantalla de bienvenida" -#: app_Main.py:2897 +#: app_Main.py:2829 msgid "Programmers" msgstr "Programadores" -#: app_Main.py:2903 +#: app_Main.py:2835 msgid "Translators" msgstr "Traductores" -#: app_Main.py:2909 +#: app_Main.py:2841 msgid "License" msgstr "Licencia" -#: app_Main.py:2915 +#: app_Main.py:2847 msgid "Attributions" msgstr "Atribuciones" -#: app_Main.py:2938 +#: app_Main.py:2870 msgid "Programmer" msgstr "Programador" -#: app_Main.py:2939 +#: app_Main.py:2871 msgid "Status" msgstr "Estado" -#: app_Main.py:2940 app_Main.py:3020 +#: app_Main.py:2872 app_Main.py:2952 msgid "E-mail" msgstr "Email" -#: app_Main.py:2943 +#: app_Main.py:2875 msgid "Program Author" msgstr "Autor del programa" -#: app_Main.py:2948 +#: app_Main.py:2880 msgid "BETA Maintainer >= 2019" msgstr "BETA Mantenedor >= 2019" -#: app_Main.py:3017 +#: app_Main.py:2949 msgid "Language" msgstr "Idioma" -#: app_Main.py:3018 +#: app_Main.py:2950 msgid "Translator" msgstr "Traductor" -#: app_Main.py:3019 +#: app_Main.py:2951 msgid "Corrections" msgstr "Correcciones" -#: app_Main.py:3104 +#: app_Main.py:3036 msgid "Important Information's" msgstr "Información importante" -#: app_Main.py:3152 +#: app_Main.py:3084 #, python-format msgid "This program is %s and free in a very wide meaning of the word." msgstr "Este programa es %s y gratuito en un sentido muy amplio de la palabra." -#: app_Main.py:3153 +#: app_Main.py:3085 msgid "Yet it cannot evolve without contributions." msgstr "Sin embargo, no puede evolucionar sin contribuciones ." -#: app_Main.py:3154 +#: app_Main.py:3086 msgid "If you want to see this application grow and become better and better" msgstr "Si quieres ver esta aplicación crecer y ser mejor y mejor" -#: app_Main.py:3155 +#: app_Main.py:3087 msgid "you can contribute to the development yourself by:" msgstr "usted puede contribuir al desarrollo usted mismo:" -#: app_Main.py:3156 +#: app_Main.py:3088 msgid "Pull Requests on the Bitbucket repository, if you are a developer" msgstr "" "Solicitudes de extracción en el repositorio de Bitbucket, si es desarrollador" -#: app_Main.py:3158 +#: app_Main.py:3090 msgid "Bug Reports by providing the steps required to reproduce the bug" msgstr "" "Informes de errores al proporcionar los pasos necesarios para reproducir el " "error" -#: app_Main.py:3189 +#: app_Main.py:3121 msgid "Contribute" msgstr "Contribuir" -#: app_Main.py:3212 +#: app_Main.py:3144 msgid "Links Exchange" msgstr "Intercambio de enlaces" -#: app_Main.py:3224 app_Main.py:3243 +#: app_Main.py:3156 app_Main.py:3175 msgid "Soon ..." msgstr "Pronto ..." -#: app_Main.py:3231 +#: app_Main.py:3163 msgid "How To's" msgstr "How To's" -#: app_Main.py:3343 +#: app_Main.py:3275 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -18947,29 +18930,29 @@ msgstr "" "Si no puede obtener información sobre FlatCAM beta\n" "use el enlace del canal de YouTube desde el menú Ayuda." -#: app_Main.py:3350 +#: app_Main.py:3282 msgid "Alternative website" msgstr "Sitio web alternativo" -#: app_Main.py:3701 +#: app_Main.py:3624 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Extensiones de archivo Excellon seleccionadas registradas con FlatCAM." -#: app_Main.py:3723 +#: app_Main.py:3646 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Extensiones de archivo GCode seleccionadas registradas con FlatCAM." -#: app_Main.py:3745 +#: app_Main.py:3668 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Extensiones de archivo Gerber seleccionadas registradas con FlatCAM." -#: app_Main.py:3933 app_Main.py:3994 app_Main.py:4024 +#: app_Main.py:3856 app_Main.py:3917 app_Main.py:3947 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "Se requieren al menos dos objetos para unirse. Objetos actualmente " "seleccionados" -#: app_Main.py:3942 +#: app_Main.py:3865 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 " @@ -18985,47 +18968,47 @@ msgstr "" "pueden perderse y el resultado puede no ser el esperado.\n" "Compruebe el GCODE generado." -#: app_Main.py:3956 app_Main.py:3966 +#: app_Main.py:3879 app_Main.py:3889 msgid "Geometry merging finished" msgstr "Geometría fusionada terminada" -#: app_Main.py:3989 +#: app_Main.py:3912 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Ha fallado. La unión de Excellon funciona solo en objetos de Excellon." -#: app_Main.py:4001 +#: app_Main.py:3924 msgid "Excellon merging finished" msgstr "Excellon fusión finalizada" -#: app_Main.py:4019 +#: app_Main.py:3942 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Ha fallado. La unión de Gerber funciona solo en objetos de Gerber." -#: app_Main.py:4029 +#: app_Main.py:3952 msgid "Gerber merging finished" msgstr "Gerber fusión finalizada" -#: app_Main.py:4049 app_Main.py:4086 +#: app_Main.py:3972 app_Main.py:4009 msgid "Failed. Select a Geometry Object and try again." msgstr "Ha fallado. Seleccione un objeto de Geometría y vuelva a intentarlo." -#: app_Main.py:4053 app_Main.py:4091 +#: app_Main.py:3976 app_Main.py:4014 msgid "Expected a GeometryObject, got" msgstr "Se esperaba un GeometryObject, se obtuvo" -#: app_Main.py:4068 +#: app_Main.py:3991 msgid "A Geometry object was converted to MultiGeo type." msgstr "Un objeto Geometry fue convertido al tipo MultiGeo." -#: app_Main.py:4106 +#: app_Main.py:4029 msgid "A Geometry object was converted to SingleGeo type." msgstr "Un objeto Geometry fue convertido al tipo SingleGeo." -#: app_Main.py:4339 +#: app_Main.py:4262 msgid "Toggle Units" msgstr "(Escriba ayuda para empezar)" -#: app_Main.py:4343 +#: app_Main.py:4266 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -19037,24 +19020,24 @@ msgstr "" "\n" "¿Quieres continuar?" -#: app_Main.py:4346 app_Main.py:4509 app_Main.py:4592 app_Main.py:7327 -#: app_Main.py:7343 app_Main.py:7681 app_Main.py:7693 +#: app_Main.py:4269 app_Main.py:4432 app_Main.py:4515 app_Main.py:8259 +#: app_Main.py:8274 app_Main.py:8605 app_Main.py:8617 msgid "Ok" msgstr "De acuerdo" -#: app_Main.py:4396 +#: app_Main.py:4319 msgid "Converted units to" msgstr "Convertir unidades a" -#: app_Main.py:4436 +#: app_Main.py:4359 msgid "Workspace enabled." msgstr "Espacio de trabajo habilitado." -#: app_Main.py:4439 +#: app_Main.py:4362 msgid "Workspace disabled." msgstr "Espacio de trabajo deshabilitado." -#: app_Main.py:4503 +#: app_Main.py:4426 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -19062,11 +19045,11 @@ msgstr "" "Agregar herramienta solo funciona cuando se selecciona Avanzado.\n" "Vaya a Preferencias -> General - Mostrar opciones avanzadas." -#: app_Main.py:4585 +#: app_Main.py:4508 msgid "Delete objects" msgstr "Eliminar objetos" -#: app_Main.py:4590 +#: app_Main.py:4513 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -19074,86 +19057,86 @@ msgstr "" "¿Estás seguro de que deseas eliminarlo permanentemente?\n" "los objetos seleccionados?" -#: app_Main.py:4633 +#: app_Main.py:4556 msgid "Object(s) deleted" msgstr "Objeto (s) eliminado" -#: app_Main.py:4637 +#: app_Main.py:4560 msgid "Save the work in Editor and try again ..." msgstr "Guarda el trabajo en el Editor y vuelve a intentarlo ..." -#: app_Main.py:4666 +#: app_Main.py:4589 msgid "Object deleted" msgstr "Objeto eliminado" -#: app_Main.py:4693 +#: app_Main.py:4616 msgid "Click to set the origin ..." msgstr "Haga clic para establecer el origen ..." -#: app_Main.py:4715 +#: app_Main.py:4638 msgid "Setting Origin..." msgstr "Establecer Origen ..." -#: app_Main.py:4728 app_Main.py:4830 +#: app_Main.py:4651 app_Main.py:4753 msgid "Origin set" msgstr "Conjunto de origen" -#: app_Main.py:4745 +#: app_Main.py:4668 msgid "Origin coordinates specified but incomplete." msgstr "Origin coordinates specified but incomplete." -#: app_Main.py:4786 +#: app_Main.py:4709 msgid "Moving to Origin..." msgstr "Mudarse al origen ..." -#: app_Main.py:4867 +#: app_Main.py:4790 msgid "Jump to ..." msgstr "Salta a ..." -#: app_Main.py:4868 +#: app_Main.py:4791 msgid "Enter the coordinates in format X,Y:" msgstr "Introduzca las coordenadas en formato X, Y:" -#: app_Main.py:4878 +#: app_Main.py:4801 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordenadas erróneas. Introduzca las coordenadas en formato: X, Y" -#: app_Main.py:4995 +#: app_Main.py:4918 msgid "Bottom-Left" msgstr "Abajo-izquierda" -#: app_Main.py:4998 +#: app_Main.py:4921 msgid "Top-Right" msgstr "Top-Derecha" -#: app_Main.py:5019 +#: app_Main.py:4942 msgid "Locate ..." msgstr "Localizar ..." -#: app_Main.py:5292 app_Main.py:5367 app_Main.py:5530 +#: app_Main.py:5215 app_Main.py:5290 app_Main.py:5453 msgid "No object is selected. Select an object and try again." msgstr "" "Ningún objeto está seleccionado. Seleccione un objeto y vuelva a intentarlo." -#: app_Main.py:5556 +#: app_Main.py:5479 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 ..." -#: app_Main.py:5562 +#: app_Main.py:5485 msgid "The current task was gracefully closed on user request..." msgstr "La tarea actual se cerró correctamente a petición del usuario ..." -#: app_Main.py:5752 +#: app_Main.py:5675 msgid "Tools in Tools Database edited but not saved." msgstr "" "Herramientas en la base de datos de herramientas editadas pero no guardadas." -#: app_Main.py:5791 +#: app_Main.py:5714 msgid "Adding tool from DB is not allowed for this object." msgstr "No se permite agregar herramientas desde DB para este objeto." -#: app_Main.py:5809 +#: app_Main.py:5732 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -19161,588 +19144,235 @@ msgstr "" "Se editan una o más herramientas.\n" "¿Desea actualizar la base de datos de herramientas?" -#: app_Main.py:5811 +#: app_Main.py:5734 msgid "Save Tools Database" msgstr "Guardar base de datos de herramientas" -#: app_Main.py:5857 +#: app_Main.py:5780 msgid "No object selected to Flip on Y axis." msgstr "Ningún objeto seleccionado para Voltear en el eje Y." -#: app_Main.py:5883 +#: app_Main.py:5806 msgid "Flip on Y axis done." msgstr "Voltear sobre el eje Y hecho." -#: app_Main.py:5905 +#: app_Main.py:5828 msgid "No object selected to Flip on X axis." msgstr "Ningún objeto seleccionado para Voltear en el eje X." -#: app_Main.py:5931 +#: app_Main.py:5854 msgid "Flip on X axis done." msgstr "Voltear sobre el eje X hecho." -#: app_Main.py:5953 +#: app_Main.py:5876 msgid "No object selected to Rotate." msgstr "Ningún objeto seleccionado para rotar." -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Transform" msgstr "Transformar" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Enter the Angle value:" msgstr "Ingrese el valor del ángulo:" -#: app_Main.py:5986 +#: app_Main.py:5909 msgid "Rotation done." msgstr "Rotación hecha." -#: app_Main.py:5988 +#: app_Main.py:5911 msgid "Rotation movement was not executed." msgstr "El movimiento de rotación no se ejecutó." -#: app_Main.py:6005 +#: app_Main.py:5928 msgid "No object selected to Skew/Shear on X axis." msgstr "Ningún objeto seleccionado para sesgar / cortar en el eje X." -#: app_Main.py:6026 +#: app_Main.py:5949 msgid "Skew on X axis done." msgstr "Sesgar en el eje X hecho." -#: app_Main.py:6042 +#: app_Main.py:5965 msgid "No object selected to Skew/Shear on Y axis." msgstr "Ningún objeto seleccionado para sesgar / cortar en el eje Y." -#: app_Main.py:6063 +#: app_Main.py:5986 msgid "Skew on Y axis done." msgstr "Sesgar en el eje Y hecho." -#: app_Main.py:6145 +#: app_Main.py:6068 msgid "New Grid ..." msgstr "Nueva rejilla ..." -#: app_Main.py:6146 +#: app_Main.py:6069 msgid "Enter a Grid Value:" msgstr "Introduzca un valor de cuadrícula:" -#: app_Main.py:6154 app_Main.py:6178 +#: app_Main.py:6077 app_Main.py:6101 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." -#: app_Main.py:6159 +#: app_Main.py:6082 msgid "New Grid added" msgstr "Nueva rejilla" -#: app_Main.py:6161 +#: app_Main.py:6084 msgid "Grid already exists" msgstr "La rejilla ya existe" -#: app_Main.py:6163 +#: app_Main.py:6086 msgid "Adding New Grid cancelled" msgstr "Agregar nueva cuadrícula cancelado" -#: app_Main.py:6184 +#: app_Main.py:6107 msgid " Grid Value does not exist" msgstr " El valor de cuadrícula no existe" -#: app_Main.py:6186 +#: app_Main.py:6109 msgid "Grid Value deleted" msgstr "Valor de cuadrícula eliminado" -#: app_Main.py:6188 +#: app_Main.py:6111 msgid "Delete Grid value cancelled" msgstr "Eliminar el valor de cuadrícula cancelado" -#: app_Main.py:6194 +#: app_Main.py:6117 msgid "Key Shortcut List" msgstr "Lista de atajos de teclas" -#: app_Main.py:6231 +#: app_Main.py:6154 msgid " No object selected to copy it's name" msgstr " Ningún objeto seleccionado para copiar su nombre" -#: app_Main.py:6235 +#: app_Main.py:6158 msgid "Name copied on clipboard ..." msgstr "Nombre copiado en el portapapeles ..." -#: app_Main.py:6892 -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 "" -"Hay archivos / objetos abiertos en FlatCAM.\n" -"Crear un nuevo proyecto los borrará.\n" -"¿Quieres guardar el proyecto?" - -#: app_Main.py:6915 -msgid "New Project created" -msgstr "Nuevo proyecto creado" - -#: app_Main.py:7121 app_Main.py:7160 app_Main.py:7204 app_Main.py:7274 -#: app_Main.py:8060 app_Main.py:9304 app_Main.py:9366 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Se inició la inicialización del lienzo.\n" -"La inicialización del lienzo terminó en" - -#: app_Main.py:7123 -msgid "Opening Gerber file." -msgstr "Abriendo el archivo Gerber." - -#: app_Main.py:7162 -msgid "Opening Excellon file." -msgstr "Abriendo el archivo Excellon." - -#: app_Main.py:7193 app_Main.py:7198 -msgid "Open G-Code" -msgstr "Código G abierto" - -#: app_Main.py:7206 -msgid "Opening G-Code file." -msgstr "Abriendo el archivo G-code." - -#: app_Main.py:7265 app_Main.py:7269 -msgid "Open HPGL2" -msgstr "Abra HPGL2" - -#: app_Main.py:7276 -msgid "Opening HPGL2 file." -msgstr "Abrir el archivo HPGL2." - -#: app_Main.py:7299 app_Main.py:7302 -msgid "Open Configuration File" -msgstr "Abrir archivo de configuración" - -#: app_Main.py:7322 app_Main.py:7676 -msgid "Please Select a Geometry object to export" -msgstr "Seleccione un objeto de geometría para exportar" - -#: app_Main.py:7338 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Solo se pueden utilizar objetos Geometry, Gerber y CNCJob." - -#: app_Main.py:7383 -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" - -#: app_Main.py:7389 app_Main.py:7393 -msgid "Export PNG Image" -msgstr "Exportar imagen PNG" - -#: app_Main.py:7426 app_Main.py:7636 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "" -"Ha fallado. Solo los objetos Gerber se pueden guardar como archivos " -"Gerber ..." - -#: app_Main.py:7438 -msgid "Save Gerber source file" -msgstr "Guardar el archivo fuente de Gerber" - -#: app_Main.py:7467 -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 ..." - -#: app_Main.py:7479 -msgid "Save Script source file" -msgstr "Guardar archivo fuente de script" - -#: app_Main.py:7508 -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 ..." - -#: app_Main.py:7520 -msgid "Save Document source file" -msgstr "Guardar archivo fuente del Documento" - -#: app_Main.py:7550 app_Main.py:7592 app_Main.py:8543 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" -"Ha fallado. Solo los objetos Excellon se pueden guardar como archivos " -"Excellon ..." - -#: app_Main.py:7558 app_Main.py:7563 -msgid "Save Excellon source file" -msgstr "Guardar el archivo fuente de Excellon" - -#: app_Main.py:7600 app_Main.py:7604 -msgid "Export Excellon" -msgstr "Exportar Excellon" - -#: app_Main.py:7644 app_Main.py:7648 -msgid "Export Gerber" -msgstr "Gerber Exportación" - -#: app_Main.py:7688 -msgid "Only Geometry objects can be used." -msgstr "Solo se pueden utilizar objetos de Geometría." - -#: app_Main.py:7704 app_Main.py:7708 -msgid "Export DXF" -msgstr "Exportar DXF" - -#: app_Main.py:7733 app_Main.py:7736 -msgid "Import SVG" -msgstr "Importar SVG" - -#: app_Main.py:7764 app_Main.py:7768 -msgid "Import DXF" -msgstr "Importar DXF" - -#: app_Main.py:7822 app_Main.py:7826 +#: app_Main.py:6917 app_Main.py:6921 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." -#: app_Main.py:7829 +#: app_Main.py:6924 msgid "Viewing the source code of the selected object." msgstr "Ver el código fuente del objeto seleccionado." -#: app_Main.py:7843 +#: app_Main.py:6938 msgid "Source Editor" msgstr "Editor de fuente" -#: app_Main.py:7879 app_Main.py:7886 +#: app_Main.py:6974 app_Main.py:6981 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." -#: app_Main.py:7894 +#: app_Main.py:6989 msgid "Failed to load the source code for the selected object" msgstr "Error al cargar el código fuente para el objeto seleccionado" -#: app_Main.py:7927 +#: app_Main.py:7022 msgid "Go to Line ..." msgstr "Ir a la línea ..." -#: app_Main.py:7928 +#: app_Main.py:7023 msgid "Line:" msgstr "Línea:" -#: app_Main.py:7955 -msgid "New TCL script file created in Code Editor." -msgstr "Nuevo archivo de script TCL creado en Code Editor." - -#: app_Main.py:7994 app_Main.py:7996 app_Main.py:8032 app_Main.py:8034 -msgid "Open TCL script" -msgstr "Abrir script TCL" - -#: app_Main.py:8062 -msgid "Executing ScriptObject file." -msgstr "Ejecutando archivo ScriptObject." - -#: app_Main.py:8070 app_Main.py:8073 -msgid "Run TCL script" -msgstr "Ejecutar script TCL" - -#: app_Main.py:8096 -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ó." - -#: app_Main.py:8147 app_Main.py:8153 -msgid "Save Project As ..." -msgstr "Guardar proyecto como ..." - -#: app_Main.py:8188 -msgid "FlatCAM objects print" -msgstr "Impresión de objetos FlatCAM" - -#: app_Main.py:8201 app_Main.py:8208 -msgid "Save Object as PDF ..." -msgstr "Guardar objeto como PDF ..." - -#: app_Main.py:8217 -msgid "Printing PDF ... Please wait." -msgstr "Imprimiendo PDF ... Por favor espere." - -#: app_Main.py:8396 -msgid "PDF file saved to" -msgstr "Archivo PDF guardado en" - -#: app_Main.py:8421 -msgid "Exporting SVG" -msgstr "Exportando SVG" - -#: app_Main.py:8464 -msgid "SVG file exported to" -msgstr "Archivo SVG exportado a" - -#: app_Main.py:8490 -#, fuzzy -#| msgid "" -#| "Save cancelled because source file is empty. Try to export the Gerber " -#| "file." -msgid "Save cancelled because source file is empty. Try to export the file." -msgstr "" -"Guardar cancelado porque el archivo fuente está vacío. Intenta exportar el " -"archivo Gerber." - -#: app_Main.py:8641 -msgid "Excellon file exported to" -msgstr "Archivo Excellon exportado a" - -#: app_Main.py:8650 -msgid "Exporting Excellon" -msgstr "Exportando excellon" - -#: app_Main.py:8655 app_Main.py:8662 -msgid "Could not export Excellon file." -msgstr "No se pudo exportar el archivo Excellon." - -#: app_Main.py:8778 -msgid "Gerber file exported to" -msgstr "Archivo Gerber exportado a" - -#: app_Main.py:8786 -msgid "Exporting Gerber" -msgstr "Gerber exportador" - -#: app_Main.py:8791 app_Main.py:8798 -#, fuzzy -#| msgid "Could not export DXF file." -msgid "Could not export file." -msgstr "No se pudo exportar el archivo DXF." - -#: app_Main.py:8846 -msgid "DXF file exported to" -msgstr "Archivo DXF exportado a" - -#: app_Main.py:8855 -msgid "Exporting DXF" -msgstr "Exportando DXF" - -#: app_Main.py:8860 app_Main.py:8867 -msgid "Could not export DXF file." -msgstr "No se pudo exportar el archivo DXF." - -#: app_Main.py:8906 -msgid "Importing SVG" -msgstr "Importando SVG" - -#: app_Main.py:8914 app_Main.py:8969 -msgid "Import failed." -msgstr "Importación fallida." - -#: app_Main.py:8961 -msgid "Importing DXF" -msgstr "Importando DXF" - -#: app_Main.py:9002 app_Main.py:9193 app_Main.py:9258 -msgid "Failed to open file" -msgstr "Fallo al abrir el archivo" - -#: app_Main.py:9005 app_Main.py:9196 app_Main.py:9261 -msgid "Failed to parse file" -msgstr "Error al analizar el archivo" - -#: app_Main.py:9017 -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." - -#: app_Main.py:9022 -msgid "Opening Gerber" -msgstr "Apertura de gerber" - -#: app_Main.py:9033 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Gerber abierto falló. Probablemente no sea un archivo Gerber." - -#: app_Main.py:9066 -msgid "Cannot open file" -msgstr "No se puede abrir el archivo" - -#: app_Main.py:9086 -msgid "Opening Excellon." -msgstr "Apertura Excellon." - -#: app_Main.py:9096 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "" -"Error al abrir el archivo Excellon. Probablemente no sea un archivo de " -"Excellon." - -#: app_Main.py:9128 -msgid "Reading GCode file" -msgstr "Lectura de archivo GCode" - -#: app_Main.py:9141 -msgid "This is not GCODE" -msgstr "Esto no es GCODE" - -#: app_Main.py:9146 -msgid "Opening G-Code." -msgstr "Apertura del código G." - -#: app_Main.py:9159 -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 "" -"Error al crear el objeto CNCJob. Probablemente no sea un archivo GCode. " -"Intenta cargarlo desde el menú Archivo.\n" -"Intento de crear un objeto FlatCAM CNCJob desde el archivo G-Code falló " -"durante el procesamiento" - -#: app_Main.py:9215 -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." - -#: app_Main.py:9220 -msgid "Opening HPGL2" -msgstr "Apertura de HPGL2" - -#: app_Main.py:9227 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " Abrir HPGL2 falló. Probablemente no sea un archivo HPGL2." - -#: app_Main.py:9253 -msgid "TCL script file opened in Code Editor." -msgstr "Archivo de script TCL abierto en Code Editor." - -#: app_Main.py:9273 -msgid "Opening TCL Script..." -msgstr "Abriendo TCL Script ..." - -#: app_Main.py:9284 -msgid "Failed to open TCL Script." -msgstr "Error al abrir la secuencia de comandos TCL." - -#: app_Main.py:9306 -msgid "Opening FlatCAM Config file." -msgstr "Abrir el archivo de configuración de FlatCAM." - -#: app_Main.py:9334 -msgid "Failed to open config file" -msgstr "Error al abrir el archivo de configuración" - -#: app_Main.py:9363 -msgid "Loading Project ... Please Wait ..." -msgstr "Cargando proyecto ... Espere ..." - -#: app_Main.py:9368 -msgid "Opening FlatCAM Project file." -msgstr "Apertura del archivo del proyecto FlatCAM." - -#: app_Main.py:9383 app_Main.py:9387 app_Main.py:9404 -msgid "Failed to open project file" -msgstr "Error al abrir el archivo del proyecto" - -#: app_Main.py:9443 -msgid "Loading Project ... restoring" -msgstr "Cargando Proyecto ... restaurando" - -#: app_Main.py:9451 -msgid "Project loaded from" -msgstr "Proyecto cargado desde" - -#: app_Main.py:9477 +#: app_Main.py:7053 msgid "Redrawing all objects" msgstr "Redibujando todos los objetos" -#: app_Main.py:9565 +#: app_Main.py:7141 msgid "Failed to load recent item list." msgstr "Error al cargar la lista de elementos recientes." -#: app_Main.py:9572 +#: app_Main.py:7148 msgid "Failed to parse recent item list." msgstr "Error al analizar la lista de elementos recientes." -#: app_Main.py:9582 +#: app_Main.py:7158 msgid "Failed to load recent projects item list." msgstr "Error al cargar la lista de elementos de proyectos recientes." -#: app_Main.py:9589 +#: app_Main.py:7165 msgid "Failed to parse recent project item list." msgstr "Error al analizar la lista de elementos del proyecto reciente." -#: app_Main.py:9650 +#: app_Main.py:7226 msgid "Clear Recent projects" msgstr "Borrar proyectos recientes" -#: app_Main.py:9674 +#: app_Main.py:7250 msgid "Clear Recent files" msgstr "Borrar archivos recientes" -#: app_Main.py:9730 +#: app_Main.py:7306 #, fuzzy #| msgid "FlatCAM.org" msgid "FlatCAM Evo" msgstr "FlatCAM.org" -#: app_Main.py:9734 +#: app_Main.py:7310 msgid "Release date" msgstr "" -#: app_Main.py:9738 +#: app_Main.py:7314 msgid "Displayed" msgstr "" -#: app_Main.py:9741 +#: app_Main.py:7317 #, fuzzy #| msgid "Snap Max" msgid "Snap" msgstr "Máx. de ajuste" -#: app_Main.py:9750 +#: app_Main.py:7326 msgid "Canvas" msgstr "" -#: app_Main.py:9755 +#: app_Main.py:7331 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace active" msgstr "Configuración del espacio de trabajo" -#: app_Main.py:9759 +#: app_Main.py:7335 #, fuzzy #| msgid "Workspace disabled." msgid "Workspace size" msgstr "Espacio de trabajo deshabilitado." -#: app_Main.py:9763 +#: app_Main.py:7339 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace orientation" msgstr "Configuración del espacio de trabajo" -#: app_Main.py:9826 +#: app_Main.py:7402 msgid "Failed checking for latest version. Could not connect." msgstr "Falló la comprobación de la última versión. No pudo conectar." -#: app_Main.py:9833 +#: app_Main.py:7409 msgid "Could not parse information about latest version." msgstr "No se pudo analizar la información sobre la última versión." -#: app_Main.py:9843 +#: app_Main.py:7419 msgid "FlatCAM is up to date!" msgstr "FlatCAM está al día!" -#: app_Main.py:9848 +#: app_Main.py:7424 msgid "Newer Version Available" msgstr "Nueva versión disponible" -#: app_Main.py:9850 +#: app_Main.py:7426 msgid "There is a newer version of FlatCAM available for download:" msgstr "Hay una versión más nueva de FlatCAM disponible para descargar:" -#: app_Main.py:9854 +#: app_Main.py:7430 msgid "info" msgstr "info" -#: app_Main.py:9882 +#: app_Main.py:7458 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -19754,66 +19384,435 @@ msgstr "" "pestaña General.\n" "\n" -#: app_Main.py:9960 +#: app_Main.py:7536 msgid "All plots disabled." msgstr "Todas las parcelas con discapacidad." -#: app_Main.py:9967 +#: app_Main.py:7543 msgid "All non selected plots disabled." msgstr "Todas las parcelas no seleccionadas deshabilitadas." -#: app_Main.py:9974 +#: app_Main.py:7550 msgid "All plots enabled." msgstr "Todas las parcelas habilitadas." -#: app_Main.py:9980 +#: app_Main.py:7556 msgid "Selected plots enabled..." msgstr "Parcelas seleccionadas habilitadas ..." -#: app_Main.py:9988 +#: app_Main.py:7564 msgid "Selected plots disabled..." msgstr "Parcelas seleccionadas deshabilitadas ..." -#: app_Main.py:10021 +#: app_Main.py:7597 msgid "Enabling plots ..." msgstr "Habilitación de parcelas ..." -#: app_Main.py:10070 +#: app_Main.py:7646 msgid "Disabling plots ..." msgstr "Inhabilitando parcelas ..." -#: app_Main.py:10093 +#: app_Main.py:7669 msgid "Working ..." msgstr "Trabajando ..." -#: app_Main.py:10205 +#: app_Main.py:7781 msgid "Set alpha level ..." msgstr "Establecer nivel alfa ..." -#: app_Main.py:10271 +#: app_Main.py:8057 app_Main.py:8096 app_Main.py:8140 app_Main.py:8206 +#: app_Main.py:8932 app_Main.py:10193 app_Main.py:10255 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Se inició la inicialización del lienzo.\n" +"La inicialización del lienzo terminó en" + +#: app_Main.py:8060 +msgid "Opening Gerber file." +msgstr "Abriendo el archivo Gerber." + +#: app_Main.py:8099 +msgid "Opening Excellon file." +msgstr "Abriendo el archivo Excellon." + +#: app_Main.py:8129 app_Main.py:8134 +msgid "Open G-Code" +msgstr "Código G abierto" + +#: app_Main.py:8143 +msgid "Opening G-Code file." +msgstr "Abriendo el archivo G-code." + +#: app_Main.py:8197 app_Main.py:8201 +msgid "Open HPGL2" +msgstr "Abra HPGL2" + +#: app_Main.py:8209 +msgid "Opening HPGL2 file." +msgstr "Abrir el archivo HPGL2." + +#: app_Main.py:8232 app_Main.py:8235 +msgid "Open Configuration File" +msgstr "Abrir archivo de configuración" + +#: app_Main.py:8254 app_Main.py:8600 +msgid "Please Select a Geometry object to export" +msgstr "Seleccione un objeto de geometría para exportar" + +#: app_Main.py:8269 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Solo se pueden utilizar objetos Geometry, Gerber y CNCJob." + +#: app_Main.py:8314 +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" + +#: app_Main.py:8320 app_Main.py:8324 +msgid "Export PNG Image" +msgstr "Exportar imagen PNG" + +#: app_Main.py:8356 app_Main.py:8561 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "" +"Ha fallado. Solo los objetos Gerber se pueden guardar como archivos " +"Gerber ..." + +#: app_Main.py:8368 +msgid "Save Gerber source file" +msgstr "Guardar el archivo fuente de Gerber" + +#: app_Main.py:8396 +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 ..." + +#: app_Main.py:8408 +msgid "Save Script source file" +msgstr "Guardar archivo fuente de script" + +#: app_Main.py:8436 +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 ..." + +#: app_Main.py:8448 +msgid "Save Document source file" +msgstr "Guardar archivo fuente del Documento" + +#: app_Main.py:8477 app_Main.py:8518 app_Main.py:9437 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" +"Ha fallado. Solo los objetos Excellon se pueden guardar como archivos " +"Excellon ..." + +#: app_Main.py:8485 app_Main.py:8490 +msgid "Save Excellon source file" +msgstr "Guardar el archivo fuente de Excellon" + +#: app_Main.py:8526 app_Main.py:8530 +msgid "Export Excellon" +msgstr "Exportar Excellon" + +#: app_Main.py:8569 app_Main.py:8573 +msgid "Export Gerber" +msgstr "Gerber Exportación" + +#: app_Main.py:8612 +msgid "Only Geometry objects can be used." +msgstr "Solo se pueden utilizar objetos de Geometría." + +#: app_Main.py:8628 app_Main.py:8632 +msgid "Export DXF" +msgstr "Exportar DXF" + +#: app_Main.py:8656 app_Main.py:8660 +msgid "Import SVG" +msgstr "Importar SVG" + +#: app_Main.py:8686 app_Main.py:8690 +msgid "Import DXF" +msgstr "Importar DXF" + +#: app_Main.py:8716 +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 "" +"Hay archivos / objetos abiertos en FlatCAM.\n" +"Crear un nuevo proyecto los borrará.\n" +"¿Quieres guardar el proyecto?" + +#: app_Main.py:8739 +msgid "New Project created" +msgstr "Nuevo proyecto creado" + +#: app_Main.py:8841 +msgid "New TCL script file created in Code Editor." +msgstr "Nuevo archivo de script TCL creado en Code Editor." + +#: app_Main.py:8868 app_Main.py:8870 app_Main.py:8905 app_Main.py:8907 +msgid "Open TCL script" +msgstr "Abrir script TCL" + +#: app_Main.py:8934 +msgid "Executing ScriptObject file." +msgstr "Ejecutando archivo ScriptObject." + +#: app_Main.py:8942 app_Main.py:8946 +msgid "Run TCL script" +msgstr "Ejecutar script TCL" + +#: app_Main.py:8969 +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ó." + +#: app_Main.py:9015 app_Main.py:9021 +msgid "Save Project As ..." +msgstr "Guardar proyecto como ..." + +#: app_Main.py:9055 +msgid "FlatCAM objects print" +msgstr "Impresión de objetos FlatCAM" + +#: app_Main.py:9068 app_Main.py:9075 +msgid "Save Object as PDF ..." +msgstr "Guardar objeto como PDF ..." + +#: app_Main.py:9084 +msgid "Printing PDF ... Please wait." +msgstr "Imprimiendo PDF ... Por favor espere." + +#: app_Main.py:9262 +msgid "PDF file saved to" +msgstr "Archivo PDF guardado en" + +#: app_Main.py:9284 +msgid "Exporting SVG" +msgstr "Exportando SVG" + +#: app_Main.py:9327 +msgid "SVG file exported to" +msgstr "Archivo SVG exportado a" + +#: app_Main.py:9342 app_Main.py:9346 +msgid "Import FlatCAM Preferences" +msgstr "Importar preferencias de FlatCAM" + +#: app_Main.py:9357 +msgid "Imported Defaults from" +msgstr "Valores predeterminados importados de" + +#: app_Main.py:9376 app_Main.py:9382 +msgid "Export FlatCAM Preferences" +msgstr "Exportar preferencias de FlatCAM" + +#: app_Main.py:9402 +msgid "Exported preferences to" +msgstr "Preferencias exportadas a" + +#: app_Main.py:9535 +msgid "Excellon file exported to" +msgstr "Archivo Excellon exportado a" + +#: app_Main.py:9544 +msgid "Exporting Excellon" +msgstr "Exportando excellon" + +#: app_Main.py:9549 app_Main.py:9556 +msgid "Could not export Excellon file." +msgstr "No se pudo exportar el archivo Excellon." + +#: app_Main.py:9670 +msgid "Gerber file exported to" +msgstr "Archivo Gerber exportado a" + +#: app_Main.py:9678 +msgid "Exporting Gerber" +msgstr "Gerber exportador" + +#: app_Main.py:9683 app_Main.py:9690 +#, fuzzy +#| msgid "Could not export DXF file." +msgid "Could not export file." +msgstr "No se pudo exportar el archivo DXF." + +#: app_Main.py:9736 +msgid "DXF file exported to" +msgstr "Archivo DXF exportado a" + +#: app_Main.py:9745 +msgid "Exporting DXF" +msgstr "Exportando DXF" + +#: app_Main.py:9750 app_Main.py:9757 +msgid "Could not export DXF file." +msgstr "No se pudo exportar el archivo DXF." + +#: app_Main.py:9795 +msgid "Importing SVG" +msgstr "Importando SVG" + +#: app_Main.py:9803 app_Main.py:9858 +msgid "Import failed." +msgstr "Importación fallida." + +#: app_Main.py:9850 +msgid "Importing DXF" +msgstr "Importando DXF" + +#: app_Main.py:9891 app_Main.py:10082 app_Main.py:10147 +msgid "Failed to open file" +msgstr "Fallo al abrir el archivo" + +#: app_Main.py:9894 app_Main.py:10085 app_Main.py:10150 +msgid "Failed to parse file" +msgstr "Error al analizar el archivo" + +#: app_Main.py:9906 +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." + +#: app_Main.py:9911 +msgid "Opening Gerber" +msgstr "Apertura de gerber" + +#: app_Main.py:9922 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Gerber abierto falló. Probablemente no sea un archivo Gerber." + +#: app_Main.py:9955 +msgid "Cannot open file" +msgstr "No se puede abrir el archivo" + +#: app_Main.py:9975 +msgid "Opening Excellon." +msgstr "Apertura Excellon." + +#: app_Main.py:9985 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "" +"Error al abrir el archivo Excellon. Probablemente no sea un archivo de " +"Excellon." + +#: app_Main.py:10017 +msgid "Reading GCode file" +msgstr "Lectura de archivo GCode" + +#: app_Main.py:10030 +msgid "This is not GCODE" +msgstr "Esto no es GCODE" + +#: app_Main.py:10035 +msgid "Opening G-Code." +msgstr "Apertura del código G." + +#: app_Main.py:10048 +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 "" +"Error al crear el objeto CNCJob. Probablemente no sea un archivo GCode. " +"Intenta cargarlo desde el menú Archivo.\n" +"Intento de crear un objeto FlatCAM CNCJob desde el archivo G-Code falló " +"durante el procesamiento" + +#: app_Main.py:10104 +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." + +#: app_Main.py:10109 +msgid "Opening HPGL2" +msgstr "Apertura de HPGL2" + +#: app_Main.py:10116 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Abrir HPGL2 falló. Probablemente no sea un archivo HPGL2." + +#: app_Main.py:10142 +msgid "TCL script file opened in Code Editor." +msgstr "Archivo de script TCL abierto en Code Editor." + +#: app_Main.py:10162 +msgid "Opening TCL Script..." +msgstr "Abriendo TCL Script ..." + +#: app_Main.py:10173 +msgid "Failed to open TCL Script." +msgstr "Error al abrir la secuencia de comandos TCL." + +#: app_Main.py:10196 +msgid "Opening FlatCAM Config file." +msgstr "Abrir el archivo de configuración de FlatCAM." + +#: app_Main.py:10223 +msgid "Failed to open config file" +msgstr "Error al abrir el archivo de configuración" + +#: app_Main.py:10252 +msgid "Loading Project ... Please Wait ..." +msgstr "Cargando proyecto ... Espere ..." + +#: app_Main.py:10258 +msgid "Opening FlatCAM Project file." +msgstr "Apertura del archivo del proyecto FlatCAM." + +#: app_Main.py:10273 app_Main.py:10277 app_Main.py:10295 +msgid "Failed to open project file" +msgstr "Error al abrir el archivo del proyecto" + +#: app_Main.py:10335 +msgid "Loading Project ... restoring" +msgstr "Cargando Proyecto ... restaurando" + +#: app_Main.py:10339 +msgid "Project loaded from" +msgstr "Proyecto cargado desde" + +#: app_Main.py:10368 msgid "Saving FlatCAM Project" msgstr "Proyecto FlatCAM de ahorro" -#: app_Main.py:10294 app_Main.py:10330 +#: app_Main.py:10390 app_Main.py:10426 msgid "Project saved to" msgstr "Proyecto guardado en" -#: app_Main.py:10301 +#: app_Main.py:10397 msgid "The object is used by another application." msgstr "El objeto es utilizado por otra aplicación." -#: app_Main.py:10315 +#: app_Main.py:10411 msgid "Failed to verify project file" msgstr "Error al abrir el archivo de proyecto" -#: app_Main.py:10315 app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10411 app_Main.py:10419 app_Main.py:10429 msgid "Retry to save it." msgstr "Vuelva a intentar guardarlo." -#: app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10419 app_Main.py:10429 msgid "Failed to parse saved project file" msgstr "Error al analizar el archivo por defecto" +#: app_Main.py:10466 +#, fuzzy +#| msgid "" +#| "Save cancelled because source file is empty. Try to export the Gerber " +#| "file." +msgid "Save cancelled because source file is empty. Try to export the file." +msgstr "" +"Guardar cancelado porque el archivo fuente está vacío. Intenta exportar el " +"archivo Gerber." + #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" diff --git a/locale/fr/LC_MESSAGES/strings.mo b/locale/fr/LC_MESSAGES/strings.mo index f4add9b159ddb4b884682b70ffcf7613b74514ac..3a99c9512780dd49fd84e91629c0653bbeb9c7f8 100644 GIT binary patch delta 67182 zcmXWkcYsdE8prXo`>x)5XIER@vU=~m_gEB8kHrL~Sf5r2>^!P z?v8sgL%d|v<6}~u?}bxHO+z%Q=e1BB8jeYDJ*vlhumGOIg7^swVZm4-US8~iiojg_ z40k!hV}}GIG#)$9{v8H85Qlc2?}by)NGstHED<-vtB4`-LcH8q8CCC#)o>e@!H?Jz zOUDoK>f$=AkMFP&)=CiKRmWLa53ge*%tP1$I2wJ;;dly}a4FWr{g?pbC$baMqC%Mw zi(+on`5iGPjzyh68Fl0NI0_eGEX%Wcc3Neg3hQp z?SqA=1)cZ=b>eH(14EKp zdm_{gQ=@twiRxGZtd6BI94BHLT#GvY0Or8oum-+EoQ? ziBejYXUF`U&eWr{tC4ULQ;izZ!r>eeRyiSJ{Ky2Ww4ai ze;o>WXqbZ9fVN{Qyoid#6V%AwV+u@>#_GATGxf@t8#iDyUO`1Bep(xO6V&y~P`R=T z74fr}SnK~P1#KvgFh7y#md>(wL3*2#v>D87&M4HJmqc~28YaaisK|6fP31sbfum3n z$eJ<4ONaSTQ&a=fl7C)v*DxTHEuXQd3nro>G7H0T6KW)9P*d>`_2B$;(?8;b++YxG-DNDyHm?2fsp&vX8Qy5V0~3}4_>%$+&J`x3X~IINH* z#2bxAaWYoV8sb&P3(mCJELYm0=Dsgx!O_`R|0=AaL7_Z`3hiZ7Pw!!4eCv+a$!?)* zg*v|nM&eK`kIS$<-bHn|a-_A7L`8HzX2;{GDS961TaP}_pa;j#VM&q()zf^a5SKw^ zdwta2-vO1Rb5R@8M$|iGA1Y#3T>CB5T>p)_&nMKtlIFB`O?IDx4m8HR*cJ79orl_L zx8f}P3)P{KxoqUqQT0Wr2W)WdyIlPkYAe2iCGZAj##Fg&m6Sk5%GM;~K+ zt^dC%Xx;vY3Td1uo6|I?q{;2-g;B?=q8`)~bzK`&N4h%)y7p1dsi+6e#|F3!+bc`VA_?-#XVie?SdrC$_;u z=qprN3R;hHqArX=J+Qc|S9kRWuHM1bd!V-D;iwMJLUm*@X2VaEO z9XR0XzoDk=_rh-d|3!n6sgS~Nlu@J8C%m+sUlGHp4?=BlUn9%f_qI_`vRtzUFQklpxn##^+UsI29E&<{ z6Dnseq9XPumczHG&=)Uj1E_|IKwVT)cSUXSeX${q#CTf&=P2mJTi6-jpr)WrIje`1 z5Amu}?}~MCGk%U<1&dfO)KqeLUSR#}2dd}(1a?12xlInVbRSLOyG zp7%YTqMoU0i1!ko;8?ssz8C*cId97pRTNpX3^*p+>d%mCB_ebjxYpst&Pf z)QLW71T#@@w?(df9qPurP|0)_)qy9@*e&cQqb#VYZH)R9n}yMM64Pq^do6A5(xK+0 zD8|H6s0UX>MW8OK11+3g-SI)Fbw0+mPeF}zfvc~^rqs8(_V}%A3eupjq==%RJ-HHU z`E_vhNv^)y)lZ^s{0J5LH>eKAZEZhXrbH$4SZs~^u`Om~cT!|VqL$wREQ>qZu>L1e z_?LzeIHqlgHvzqNA>J^Uh{}!7_SV7jsFzh+S09Pm4;Eno+=fch`xuUKJJ@x(QORB1 z)jOh+b#w=}{%6vl3)i4JbR2a-!;bco%;z|l`j1!ztAA!An2FzqF!xx4_EDYfS1c#6 z9rf@oHh|H%fckz^BwBQ}opPX0VHpkMu^>ivvj?}pcGL%88@z~hu~2tgM&qy*^{E)# z4^SJ_2UODL?qP4uQm85Ig4!3Rp|iX5F{bDNy@C_;{-=mT@>~rftB2ZQ~H)xn-vMeqMU6f`G4qmtLO~OH=Oq|KF{}FP|(Ofq2?}8 zKidz&QIRNx3UM{mc}-AL(;0Psf9E*V`EyZ`TZY+j8!88GpjJ<4e?B}g0)s#Q52sLx zhAS9_83x!+RR{HpgfB5Gu0oCQIA*~|sH96c&^|&-V-f0|P?1^WT#t(IPFKH(y6)aU z*1rxU8)PTs!{9najj$u?E!YRk<0jMy{zio|(O~=JN{c#wI_h2U4JuMUpw9aR6`7N$ zxxa$SjT?hm|HUc%L4zKgX-J4S4~wHBaTc{Rh77eHXF_c>b+7@BLcPt-<5+xzdO)vX z_TYY)l==wlg)^}benKToQn}hUqvTZ{iFb^o7lR%n=r$OHU+u0}=rHWtM+ql3qNuRaBB98*yzo_87AmDvP_K z=5hvVZWlV&p_b`R)DE`~l_Q5y$$Jm=diKUz5@$dy*9w?P>%S)jjc6)r-L6Ef|05WV z*PS0wH_9;1B2oes%7&;1c1GpGc+~wCq24K5QLE)L>i+MY8OC#+)_++Fy08r@^aD{n zpMnbg8q^K;qgKm3)B`@D&Pz4H>d~mW1S{515J?zyj1%Y(njv$55-}DQfD{ zO}0OjiuNh!LETUx8;iQZT-4sa4t3*Q*aUw?O;M&P*74k^^Gc#}s21kNjyNA@U`fm| zHN-oJpP{BK$23b`KZ=4LP!WeXZJ}(2x=~xy1AAj7oPY}D2~^TPz`E@9 zPf+KT{wl<4fsIf}`aLT7&Y-650~W({b6Nj-U?U1T!AE^4Y(UNBIaEZhqB`=(`3|-0 z;?A?FNRFD*OsMnnp>n4TDnboV5&9f;zu~Svbsp@C&5$=x~@JcLDwTcUD5(pgF1o zy-`Ut3e|!6sCU3>cYKFyKaTnixPpq*4OC?QM7;xE<2y|4F9`8YQ%JVZviT0G=Z{fy z`3@DzB;VLC4zi)9rVi@Hjd2CGb?t#gAznx7aZ$^%mvav4LuR}45@w<9zobxvLh8l* zkVq2MMP0aNNr?9Yp2TPz`K`STw_r}{=TX=FhdRH|QtNng)SP#9jztY%3F>9F1@q!* zWJ-MR0|m`#-eqPj)RgoCoj2Ik7oxr)ccXT~ zcc>k($O;XN^;d>MQ5yQ8l4Kofd0fX5n0%#uv(-g)WE_U$Cd`LtQ0x99mc`Vo%x0(u z&Uf_-sQn}PYTFOWVNI?7KCWRmDiVKTIL2FJt0E6-Ln?;B9S`$UuY+}QB-X*xs42;? z)~2EnD(O0+uJ4aJZxm{koIyXF!Ziw-qxYz+PV}8+eFjuAMx&Ck0%~fSV;J_r;Ehq& zjlvu_-5viK^`PC(qo`GM&eiXJ$NJZZp3t>(1<#rlCcl! z!l9@he~C)YnW+6?i93DC@2RW zqvkYpD}U-8!k&-Xn7VAU8-0sf4I3~u?!^{(8Si1ipKJNfy$}zu6;Rb zBifICc?y3~_!9GNw~%gkoRxYbL|gzu>KX=m+pkno%X|HJk$kcP&cTGdO!oz)O1CKa0qHu%yjL`Q0M*N+K-}E z%N6X1PcR48-(>?Bwu|*2NyAq(MBr{zXl`K@jJw-@D^?#1P+y2T@1*l7D(e&Pu^Sgg z)!U$wZY(NtD_niA^A={O{i9Do8%4Ig)=&*q?~O{n*{Db?KxO-K=TE4}9Y>A$imN|G z<;Dk8s8j5-Rg)EUeU!5j>UzH!1!Z+-RI+`IN~$xc3v%tZ8s7%Si~SKot`sNX?d7NWk^wTByi7|GHp-ABRytRQ`(EXilSUd<`}72dEK$ zKy6To4p}`tD&+Z{)llcRM@_*%)P2UG?mruq)blZ^*8d6>@F&zdJ%(Cdf1;L=ci8ra zFw~9Gp*oNgb)zDv4wpyePHoJOeK0RB#nN~h8)N(<_P1m@psy1TQBbnI#4vo13YB-% zg$%XV_d{(|U!cyPgG$bYsC{AuY6_2Gr4SzUt6Be;z4hiDw;#)YLp|rhan`?Xe3b^> z=q@Tmf8qD|0#kFNKAjb>4pTI)#c@vJ1A4WW3VC;9cEet%(2vAHI1ZIO?@=AedDR|R4z=Fv zU|(#9O44(vkzYcM@D4`cGgKs#T(iigLmkh94A}RIQ_xmf0d?aJsF4jot%@EP$-Ul zP#+5GP$Sra>c}C~+@8Zwyo?(0HB`>rbM+^v4!m&&Zd+s%p$3p2b-V~_02R6MqU!XcV5tS43QB(5+ zYN~c(4m^aK(kH0MzW3b;fqS;x5}-avN}}ehBWljNqvn1PD*K0`Za4xJ`qh{pkD(s$ zFKR%s{;(fB@}TZl4YeBTqR#U>y8{ETCk?|f7d}9RJlUT%lGLb?M4)mbH);w>qC#E+ zb;CiJ9mkW1K}B!^YRYCi7h^1C%~}eXO6y8StOqc#~i1!mV z!$X+pFZ>6sBeRO7cYV}g6 z4z@%^q$eslN22C*0cxa6Q61ledeAP^b!Sl#_#L&+JV8xyt7+7 zL_-r?fLeZkqmnK4KenFRVOHuxQQ5r&wGSLdz2zRGmS2LG_J`1=QOk2O>cKyvrfxfG zV>*tC_GrY2OJ_vQ;Fy~a~5>zNRqmpcos~>irLq+Dct3N_T;*B%r zYnviJ1qF>P8!E&#Q0uk{YASl6E*yioaTcn>dr%!Xg8CWoJnFjVsEsPl8~Xr>kNV9= z3)DyGAS{Dhktz4Re<)~Aj{DYjvI?jTqZ2ArGf*AafZAGjp{DEtM&Tb=0aN~Ke@5IK z^HKi>^%Z>_b)S2vRT1*e-We$|o7R8rV1Zwcp+>R*HPWA*cTtf@^xiJag3;7lxcYSG zVbrSmfF-ct2TSVDQ3D!>n#xV6f$YaZdTU*E2NM2gSsRXdXpcsXpdD(18HT#?WK;+b zqvkm5qw65*##vBPQ3|yR8ljS~3)aM*sAanyeP!`J3ia_1)Z7;RWFHRYP#aP^)Qx@Y zg7Z=x$YODkSTsPBbSC=wbP{2FZ<2o3Ip zld%vdZo*u67uB(ZVWGjEr$V)7L_N4VhGP>{ZVX0sU=k{KzCsOP1u6-5qqg>UVZNPM zG=^PR5tUSpQ0sa;YOh{{8p$41F5GkNZ?O&agfXrCbLVJO=;xy5d@X9~cDnj2)Uu7` z#|jOGI1wuO@}YLZTBtedh}!A8yZQiBB!)Z3Ij5nfY9407ZK!O&=zN6QAwQvVDnV@1 zkEEanmUlM8e$;!TmgOB(h||Wg8$_bkcVVo8#jra1sN_0^RWU`}(BO{P8Y@wshMJ0V zm>GXZR*Ub2#S0B?r6o|W*>q=(LuK_r)M~hnn$yRwJuJRWVS3a^^P-NI z#NaAGy*0aFaU6refB&c&@54|?d@LlRho5}=YRD{8MVjCw#PRMw9~J?KkR z&MZPr)fU&j%e9|I-RB;r()xczK_O0%&<>@q56k|whIrbmr9CoaT}s1AQbUr81xv5hb>DqAB_TV`=oQZ_+#XaK51U!vx6foorj z3i%#X$4;Oka2vIXUZFaaDv8}U0*6yClZ5rJk?*8I4>*d&@CGWWQX~xxZpCd;FR3Z6 zz8SS)-9Y6^zGRjoMNm^&4>hn>m;5Vp&oJz*}uSMY|4a&+~$?d}0s2evz zJ*X8b88^A(Kf2>PQ6oQqn(MO|f>%)yx{m6|Bh-1%UHd20XM93Gh4myUD)gCA2MRfh zp+Z**HG(RrEUu4AqMq*f2-F9~MAXQpx#Npb5!r;gekUs8hf&GupK~Ytf#EbfclD$x zLxb<_jHu9;Ky5H>Q8yZidf=C?KEt`txeE2(-;5ghNmNI!p*r{{(h=W#O+m>LNEI6V zlgu>uC-pt32dzwPq5K|OQQwQ&yVIqycSSSQ>i7b4;#_Qt`%oRuls42Wk7bYz#~X$E z+WrZX>-~R?fiG+72HGpaztqGUqsK%Y@tq?#WtSQs8Cizjkpn( z#gV8H?nS+BU*dOIG^;Jc-?0+)KsK`)`dV(&C@7>yP$Ldxw~)q0C0_*Ufw@u1Qxr>) z=9S#>(UF$@Q&36u73%yos2uqbmE1er@e`=kax0Scub0n#8Z_4*QCS@)hb2i`)H2M4 zYA@*8E28#`hN$biqTUfc>Ol)o8_{}H==Y&=pdL%zXcp?m zOPm`~5!j7-z#-I@d=`TvK}FyL>Ve5}TO@Lz>J?Bq(iGLP(Wv{+MMd0SNkKRM-nk3) zz@w;;pFv&tKj%x=9y^cSAPp*%Sy2NhgbI0itc6Wc%WtJS{wJzq{~!bB&wumUjnX=^ zp&}B6T6Pss9juP}K4|Rfvrrvdj5_}ZtbqqHxV7eUs|IzS)ToeWLPe|~2LJtEbqX3m z6V%*xMm?|(YIS^py5Tld$akPdcocQsP1JP{o&TUB_a7?63G>@^X;2-B#EzH`V{84- zrceaGL51)f7R1}A5habXP_{;ObR8-=ccM0!gQ)9nqaN^=tN(*qeqI6VNKDl6B(9zs zeO;J^LNMg02UI|1YXeswjtc!04DN`i965;^=>^n|_Xjq|ECuZ=dIai$n=mhKLp|p% z>iSm&-TVJP8nh+GjkX75LxngO>IUUdp{$DPU<1_o9Z;WYBT#cX7d0gturF>$eZ=M} zWG}Z47(sn3Y89+1#QM)dVJi&^)fMM0R1fc=Zul3fBX3a=`-F-_{K6K2B&ZH%Ms+YR z>H(#lwNTf!L_Mb~Dj9qE6qG!pQ4g4cy1{H$U+(-4wUKOg_4B9*TyynTsMYYn)e{%7 zh@?V|I3FsB>!Ge|gxV4P-W0SRC!t2P7?tJAQK8+8io~y|E%vPQ5vt>1MO~Jo&QF6% z&H||9EP>(J1T{s2Q8_amiHPrgOFbfPENbmpk6x8Egs2(0d&Czw#$bU!8wf?Rjchb3w6jnhT7^q+3x0<6 z%UF*5go?;6=W$f>UPWE^KU5^1pw|0a)Bxg^wS6KBYFV}~%lg-s%K{pz;#JIr5#>UI ze|l95%TZs5N~Y_mjpz+(gNiP1Uox#wt794JC!Ir>8$V+C5Y~T%(BMDq>{-!r;XKyk zcz7k>w%ERv?5Ek?Sc3zB%9ea}up0H=SQ)ot3H*o}LGdc~j_8Y8X6sPP>m+Km+((5v zq^d;I>Eq25j!hSawcq8r!)I-_2{b5I>RiAtvT z&IAo@nPx(TIvXlNWl`B)3zgI@P|4aIb^TD(c~da1*8hA84QN<_+UsAV_JhzycH?-c zeIc8(6lxteM4i_c``|FtDtL@~zzfvWeM0T5aU0wH65%-NIdPQU|C=c2g#1mc=Y^aV zFe&ZzP&e-A?2ek_zNn5&M~!d;s-wG5*PTOc?SHuA@7(b?P3?F%`Z^(+f<|5qwG}sV z_Cy^Y=UjkgsBc1z>`ZEZWks;MIZt-r)4k?)tBU` zY0w8p>=riSjJTG1G_r!c8>sak**etw8b3#MI7SbJMDAf7$QOj>Js>5qg9oUQhc?w4;%qQ6v_Oh&u z?qhp?A1u%DAMgYIgP-v4zIOcYexbp?D^j4pCGA=)%kdM=cmwPg8#Pf|`F5O%&+!(H z8OZwILZSVjQ2p~PFZtlm;D4cP{t%1A6YR_Jctd$h5`qy(0()t`AbWA-$k5stp9QpwvP)9{)^>*QB%-#JU^0g z;y~g!*+fPLE zeF{@)ID+-D;S{^UDpcq%VGc|^)qW#d9t%>Rf=aHvuKoh+QO`Eba%T`0qW+EZEPhQr z#&k=@#i(WLAEL0DLi!n@-c3A+wQ`U!hN5n89Q$FGukH0Z z4;6`6^FzJI7=<-4{Q~P)S1dw(FMfls@N+soYoT5Li3D0nd!I$2!T(5AipAPlS$|6@ zL~`OuOpPy>*jp{Z($L^vA{&ePz=&REQ&bz3&EH~fyn@;v!j@YH^I<;fO;PO=unTU+ z8JK#7CGA?t^Sy|bq25MZh$peyDodIat8K13VNu%Wqi%H8S!|6(ZYioGColrvU=K{Q zHq`zbGT5H_E4+kFzYF!&V7_&%|49@sQOJgE*M|oG8UA=was)P5(zL{^)c?WEn0lji zs3ayQV*RlK?UPuO+UZVUB)-7%nD%@7wRMm6EtX`Jehdx%osT(KiT2oA?en}g)}=lVtKy$n67y}dh;&E2Zl|I;c+C0tHrBry zQvGBjEQ8gkcf_T*0asz|pKVV6ac16bBdd=UIX(yT;$_tLe~cYAb>XP3w;?JgT4QXS zidt23eF}wXSi94f-7VCKd3M>2TVgo%Z&4e}epGfh+HE2J8@0ow-eaq#2{xksJt{(B zd+p=4I<}*}$oZesZ?n&`dLL?INwPoG`wuJOBdqX?z1{L2up5;_<;EP;vVDviams`C zT~GkE16IT)H~{rFJb{Yz|D3T7@vhL{+R8_vGNI^om`LE(BbHQ;j@mN(^lPZMmkS3T zvmeb09XEZ{@;Z)6wwI`>NPoiig?6YNaRVx%|2gxVv|qoq#JpPn`zR=TpP){RI%T#+ z?fuiSEQX%8kXAsAY$7Vux17;uEJBk|=U>MnnC`6oc|rrMO#K*VyJcy$%Tcj#ou?=V^7NGqus-r2ch6dlV zJ#j1bOxNsnegXY0H2ikm-s9tL@LA1+-lKY+`j#b4T}()QGbX@&s2%VW7RQ*k?L(s+ zY6Gi`%KD`Lvya>K7=wCF)R$9!)IL)Af2{uq3SDW?4mTN<%?DiF``tQH4E5>N8`8qc9>!FES_f}pZ|eRN3hG(w`?mLY zL5=(m)CfOeH%#)tZaf^-p^2!_&qZ}~Gp5HKs42aK;rJG{AEbF`k*$I1a7$!L`R{*G zNJqnd?2b2ZGFE+Lzr{L-nW#T^^(2q&#!;A&_WBqL`=BB-1T`fSu_Z2b?H^E69Pckn z#?+WX>pvp}U04VeiHfKY)<%uAIcl!D;Ljn97>n!pQ5He_(4<$uAn+} z7j^zKjEON{+H(@129oI|>pu&H95m>{TBvo|6#HOztcllAt0MB1eLm+wCEsK$h^tWd zxq@01AFvBHer@$VsCvpbwlj{zT+}zeVf|~TyH0~fp7gDSF1<4|YCp(_+lv1~J*Uw-TkdUq3d-K;s5zU5O14Fq3Xh{6bO&|e zQ`GryQRjQ_?dO1)s3|FddOg=cJ$NXYHKB78S>_3~^a+rg9b<}d~hwE_)mc*hTgI`v@*Pp@=8q$2S zpIByNd+JAV9_D26%)tHlJ=O~e@E6A@ga(4kE`A^o{Pt^&lW5+EpJS1*Krlipo$F8o z+l=~Ia2F2J`hQ2E6b*f2*n>9V0_tUA27*6AT|q6=1hE3a|McQCY(PD8Y;zz^rv59= z#)feMUO4`VIWbmTvw*WDM$$eWztD|0QkaUl;st{L^{byz5h)Wt5X}CcaWwTnf`C^J z$75DJf<5ptszXf^S_ju*4eDhR1%f;0WYk-A9k#*;s2r=Dn1Pk0(4T_d%Ri##^cd=O z{4eUl0!i$_y-`WD88z4YP&slG725Nd6mOxD@wuzVNE!(Ku$mebky@x39F#QR2X8cl z25ktVP+9$@bB1#+>Ve;&E?nX2t5DZ%L|yljbGP#V>bhT18_-$QR(u%?;`OAy^*CWN z8$kqW739H0SQ?f6wNVdhff_+a)X1ly9=yQSzs1Vb*Q3sVj*84XR7YYY4+NKS0@U$T zJ_Vf+j#?(U-3gUY9jSvlu`Ox?>WW&fJunmYL3LoJJ3bH9;RUGmy&5$oTT%BpiiPkj zszZK^6m}p1>H#THH%x=^iFGE_jq;=n1lM^9Y)E|o@~^VIUoi*uuTtA8*n`@NtECA9 zzXN(=H1+A24-cT0-*aRi@V%(Cf#Al{6V=0!sAQaoeQ_~X#6;-=-b8HZyp9ocpkw-g zmkq~f2n7HC0oG>>1piZQSu!z&wC_MA+yNHPWuAm&+j3 zg|ko}D623Ee?g7pg*zUR*#=M;wG&o#j>dA-ccCKi0SjPMmO$|5iViqH>;Do3-LPiX zfc-%NhEsoxkr+Q44`3vP@Fevr*#p79beb&EZrl&6)4m$p;on#X>*ok~Q*bF(#XLC! z!MET5)P8XTeZ4I5=L!UW`7{yRP``>wvSPU{5~Wf5LNnCHF$wiO@Dpk|oj@h=87zU< zPyDhX?#lCCxWfSvNN{u5G2mDjR8JL)A<)L9)h1ub2@x2unK^|`2ytU-Oq z>_&YPUPWE^*45+ZvwCh+Zk0u?uEzOT|2nZV4eH1+ci>A@4lG2?{Wes`enXvq*ZBr@ z!+80vBN3?YgCeN&YNL*~ckP2w$u}K?9rr2d#NDW#pT!LL47H3BL|IP@ph8#y(_mxQ z-W%1yQK$|sLfvl@euf7y4@MTS{h|@-yJ7%ps{E-G^invAYcXrVK=7y9Q_jrM0dE8w z!(dd$UKO@vN>;?)nk`Weo{u`d4mGl0Q3JS%1u>+kb*vC-{a3@1`uTq%1&|8?1rJi`xZlQ5($?49BCW>mH!qhX0~Mow0;nUkImDuaC<9|6wD{QPPrp1UAr% z{RRbvFn=lQc}-N7wnL4qD=x-i*q&vWx^y7;r{crP*gGIiS=%?Vq0Wy+y*nzSrmQh) z&bzwfqh0$P+@|%vnu3;3t8x~BE~pz##w)Na9Me^>NR+|| z>g`ceG8PNqGSt?79y8%p^fmH-DJZE@RJ5Mw$7$5d;s88_TK^R)nf;v0Q8zq?W$_Ar zhp8(Eg1=KffJ>-%s}czQVk34{i{whIM|*{8tbY~eRI{wShgv=#P#aCM>bCcnN6qzk z=RDMTYp@IMMMWfg4NJ1(sPk)MK5T>SaT-pjbM9XJKXBi-$0*u07}&Dpzi!BJ|W5qn>pjJ*q>+QCqiPmqJkr z4N*xk1xw?4tcwp(BP(9tZdel)>JF$84a8z0{K5hCiFKlZZ9M0&CiS8X?So`2hEbo1 z8u?r#Iel*<1@-gV(S$bQfjlS?>IQilTc|6c_Jtm(B>f6CphKu- z_yINI_)RP_nNiET0LIb!FHS*oUC~(`)ziAD50XZx3tFRY*a;Ppf$sQ3REK7|_O+<< zce?rk3@%saedjyL^SuO3Z379%LDci1BC!e;f$vZc-0A8koj09NQ4#ut%BA?t0>R%Y zhojbi6I90spzb>kb-zg%{O^A+q@b_aji?*#z@B&nHK)b{#$$+-&);PK|He?9nvJ0W%p>uCyXLwhz<1jf1cxtNFgDpbhNp;pTy z)GCSJ(!Q7qUt7GpL4)2}$1%8kFahK|jQ(l}j+a4A zjbD?3mRl!O1p1(s<9H0mMW~Ht4@P64lSQH^>UCWfvtb8RhbN&vEM{R8p2R}@tAH>}FHx|V7UG1e)7jsabf!dn4qq6=_ z49Bo;_P}hYsqKqO>QR_M>wh8zMPL;wi#MY>bO06d)ZOi8zI-@=dNceLZ{tv0+anPC zHGAfs0k0$Vp*R_DqBf$gpWE*fmZGMlM6W>b51+3|t^X3eEu;%kbGsaMgF$`lC!mnN z0dEJ{+#h3M-u`^BVBrA)Zz<>19~cP!@%;;YNqx#-`*IpJ#5{rDbAHO9Hu59GY@nww z`0xL3Q_w1Sgvx>Us1PO|Zb_04^_@@+wHiJ{&Gle+d=x5j3sKi?Kqc*Q)OGi9GzPw~ z^Twl+{Od1R|4OzMG<<_QQFGX2gk3leb)%)I8}C8o#C0r;aYqJ%zsD-Y((Ls6sc zYq%|jQ(uI&a1UzL#2sTFDrHa|S&bUNDW8I}IWX3;y9g?2I$&vBh@asVRC1LbXIZ}t z8&Urq`(Tmrf#C1+*PuQ&Q%$ht7lqm>+oJ|F6qWspo&HJ+n!EL=3-_Sr_!4SkdWg!6 zr$deiK@ zMCj{+2nu~M8a3CeP|NKn)UvvO>iILwi3z7$y%^@A-V~J^V^9xRjvDz7sC9lEhv6k` zi1laK&bev^>wh#2nPyr@mZ5HV6cvFNxC{%;3IzXOurA@()Vt0O1pk9&-kd=2x7?Fa z>--Gr9q|dZoO6F=`#^InM}0U(;cnDE@Z>Ajy$UJk+KFXRbJHHR_fJHPWHD-;|Aar` zAE%xH73HRV2%;JAz9}o+1B@I_G z0!J>g*YHw2Lj7kfuJ*;&z8!l|KZD(|zRHR?H0InoccQ;x$1_&-$AMK7}lR6(8B6xH4hwVJ*_CE;XjjLT8W z{4J8azW0ejA{yc^w;zqtV^!+eu^aY69lwH_k_V^fTV-#}rWjlA|F;y>(~#A+OcG&$dRkNnGon6BhN7~35o&quM(vQ7uqIwd z?SzqQYzm@K^KzC0>92cwd31t#YC-USMpvp-NBd4igw_oxxaU27XlII3P4m83OY zdtX$@C!msbfva!9l++Kq`VCa%o}rd?$ak#&LKM z`bX3h6z>t7>Ewb3@5yr=^;QFGP~ zHOKRvKcgOW3H34wY_jkBRH&rvf|0lrl{0s+E51NIr{(uHg?&-anf1MIJJf0#6!I;o zIsFCW;1R5ZXHgwVu{q!^$3j>FFQeL%{$Q)90P20;9$VvF)XU}{oR5jOSZ;lX+LAZ= z6f{TMaXg;Ey4d(f>%b~h5`OQDyVW+DPWUbDiMCnJe2>~W_n=1l0QKOHsN_xelWlZm zFdp?TIFOCW?@vM5{P1U6mx1jr>98d2;ixQbg}Sg4>ioW_bvy;NzGu7kb*LmfgoW`Y zDi@ONFsq@ab_5bZ{`{YUzI6U}=G$ox?ul9^Yq1Pob?vElSrRsKPD3T_5mZPYpyu`; zRJO<7Z39S)n$j$&*KuA9*ZQwdL0Q`m^}q$Fm&b9;k8e?PoMVq2uZkM+5Y)(KIuE1n z^A59O#9oU;71Y$UMLl>j>by-@L+k${1uehueRg79R7ZxPZnPfNfwQPNeTJDZ{(ie* z9#lu`q1s2GUf)Ym*Y8EGn!BjyB>u(DFN=O+8hTSul8nLvxB|5UUPL9+Rn!La%o%#X zy(6#(?Kx4)Z7ynyU4`n<2UL#aIcQT6joNrBqmsVeLDs*P(O?=hcUw?Nwg+|LG3QxS zM=zs7{{S_Y-XZ$}ii^4~73#VysQcwY?Wl!O9jxeVh@sRw9`dcw*`3%8^%fkA%K8zg zB%0vr^HCemGE}Iyp|brVD%4LgCnh^=p)QTOPft`N2cjZ91+|55@+l}eE})X`6Y2qZ zkJydMqq4gP>ITzL4_two57}enpM=eqVQ0GrY<i$)BhVB>pK2eFO%R2i1{=sCPwY=Rnl?<4~bpfEv&RRD>R*?jQTK zO+gye{fc4mzyDW_g0|WY*btZC7<_>paNrsHlDUG~aFU+2msC~MNNb^Ts15eSFHuwQ z8Wr-izXiMv?Dd&ZIdtZneaiiTemD)~&s(;3z*5v_VL3dFO3FkR?1$9SsO;^7T5fYt zBmdU9)p-mRpfWnqfm1@9d+SycYG`A z#>Y`NzJ?0NtD~-Khq|uMCDy-^W;6|j@f*yKzo9}Ma@kfv5!88g zUA-ITpgsoG!S$%n?n8CpBI-deP#q7wV)f+Ctf(EfkWWE7Sus=uDxl`BF*d-V7?-&_ zi3<7UtM zJ7WXtyhoT(>p%TH`!!if=LC$y3BRE_a2<iaRA`X_9M;rH!pdNj7=`QGmoI$`Mt7OEAfma1427CuT+^ zPYqOZO+s~Ghw~^drhX9>x&D7!h`&Tdc0Q_un^C#42lc%W=0CUBXHHa>R>n%$8{6Vm z)E1lkg*y+GT$NETtDdME&&J?ZjM_i8qISM3?)Woz{DV85pjC+&es;_p$(cM!F8U&1wb2Yce= zf9ZhM{~HS0aN@kPIZlSk>inoAtASc2%}_V&hxlpIjEg-J!&~#M&0iTYN|s6_MGeiKP(uk(lqqpKszjizhUq# z6&4oU>vN*keJ3o6^RNn@#s-)oMp*FIX>pcD6^ zLi3k1eXOwHvZ{r;a4;%szek1ocU1DliX9f*(GsGjCKW3AqEO4O5^BT^QMof1wc$-h zEl+U<3F2mwkdwMKGy$b39<59`B3Y8NNP*ayKepqn**F)WR zDC$1*P_OMxSQZ}z+kJjWOkkm@fSSw3*bvvElIH^|R7n$B)@DH^T@F;pi=g)Mx)_cF zP|I+x^9OhQl=B6uL#YxG8J_Rur=S~FLS=OWXB*VI?~c0RIMiG&b?t{RK>e0Geh1aj zkEkh4lsGK-lTUh7JrdQ?LRcJ|WAOj~YYqjyboSyP3?vB){yV^7sL;Me{RovisYRd& z7NK4em7M)h$+iv^u^p%ZopIho?W~Wn5hhC(=1pTm>Y9x8{{@BD$-{zQCjC=}1%EEz z=G=~o$S&tm)J}OGf5e+OgzIOe3iDQB+%#d{O5B__%sYsU(}xBBJwTd_VZk46`{8J= zYn~}A`0om@XJY-IqhVcmSnw~Kjfk)Z{))=#3#icj>DvE6W%DQ0hLt?CnH806g;2}6 zK8B-@5x5kS;sMlsFQU%BuM_luuq-y$Nl+)|#tm2om1K`mUoK%;ZP_J2-8ceuenn>! zcf1>_gCkH|_cYYovS_xj;IC*(V^iw>R}`94_zT-%mF$-NYp^2q_oyD1jkFD?KK7&D z43z^XP#p}-VGm4)%I@5_04t)B^d>4fe@ErY3uL+bUPw+0d2ZB(QWO=Dny92}hFaGh zQ5~6&8reGMPSjR?9ChO-s0V&PUGL?xj>kiFG%4yixiP7}|I1RyL_-5q5Bs6AdaP^T zg`ZKsjs-$IuUu}+fqr?yg8v|4A}T41=Cvs)kGfw+)J{4UHATx%t70qaC3gUmY5iYy z4Np)#49jO1X22}eOQP0mTU7EbKUs|Zf|2K{(-UZ0qPy`H!64Dpd#nxw+JUj zKZ<$=3R-4$P$#rNJ-9n+DyE}u@QrI&?w85l&B8X zMn$Yq6zg9nw4p&G>W7NJbkxgY4eEjes0SQFh4vcO!*{4OkGh)`8leCE3q{G zgtPG_7Ql%G?Jc^aAnQMzhTAkKv|hAjeF{_-H%HBVU(AD-P&Wt^vaPf*=BM5Q)jk=O zJG)VH{n8m)*ycPj>I*9p74a%Q1%;vk=EGK~5l(UK>roNdhI-I$%#DA!Fo#xD~V{0(Yr{GIxGJc-lFh6Vpwe~WUqs$!S74yQ(KOnEVu)_*bA zP!1Ksny3)AK<#Y3Q5(r@)cbog>UDb2)&IjJ)H7GG>k6TAs5&Y#-B1zegS!7nOoP)f z_~-v?+zC6dItPwo6eg({7W^j_6;L^_6ZM_2A4_43O7_;QfXbn1I09FrLY%d-WqCf- z+?PNNtR89#J5^@=XQS{14eH@?cfw}W1&2{LzK-Ge5;d|ERV<{1aSip#sO9toHC6wj zLL9fMwWmOhJOXt*3bpT)ugdyYLt`4WY&xTM!0ygrs10T^_Qy4-b)K$TSnyXiwNX3e zkEr&`sO*kY-Rh-L`$lgpf{U;No<}XeB7O~fa4%F3`=KH-8pCi6DhW5B*7G(Tjt@{< z?`JhFLOoGC=y+FOhViNIbRI?J$OY6C{E2#=|DJ+E5x17zC?je$6h)m_1NGpxs0(Ie zI4*Pb1E}+VLv6M9P!G;r+ajAEb5Spcic}9&q-S6kt^YX`l;!WSCT6T-J5_g7mi~-t z{|yz&40UZose#%F$D%s$J?fot0Cn9>ERS!nJ{GTMpZ8NxKS$ic;D7%kLw&nZb=00e z5Ub!c)SO*##%o~Tb`?-J=;Qnz_28#i4dXNn3;wBh15|w>*225k5ThEI<1qOD|8a$a zLi`V^1KAr}M9N@A>g`c;y9$+zzhF7Mh1oGv6Pvm!*pYf$RFWM;C3p6ww%m%MUOshD z_xl`u&Ha}Yw7wT(XIz0=zj2#c1d?Mn>NQat$~IJoccV6p~?A^iHSrJ1{xZ8(iv+YUGzHMc)I|3%%f zWE&euHOxu94r)0MLFLXQ)W)+7b^ggVtbd(wl?H|6A=btiZS9k*A?n0wsO7T|^Wg^6 zoL_hCuQ3Pp*zGJC3!u)ggk7-->i+vs$$1?$)vtWlkf6PdJQ8(bXH=+%pl1bxd z8Pv<8mep^l9Ln;Ub)+c9rd}CKVjXONld(G9#FiM@DfmI-dt)i+gdb5Ih}qfJcPgw( zy&gv6eALvOL_HvF7mH99R77&2LRuLW!PXdsy;1LsrKk;UKWfS^V(|a}>yKc8maZ0} zbXb9ECDe^3qC&jD)z_e=Vux%0AL_wRQ7@~Q-E1l|q0VcA%AxV7NY6%vegh`Z`~Nrv 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 delta 65275 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 diff --git a/locale/fr/LC_MESSAGES/strings.po b/locale/fr/LC_MESSAGES/strings.po index 568164f5..be212405 100644 --- a/locale/fr/LC_MESSAGES/strings.po +++ b/locale/fr/LC_MESSAGES/strings.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-10-24 15:54+0300\n" -"PO-Revision-Date: 2020-10-24 15:54+0300\n" +"POT-Creation-Date: 2020-10-24 19:45+0300\n" +"PO-Revision-Date: 2020-10-24 19:47+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -112,24 +112,24 @@ msgstr "Internet" #: appObjects/FlatCAMCNCJob.py:1750 appObjects/ObjectCollection.py:126 #: appTools/ToolFilm.py:238 appTools/ToolFilm.py:384 appTools/ToolImage.py:112 #: appTools/ToolMove.py:269 appTools/ToolPcbWizard.py:189 -#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:526 -#: appTools/ToolQRCode.py:573 app_Main.py:1753 app_Main.py:2581 -#: app_Main.py:2617 app_Main.py:2664 app_Main.py:4410 app_Main.py:7128 -#: app_Main.py:7167 app_Main.py:7211 app_Main.py:7240 app_Main.py:7281 -#: app_Main.py:7306 app_Main.py:7362 app_Main.py:7398 app_Main.py:7443 -#: app_Main.py:7484 app_Main.py:7526 app_Main.py:7568 app_Main.py:7609 -#: app_Main.py:7653 app_Main.py:7713 app_Main.py:7745 app_Main.py:7777 -#: app_Main.py:8000 app_Main.py:8038 app_Main.py:8081 app_Main.py:8158 -#: app_Main.py:8213 +#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:527 +#: appTools/ToolQRCode.py:574 app_Main.py:1762 app_Main.py:2596 +#: app_Main.py:4333 app_Main.py:8065 app_Main.py:8104 app_Main.py:8148 +#: app_Main.py:8174 app_Main.py:8214 app_Main.py:8239 app_Main.py:8293 +#: app_Main.py:8329 app_Main.py:8373 app_Main.py:8413 app_Main.py:8454 +#: app_Main.py:8495 app_Main.py:8535 app_Main.py:8578 app_Main.py:8637 +#: app_Main.py:8669 app_Main.py:8699 app_Main.py:8874 app_Main.py:8911 +#: app_Main.py:8954 app_Main.py:9026 app_Main.py:9080 app_Main.py:9350 +#: app_Main.py:9385 msgid "Cancelled." msgstr "Annulé." #: Bookmark.py:308 appDatabase.py:2089 appEditors/AppTextEditor.py:312 #: appObjects/FlatCAMCNCJob.py:1672 appObjects/FlatCAMCNCJob.py:1862 #: appObjects/FlatCAMCNCJob.py:2311 appTools/ToolFilm.py:582 -#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2672 -#: app_Main.py:8457 app_Main.py:8505 app_Main.py:8634 app_Main.py:8771 -#: app_Main.py:8839 +#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2604 +#: app_Main.py:9320 app_Main.py:9528 app_Main.py:9663 app_Main.py:9729 +#: app_Main.py:10481 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -161,7 +161,7 @@ msgstr "Signet importés de" msgid "The user requested a graceful exit of the current task." msgstr "L'utilisateur a demandé une sortie de la tâche en cours." -#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:328 +#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:327 #: appTools/ToolIsolation.py:1436 appTools/ToolNCC.py:1366 msgid "Click the start point of the area." msgstr "Cliquez sur le point de départ de la zone." @@ -171,7 +171,7 @@ msgid "Click the end point of the area." msgstr "Cliquez sur le point final de la zone." #: appCommon/Common.py:357 appCommon/Common.py:459 -#: appTools/ToolCopperThieving.py:385 appTools/ToolIsolation.py:2348 +#: appTools/ToolCopperThieving.py:384 appTools/ToolIsolation.py:2348 #: appTools/ToolIsolation.py:2400 appTools/ToolNCC.py:1431 #: appTools/ToolNCC.py:1483 appTools/ToolPaint.py:1216 #: appTools/ToolPaint.py:1267 @@ -269,8 +269,8 @@ msgstr "Paramètres de Fente" #: appDatabase.py:207 appEditors/AppGeoEditor.py:3287 appGUI/ObjectUI.py:219 #: appGUI/ObjectUI.py:570 appGUI/ObjectUI.py:894 appGUI/ObjectUI.py:1876 #: appGUI/ObjectUI.py:2693 appGUI/ObjectUI.py:2760 -#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:681 -#: app_Main.py:9730 +#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:683 +#: app_Main.py:7306 msgid "Name" msgstr "Nom" @@ -345,7 +345,7 @@ msgstr "" #: appDatabase.py:275 appDatabase.py:1778 appDatabase.py:1814 #: appDatabase.py:1877 appDatabase.py:2162 appGUI/MainGUI.py:1299 -#: app_Main.py:9728 +#: app_Main.py:7304 msgid "General" msgstr "Général" @@ -500,7 +500,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2104 +#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2108 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Gravure Z" @@ -796,9 +796,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1210 appTools/ToolCopperThieving.py:1461 -#: appTools/ToolCorners.py:411 appTools/ToolCutOut.py:2157 -#: appTools/ToolFiducials.py:786 appTools/ToolInvertGerber.py:234 +#: appTools/ToolCopperThieving.py:1206 appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCorners.py:412 appTools/ToolCutOut.py:2161 +#: appTools/ToolFiducials.py:788 appTools/ToolInvertGerber.py:234 #: appTools/ToolInvertGerber.py:242 appTools/ToolNCC.py:4135 #: appTools/ToolNCC.py:4238 msgid "Margin" @@ -809,8 +809,8 @@ msgstr "Marge" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1212 appTools/ToolCorners.py:413 -#: appTools/ToolFiducials.py:788 appTools/ToolNCC.py:4137 +#: appTools/ToolCopperThieving.py:1208 appTools/ToolCorners.py:414 +#: appTools/ToolFiducials.py:790 appTools/ToolNCC.py:4137 #: appTools/ToolNCC.py:4240 msgid "Bounding box margin." msgstr "Marge du cadre de sélection." @@ -822,7 +822,7 @@ msgstr "Marge du cadre de sélection." #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 -#: appTools/ToolExtractDrills.py:520 appTools/ToolNCC.py:4112 +#: appTools/ToolExtractDrills.py:521 appTools/ToolNCC.py:4112 #: appTools/ToolPaint.py:2991 appTools/ToolPunchGerber.py:796 msgid "Method" msgstr "Méthode" @@ -1119,7 +1119,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 -#: appTools/ToolCutOut.py:2128 appTools/ToolDrilling.py:2167 +#: appTools/ToolCutOut.py:2132 appTools/ToolDrilling.py:2167 #: appTools/ToolMilling.py:1817 msgid "" "Use multiple passes to limit\n" @@ -1135,7 +1135,7 @@ msgstr "" #: appDatabase.py:979 appGUI/ObjectUI.py:1251 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 -#: appTools/ToolCutOut.py:2142 appTools/ToolDrilling.py:2180 +#: appTools/ToolCutOut.py:2146 appTools/ToolDrilling.py:2180 #: appTools/ToolMilling.py:1830 msgid "Depth of each pass (positive)." msgstr "Profondeur de chaque passage (positif)." @@ -1236,7 +1236,7 @@ msgid "" msgstr "" #: appDatabase.py:1156 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: appTools/ToolCutOut.py:2159 +#: appTools/ToolCutOut.py:2163 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -1247,12 +1247,12 @@ msgstr "" "la frontière de PCB" #: appDatabase.py:1168 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:131 -#: appTools/ToolCutOut.py:2167 +#: appTools/ToolCutOut.py:2171 msgid "Gap size" msgstr "Taille de l'espace" #: appDatabase.py:1170 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:133 -#: appTools/ToolCutOut.py:2169 +#: appTools/ToolCutOut.py:2173 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -1265,14 +1265,14 @@ msgstr "" " le circuit imprimé est découpé)." #: appDatabase.py:1179 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -#: appTools/ToolCutOut.py:2182 +#: appTools/ToolCutOut.py:2186 #, fuzzy #| msgid "Image type" msgid "Gap type" msgstr "Type d'image" #: appDatabase.py:1181 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150 -#: appTools/ToolCutOut.py:2184 +#: appTools/ToolCutOut.py:2188 msgid "" "The type of gap:\n" "- Bridge -> the cutout will be interrupted by bridges\n" @@ -1282,24 +1282,24 @@ msgid "" msgstr "" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 -#: appTools/ToolCutOut.py:2192 +#: appTools/ToolCutOut.py:2196 msgid "Bridge" msgstr "" #: appDatabase.py:1190 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159 -#: appTools/ToolCutOut.py:2193 +#: appTools/ToolCutOut.py:2197 msgid "Thin" msgstr "" #: appDatabase.py:1201 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169 -#: appTools/ToolCutOut.py:2203 +#: appTools/ToolCutOut.py:2207 #, fuzzy #| msgid "MultiDepth" msgid "Depth" msgstr "Plusieurs Passes" #: appDatabase.py:1203 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171 -#: appTools/ToolCutOut.py:2205 +#: appTools/ToolCutOut.py:2209 #, fuzzy #| msgid "" #| "The width of the travel lines to be\n" @@ -1313,12 +1313,12 @@ msgstr "" #: appDatabase.py:1220 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2220 +#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2224 msgid "Tool Diameter" msgstr "Diam de l'outil" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 -#: appTools/ToolCutOut.py:2222 +#: appTools/ToolCutOut.py:2226 msgid "The drill hole diameter when doing mouse bites." msgstr "" @@ -1327,23 +1327,23 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1333 appTools/ToolCopperThieving.py:1373 -#: appTools/ToolCopperThieving.py:1413 appTools/ToolCutOut.py:2232 +#: appTools/ToolCopperThieving.py:1329 appTools/ToolCopperThieving.py:1369 +#: appTools/ToolCopperThieving.py:1409 appTools/ToolCutOut.py:2236 msgid "Spacing" msgstr "Espacement" #: appDatabase.py:1235 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200 -#: appTools/ToolCutOut.py:2234 +#: appTools/ToolCutOut.py:2238 msgid "The spacing between drill holes when doing mouse bites." msgstr "" #: appDatabase.py:1254 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233 -#: appTools/ToolCutOut.py:2034 +#: appTools/ToolCutOut.py:2038 msgid "Convex Shape" msgstr "Forme convexe" #: appDatabase.py:1257 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235 -#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041 +#: appTools/ToolCutOut.py:2040 appTools/ToolCutOut.py:2045 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -1352,11 +1352,11 @@ msgstr "" "Utilisé uniquement si le type d'objet source est Gerber." #: appDatabase.py:1265 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209 -#: appTools/ToolCutOut.py:2263 +#: appTools/ToolCutOut.py:2267 msgid "Gaps" msgstr "Nbres Ponts" -#: appDatabase.py:1267 appTools/ToolCutOut.py:2265 +#: appDatabase.py:1267 appTools/ToolCutOut.py:2269 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -1444,8 +1444,8 @@ msgstr "" "dans la base de données d'outils." #: appDatabase.py:1364 appGUI/MainGUI.py:1438 -#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2297 -#: app_Main.py:3392 app_Main.py:4347 app_Main.py:4593 app_Main.py:6901 +#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2306 +#: app_Main.py:3315 app_Main.py:4270 app_Main.py:4516 app_Main.py:8725 msgid "Cancel" msgstr "Annuler" @@ -1456,16 +1456,16 @@ msgstr "Annuler" #: appTools/ToolAlignObjects.py:516 appTools/ToolAlignObjects.py:527 #: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1601 appTools/ToolCopperThieving.py:1612 -#: appTools/ToolCorners.py:462 appTools/ToolCorners.py:473 -#: appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448 -#: appTools/ToolDblSided.py:956 appTools/ToolDblSided.py:967 +#: appTools/ToolCopperThieving.py:1597 appTools/ToolCopperThieving.py:1608 +#: appTools/ToolCorners.py:463 appTools/ToolCorners.py:474 +#: appTools/ToolCutOut.py:2441 appTools/ToolCutOut.py:2452 +#: appTools/ToolDblSided.py:958 appTools/ToolDblSided.py:969 #: appTools/ToolDistance.py:659 appTools/ToolDistance.py:670 #: appTools/ToolDistanceMin.py:324 appTools/ToolDistanceMin.py:335 #: appTools/ToolDrilling.py:2666 appTools/ToolDrilling.py:2677 #: appTools/ToolEtchCompensation.py:476 appTools/ToolEtchCompensation.py:487 -#: appTools/ToolExtractDrills.py:732 appTools/ToolExtractDrills.py:743 -#: appTools/ToolFiducials.py:950 appTools/ToolFiducials.py:961 +#: appTools/ToolExtractDrills.py:733 appTools/ToolExtractDrills.py:744 +#: appTools/ToolFiducials.py:952 appTools/ToolFiducials.py:963 #: appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 #: appTools/ToolImage.py:322 appTools/ToolImage.py:333 #: appTools/ToolInvertGerber.py:304 appTools/ToolInvertGerber.py:315 @@ -1477,7 +1477,7 @@ msgstr "Annuler" #: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925 #: appTools/ToolPcbWizard.py:488 appTools/ToolPcbWizard.py:499 #: appTools/ToolPunchGerber.py:1025 appTools/ToolPunchGerber.py:1036 -#: appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933 +#: appTools/ToolQRCode.py:923 appTools/ToolQRCode.py:934 #: appTools/ToolRulesCheck.py:1657 appTools/ToolRulesCheck.py:1668 #: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586 #: appTools/ToolSub.py:772 appTools/ToolSub.py:783 @@ -1492,16 +1492,16 @@ msgstr "La valeur modifiée est hors limites" #: appTools/ToolAlignObjects.py:522 appTools/ToolAlignObjects.py:529 #: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1607 appTools/ToolCopperThieving.py:1614 -#: appTools/ToolCorners.py:468 appTools/ToolCorners.py:475 -#: appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450 -#: appTools/ToolDblSided.py:962 appTools/ToolDblSided.py:969 +#: appTools/ToolCopperThieving.py:1603 appTools/ToolCopperThieving.py:1610 +#: appTools/ToolCorners.py:469 appTools/ToolCorners.py:476 +#: appTools/ToolCutOut.py:2447 appTools/ToolCutOut.py:2454 +#: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:971 #: appTools/ToolDistance.py:665 appTools/ToolDistance.py:672 #: appTools/ToolDistanceMin.py:330 appTools/ToolDistanceMin.py:337 #: appTools/ToolDrilling.py:2672 appTools/ToolDrilling.py:2679 #: appTools/ToolEtchCompensation.py:482 appTools/ToolEtchCompensation.py:489 -#: appTools/ToolExtractDrills.py:738 appTools/ToolExtractDrills.py:745 -#: appTools/ToolFiducials.py:956 appTools/ToolFiducials.py:963 +#: appTools/ToolExtractDrills.py:739 appTools/ToolExtractDrills.py:746 +#: appTools/ToolFiducials.py:958 appTools/ToolFiducials.py:965 #: appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 #: appTools/ToolImage.py:328 appTools/ToolImage.py:335 #: appTools/ToolInvertGerber.py:310 appTools/ToolInvertGerber.py:317 @@ -1513,7 +1513,7 @@ msgstr "La valeur modifiée est hors limites" #: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927 #: appTools/ToolPcbWizard.py:494 appTools/ToolPcbWizard.py:501 #: appTools/ToolPunchGerber.py:1031 appTools/ToolPunchGerber.py:1038 -#: appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935 +#: appTools/ToolQRCode.py:929 appTools/ToolQRCode.py:936 #: appTools/ToolRulesCheck.py:1663 appTools/ToolRulesCheck.py:1670 #: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588 #: appTools/ToolSub.py:778 appTools/ToolSub.py:785 @@ -1533,7 +1533,7 @@ msgstr "Copier depuis BD" msgid "Delete from DB" msgstr "Suppression de la BD" -#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3386 app_Main.py:6895 +#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3309 app_Main.py:8719 msgid "Save changes" msgstr "Sauvegarder les modifications" @@ -1590,8 +1590,8 @@ msgstr "Importer la BD des outils FlatCAM" #: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525 #: appTools/ToolIsolation.py:2583 appTools/ToolIsolation.py:2667 #: appTools/ToolNCC.py:3715 appTools/ToolNCC.py:3795 appTools/ToolPaint.py:2626 -#: appTools/ToolPaint.py:2715 app_Main.py:5682 app_Main.py:5724 -#: app_Main.py:5755 app_Main.py:5775 app_Main.py:5785 +#: appTools/ToolPaint.py:2715 app_Main.py:5605 app_Main.py:5647 +#: app_Main.py:5678 app_Main.py:5698 app_Main.py:5708 msgid "Tools Database" msgstr "Base de données d'outils" @@ -1811,7 +1811,7 @@ msgstr "Annulé. Aucun Outil/Foret sélectionné" #: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642 #: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871 #: appTools/ToolAlignObjects.py:253 appTools/ToolAlignObjects.py:275 -#: app_Main.py:4961 app_Main.py:5115 +#: app_Main.py:4884 app_Main.py:5038 msgid "Done." msgstr "Terminé." @@ -1874,7 +1874,7 @@ msgstr "" #: appEditors/AppExcEditor.py:3765 appGUI/ObjectUI.py:1082 #: appGUI/ObjectUI.py:1650 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 -#: appTools/ToolCutOut.py:2060 appTools/ToolIsolation.py:3091 +#: appTools/ToolCutOut.py:2064 appTools/ToolIsolation.py:3091 #: appTools/ToolNCC.py:3966 appTools/ToolNCC.py:3977 appTools/ToolPaint.py:2882 msgid "Tool Dia" msgstr "Diam. de l'outil" @@ -1965,8 +1965,8 @@ msgstr "Linéaire" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 -#: appTools/ToolExtractDrills.py:470 appTools/ToolExtractDrills.py:593 -#: appTools/ToolFiducials.py:834 appTools/ToolPunchGerber.py:746 +#: appTools/ToolExtractDrills.py:471 appTools/ToolExtractDrills.py:594 +#: appTools/ToolFiducials.py:836 appTools/ToolPunchGerber.py:746 #: appTools/ToolPunchGerber.py:886 msgid "Circular" msgstr "Circulaire" @@ -2133,7 +2133,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:398 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:399 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Longueur" @@ -2253,12 +2253,12 @@ msgstr "Rond" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:289 -#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:486 -#: appTools/ToolExtractDrills.py:619 appTools/ToolInvertGerber.py:257 +#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:487 +#: appTools/ToolExtractDrills.py:620 appTools/ToolInvertGerber.py:257 #: appTools/ToolIsolation.py:3430 appTools/ToolMilling.py:2264 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3168 #: appTools/ToolPunchGerber.py:762 appTools/ToolPunchGerber.py:912 -#: appTools/ToolQRCode.py:788 +#: appTools/ToolQRCode.py:789 msgid "Square" msgstr "Carré" @@ -2309,8 +2309,8 @@ msgstr "Police" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1360 appTools/ToolCopperThieving.py:1400 -#: appTools/ToolFiducials.py:770 +#: appTools/ToolCopperThieving.py:1356 appTools/ToolCopperThieving.py:1396 +#: appTools/ToolFiducials.py:772 msgid "Size" msgstr "Taille" @@ -2334,8 +2334,8 @@ msgstr "Outil Texte" #: appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 #: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:329 #: appTools/ToolNCC.py:2280 appTools/ToolNCC.py:4040 appTools/ToolPaint.py:304 -#: appTools/ToolPaint.py:2940 app_Main.py:2053 app_Main.py:2312 -#: app_Main.py:2419 +#: appTools/ToolPaint.py:2940 app_Main.py:2062 app_Main.py:2321 +#: app_Main.py:2428 msgid "Tool" msgstr "Outil" @@ -2425,7 +2425,7 @@ msgstr "Tampon" #: appGUI/GUIElements.py:3015 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 -#: appTools/ToolDblSided.py:681 appTools/ToolDblSided.py:855 +#: appTools/ToolDblSided.py:683 appTools/ToolDblSided.py:857 #: appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 msgid "Reference" msgstr "Référence" @@ -2471,7 +2471,7 @@ msgstr "Sélection" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 -#: appTools/ToolDblSided.py:692 appTools/ToolTransform.py:557 +#: appTools/ToolDblSided.py:694 appTools/ToolTransform.py:557 msgid "Point" msgstr "Point" @@ -2484,10 +2484,9 @@ msgstr "Le minimum" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243 -#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677 +#: appTools/ToolExtractDrills.py:557 appTools/ToolExtractDrills.py:678 #: appTools/ToolPunchGerber.py:849 appTools/ToolPunchGerber.py:965 -#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 -#: app_Main.py:10205 +#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:7781 msgid "Value" msgstr "Valeur" @@ -2499,10 +2498,10 @@ msgstr "Un point de référence au format X, Y." #: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590 #: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 -#: appTools/ToolDblSided.py:706 appTools/ToolDblSided.py:892 +#: appTools/ToolDblSided.py:708 appTools/ToolDblSided.py:894 #: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203 -#: appTools/ToolTransform.py:572 app_Main.py:6127 +#: appTools/ToolTransform.py:572 app_Main.py:6050 msgid "Add" msgstr "Ajouter" @@ -2713,7 +2712,7 @@ msgstr "Décalage Y" #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216 -#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:787 +#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:788 #: appTools/ToolTransform.py:854 msgid "Rounded" msgstr "Arrondi" @@ -3200,7 +3199,7 @@ msgstr "Éditeur de Géométrie" #: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495 #: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 -#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519 +#: appTools/ToolCutOut.py:2017 appTools/ToolDblSided.py:521 #: appTools/ToolTransform.py:579 msgid "Type" msgstr "Type" @@ -3592,7 +3591,7 @@ msgstr "Ajoutez une nouvelle ouverture à la liste des ouvertures." #: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 #: appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 #: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 -#: appTools/ToolSolderPaste.py:1209 app_Main.py:6129 +#: appTools/ToolSolderPaste.py:1209 app_Main.py:6052 msgid "Delete" msgstr "Effacer" @@ -3813,8 +3812,8 @@ msgstr "" #: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:164 #: appObjects/FlatCAMGeometry.py:1917 appParsers/ParseExcellon.py:972 -#: appTools/ToolPcbWizard.py:318 app_Main.py:9010 app_Main.py:9070 -#: app_Main.py:9201 app_Main.py:9266 app_Main.py:9881 +#: appTools/ToolPcbWizard.py:318 app_Main.py:7457 app_Main.py:9899 +#: app_Main.py:9959 app_Main.py:10090 app_Main.py:10155 msgid "An internal error has occurred. See shell.\n" msgstr "Une erreur interne s'est produite. Voir shell.\n" @@ -3830,7 +3829,7 @@ msgstr "Terminé. Gerber édition terminée." msgid "Cancelled. No aperture is selected" msgstr "Annulé. Aucune ouverture n'est sélectionnée" -#: appEditors/AppGerberEditor.py:4555 app_Main.py:6462 +#: appEditors/AppGerberEditor.py:4555 app_Main.py:6385 msgid "Coordinates copied to clipboard." msgstr "Coordonnées copiées dans le presse-papier." @@ -3849,8 +3848,8 @@ msgstr "" "réessayez." #: appEditors/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 -#: appTools/ToolCutOut.py:895 appTools/ToolCutOut.py:1118 -#: appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663 +#: appTools/ToolCutOut.py:896 appTools/ToolCutOut.py:1119 +#: appTools/ToolCutOut.py:1267 camlib.py:4899 camlib.py:5663 msgid "Failed." msgstr "Échoué." @@ -3882,7 +3881,7 @@ msgstr "Aucun polygone n'a été marqué. Aucun ne rentre dans les limites." msgid "Rotation action was not executed." msgstr "L'action de rotation n'a pas été exécutée." -#: appEditors/AppGerberEditor.py:6044 app_Main.py:5885 app_Main.py:5933 +#: appEditors/AppGerberEditor.py:6044 app_Main.py:5808 app_Main.py:5856 msgid "Flip action was not executed." msgstr "La rotation n'a pas été exécutée." @@ -3999,7 +3998,7 @@ msgstr "Fichier ouvert" #: appObjects/FlatCAMCNCJob.py:1646 appObjects/FlatCAMCNCJob.py:1651 #: appObjects/FlatCAMCNCJob.py:1836 appObjects/FlatCAMCNCJob.py:1841 #: appObjects/FlatCAMCNCJob.py:1914 appObjects/FlatCAMCNCJob.py:1919 -#: appTools/ToolSolderPaste.py:1063 app_Main.py:7044 app_Main.py:7049 +#: appTools/ToolSolderPaste.py:1063 app_Main.py:6839 app_Main.py:6844 msgid "Export Code ..." msgstr "Exporter le code ..." @@ -4013,7 +4012,7 @@ msgstr "Aucun fichier ou répertoire de ce nom" msgid "Saved to" msgstr "Enregistré dans" -#: appEditors/appGCodeEditor.py:66 app_Main.py:7905 +#: appEditors/appGCodeEditor.py:66 app_Main.py:7000 msgid "Code Editor" msgstr "Éditeur de code" @@ -4049,7 +4048,7 @@ msgstr "Éditeur de code" #: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 appGUI/ObjectUI.py:2019 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1320 +#: appTools/ToolCopperThieving.py:1316 msgid "Dia" msgstr "Diam" @@ -4146,8 +4145,8 @@ msgstr "" msgid "Save Log" msgstr "Enregistrer le journal" -#: appGUI/GUIElements.py:3085 app_Main.py:2809 app_Main.py:3181 -#: app_Main.py:3354 +#: appGUI/GUIElements.py:3085 app_Main.py:2741 app_Main.py:3113 +#: app_Main.py:3286 msgid "Close" msgstr "Fermé" @@ -4316,20 +4315,14 @@ msgid "Will create a new, empty Document Object." msgstr "Crée un nouvel objet de document vide." #: appGUI/MainGUI.py:129 -#, fuzzy -#| msgid "Open &Gerber ...\tCtrl+G" msgid "Open Gerber ...\tCtrl+G" msgstr "Ouvrir Gerber...\tCtrl+G" #: appGUI/MainGUI.py:134 -#, fuzzy -#| msgid "Open &Excellon ...\tCtrl+E" msgid "Open Excellon ...\tCtrl+E" msgstr "Ouvrir Excellon ...\tCtrl+E" #: appGUI/MainGUI.py:139 -#, fuzzy -#| msgid "Open G-&Code ..." msgid "Open G-Code ..." msgstr "Ouvrir G-Code ..." @@ -4350,14 +4343,10 @@ msgid "Save" msgstr "Enregister" #: appGUI/MainGUI.py:160 -#, fuzzy -#| msgid "&Save Project ...\tCtrl+S" msgid "Save Project ...\tCtrl+S" msgstr "Enregistrer le projet...\tCtrl+S" #: appGUI/MainGUI.py:165 -#, fuzzy -#| msgid "Save Project &As ...\tCtrl+Shift+S" msgid "Save Project As ...\tCtrl+Shift+S" msgstr "Enregistrer le projet sous...\tCtrl+Shift+S" @@ -4382,26 +4371,18 @@ msgid "Import" msgstr "Importation" #: appGUI/MainGUI.py:209 -#, fuzzy -#| msgid "&SVG as Geometry Object ..." msgid "SVG as Geometry Object ..." msgstr "SVG comme objet de géométrie ..." #: appGUI/MainGUI.py:212 -#, fuzzy -#| msgid "&SVG as Gerber Object ..." msgid "SVG as Gerber Object ..." msgstr "SVG comme objet Gerber ..." #: appGUI/MainGUI.py:217 -#, fuzzy -#| msgid "&DXF as Geometry Object ..." msgid "DXF as Geometry Object ..." msgstr "DXF comme objet de géométrie ..." #: appGUI/MainGUI.py:220 -#, fuzzy -#| msgid "&DXF as Gerber Object ..." msgid "DXF as Gerber Object ..." msgstr "DXF en tant qu'objet Gerber ..." @@ -4414,8 +4395,6 @@ msgid "Export" msgstr "Exportation" #: appGUI/MainGUI.py:234 -#, fuzzy -#| msgid "Export &SVG ..." msgid "Export SVG ..." msgstr "Exporter SVG ..." @@ -4424,8 +4403,6 @@ msgid "Export DXF ..." msgstr "Exporter DXF ..." #: appGUI/MainGUI.py:244 -#, fuzzy -#| msgid "Export &PNG ..." msgid "Export PNG ..." msgstr "Exporter PNG ..." @@ -4440,8 +4417,6 @@ msgstr "" "de la zone de tracé de FlatCAM." #: appGUI/MainGUI.py:255 -#, fuzzy -#| msgid "Export &Excellon ..." msgid "Export Excellon ..." msgstr "Exporter Excellon ..." @@ -4456,8 +4431,6 @@ msgstr "" "sont définies dans Paramètres -> Excellon Export." #: appGUI/MainGUI.py:264 -#, fuzzy -#| msgid "Export &Gerber ..." msgid "Export Gerber ..." msgstr "Exporter Gerber ..." @@ -4540,20 +4513,14 @@ msgid "Convert Any to Gerber" msgstr "Convertir en Gerber" #: appGUI/MainGUI.py:357 -#, fuzzy -#| msgid "Convert Any to Geo" msgid "Convert Any to Excellon" msgstr "Convertir en Géo" #: appGUI/MainGUI.py:362 -#, fuzzy -#| msgid "Align Objects" msgid "Join Objects" msgstr "Aligner les objets" #: appGUI/MainGUI.py:364 -#, fuzzy -#| msgid "&Join Geo/Gerber/Exc -> Geo" msgid "Join Geo/Gerber/Exc -> Geo" msgstr "Rejoindre Geo/Gerber/Exc -> Geo" @@ -4591,8 +4558,6 @@ msgstr "" "Fusionner une sélection d'objets Gerber dans un nouvel objet Gerber combiné." #: appGUI/MainGUI.py:388 -#, fuzzy -#| msgid "&Copy\tCtrl+C" msgid "Copy\tCtrl+C" msgstr "Copie\tCtrl+C" @@ -4601,8 +4566,6 @@ msgid "Delete\tDEL" msgstr "Supprimer\tDEL" #: appGUI/MainGUI.py:398 -#, fuzzy -#| msgid "Se&t Origin\tO" msgid "Set Origin\tO" msgstr "Définir L'origine\tO" @@ -4623,14 +4586,10 @@ msgid "Toggle Units\tQ" msgstr "Basculer les Unités\tQ" #: appGUI/MainGUI.py:412 -#, fuzzy -#| msgid "&Select All\tCtrl+A" msgid "Select All\tCtrl+A" msgstr "Tout sélectionner\tCtrl+A" #: appGUI/MainGUI.py:417 -#, fuzzy -#| msgid "&Preferences\tShift+P" msgid "Preferences\tShift+P" msgstr "Paramètres \tShift+P" @@ -4640,32 +4599,22 @@ msgid "Options" msgstr "Options" #: appGUI/MainGUI.py:425 -#, fuzzy -#| msgid "&Rotate Selection\tShift+(R)" msgid "Rotate Selection\tShift+(R)" msgstr "Faire pivoter la sélection\tShift+(R)" #: appGUI/MainGUI.py:430 -#, fuzzy -#| msgid "&Skew on X axis\tShift+X" msgid "Skew on X axis\tShift+X" msgstr "Inclinaison sur l'axe X\tShift+X" #: appGUI/MainGUI.py:432 -#, fuzzy -#| msgid "S&kew on Y axis\tShift+Y" msgid "Skew on Y axis\tShift+Y" msgstr "Inclinaison sur l'axe Y\tShift+Y" #: appGUI/MainGUI.py:437 -#, fuzzy -#| msgid "Flip on &X axis\tX" msgid "Flip on X axis\tX" msgstr "Miroir sur l'axe X\tX" #: appGUI/MainGUI.py:439 -#, fuzzy -#| msgid "Flip on &Y axis\tY" msgid "Flip on Y axis\tY" msgstr "Miroir sur l'axe Y\tY" @@ -4694,20 +4643,14 @@ msgid "Disable non-selected\tAlt+3" msgstr "Désactiver les non sélectionnés\tAlt+3" #: appGUI/MainGUI.py:463 -#, fuzzy -#| msgid "&Zoom Fit\tV" msgid "Zoom Fit\tV" msgstr "Ajustement du Zoom\tV" #: appGUI/MainGUI.py:465 -#, fuzzy -#| msgid "&Zoom In\t=" msgid "Zoom In\t=" msgstr "Zoomer\t=" #: appGUI/MainGUI.py:467 -#, fuzzy -#| msgid "&Zoom Out\t-" msgid "Zoom Out\t-" msgstr "Dézoomer\t-" @@ -4720,38 +4663,26 @@ msgid "Toggle Code Editor\tShift+E" msgstr "Basculer l'éditeur de code\tShift+E" #: appGUI/MainGUI.py:479 -#, fuzzy -#| msgid "&Toggle FullScreen\tAlt+F10" msgid "Toggle FullScreen\tAlt+F10" msgstr "Passer en plein écran\tAlt+F10" #: appGUI/MainGUI.py:481 -#, fuzzy -#| msgid "&Toggle Plot Area\tCtrl+F10" msgid "Toggle Plot Area\tCtrl+F10" msgstr "Basculer la zone de tracé\tCtrl+F10" #: appGUI/MainGUI.py:483 -#, fuzzy -#| msgid "&Toggle Project/Sel/Tool\t`" msgid "Toggle Project/Sel/Tool\t`" msgstr "Basculer Projet / Sel / Outil\t`" #: appGUI/MainGUI.py:487 -#, fuzzy -#| msgid "&Toggle Grid Snap\tG" msgid "Toggle Grid Snap\tG" msgstr "Basculer la grille\tG" #: appGUI/MainGUI.py:489 -#, fuzzy -#| msgid "&Toggle Grid Lines\tAlt+G" msgid "Toggle Grid Lines\tAlt+G" msgstr "Basculer les lignes de la grille\tAlt+G" #: appGUI/MainGUI.py:491 -#, fuzzy -#| msgid "&Toggle Axis\tShift+G" msgid "Toggle Axis\tShift+G" msgstr "Basculer l'axe\tShift+G" @@ -4778,10 +4709,8 @@ msgid "Deselect All" msgstr "Tout désélectionner" #: appGUI/MainGUI.py:514 -#, fuzzy -#| msgid "&Command Line\tS" msgid "Command Line\tS" -msgstr "&Ligne de commande\tS" +msgstr "Ligne de commande\tS" #: appGUI/MainGUI.py:519 msgid "Help" @@ -4791,7 +4720,7 @@ msgstr "Aide" msgid "Online Help\tF1" msgstr "Aide en ligne\tF1" -#: appGUI/MainGUI.py:527 app_Main.py:3319 app_Main.py:3328 +#: appGUI/MainGUI.py:527 app_Main.py:3251 app_Main.py:3260 msgid "Bookmarks Manager" msgstr "Gestionnaire de favoris" @@ -4816,12 +4745,10 @@ msgid "YouTube Channel\tF4" msgstr "Chaîne Youtube\tF4" #: appGUI/MainGUI.py:548 -#, fuzzy -#| msgid "How To's" msgid "How To" msgstr "Mode d'emploi" -#: appGUI/MainGUI.py:551 app_Main.py:2776 +#: appGUI/MainGUI.py:551 app_Main.py:2708 msgid "About FlatCAM" msgstr "À propos de FlatCAM" @@ -4989,47 +4916,47 @@ msgstr "Désactiver le Tracé" msgid "Set Color" msgstr "Définir la couleur" -#: appGUI/MainGUI.py:709 app_Main.py:10148 +#: appGUI/MainGUI.py:709 app_Main.py:7724 msgid "Red" msgstr "Rouge" -#: appGUI/MainGUI.py:712 app_Main.py:10150 +#: appGUI/MainGUI.py:712 app_Main.py:7726 msgid "Blue" msgstr "Bleu" -#: appGUI/MainGUI.py:715 app_Main.py:10153 +#: appGUI/MainGUI.py:715 app_Main.py:7729 msgid "Yellow" msgstr "Jaune" -#: appGUI/MainGUI.py:718 app_Main.py:10155 +#: appGUI/MainGUI.py:718 app_Main.py:7731 msgid "Green" msgstr "Vert" -#: appGUI/MainGUI.py:721 app_Main.py:10157 +#: appGUI/MainGUI.py:721 app_Main.py:7733 msgid "Purple" msgstr "Violet" -#: appGUI/MainGUI.py:724 app_Main.py:10159 +#: appGUI/MainGUI.py:724 app_Main.py:7735 msgid "Brown" msgstr "Marron" -#: appGUI/MainGUI.py:727 app_Main.py:10161 app_Main.py:10220 +#: appGUI/MainGUI.py:727 app_Main.py:7737 app_Main.py:7796 msgid "White" msgstr "Blanche" -#: appGUI/MainGUI.py:730 app_Main.py:10163 +#: appGUI/MainGUI.py:730 app_Main.py:7739 msgid "Black" msgstr "Noire" -#: appGUI/MainGUI.py:735 app_Main.py:10166 +#: appGUI/MainGUI.py:735 app_Main.py:7742 msgid "Custom" msgstr "Personnalisé" -#: appGUI/MainGUI.py:740 app_Main.py:10200 +#: appGUI/MainGUI.py:740 app_Main.py:7776 msgid "Opacity" msgstr "Opacité" -#: appGUI/MainGUI.py:743 app_Main.py:10176 +#: appGUI/MainGUI.py:743 app_Main.py:7752 msgid "Default" msgstr "Défaut" @@ -5088,8 +5015,6 @@ msgid "Gerber Editor Toolbar" msgstr "Barre d'outils de l'éditeur Gerber" #: appGUI/MainGUI.py:827 appGUI/MainGUI.py:1886 -#, fuzzy -#| msgid "Coordinates copied to clipboard." msgid "Delta Coordinates Toolbar" msgstr "Coordonnées copiées dans le presse-papier." @@ -5109,13 +5034,13 @@ msgstr "Barre d'outils de la Grille" msgid "Status Toolbar" msgstr "Barre d'outils de editer" -#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7110 -#: app_Main.py:7115 +#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:8046 +#: app_Main.py:8051 msgid "Open Gerber" msgstr "Ouvrir Gerber" -#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7150 -#: app_Main.py:7155 +#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:8086 +#: app_Main.py:8091 msgid "Open Excellon" msgstr "Ouvrir Excellon" @@ -5202,7 +5127,7 @@ msgid "Extract Drills Tool" msgstr "Outil d'extraction de forets" #: appGUI/MainGUI.py:931 appGUI/MainGUI.py:2086 appGUI/ObjectUI.py:387 -#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2052 +#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2056 msgid "Cutout Tool" msgstr "Outil de Découpe" @@ -5255,17 +5180,17 @@ msgid "Calculators Tool" msgstr "Calculatrice" #: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285 -#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628 +#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:629 msgid "QRCode Tool" msgstr "QRCode" #: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1137 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1133 msgid "Copper Thieving Tool" msgstr "Outil de Copper Thieving" #: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281 -#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648 +#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:650 msgid "Fiducials Tool" msgstr "Outil Fiduciaire" @@ -5284,7 +5209,7 @@ msgid "Invert Gerber Tool" msgstr "Inverser Gerber" #: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284 -#: appTools/ToolCorners.py:297 +#: appTools/ToolCorners.py:298 msgid "Corner Markers Tool" msgstr "Outil de Marqueurs de Coin" @@ -5475,8 +5400,8 @@ msgstr "Basculer l'affichage de l'axe sur le canevas" #: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:899 #: appGUI/preferences/PreferencesUIManager.py:992 #: appGUI/preferences/PreferencesUIManager.py:1020 -#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5585 -#: app_Main.py:5590 app_Main.py:5605 +#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5508 +#: app_Main.py:5513 app_Main.py:5528 msgid "Preferences" msgstr "Préférences" @@ -5514,21 +5439,21 @@ msgstr "" msgid "TCL Shell" msgstr "Afficher la ligne de commande" -#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 +#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:9017 msgid "Project" msgstr "Projet" #: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:3791 -#: appGUI/MainGUI.py:3797 app_Main.py:2480 app_Main.py:7001 +#: appGUI/MainGUI.py:3797 app_Main.py:2489 app_Main.py:8825 msgid "Plot Area" msgstr "Zone de Dessin" -#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1169 -#: appTools/ToolCorners.py:317 appTools/ToolEtchCompensation.py:291 -#: appTools/ToolExtractDrills.py:453 appTools/ToolFiducials.py:873 +#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1165 +#: appTools/ToolCorners.py:318 appTools/ToolEtchCompensation.py:291 +#: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:875 #: appTools/ToolInvertGerber.py:215 appTools/ToolIsolation.py:2986 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:721 -#: appTools/ToolQRCode.py:659 appTools/ToolRulesCheck.py:1165 +#: appTools/ToolQRCode.py:660 appTools/ToolRulesCheck.py:1165 #: appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:643 msgid "GERBER" msgstr "GERBER" @@ -5617,9 +5542,9 @@ msgstr "Basculer la Visibilité" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:526 -#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:929 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2014 appTools/ToolDblSided.py:528 +#: appTools/ToolDblSided.py:769 appTools/ToolFilm.py:929 #: appTools/ToolFilm.py:952 appTools/ToolImage.py:136 appTools/ToolImage.py:191 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 @@ -5637,9 +5562,9 @@ msgstr "Géométrie" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:892 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolDblSided.py:527 appTools/ToolDblSided.py:724 -#: appTools/ToolDblSided.py:766 appTools/ToolFilm.py:1207 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:768 appTools/ToolFilm.py:1207 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:805 appTools/ToolNCC.py:4323 appTools/ToolPaint.py:167 #: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147 @@ -5717,7 +5642,7 @@ msgstr "Éditeur Excellon" msgid "Add Drill" msgstr "Ajouter une Foret" -#: appGUI/MainGUI.py:1581 app_Main.py:2291 +#: appGUI/MainGUI.py:1581 app_Main.py:2300 msgid "Close Editor" msgstr "Fermer l'éditeur" @@ -5743,8 +5668,8 @@ msgstr "Êtes-vous sûr de vouloir supprimer les paramètres de GUI?\n" #: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:931 #: appGUI/preferences/PreferencesUIManager.py:1177 appTranslation.py:111 -#: appTranslation.py:213 app_Main.py:2295 app_Main.py:3390 app_Main.py:5815 -#: app_Main.py:6899 +#: appTranslation.py:213 app_Main.py:2304 app_Main.py:3313 app_Main.py:5738 +#: app_Main.py:8723 msgid "Yes" msgstr "Oui" @@ -5756,7 +5681,7 @@ msgstr "Oui" #: appTools/ToolDrilling.py:2090 appTools/ToolIsolation.py:3066 #: appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3935 #: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 -#: app_Main.py:2296 app_Main.py:3391 app_Main.py:5816 app_Main.py:6900 +#: app_Main.py:2305 app_Main.py:3314 app_Main.py:5739 app_Main.py:8724 msgid "No" msgstr "Non" @@ -5846,7 +5771,7 @@ msgstr "Ajout de l'outil annulé ..." msgid "Distance Tool exit..." msgstr "Distance Outil sortie ..." -#: appGUI/MainGUI.py:3725 app_Main.py:3378 +#: appGUI/MainGUI.py:3725 app_Main.py:3301 msgid "Application is saving the project. Please wait ..." msgstr "Enregistrement du projet. Attendez ..." @@ -5890,7 +5815,7 @@ msgstr "Nouveau Gerber" msgid "Edit Object (if selected)" msgstr "Editer objet (si sélectionné)" -#: appGUI/MainGUI.py:4261 app_Main.py:6115 +#: appGUI/MainGUI.py:4261 app_Main.py:6038 msgid "Grid On/Off" msgstr "Grille On/Off" @@ -5961,7 +5886,7 @@ msgstr "Ouvrir le fichier Gerber" msgid "New Project" msgstr "Nouveau Projet" -#: appGUI/MainGUI.py:4270 app_Main.py:7229 app_Main.py:7232 +#: appGUI/MainGUI.py:4270 app_Main.py:8166 app_Main.py:8169 msgid "Open Project" msgstr "Ouvrir Projet" @@ -6386,7 +6311,7 @@ msgstr "Options de Tracé" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1290 +#: appTools/ToolCopperThieving.py:1286 msgid "Solid" msgstr "Solide" @@ -6561,15 +6486,15 @@ msgstr "" msgid "Resulting geometry will have rounded corners." msgstr "La géométrie résultante aura des coins arrondis." -#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2287 -#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444 +#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2291 +#: appTools/ToolCutOut.py:2306 appTools/ToolIsolation.py:3444 #: appTools/ToolNCC.py:4372 appTools/ToolPaint.py:3178 msgid "Generate Geometry" msgstr "Générer de la Géométrie" #: appGUI/ObjectUI.py:478 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:782 +#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:783 msgid "Bounding Box" msgstr "Cadre de sélection" @@ -6933,7 +6858,7 @@ msgstr "" msgid "Add from DB" msgstr "Ajouter depuis la BD" -#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2071 +#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2075 #: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3122 #: appTools/ToolNCC.py:3996 appTools/ToolPaint.py:2898 msgid "Search and Add" @@ -6947,7 +6872,7 @@ msgstr "" "Ajouter un nouvel outil à la table d'outils\n" "avec le diamètre spécifié ci-dessus." -#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2083 +#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2087 #: appTools/ToolIsolation.py:65 appTools/ToolIsolation.py:3133 #: appTools/ToolNCC.py:4007 appTools/ToolPaint.py:2909 #, fuzzy @@ -6955,7 +6880,7 @@ msgstr "" msgid "Pick from DB" msgstr "Ajouter depuis la BD" -#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2086 +#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2090 #: appTools/ToolIsolation.py:3136 appTools/ToolNCC.py:4010 #: appTools/ToolPaint.py:2912 #, fuzzy @@ -7053,7 +6978,7 @@ msgstr "" #: appGUI/ObjectUI.py:1216 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2107 +#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2111 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -7065,7 +6990,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 -#: appTools/ToolCutOut.py:2125 appTools/ToolDrilling.py:2164 +#: appTools/ToolCutOut.py:2129 appTools/ToolDrilling.py:2164 #: appTools/ToolMilling.py:1814 msgid "Multi-Depth" msgstr "Multi-profondeur" @@ -7773,12 +7698,12 @@ msgstr "" #: appGUI/ObjectUI.py:2177 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: appTools/ToolCutOut.py:2324 appTools/ToolFiducials.py:801 +#: appTools/ToolCutOut.py:2328 appTools/ToolFiducials.py:803 msgid "Manual" msgstr "Manuel" #: appGUI/ObjectUI.py:2178 -#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:9736 +#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:7312 #, fuzzy #| msgid "Grids" msgid "Grid" @@ -8121,7 +8046,7 @@ msgstr "Alignement" msgid "Align Left" msgstr "Alignez à gauche" -#: appGUI/ObjectUI.py:2860 app_Main.py:4999 +#: appGUI/ObjectUI.py:2860 app_Main.py:4922 msgid "Center" msgstr "Centre" @@ -8212,7 +8137,7 @@ msgid "Preferences default values are restored." msgstr "Les valeurs par défaut des paramètres sont restaurées." #: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 -#: app_Main.py:2696 +#: app_Main.py:9396 msgid "Failed to write defaults to file." msgstr "Échec d'écriture du fichier." @@ -8262,10 +8187,10 @@ msgstr "Options avan. de CNCjob" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1188 -#: appTools/ToolCorners.py:377 appTools/ToolEtchCompensation.py:356 -#: appTools/ToolFiducials.py:763 appTools/ToolInvertGerber.py:228 -#: appTools/ToolQRCode.py:695 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1184 +#: appTools/ToolCorners.py:378 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolFiducials.py:765 appTools/ToolInvertGerber.py:228 +#: appTools/ToolQRCode.py:696 msgid "Parameters" msgstr "Paramètres" @@ -8388,7 +8313,7 @@ msgid "G-code Decimals" msgstr "Décimales G-code" #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:682 +#: appTools/ToolFiducials.py:684 msgid "Coordinates" msgstr "Coordonnées" @@ -9154,7 +9079,7 @@ msgstr "Paramètres de l'application" msgid "Grid Settings" msgstr "Paramètres de la grille" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:9744 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:7320 msgid "X value" msgstr "Valeur X" @@ -9162,7 +9087,7 @@ msgstr "Valeur X" 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." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:9747 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:7323 msgid "Y value" msgstr "Valeur Y" @@ -9209,14 +9134,14 @@ msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: appTools/ToolFilm.py:1274 app_Main.py:9764 +#: appTools/ToolFilm.py:1274 app_Main.py:7340 msgid "Portrait" msgstr "Portrait" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: appTools/ToolFilm.py:1275 app_Main.py:9766 +#: appTools/ToolFilm.py:1275 app_Main.py:7342 msgid "Landscape" msgstr "Paysage" @@ -9237,7 +9162,7 @@ msgstr "" "et incluez les onglets Projet, Sélectionné et Outil." #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -#: appTools/ToolDblSided.py:666 appTools/ToolDblSided.py:838 app_Main.py:9752 +#: appTools/ToolDblSided.py:668 appTools/ToolDblSided.py:840 app_Main.py:7328 msgid "Axis" msgstr "Axe" @@ -9258,7 +9183,7 @@ msgstr "" "texte\n" "les éléments utilisés dans l'application." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:9769 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:7345 msgid "HUD" msgstr "HUD" @@ -10336,8 +10261,8 @@ msgid "\"Follow\"" msgstr "\"Suivre\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:579 -#: appTools/ToolCopperThieving.py:776 appTools/ToolCopperThieving.py:788 +#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:578 +#: appTools/ToolCopperThieving.py:775 appTools/ToolCopperThieving.py:787 #: appTools/ToolIsolation.py:1353 appTools/ToolNCC.py:1793 #: appTools/ToolNCC.py:1820 appTools/ToolNCC.py:1928 appTools/ToolNCC.py:1941 #: appTools/ToolNCC.py:2845 appTools/ToolNCC.py:2950 appTools/ToolNCC.py:2965 @@ -10366,7 +10291,7 @@ msgstr "" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102 +#: appTools/ToolFiducials.py:817 appTools/ToolFilm.py:1102 #: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -10657,7 +10582,7 @@ msgstr "Nombre d'étapes (lignes) utilisées pour interpoler les cercles." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1195 appTools/ToolCopperThieving.py:1530 +#: appTools/ToolCopperThieving.py:1191 appTools/ToolCopperThieving.py:1526 msgid "Clearance" msgstr "Dégagement" @@ -10673,7 +10598,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1224 appTools/ToolNCC.py:1351 +#: appTools/ToolCopperThieving.py:1220 appTools/ToolNCC.py:1351 #: appTools/ToolNCC.py:1667 appTools/ToolNCC.py:1731 appTools/ToolNCC.py:2709 #: appTools/ToolNCC.py:2718 appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4436 #: defaults.py:478 tclCommands/TclCommandCopperClear.py:190 @@ -10684,7 +10609,7 @@ msgstr "Lui-même" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1225 appTools/ToolIsolation.py:819 +#: appTools/ToolCopperThieving.py:1221 appTools/ToolIsolation.py:819 #: appTools/ToolIsolation.py:1435 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1365 appTools/ToolNCC.py:1683 appTools/ToolNCC.py:1738 #: appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4446 appTools/ToolPaint.py:1061 @@ -10696,7 +10621,7 @@ msgstr "Sélection de zone" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolDblSided.py:757 +#: appTools/ToolCopperThieving.py:1222 appTools/ToolDblSided.py:759 #: appTools/ToolIsolation.py:1475 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1384 appTools/ToolNCC.py:1689 appTools/ToolNCC.py:1746 #: appTools/ToolNCC.py:2124 appTools/ToolNCC.py:2358 appTools/ToolNCC.py:2754 @@ -10707,7 +10632,7 @@ msgid "Reference Object" msgstr "Objet de référence" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1224 msgid "Reference:" msgstr "Référence:" @@ -10731,24 +10656,24 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1270 appTools/ToolExtractDrills.py:494 -#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:770 +#: appTools/ToolCopperThieving.py:1266 appTools/ToolExtractDrills.py:495 +#: appTools/ToolExtractDrills.py:633 appTools/ToolPunchGerber.py:770 #: appTools/ToolPunchGerber.py:925 msgid "Rectangular" msgstr "Rectangulaire" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1271 +#: appTools/ToolCopperThieving.py:1267 msgid "Minimal" msgstr "Minimal" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1273 appTools/ToolFilm.py:954 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolFilm.py:954 msgid "Box Type:" msgstr "Type de Box:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1275 +#: appTools/ToolCopperThieving.py:1271 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10757,27 +10682,27 @@ msgstr "" "- 'Minimal' - le cadre de délimitation aura la forme d'une coque convexe." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1291 +#: appTools/ToolCopperThieving.py:1287 msgid "Dots Grid" msgstr "Grille de points" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1292 +#: appTools/ToolCopperThieving.py:1288 msgid "Squares Grid" msgstr "Grille de carrés" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1293 +#: appTools/ToolCopperThieving.py:1289 msgid "Lines Grid" msgstr "Grille de lignes" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1295 +#: appTools/ToolCopperThieving.py:1291 msgid "Fill Type:" msgstr "Type de remplissage:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1297 +#: appTools/ToolCopperThieving.py:1293 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10790,57 +10715,57 @@ msgstr "" "- 'Grille de lignes' - la zone vide sera remplie d'un motif de lignes." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1316 +#: appTools/ToolCopperThieving.py:1312 msgid "Dots Grid Parameters" msgstr "Paramètres de la grille de points" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1322 +#: appTools/ToolCopperThieving.py:1318 msgid "Dot diameter in Dots Grid." msgstr "Diamètre des points dans la grille des points." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1335 +#: appTools/ToolCopperThieving.py:1331 msgid "Distance between each two dots in Dots Grid." msgstr "Distance entre deux points dans la grille de points." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1356 +#: appTools/ToolCopperThieving.py:1352 msgid "Squares Grid Parameters" msgstr "Paramètres de la grille des carrés" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1362 +#: appTools/ToolCopperThieving.py:1358 msgid "Square side size in Squares Grid." msgstr "Taille du côté carré dans la grille des carrés." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1375 +#: appTools/ToolCopperThieving.py:1371 msgid "Distance between each two squares in Squares Grid." msgstr "Distance entre deux carrés dans la grille des carrés." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1396 +#: appTools/ToolCopperThieving.py:1392 msgid "Lines Grid Parameters" msgstr "Paramètres de grille de lignes" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1402 +#: appTools/ToolCopperThieving.py:1398 msgid "Line thickness size in Lines Grid." msgstr "Taille d'épaisseur de ligne dans la grille de lignes." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1415 +#: appTools/ToolCopperThieving.py:1411 msgid "Distance between each two lines in Lines Grid." msgstr "Distance entre deux lignes dans la grille de lignes." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1453 +#: appTools/ToolCopperThieving.py:1449 msgid "Robber Bar Parameters" msgstr "Paramètres de la Robber Bar" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1455 +#: appTools/ToolCopperThieving.py:1451 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10849,34 +10774,34 @@ msgstr "" "Robber Bar = bordure en cuivre pour faciliter le placage des trous." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1463 +#: appTools/ToolCopperThieving.py:1459 msgid "Bounding box margin for robber bar." msgstr "Marge de la zone de délimitation pour la Robber Bar." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCopperThieving.py:1474 appTools/ToolCorners.py:384 +#: appTools/ToolCopperThieving.py:1470 appTools/ToolCorners.py:385 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Épaisseur" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1476 +#: appTools/ToolCopperThieving.py:1472 msgid "The robber bar thickness." msgstr "L'épaisseur de la Robber Bar." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1507 +#: appTools/ToolCopperThieving.py:1503 msgid "Pattern Plating Mask" msgstr "Masque de placage de motifs" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1509 +#: appTools/ToolCopperThieving.py:1505 msgid "Generate a mask for pattern plating." msgstr "Générez un masque pour le placage de motifs." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1532 +#: appTools/ToolCopperThieving.py:1528 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10893,8 +10818,8 @@ msgstr "Options de l'outil d'Étalonnage" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1190 appTools/ToolCorners.py:379 -#: appTools/ToolFiducials.py:765 +#: appTools/ToolCopperThieving.py:1186 appTools/ToolCorners.py:380 +#: appTools/ToolFiducials.py:767 msgid "Parameters used for this tool." msgstr "Paramètres utilisés pour cet outil." @@ -10984,12 +10909,12 @@ msgstr "" "- en bas à droite -> l'utilisateur alignera le PCB horizontalement" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: appTools/ToolCalibration.py:854 app_Main.py:4996 +#: appTools/ToolCalibration.py:854 app_Main.py:4919 msgid "Top-Left" msgstr "En haut à gauche" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: appTools/ToolCalibration.py:855 app_Main.py:4997 +#: appTools/ToolCalibration.py:855 app_Main.py:4920 msgid "Bottom-Right" msgstr "En bas à droite" @@ -10999,13 +10924,13 @@ msgstr "Options d'Extraction de Forets" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:732 +#: appTools/ToolExtractDrills.py:461 appTools/ToolPunchGerber.py:732 msgid "Processed Pads Type" msgstr "Type de tampons traités" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:734 +#: appTools/ToolExtractDrills.py:463 appTools/ToolPunchGerber.py:734 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -11017,7 +10942,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:748 +#: appTools/ToolExtractDrills.py:473 appTools/ToolPunchGerber.py:748 msgid "Process Circular Pads." msgstr "Processus tampons circulaires." @@ -11025,26 +10950,26 @@ msgstr "Processus tampons circulaires." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606 +#: appTools/ToolExtractDrills.py:479 appTools/ToolExtractDrills.py:607 #: appTools/ToolPunchGerber.py:754 appTools/ToolPunchGerber.py:899 msgid "Oblong" msgstr "Oblong" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:756 +#: appTools/ToolExtractDrills.py:481 appTools/ToolPunchGerber.py:756 msgid "Process Oblong Pads." msgstr "Processus Tampons oblongs." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:764 +#: appTools/ToolExtractDrills.py:489 appTools/ToolPunchGerber.py:764 msgid "Process Square Pads." msgstr "Processus Tampons carrés." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:772 +#: appTools/ToolExtractDrills.py:497 appTools/ToolPunchGerber.py:772 msgid "Process Rectangular Pads." msgstr "Processus Tampons rectangulaires." @@ -11052,15 +10977,15 @@ msgstr "Processus Tampons rectangulaires." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502 -#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:171 +#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:503 +#: appTools/ToolExtractDrills.py:646 appTools/ToolProperties.py:171 #: appTools/ToolPunchGerber.py:778 appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "Autres" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:780 +#: appTools/ToolExtractDrills.py:505 appTools/ToolPunchGerber.py:780 msgid "Process pads not in the categories above." msgstr "Processus tampons n'appartenant pas aux catégories ci-dessus." @@ -11068,7 +10993,7 @@ msgstr "Processus tampons n'appartenant pas aux catégories ci-dessus." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548 +#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:549 #: appTools/ToolPunchGerber.py:807 appTools/ToolPunchGerber.py:841 msgid "Fixed Diameter" msgstr "Diamètre fixe" @@ -11077,19 +11002,19 @@ msgstr "Diamètre fixe" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584 +#: appTools/ToolExtractDrills.py:533 appTools/ToolExtractDrills.py:585 #: appTools/ToolPunchGerber.py:808 appTools/ToolPunchGerber.py:871 msgid "Fixed Annular Ring" msgstr "Anneau fixe annulaire" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:809 +#: appTools/ToolExtractDrills.py:534 appTools/ToolPunchGerber.py:809 msgid "Proportional" msgstr "Proportionnel" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: appTools/ToolExtractDrills.py:522 +#: appTools/ToolExtractDrills.py:523 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -11104,13 +11029,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:851 +#: appTools/ToolExtractDrills.py:559 appTools/ToolPunchGerber.py:851 msgid "Fixed hole diameter." msgstr "Diamètre du trou fixe." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: appTools/ToolExtractDrills.py:586 appTools/ToolPunchGerber.py:873 +#: appTools/ToolExtractDrills.py:587 appTools/ToolPunchGerber.py:873 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -11122,37 +11047,37 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:888 +#: appTools/ToolExtractDrills.py:596 appTools/ToolPunchGerber.py:888 msgid "The size of annular ring for circular pads." msgstr "La taille de l'anneau annulaire pour les coussinets circulaires." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: appTools/ToolExtractDrills.py:608 appTools/ToolPunchGerber.py:901 +#: appTools/ToolExtractDrills.py:609 appTools/ToolPunchGerber.py:901 msgid "The size of annular ring for oblong pads." msgstr "La taille de l'anneau annulaire pour les coussinets oblongs." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: appTools/ToolExtractDrills.py:621 appTools/ToolPunchGerber.py:914 +#: appTools/ToolExtractDrills.py:622 appTools/ToolPunchGerber.py:914 msgid "The size of annular ring for square pads." msgstr "La taille de l'anneau annulaire pour les coussinets carrés." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: appTools/ToolExtractDrills.py:634 appTools/ToolPunchGerber.py:927 +#: appTools/ToolExtractDrills.py:635 appTools/ToolPunchGerber.py:927 msgid "The size of annular ring for rectangular pads." msgstr "La taille de l'anneau annulaire pour les coussinets rectangulaires." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: appTools/ToolExtractDrills.py:647 appTools/ToolPunchGerber.py:940 +#: appTools/ToolExtractDrills.py:648 appTools/ToolPunchGerber.py:940 msgid "The size of annular ring for other pads." msgstr "La taille de l'anneau annulaire pour les autres tampons." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: appTools/ToolExtractDrills.py:668 appTools/ToolPunchGerber.py:956 +#: appTools/ToolExtractDrills.py:669 appTools/ToolPunchGerber.py:956 msgid "Proportional Diameter" msgstr "Diam. proportionnel" @@ -11163,7 +11088,7 @@ msgstr "Facteur" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:967 +#: appTools/ToolExtractDrills.py:680 appTools/ToolPunchGerber.py:967 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -11176,7 +11101,7 @@ msgid "Fiducials Tool Options" msgstr "Options de l'outil Fiducials" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: appTools/ToolFiducials.py:772 +#: appTools/ToolFiducials.py:774 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -11187,12 +11112,12 @@ msgstr "" "L'ouverture du masque de soldat est double." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: appTools/ToolFiducials.py:800 +#: appTools/ToolFiducials.py:802 msgid "Auto" msgstr "Auto" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:803 +#: appTools/ToolFiducials.py:805 msgid "Mode:" msgstr "Mode:" @@ -11207,22 +11132,22 @@ msgstr "" "- «Manuel» - placement manuel des fiduciaires." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: appTools/ToolFiducials.py:813 +#: appTools/ToolFiducials.py:815 msgid "Up" msgstr "Haut" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: appTools/ToolFiducials.py:814 +#: appTools/ToolFiducials.py:816 msgid "Down" msgstr "Bas" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: appTools/ToolFiducials.py:817 +#: appTools/ToolFiducials.py:819 msgid "Second fiducial" msgstr "Deuxième fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: appTools/ToolFiducials.py:819 +#: appTools/ToolFiducials.py:821 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -11237,22 +11162,22 @@ msgstr "" "gauche, en haut à droite." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: appTools/ToolFiducials.py:835 +#: appTools/ToolFiducials.py:837 msgid "Cross" msgstr "Croix" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: appTools/ToolFiducials.py:836 +#: appTools/ToolFiducials.py:838 msgid "Chess" msgstr "Échecs" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: appTools/ToolFiducials.py:838 +#: appTools/ToolFiducials.py:840 msgid "Fiducial Type" msgstr "Type fiduciaire" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: appTools/ToolFiducials.py:840 +#: appTools/ToolFiducials.py:842 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -11265,7 +11190,7 @@ msgstr "" "- 'Échecs' - modèle d'échecs fiducial." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: appTools/ToolFiducials.py:849 +#: appTools/ToolFiducials.py:851 msgid "Line thickness" msgstr "Épaisseur de ligne" @@ -11378,12 +11303,12 @@ msgstr "" "fichier." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: appTools/ToolQRCode.py:702 app_Main.py:9732 +#: appTools/ToolQRCode.py:703 app_Main.py:7308 msgid "Version" msgstr "Version" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: appTools/ToolQRCode.py:704 +#: appTools/ToolQRCode.py:705 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11392,13 +11317,13 @@ msgstr "" "jusqu'à 40 (éléments 177x177)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: appTools/ToolQRCode.py:715 +#: appTools/ToolQRCode.py:716 msgid "Error correction" msgstr "Correction des erreurs" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: appTools/ToolQRCode.py:717 appTools/ToolQRCode.py:728 +#: appTools/ToolQRCode.py:718 appTools/ToolQRCode.py:729 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -11414,12 +11339,12 @@ msgstr "" "H = maximum 30 %% d'erreurs peuvent être corrigées." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: appTools/ToolQRCode.py:738 +#: appTools/ToolQRCode.py:739 msgid "Box Size" msgstr "Taille d'élément" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: appTools/ToolQRCode.py:740 +#: appTools/ToolQRCode.py:741 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11428,12 +11353,12 @@ msgstr "" "en ajustant la taille de chaque case du code." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: appTools/ToolQRCode.py:751 +#: appTools/ToolQRCode.py:752 msgid "Border Size" msgstr "Taille de bordure" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: appTools/ToolQRCode.py:753 +#: appTools/ToolQRCode.py:754 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." @@ -11442,27 +11367,27 @@ msgstr "" "La valeur par défaut est 4. La largeur du jeu autour du QRCode." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: appTools/ToolQRCode.py:673 +#: appTools/ToolQRCode.py:674 msgid "QRCode Data" msgstr "Données QRCode" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: appTools/ToolQRCode.py:675 +#: appTools/ToolQRCode.py:676 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "Données QRCode. Texte alphanumérique à encoder dans le QRCode." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: appTools/ToolQRCode.py:679 +#: appTools/ToolQRCode.py:680 msgid "Add here the text to be included in the QRCode..." msgstr "Ajoutez ici le texte à inclure dans le QRCode ..." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: appTools/ToolQRCode.py:764 +#: appTools/ToolQRCode.py:765 msgid "Polarity" msgstr "Polarité" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: appTools/ToolQRCode.py:766 +#: appTools/ToolQRCode.py:767 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11473,17 +11398,17 @@ msgstr "" "ou d'une manière positive (les carrés sont opaques)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:770 +#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:771 msgid "Negative" msgstr "Négatif" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:771 +#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:772 msgid "Positive" msgstr "Positif" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: appTools/ToolQRCode.py:773 +#: appTools/ToolQRCode.py:774 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -11497,7 +11422,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: appTools/ToolQRCode.py:784 appTools/ToolQRCode.py:790 +#: appTools/ToolQRCode.py:785 appTools/ToolQRCode.py:791 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -11506,22 +11431,22 @@ msgstr "" "la géométrie QRCode, peut avoir une forme arrondie ou carrée." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: appTools/ToolQRCode.py:818 +#: appTools/ToolQRCode.py:819 msgid "Fill Color" msgstr "La couleur de remplissage" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: appTools/ToolQRCode.py:820 +#: appTools/ToolQRCode.py:821 msgid "Set the QRCode fill color (squares color)." msgstr "Définissez la couleur de remplissage QRCode (couleur des éléments)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: appTools/ToolQRCode.py:842 +#: appTools/ToolQRCode.py:843 msgid "Back Color" msgstr "Couleur de fond" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: appTools/ToolQRCode.py:844 +#: appTools/ToolQRCode.py:845 msgid "Set the QRCode background color." msgstr "Définissez la couleur d'arrière-plan QRCode." @@ -11746,7 +11671,7 @@ msgid "Drill dia" msgstr "Forage dia" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: appTools/ToolDblSided.py:824 appTools/ToolDblSided.py:829 +#: appTools/ToolDblSided.py:826 appTools/ToolDblSided.py:831 msgid "Diameter of the drill for the alignment holes." msgstr "Diamètre du foret pour les trous d'alignement." @@ -11756,7 +11681,7 @@ msgstr "Aligner l'axe" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: appTools/ToolDblSided.py:667 appTools/ToolDblSided.py:840 +#: appTools/ToolDblSided.py:669 appTools/ToolDblSided.py:842 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Miroir verticalement (X) ou horizontalement (Y)." @@ -11765,12 +11690,12 @@ msgid "Mirror Axis:" msgstr "Axe du miroir:" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 -#: appTools/ToolDblSided.py:693 +#: appTools/ToolDblSided.py:695 msgid "Box" msgstr "Box" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 -#: appTools/ToolDblSided.py:694 +#: appTools/ToolDblSided.py:696 #, fuzzy #| msgid "Hole Size" msgid "Hole Snap" @@ -11930,12 +11855,12 @@ msgid "Corner Markers Options" msgstr "Options des Marqueurs de Coin" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:386 +#: appTools/ToolCorners.py:387 msgid "The thickness of the line that makes the corner marker." msgstr "L'épaisseur de la ligne qui fait le marqueur de coin." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:400 +#: appTools/ToolCorners.py:401 msgid "The length of the line that makes the corner marker." msgstr "La longueur de la ligne qui fait le marqueur de coin." @@ -11953,7 +11878,7 @@ msgstr "" "la Plaque PCB." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: appTools/ToolCutOut.py:2062 +#: appTools/ToolCutOut.py:2066 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -11966,7 +11891,7 @@ msgid "Object kind" msgstr "Type d'objet" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: appTools/ToolCutOut.py:1995 +#: appTools/ToolCutOut.py:1999 msgid "" "Choice of what kind the object we want to cutout is.
    - Single: " "contain a single PCB Gerber outline object.
    - Panel: a panel PCB " @@ -11979,12 +11904,12 @@ msgstr "" "sur beaucoup de contours individuels de PCB." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: appTools/ToolCutOut.py:2001 +#: appTools/ToolCutOut.py:2005 msgid "Single" msgstr "Seul" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: appTools/ToolCutOut.py:2002 +#: appTools/ToolCutOut.py:2006 msgid "Panel" msgstr "Panneau" @@ -12013,12 +11938,12 @@ msgstr "" "- 8 - 2 Gauches + 2 Droites + 2 Hauts + 2 Bas" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 -#: appTools/ToolCutOut.py:2333 +#: appTools/ToolCutOut.py:2337 msgid "Big cursor" msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 -#: appTools/ToolCutOut.py:2335 +#: appTools/ToolCutOut.py:2339 msgid "Use a big cursor when adding manual gaps." msgstr "" @@ -12300,18 +12225,18 @@ msgstr "" "Ce peut être l'un des quatre points de la boîte englobante de la géométrie." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:342 appTools/ToolFiducials.py:694 +#: appTools/ToolCorners.py:343 appTools/ToolFiducials.py:696 #: appTools/ToolFilm.py:1065 msgid "Bottom Left" msgstr "En bas à gauche" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:350 appTools/ToolFilm.py:1066 +#: appTools/ToolCorners.py:351 appTools/ToolFilm.py:1066 msgid "Top Left" msgstr "En haut à gauche" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:346 appTools/ToolFilm.py:1067 +#: appTools/ToolCorners.py:347 appTools/ToolFilm.py:1067 msgid "Bottom Right" msgstr "En bas à droite" @@ -12590,9 +12515,9 @@ msgstr "Progressif" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:453 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1044 -#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530 -#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:463 app_Main.py:4682 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCorners.py:264 appTools/ToolFiducials.py:532 +#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:464 app_Main.py:4605 msgid "Plotting" msgstr "Traçage" @@ -12786,9 +12711,9 @@ msgstr "Nombre de lignes du panneau désiré" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:891 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2009 appTools/ToolDblSided.py:525 -#: appTools/ToolDblSided.py:765 appTools/ToolFilm.py:928 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:527 +#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:928 #: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 #: appTools/ToolIsolation.py:3339 appTools/ToolIsolation.py:3391 @@ -13414,7 +13339,7 @@ msgid "Export cancelled ..." msgstr "Exportation annulée ..." #: appObjects/FlatCAMCNCJob.py:1678 appObjects/FlatCAMCNCJob.py:1965 -#: appObjects/FlatCAMScript.py:134 app_Main.py:7830 +#: appObjects/FlatCAMScript.py:134 app_Main.py:6925 msgid "Loading..." msgstr "Chargement..." @@ -13560,7 +13485,7 @@ msgstr "Ajouter à partir de la BD d'outils" #: appTools/ToolDrilling.py:1021 appTools/ToolIsolation.py:639 #: appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744 #: appTools/ToolMilling.py:779 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 -#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2194 +#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2203 msgid "No Tool Selected" msgstr "Aucun Outil sélectionné" @@ -13869,7 +13794,7 @@ msgstr "Objet renommé de {old} à {new}" #: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939 #: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951 #: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 -#: app_Main.py:6707 app_Main.py:6713 app_Main.py:6719 app_Main.py:6725 +#: app_Main.py:6630 app_Main.py:6636 app_Main.py:6642 app_Main.py:6648 msgid "selected" msgstr "choisir" @@ -14039,7 +13964,7 @@ msgid "Click on the START point." msgstr "Cliquez sur le point de Départ." #: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276 -#: appTools/ToolDblSided.py:285 +#: appTools/ToolDblSided.py:287 msgid "Cancelled by user request." msgstr "Annulé par demande de l'utilisateur." @@ -14053,7 +13978,7 @@ msgid "Or right click to cancel." msgstr "Ou cliquez avec le bouton droit pour annuler." #: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267 -#: appTools/ToolFiducials.py:718 +#: appTools/ToolFiducials.py:720 msgid "Second Point" msgstr "Deuxième point" @@ -14140,32 +14065,32 @@ msgstr "" "Si ces points sont utilisés, cela suppose une translation et une rotation." #: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1583 -#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394 -#: appTools/ToolDblSided.py:938 appTools/ToolDrilling.py:2649 -#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:702 -#: appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCorners.py:445 appTools/ToolCutOut.py:2398 +#: appTools/ToolDblSided.py:940 appTools/ToolDrilling.py:2649 +#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:703 +#: appTools/ToolFiducials.py:934 appTools/ToolFilm.py:1383 #: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477 #: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4388 #: appTools/ToolOptimal.py:593 appTools/ToolPaint.py:3194 #: appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:996 -#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1620 +#: appTools/ToolQRCode.py:905 appTools/ToolRulesCheck.py:1620 #: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:754 #: appTools/ToolTransform.py:920 msgid "Reset Tool" msgstr "Réinitialiser l'outil" #: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1586 -#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397 -#: appTools/ToolDblSided.py:941 appTools/ToolDrilling.py:2652 -#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:705 -#: appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1582 +#: appTools/ToolCorners.py:448 appTools/ToolCutOut.py:2401 +#: appTools/ToolDblSided.py:943 appTools/ToolDrilling.py:2652 +#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:706 +#: appTools/ToolFiducials.py:937 appTools/ToolFilm.py:1386 #: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480 #: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4391 #: appTools/ToolOptimal.py:596 appTools/ToolPaint.py:3197 #: appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:999 -#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1623 +#: appTools/ToolQRCode.py:908 appTools/ToolRulesCheck.py:1623 #: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:757 #: appTools/ToolTransform.py:923 msgid "Will reset the tool parameters." @@ -14584,30 +14509,30 @@ msgstr "Remplissage de la grille de points sélectionné." msgid "Squares grid fill selected." msgstr "Remplissage de la grille des carrés sélectionné." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308 -#: appTools/ToolCopperThieving.py:916 appTools/ToolCorners.py:120 -#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141 +#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:307 +#: appTools/ToolCopperThieving.py:914 appTools/ToolCorners.py:120 +#: appTools/ToolDblSided.py:306 appTools/ToolExtractDrills.py:141 #: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464 #: appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:188 #: appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Il n'y a pas d'objet Gerber chargé ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:844 +#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 msgid "Append geometry" msgstr "Ajouter une géométrie" -#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:877 -#: appTools/ToolCopperThieving.py:1022 +#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:876 +#: appTools/ToolCopperThieving.py:1020 msgid "Append source file" msgstr "Ajouter un fichier source" -#: appTools/ToolCopperThieving.py:291 appTools/ToolCopperThieving.py:885 +#: appTools/ToolCopperThieving.py:290 appTools/ToolCopperThieving.py:883 msgid "Copper Thieving Tool done." msgstr "Outil de Copper Thieving fait." -#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351 -#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917 +#: appTools/ToolCopperThieving.py:317 appTools/ToolCopperThieving.py:350 +#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:918 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 #: appTools/ToolIsolation.py:908 appTools/ToolIsolation.py:1345 @@ -14622,79 +14547,79 @@ msgstr "Outil de Copper Thieving fait." msgid "Could not retrieve object" msgstr "Impossible de récupérer l'objet" -#: appTools/ToolCopperThieving.py:379 +#: appTools/ToolCopperThieving.py:378 msgid "Click the end point of the filling area." msgstr "Cliquez sur le point final de la zone de remplissage." -#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511 -#: appTools/ToolCopperThieving.py:570 +#: appTools/ToolCopperThieving.py:506 appTools/ToolCopperThieving.py:510 +#: appTools/ToolCopperThieving.py:569 msgid "Thieving" msgstr "Voleur" -#: appTools/ToolCopperThieving.py:518 +#: appTools/ToolCopperThieving.py:517 msgid "Copper Thieving Tool started. Reading parameters." msgstr "L'outil de Copper Thieving a démarré. Lecture des paramètres." -#: appTools/ToolCopperThieving.py:543 +#: appTools/ToolCopperThieving.py:542 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Outil de Copper Thieving. Préparation des polygones d'isolement." -#: appTools/ToolCopperThieving.py:586 +#: appTools/ToolCopperThieving.py:585 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Outil de Copper Thieving. Préparer les zones à remplir de cuivre." -#: appTools/ToolCopperThieving.py:597 appTools/ToolFilm.py:631 +#: appTools/ToolCopperThieving.py:596 appTools/ToolFilm.py:631 #: appTools/ToolFilm.py:879 appTools/ToolIsolation.py:916 #: appTools/ToolNCC.py:853 appTools/ToolOptimal.py:145 #: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:627 msgid "Working..." msgstr "Travail..." -#: appTools/ToolCopperThieving.py:626 +#: appTools/ToolCopperThieving.py:625 msgid "Geometry not supported for bounding box" msgstr "Géométrie non prise en charge pour le cadre de sélection" -#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1681 +#: appTools/ToolCopperThieving.py:631 appTools/ToolNCC.py:1681 #: appTools/ToolNCC.py:1736 appTools/ToolNCC.py:2734 appTools/ToolPaint.py:2457 msgid "No object available." msgstr "Aucun objet disponible." -#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1706 +#: appTools/ToolCopperThieving.py:668 appTools/ToolNCC.py:1706 #: appTools/ToolNCC.py:1759 appTools/ToolNCC.py:2776 msgid "The reference object type is not supported." msgstr "Le type d'objet de référence n'est pas pris en charge." -#: appTools/ToolCopperThieving.py:674 +#: appTools/ToolCopperThieving.py:673 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." -#: appTools/ToolCopperThieving.py:690 +#: appTools/ToolCopperThieving.py:689 msgid "Create geometry" msgstr "Créer une géométrie" -#: appTools/ToolCopperThieving.py:896 appTools/ToolCopperThieving.py:900 +#: appTools/ToolCopperThieving.py:894 appTools/ToolCopperThieving.py:898 msgid "P-Plating Mask" msgstr "Masque de placage P" -#: appTools/ToolCopperThieving.py:922 +#: appTools/ToolCopperThieving.py:920 msgid "Append PP-M geometry" msgstr "Ajouter la géométrie du masque P de placage" -#: appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCopperThieving.py:1036 msgid "Generating Pattern Plating Mask done." msgstr "Génération du masque de placage de motif terminée." -#: appTools/ToolCopperThieving.py:1112 +#: appTools/ToolCopperThieving.py:1108 msgid "Copper Thieving Tool exit." msgstr "Sortie de l'outil de Copper Thieving." -#: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 +#: appTools/ToolCopperThieving.py:1167 appTools/ToolFiducials.py:877 msgid "Gerber Object to which will be added a copper thieving." msgstr "Objet Gerber auquel sera ajouté un voleur de cuivre." -#: appTools/ToolCopperThieving.py:1197 +#: appTools/ToolCopperThieving.py:1193 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14704,7 +14629,7 @@ msgstr "" "(le remplissage du polygone peut être divisé en plusieurs polygones)\n" "et les traces de cuivre dans le fichier Gerber." -#: appTools/ToolCopperThieving.py:1230 +#: appTools/ToolCopperThieving.py:1226 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 " @@ -14719,12 +14644,12 @@ msgstr "" "- «Objet de référence» - effectuera un Copper Thieving dans la zone " "spécifiée par un autre objet." -#: appTools/ToolCopperThieving.py:1237 appTools/ToolIsolation.py:3385 +#: appTools/ToolCopperThieving.py:1233 appTools/ToolIsolation.py:3385 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3137 msgid "Ref. Type" msgstr "Type de Réf" -#: appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1235 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14732,21 +14657,21 @@ msgstr "" "Type d'objet FlatCAM à utiliser comme référence de Copper Thieving.\n" "Il peut s'agir de Gerber, Excellon ou Géométrie." -#: appTools/ToolCopperThieving.py:1248 appTools/ToolIsolation.py:3396 +#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3396 #: appTools/ToolNCC.py:4327 appTools/ToolPaint.py:3147 msgid "Ref. Object" msgstr "Réf. Objet" -#: appTools/ToolCopperThieving.py:1250 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1246 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4329 appTools/ToolPaint.py:3149 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." -#: appTools/ToolCopperThieving.py:1426 +#: appTools/ToolCopperThieving.py:1422 msgid "Insert Copper thieving" msgstr "Insérer Copper Thieving" -#: appTools/ToolCopperThieving.py:1428 +#: appTools/ToolCopperThieving.py:1424 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14754,11 +14679,11 @@ msgstr "" "Ajoutera un polygone (peut être divisé en plusieurs parties)\n" "qui entourera les traces réelles de Gerber à une certaine distance." -#: appTools/ToolCopperThieving.py:1487 +#: appTools/ToolCopperThieving.py:1483 msgid "Insert Robber Bar" msgstr "Insérer une Robber Bar" -#: appTools/ToolCopperThieving.py:1489 +#: appTools/ToolCopperThieving.py:1485 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14770,11 +14695,11 @@ msgstr "" "à une certaine distance.\n" "Requis lors du placage des trous." -#: appTools/ToolCopperThieving.py:1513 +#: appTools/ToolCopperThieving.py:1509 msgid "Select Soldermask object" msgstr "Sélectionner un objet Soldermask" -#: appTools/ToolCopperThieving.py:1515 +#: appTools/ToolCopperThieving.py:1511 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14784,11 +14709,11 @@ msgstr "" "Il sera utilisé comme base pour\n" "le masque de placage de motifs." -#: appTools/ToolCopperThieving.py:1544 +#: appTools/ToolCopperThieving.py:1540 msgid "Plated area" msgstr "Zone plaquée" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1542 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14807,19 +14732,19 @@ msgstr "" "un peu plus grand que les tampons en cuivre, et cette zone est\n" "calculé à partir des ouvertures du masque de soldat." -#: appTools/ToolCopperThieving.py:1557 +#: appTools/ToolCopperThieving.py:1553 msgid "mm" msgstr "mm" -#: appTools/ToolCopperThieving.py:1559 +#: appTools/ToolCopperThieving.py:1555 msgid "in" msgstr "in" -#: appTools/ToolCopperThieving.py:1566 +#: appTools/ToolCopperThieving.py:1562 msgid "Generate pattern plating mask" msgstr "Générer un masque de placage de motifs" -#: appTools/ToolCopperThieving.py:1568 +#: appTools/ToolCopperThieving.py:1564 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14833,39 +14758,39 @@ msgstr "" msgid "Corners Tool" msgstr "Outil de Coins" -#: appTools/ToolCorners.py:157 +#: appTools/ToolCorners.py:158 msgid "Please select at least a location" msgstr "Veuillez sélectionner au moins un emplacement" -#: appTools/ToolCorners.py:292 +#: appTools/ToolCorners.py:293 msgid "Corners Tool exit." msgstr "Sortie d'outil de Coins." -#: appTools/ToolCorners.py:319 +#: appTools/ToolCorners.py:320 msgid "The Gerber object to which will be added corner markers." msgstr "L'objet Gerber auquel seront ajoutés des marqueurs de coin." -#: appTools/ToolCorners.py:335 +#: appTools/ToolCorners.py:336 msgid "Locations" msgstr "Locations" -#: appTools/ToolCorners.py:337 +#: appTools/ToolCorners.py:338 msgid "Locations where to place corner markers." msgstr "Emplacements où placer les marqueurs de coin." -#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706 +#: appTools/ToolCorners.py:355 appTools/ToolFiducials.py:708 msgid "Top Right" msgstr "En haut à droite" -#: appTools/ToolCorners.py:363 +#: appTools/ToolCorners.py:364 msgid "Toggle ALL" msgstr "Tout basculer" -#: appTools/ToolCorners.py:429 +#: appTools/ToolCorners.py:430 msgid "Add Marker" msgstr "Ajouter un marqueur" -#: appTools/ToolCorners.py:431 +#: appTools/ToolCorners.py:432 msgid "Will add corner markers to the selected Gerber file." msgstr "Ajoutera des marqueurs de coin au fichier Gerber sélectionné." @@ -14874,7 +14799,7 @@ msgstr "Ajoutera des marqueurs de coin au fichier Gerber sélectionné." #: appTools/ToolNCC.py:463 appTools/ToolNCC.py:992 appTools/ToolNCC.py:1130 #: appTools/ToolPaint.py:395 appTools/ToolPaint.py:686 #: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131 -#: appTools/ToolSolderPaste.py:464 app_Main.py:4496 +#: appTools/ToolSolderPaste.py:464 app_Main.py:4419 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 " @@ -14926,18 +14851,18 @@ msgstr "" "Aucun objet n'est sélectionné pour la découpe.\n" "Sélectionnez-en un et réessayez." -#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:926 -#: appTools/ToolCutOut.py:1300 appTools/ToolCutOut.py:1431 +#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:927 +#: appTools/ToolCutOut.py:1303 appTools/ToolCutOut.py:1434 #: 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." -#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:940 +#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:941 msgid "Number of gaps value is missing. Add it and retry." msgstr "Le nombre de lacunes est manquant. Ajoutez-le et réessayez." -#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:944 +#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:945 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " @@ -14946,18 +14871,18 @@ msgstr "" "'None', 'LR', 'TB', '2LR','2TB', 4 ou 8. Saisissez une valeur correcte, puis " "réessayez. " -#: appTools/ToolCutOut.py:891 appTools/ToolCutOut.py:1260 -#: appTools/ToolCutOut.py:1615 +#: appTools/ToolCutOut.py:892 appTools/ToolCutOut.py:1263 +#: appTools/ToolCutOut.py:1619 #, fuzzy #| msgid "Open GCode file failed." msgid "Mouse bites failed." msgstr "Défaut d'ouverture du fichier G-code." -#: appTools/ToolCutOut.py:899 +#: appTools/ToolCutOut.py:900 msgid "Any form CutOut operation finished." msgstr "Opération de découpe Forme Libre terminée." -#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586 +#: appTools/ToolCutOut.py:922 appTools/ToolDrilling.py:1586 #: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349 #: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326 @@ -14967,38 +14892,38 @@ msgstr "Opération de découpe Forme Libre terminée." msgid "Object not found" msgstr "Objet non trouvé" -#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187 +#: appTools/ToolCutOut.py:1115 appTools/ToolCutOut.py:1188 msgid "Rectangular cutout with negative margin is not possible." msgstr "Une découpe rectangulaire avec une marge négative n'est pas possible." -#: appTools/ToolCutOut.py:1268 +#: appTools/ToolCutOut.py:1271 #, fuzzy #| msgid "Any form CutOut operation finished." msgid "Rectangular CutOut operation finished." msgstr "Opération de découpe Forme Libre terminée." -#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316 +#: appTools/ToolCutOut.py:1287 appTools/ToolCutOut.py:1319 msgid "Could not retrieve Geometry object" msgstr "Impossible de récupérer l'objet de géométrie" -#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344 +#: appTools/ToolCutOut.py:1292 appTools/ToolCutOut.py:1347 msgid "Geometry object for manual cutout not found" msgstr "Objet de géométrie pour découpe manuelle introuvable" -#: appTools/ToolCutOut.py:1292 +#: appTools/ToolCutOut.py:1295 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 ..." -#: appTools/ToolCutOut.py:1380 +#: appTools/ToolCutOut.py:1383 #, fuzzy #| msgid "Generate the Geometry object." msgid "No tool in the Geometry object." msgstr "Générez l'objet Géométrie." -#: appTools/ToolCutOut.py:1401 +#: appTools/ToolCutOut.py:1404 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -15008,11 +14933,11 @@ msgstr "" "Zone ajoutée. Cliquez pour commencer à ajouter la zone suivante ou faites un " "clic droit pour terminer." -#: appTools/ToolCutOut.py:1413 +#: appTools/ToolCutOut.py:1416 msgid "Could not retrieve Gerber object" msgstr "Impossible de récupérer l'objet Gerber" -#: appTools/ToolCutOut.py:1418 +#: appTools/ToolCutOut.py:1421 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." @@ -15020,7 +14945,7 @@ msgstr "" "Aucun objet Gerber n'a été sélectionné pour la découpe.\n" "Sélectionnez-en un et réessayez." -#: appTools/ToolCutOut.py:1424 +#: appTools/ToolCutOut.py:1427 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -15028,36 +14953,36 @@ msgstr "" "L'objet sélectionné doit être de type Gerber.\n" "Sélectionnez un fichier Gerber et réessayez." -#: appTools/ToolCutOut.py:1459 +#: appTools/ToolCutOut.py:1462 msgid "Geometry not supported for cutout" msgstr "Géométrie non prise en charge pour la découpe" -#: appTools/ToolCutOut.py:1531 +#: appTools/ToolCutOut.py:1534 msgid "Making manual bridge gap..." msgstr "Faire un pont manuel ..." -#: appTools/ToolCutOut.py:1619 +#: appTools/ToolCutOut.py:1623 msgid "Finished manual adding of gaps." msgstr "" -#: appTools/ToolCutOut.py:1961 +#: appTools/ToolCutOut.py:1965 msgid "Cutout PCB" msgstr "Découpe de PCB" -#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513 +#: appTools/ToolCutOut.py:1991 appTools/ToolDblSided.py:515 #: appTools/ToolPanelize.py:652 msgid "Source Object" msgstr "Objet source" -#: appTools/ToolCutOut.py:1988 +#: appTools/ToolCutOut.py:1992 msgid "Object to be cutout" msgstr "Objet à découper" -#: appTools/ToolCutOut.py:1993 +#: appTools/ToolCutOut.py:1997 msgid "Kind" msgstr "Sorte" -#: appTools/ToolCutOut.py:2015 +#: appTools/ToolCutOut.py:2019 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -15069,7 +14994,7 @@ msgstr "" "Ce qui est sélectionné ici dictera le genre\n" "des objets qui vont remplir la liste déroulante 'Object'." -#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125 +#: appTools/ToolCutOut.py:2078 appTools/ToolIsolation.py:3125 #: appTools/ToolNCC.py:3999 appTools/ToolPaint.py:2901 msgid "" "Add a new tool to the Tool Table\n" @@ -15079,27 +15004,27 @@ msgid "" "in the Tools DB then a default tool is added." msgstr "" -#: appTools/ToolCutOut.py:2100 +#: appTools/ToolCutOut.py:2104 msgid "Tool Parameters" msgstr "Paramètres d'outil" -#: appTools/ToolCutOut.py:2249 +#: appTools/ToolCutOut.py:2253 #, fuzzy #| msgid "Auto" msgid "Automatic" msgstr "Auto" -#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324 +#: appTools/ToolCutOut.py:2253 appTools/ToolCutOut.py:2328 #, fuzzy #| msgid "B. Manual Bridge Gaps" msgid "Bridge Gaps" msgstr "B. Pont de maintient Manuel" -#: appTools/ToolCutOut.py:2251 +#: appTools/ToolCutOut.py:2255 msgid "This section handle creation of automatic bridge gaps." msgstr "Cette section gère la création des ponts de maintient automatiques." -#: appTools/ToolCutOut.py:2290 +#: appTools/ToolCutOut.py:2294 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -15109,7 +15034,7 @@ 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." -#: appTools/ToolCutOut.py:2305 +#: appTools/ToolCutOut.py:2309 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -15121,7 +15046,7 @@ msgstr "" "toujours une forme de rectangle et ce sera\n" "la boîte englobante de l'objet." -#: appTools/ToolCutOut.py:2326 +#: appTools/ToolCutOut.py:2330 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -15131,11 +15056,11 @@ 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. " -#: appTools/ToolCutOut.py:2342 +#: appTools/ToolCutOut.py:2346 msgid "Generate Manual Geometry" msgstr "Générer une géométrie manuelle" -#: appTools/ToolCutOut.py:2345 +#: appTools/ToolCutOut.py:2349 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -15148,21 +15073,21 @@ msgstr "" "Sélectionnez le fichier Gerber source dans la liste déroulante d'objets " "supérieure." -#: appTools/ToolCutOut.py:2365 +#: appTools/ToolCutOut.py:2369 #, fuzzy #| msgid "Subtract Geometry" msgid "Manual cutout Geometry" msgstr "Soustraire la géométrie" -#: appTools/ToolCutOut.py:2367 +#: appTools/ToolCutOut.py:2371 msgid "Geometry object used to create the manual cutout." msgstr "Objet de géométrie utilisé pour créer la découpe manuelle." -#: appTools/ToolCutOut.py:2374 +#: appTools/ToolCutOut.py:2378 msgid "Manual Add Bridge Gaps" msgstr "Ajout manuel de ponts dans la découpe" -#: appTools/ToolCutOut.py:2377 +#: appTools/ToolCutOut.py:2381 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -15205,34 +15130,34 @@ msgstr "" "Il n’y a pas de coordonnées de perceuse d’alignement à utiliser. Ajoutez-les " "et réessayez." -#: appTools/ToolDblSided.py:213 +#: appTools/ToolDblSided.py:215 msgid "Excellon object with alignment drills created..." msgstr "Excellon objet avec des exercices d'alignement créé ..." -#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209 +#: appTools/ToolDblSided.py:226 appTools/ToolPunchGerber.py:209 msgid "There is no Excellon object loaded ..." msgstr "Il n'y a pas d'objet Excellon chargé ..." -#: appTools/ToolDblSided.py:236 +#: appTools/ToolDblSided.py:238 msgid "Click on canvas within the desired Excellon drill hole" msgstr "" -#: appTools/ToolDblSided.py:280 +#: appTools/ToolDblSided.py:282 #, fuzzy #| msgid "Mirror Reference point" msgid "Mirror reference point set." msgstr "Miroir Point de référence" -#: appTools/ToolDblSided.py:308 +#: appTools/ToolDblSided.py:310 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "" "Seuls les objets Gerber, Excellon et Géométrie peuvent être mis en miroir." -#: appTools/ToolDblSided.py:320 +#: appTools/ToolDblSided.py:322 msgid "There is no Box object loaded ..." msgstr "Il n'y a pas d'objet Box chargé ..." -#: appTools/ToolDblSided.py:330 +#: appTools/ToolDblSided.py:332 msgid "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." @@ -15240,31 +15165,31 @@ msgstr "" "Il n'y a pas de coordonnées de point dans le champ Point. Ajoutez des " "coordonnées et réessayez ..." -#: appTools/ToolDblSided.py:337 camlib.py:2401 +#: appTools/ToolDblSided.py:339 camlib.py:2401 msgid "Object was mirrored" msgstr "L'objet a été reflété" -#: appTools/ToolDblSided.py:403 app_Main.py:4635 app_Main.py:4790 +#: appTools/ToolDblSided.py:405 app_Main.py:4558 app_Main.py:4713 msgid "Failed. No object(s) selected..." msgstr "Érreur. Aucun objet sélectionné ..." -#: appTools/ToolDblSided.py:487 +#: appTools/ToolDblSided.py:489 msgid "2-Sided PCB" msgstr "PCB double face" -#: appTools/ToolDblSided.py:514 +#: appTools/ToolDblSided.py:516 msgid "Objects to be mirrored" msgstr "Objets à mettre en miroir" -#: appTools/ToolDblSided.py:521 +#: appTools/ToolDblSided.py:523 msgid "Select the type of application object to be processed in this tool." msgstr "" -#: appTools/ToolDblSided.py:555 +#: appTools/ToolDblSided.py:557 msgid "Bounds Values" msgstr "Valeurs limites" -#: appTools/ToolDblSided.py:557 +#: appTools/ToolDblSided.py:559 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -15272,39 +15197,39 @@ msgstr "" "Sélectionnez sur le canevas le ou les objets\n" "pour lequel calculer les valeurs limites." -#: appTools/ToolDblSided.py:567 +#: appTools/ToolDblSided.py:569 msgid "X min" msgstr "X min" -#: appTools/ToolDblSided.py:569 appTools/ToolDblSided.py:583 +#: appTools/ToolDblSided.py:571 appTools/ToolDblSided.py:585 msgid "Minimum location." msgstr "Emplacement minimum." -#: appTools/ToolDblSided.py:581 +#: appTools/ToolDblSided.py:583 msgid "Y min" msgstr "Y min" -#: appTools/ToolDblSided.py:595 +#: appTools/ToolDblSided.py:597 msgid "X max" msgstr "X max" -#: appTools/ToolDblSided.py:597 appTools/ToolDblSided.py:611 +#: appTools/ToolDblSided.py:599 appTools/ToolDblSided.py:613 msgid "Maximum location." msgstr "Emplacement maximum." -#: appTools/ToolDblSided.py:609 +#: appTools/ToolDblSided.py:611 msgid "Y max" msgstr "Y max" -#: appTools/ToolDblSided.py:620 +#: appTools/ToolDblSided.py:622 msgid "Center point coordinates" msgstr "Coordonnées du point central" -#: appTools/ToolDblSided.py:622 +#: appTools/ToolDblSided.py:624 msgid "Centroid" msgstr "Centroïde" -#: appTools/ToolDblSided.py:624 +#: appTools/ToolDblSided.py:626 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -15312,11 +15237,11 @@ msgstr "" "L'emplacement du point central pour le rectangulaire\n" "forme de délimitation. Centroïde. Le format est (x, y)." -#: appTools/ToolDblSided.py:633 +#: appTools/ToolDblSided.py:635 msgid "Calculate Bounds Values" msgstr "Calculer les valeurs limites" -#: appTools/ToolDblSided.py:635 +#: appTools/ToolDblSided.py:637 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" @@ -15326,15 +15251,15 @@ msgstr "" "pour la sélection d'objets.\n" "La forme de l'enveloppe est parallèle à l'axe X, Y." -#: appTools/ToolDblSided.py:660 +#: appTools/ToolDblSided.py:662 msgid "Mirror Operation" msgstr "Miroir Opération" -#: appTools/ToolDblSided.py:661 +#: appTools/ToolDblSided.py:663 msgid "Parameters for the mirror operation" msgstr "Paramètres de l'opération Miroir" -#: appTools/ToolDblSided.py:683 +#: appTools/ToolDblSided.py:685 #, fuzzy #| msgid "" #| "The coordinates used as reference for the mirror operation.\n" @@ -15360,11 +15285,11 @@ msgstr "" "la\n" "cadre de délimitation d'un autre objet sélectionné ci-dessous" -#: appTools/ToolDblSided.py:703 +#: appTools/ToolDblSided.py:705 msgid "Point coordinates" msgstr "Coordonnées du point" -#: appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:710 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -15380,21 +15305,21 @@ msgstr "" "et cliquez avec le bouton gauche de la souris sur la toile ou vous pouvez " "entrer les coordonnées manuellement." -#: appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:728 msgid "Object that holds holes that can be picked as reference for mirroring." msgstr "" -#: appTools/ToolDblSided.py:741 +#: appTools/ToolDblSided.py:743 msgid "Pick hole" msgstr "" -#: appTools/ToolDblSided.py:743 +#: appTools/ToolDblSided.py:745 msgid "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." msgstr "" -#: appTools/ToolDblSided.py:759 +#: appTools/ToolDblSided.py:761 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -15404,11 +15329,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." -#: appTools/ToolDblSided.py:785 +#: appTools/ToolDblSided.py:787 msgid "Mirror" msgstr "Miroir" -#: appTools/ToolDblSided.py:787 +#: appTools/ToolDblSided.py:789 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -15418,11 +15343,11 @@ msgstr "" "l'axe spécifié. Ne crée pas de nouveau\n" "objet, mais le modifie." -#: appTools/ToolDblSided.py:813 +#: appTools/ToolDblSided.py:815 msgid "PCB Alignment" msgstr "Alignement PCB" -#: appTools/ToolDblSided.py:815 appTools/ToolDblSided.py:923 +#: appTools/ToolDblSided.py:817 appTools/ToolDblSided.py:925 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -15432,11 +15357,11 @@ msgstr "" "trous d'alignement spécifiés et leur miroir\n" "images." -#: appTools/ToolDblSided.py:822 +#: appTools/ToolDblSided.py:824 msgid "Drill Diameter" msgstr "Diam. de perçage" -#: appTools/ToolDblSided.py:857 appTools/ToolDblSided.py:864 +#: appTools/ToolDblSided.py:859 appTools/ToolDblSided.py:866 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -15446,11 +15371,11 @@ msgstr "" "du premier foret d'alignement, en faisant miroir.\n" "Il peut être modifié dans la section Paramètres miroir -> Référence" -#: appTools/ToolDblSided.py:877 +#: appTools/ToolDblSided.py:879 msgid "Alignment Drill Coordinates" msgstr "Coordonnées du foret d'alignement" -#: appTools/ToolDblSided.py:879 +#: appTools/ToolDblSided.py:881 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -15468,11 +15393,11 @@ msgstr "" "- un foret en position miroir sur l'axe sélectionné ci-dessus dans 'Aligner " "l'axe'." -#: appTools/ToolDblSided.py:887 +#: appTools/ToolDblSided.py:889 msgid "Drill coordinates" msgstr "Coordonnées de forage" -#: appTools/ToolDblSided.py:894 +#: appTools/ToolDblSided.py:896 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -15500,15 +15425,15 @@ msgstr "" "- en saisissant manuellement les coordonnées au format: (x1, y1), (x2, " "y2), ..." -#: appTools/ToolDblSided.py:909 +#: appTools/ToolDblSided.py:911 msgid "Delete Last" msgstr "Supprimer le dernier" -#: appTools/ToolDblSided.py:911 +#: appTools/ToolDblSided.py:913 msgid "Delete the last coordinates tuple in the list." msgstr "Supprimez le dernier tuple de coordonnées de la liste." -#: appTools/ToolDblSided.py:921 +#: appTools/ToolDblSided.py:923 msgid "Create Excellon Object" msgstr "Créer un objet Excellon" @@ -15910,15 +15835,15 @@ msgstr "" msgid "No drills extracted. Try different parameters." msgstr "Aucun trou de forage extrait. Essayez différents paramètres." -#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687 +#: appTools/ToolExtractDrills.py:421 appTools/ToolExtractDrills.py:688 msgid "Extract Drills" msgstr "Extraire des forets" -#: appTools/ToolExtractDrills.py:454 +#: appTools/ToolExtractDrills.py:455 msgid "Gerber from which to extract drill holes" msgstr "Gerber d'où extraire les trous de forage" -#: appTools/ToolExtractDrills.py:689 +#: appTools/ToolExtractDrills.py:690 msgid "Extract drills from a given Gerber file." msgstr "Extraire les trous de forage d'un fichier Gerber donné." @@ -15926,29 +15851,29 @@ msgstr "Extraire les trous de forage d'un fichier Gerber donné." msgid "Click to add first Fiducial. Bottom Left..." msgstr "Cliquez pour ajouter le premier Fiducial. En bas à gauche..." -#: appTools/ToolFiducials.py:501 +#: appTools/ToolFiducials.py:503 msgid "Click to add the last fiducial. Top Right..." msgstr "Cliquez pour ajouter la dernière fiducie. En haut à droite..." -#: appTools/ToolFiducials.py:506 +#: appTools/ToolFiducials.py:508 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 ..." -#: appTools/ToolFiducials.py:509 appTools/ToolFiducials.py:518 +#: appTools/ToolFiducials.py:511 appTools/ToolFiducials.py:520 msgid "Done. All fiducials have been added." msgstr "Terminé. Tous les fiduciaux ont été ajoutés." -#: appTools/ToolFiducials.py:595 +#: appTools/ToolFiducials.py:597 msgid "Fiducials Tool exit." msgstr "Sortie de l'outil Fiducials." -#: appTools/ToolFiducials.py:667 +#: appTools/ToolFiducials.py:669 msgid "Fiducials Coordinates" msgstr "Coordonnées de Fiducials" -#: appTools/ToolFiducials.py:669 +#: appTools/ToolFiducials.py:671 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -15956,7 +15881,7 @@ msgstr "" "Un tableau avec les coordonnées des points de repère,\n" "au format (x, y)." -#: appTools/ToolFiducials.py:805 +#: appTools/ToolFiducials.py:807 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -15966,31 +15891,31 @@ msgstr "" "sélection.\n" "- «Manuel» - placement manuel des fiduciaires." -#: appTools/ToolFiducials.py:851 +#: appTools/ToolFiducials.py:853 msgid "Thickness of the line that makes the fiducial." msgstr "Épaisseur de la ligne qui rend le fiducial." -#: appTools/ToolFiducials.py:882 +#: appTools/ToolFiducials.py:884 msgid "Add Fiducial" msgstr "Ajouter Fiducial" -#: appTools/ToolFiducials.py:884 +#: appTools/ToolFiducials.py:886 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." -#: appTools/ToolFiducials.py:900 +#: appTools/ToolFiducials.py:902 msgid "Soldermask Gerber" msgstr "Soldermask Gerber" -#: appTools/ToolFiducials.py:902 +#: appTools/ToolFiducials.py:904 msgid "The Soldermask Gerber object." msgstr "L'objet Soldermask Gerber." -#: appTools/ToolFiducials.py:914 +#: appTools/ToolFiducials.py:916 msgid "Add Soldermask Opening" msgstr "Ajouter une ouverture de Soldermask" -#: appTools/ToolFiducials.py:916 +#: appTools/ToolFiducials.py:918 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -16183,7 +16108,7 @@ msgstr "Outil Image" msgid "Import IMAGE" msgstr "Importer une Image" -#: appTools/ToolImage.py:142 app_Main.py:8893 app_Main.py:8943 +#: appTools/ToolImage.py:142 app_Main.py:9782 app_Main.py:9832 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -16195,9 +16120,9 @@ msgstr "" msgid "Importing Image" msgstr "Importation d'Image" -#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8921 -#: app_Main.py:8976 app_Main.py:9040 app_Main.py:9103 app_Main.py:9169 -#: app_Main.py:9234 app_Main.py:9291 +#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:9810 +#: app_Main.py:9865 app_Main.py:9929 app_Main.py:9992 app_Main.py:10058 +#: app_Main.py:10123 app_Main.py:10180 msgid "Opened" msgstr "Ouvrir" @@ -16327,7 +16252,7 @@ msgid "New Tool" msgstr "Nouvel Outil" #: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:467 -#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4500 +#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4423 msgid "Adding Tool cancelled" msgstr "Ajout d'outil annulé" @@ -16494,7 +16419,7 @@ msgid "Click the end point of the paint area." msgstr "Cliquez sur le point final de la zone de peinture." #: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3722 -#: appTools/ToolPaint.py:2633 app_Main.py:5779 app_Main.py:5789 +#: appTools/ToolPaint.py:2633 app_Main.py:5702 app_Main.py:5712 msgid "Tool from DB added in Tool Table." msgstr "Outil ajouté a base de données." @@ -17048,11 +16973,11 @@ msgstr "Ouvrir le PDF annulé" msgid "Parsing PDF file ..." msgstr "Analyse du fichier PDF ..." -#: appTools/ToolPDF.py:138 app_Main.py:9134 +#: appTools/ToolPDF.py:138 app_Main.py:10023 msgid "Failed to open" msgstr "Impossible d'ouvrir" -#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9083 +#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9972 msgid "No geometry found in file" msgstr "Aucune géométrie trouvée dans le fichier" @@ -17490,7 +17415,7 @@ msgstr "Fichier PcbWizard .INF chargé." msgid "Main PcbWizard Excellon file loaded." msgstr "Le fichier principal de PcbWizard Excellon est chargé." -#: appTools/ToolPcbWizard.py:310 app_Main.py:9063 +#: appTools/ToolPcbWizard.py:310 app_Main.py:9952 msgid "This is not Excellon file." msgstr "Ce n'est pas un fichier Excellon." @@ -17621,9 +17546,9 @@ msgstr "" "l'autre a une extension .INF." #: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 -#: app_Main.py:4976 app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 -#: app_Main.py:7503 app_Main.py:7545 app_Main.py:7587 app_Main.py:7631 -#: app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 +#: app_Main.py:4899 app_Main.py:8253 app_Main.py:8351 app_Main.py:8391 +#: app_Main.py:8431 app_Main.py:8472 app_Main.py:8513 app_Main.py:8556 +#: app_Main.py:8599 app_Main.py:9058 app_Main.py:9062 msgid "No object selected." msgstr "Aucun objet sélectionné." @@ -17717,8 +17642,8 @@ msgstr "" "Créez un objet Gerber à partir de l'objet sélectionné, dans\n" "la case spécifiée." -#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485 -#: appTools/ToolQRCode.py:534 +#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:486 +#: appTools/ToolQRCode.py:535 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." @@ -17730,32 +17655,32 @@ msgstr "Génération de la géométrie QRCode" msgid "Click on the Destination point ..." msgstr "Cliquez sur le point de destination ..." -#: appTools/ToolQRCode.py:321 +#: appTools/ToolQRCode.py:322 msgid "QRCode Tool done." msgstr "Outil QRCode terminé." -#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521 +#: appTools/ToolQRCode.py:518 appTools/ToolQRCode.py:522 msgid "Export PNG" msgstr "Exporter en PNG" -#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7353 -#: app_Main.py:7357 +#: appTools/ToolQRCode.py:565 appTools/ToolQRCode.py:569 app_Main.py:8284 +#: app_Main.py:8288 msgid "Export SVG" msgstr "Exporter en SVG" -#: appTools/ToolQRCode.py:661 +#: appTools/ToolQRCode.py:662 msgid "Gerber Object to which the QRCode will be added." msgstr "Objet Gerber auquel le QRCode sera ajouté." -#: appTools/ToolQRCode.py:697 +#: appTools/ToolQRCode.py:698 msgid "The parameters used to shape the QRCode." msgstr "Les paramètres utilisés pour façonner le QRCode." -#: appTools/ToolQRCode.py:797 +#: appTools/ToolQRCode.py:798 msgid "Export QRCode" msgstr "Exporter le QRCode" -#: appTools/ToolQRCode.py:799 +#: appTools/ToolQRCode.py:800 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -17763,31 +17688,31 @@ msgstr "" "Afficher un ensemble de contrôles permettant d'exporter le QRCode\n" "vers un fichier SVG ou un fichier PNG." -#: appTools/ToolQRCode.py:838 +#: appTools/ToolQRCode.py:839 msgid "Transparent back color" msgstr "Couleur arrière transparente" -#: appTools/ToolQRCode.py:863 +#: appTools/ToolQRCode.py:864 msgid "Export QRCode SVG" msgstr "Exporter le QRCode SVG" -#: appTools/ToolQRCode.py:865 +#: appTools/ToolQRCode.py:866 msgid "Export a SVG file with the QRCode content." msgstr "Exportez un fichier SVG avec le contenu QRCode." -#: appTools/ToolQRCode.py:876 +#: appTools/ToolQRCode.py:877 msgid "Export QRCode PNG" msgstr "Exporter le QRCode PNG" -#: appTools/ToolQRCode.py:878 +#: appTools/ToolQRCode.py:879 msgid "Export a PNG image file with the QRCode content." msgstr "Exportez un fichier image PNG avec le contenu QRCode." -#: appTools/ToolQRCode.py:889 +#: appTools/ToolQRCode.py:890 msgid "Insert QRCode" msgstr "Insérez QRCode" -#: appTools/ToolQRCode.py:891 +#: appTools/ToolQRCode.py:892 msgid "Create the QRCode object." msgstr "Créez l'objet QRCode." @@ -18549,7 +18474,7 @@ msgstr "Etes-vous sûr de vouloir changer la langue actuelle en" msgid "Apply Language ..." msgstr "Appliquer la langue ..." -#: appTranslation.py:206 app_Main.py:3383 +#: appTranslation.py:206 app_Main.py:3306 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -18583,42 +18508,42 @@ msgstr "" "Initialisation du Canevas\n" "Initialisation terminée en" -#: app_Main.py:1596 app_Main.py:7007 +#: app_Main.py:1292 app_Main.py:8831 msgid "New Project - Not saved" msgstr "Nouveau projet - Non enregistré" -#: app_Main.py:1702 +#: app_Main.py:1711 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:1769 +#: app_Main.py:1778 msgid "Open Config file failed." msgstr "Défaut d'ouverture du fichier de configuration." -#: app_Main.py:1784 +#: app_Main.py:1793 msgid "Open Script file failed." msgstr "Défaut d'ouverture du fichier Script." -#: app_Main.py:1810 +#: app_Main.py:1819 msgid "Open Excellon file failed." msgstr "Défaut d'ouverture du fichier Excellon." -#: app_Main.py:1823 +#: app_Main.py:1832 msgid "Open GCode file failed." msgstr "Défaut d'ouverture du fichier G-code." -#: app_Main.py:1836 +#: app_Main.py:1845 msgid "Open Gerber file failed." msgstr "Défaut d'ouverture du fichier Gerber." -#: app_Main.py:2174 +#: app_Main.py:2183 msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." msgstr "Sélectionnez un objet Geometry, Gerber, Excellon ou CNCJob à modifier." -#: app_Main.py:2189 +#: app_Main.py:2198 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -18627,101 +18552,85 @@ 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:2267 +#: app_Main.py:2276 msgid "EDITOR Area" msgstr "" -#: app_Main.py:2269 +#: app_Main.py:2278 msgid "Editor is activated ..." msgstr "Editeur activé ..." -#: app_Main.py:2290 +#: app_Main.py:2299 msgid "Do you want to save the edited object?" msgstr "Voulez-vous enregistrer l'objet ?" -#: app_Main.py:2331 +#: app_Main.py:2340 msgid "Object empty after edit." msgstr "Objet vide après édition." -#: app_Main.py:2336 app_Main.py:2354 app_Main.py:2385 app_Main.py:2401 +#: app_Main.py:2345 app_Main.py:2363 app_Main.py:2394 app_Main.py:2410 msgid "Editor exited. Editor content saved." msgstr "Sortie de l'éditeur. Contenu enregistré." -#: app_Main.py:2405 app_Main.py:2446 +#: app_Main.py:2414 app_Main.py:2455 #, fuzzy #| msgid "Select a Gerber, Geometry or Excellon Object to update." msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update." msgstr "Sélectionnez l'objet Géométrie, Gerber, ou Excellon à mettre à jour." -#: app_Main.py:2408 +#: app_Main.py:2417 msgid "is updated, returning to App..." msgstr "est mis à jour, Retour au programme..." -#: app_Main.py:2421 +#: app_Main.py:2430 msgid "Editor exited. Editor content was not saved." msgstr "Sortie de l'editeur. Contenu non enregistré." -#: app_Main.py:2469 +#: app_Main.py:2478 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:2573 app_Main.py:2577 -msgid "Import FlatCAM Preferences" -msgstr "Importer les paramètres FlatCAM" - -#: app_Main.py:2588 -msgid "Imported Defaults from" -msgstr "Valeurs par défaut importées de" - -#: app_Main.py:2608 app_Main.py:2614 -msgid "Export FlatCAM Preferences" -msgstr "Exporter les paramètres FlatCAM" - -#: app_Main.py:2634 -msgid "Exported preferences to" -msgstr "Paramètres exportées vers" - -#: app_Main.py:2654 app_Main.py:2659 +#: app_Main.py:2586 app_Main.py:2591 msgid "Save to file" msgstr "Enregistrer dans un fichier" -#: app_Main.py:2683 +#: app_Main.py:2615 msgid "Could not load the file." msgstr "Chargement du fichier Impossible." -#: app_Main.py:2699 +#: app_Main.py:2631 msgid "Exported file to" msgstr "Fichier exporté vers" -#: app_Main.py:2736 +#: app_Main.py:2668 msgid "Failed to open recent files file for writing." msgstr "Échec d'ouverture du fichier en écriture." -#: app_Main.py:2747 +#: app_Main.py:2679 msgid "Failed to open recent projects file for writing." msgstr "Échec d'ouverture des fichiers de projets en écriture." -#: app_Main.py:2802 +#: app_Main.py:2734 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Fabrication de dessin de circuits imprimés 2D assistées par ordinateur" -#: app_Main.py:2803 +#: app_Main.py:2735 msgid "Development" msgstr "Développement" -#: app_Main.py:2804 +#: app_Main.py:2736 msgid "DOWNLOAD" msgstr "TÉLÉCHARGER" -#: app_Main.py:2805 +#: app_Main.py:2737 msgid "Issue tracker" msgstr "Traqueur d'incidents" -#: app_Main.py:2824 +#: app_Main.py:2756 msgid "Licensed under the MIT license" msgstr "Sous licence MIT" -#: app_Main.py:2833 +#: app_Main.py:2765 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -18774,7 +18683,7 @@ msgstr "" "OU \n" "D'AUTRES OPÉRATIONS DANS LE LOGICIEL.LES LOGICIELS." -#: app_Main.py:2855 +#: app_Main.py:2787 msgid "" "Some of the icons used are from the following sources:
    " -#: app_Main.py:2891 +#: app_Main.py:2823 msgid "Splash" msgstr "A Propos" -#: app_Main.py:2897 +#: app_Main.py:2829 msgid "Programmers" msgstr "Programmeurs" -#: app_Main.py:2903 +#: app_Main.py:2835 msgid "Translators" msgstr "Traducteurs" -#: app_Main.py:2909 +#: app_Main.py:2841 msgid "License" msgstr "Licence" -#: app_Main.py:2915 +#: app_Main.py:2847 msgid "Attributions" msgstr "Attributions" -#: app_Main.py:2938 +#: app_Main.py:2870 msgid "Programmer" msgstr "Programmeur" -#: app_Main.py:2939 +#: app_Main.py:2871 msgid "Status" msgstr "Statut" -#: app_Main.py:2940 app_Main.py:3020 +#: app_Main.py:2872 app_Main.py:2952 msgid "E-mail" msgstr "Email" -#: app_Main.py:2943 +#: app_Main.py:2875 msgid "Program Author" msgstr "Auteur du programme" -#: app_Main.py:2948 +#: app_Main.py:2880 msgid "BETA Maintainer >= 2019" msgstr "Mainteneur BETA> = 2019" -#: app_Main.py:3017 +#: app_Main.py:2949 msgid "Language" msgstr "Langue" -#: app_Main.py:3018 +#: app_Main.py:2950 msgid "Translator" msgstr "Traducteur" -#: app_Main.py:3019 +#: app_Main.py:2951 msgid "Corrections" msgstr "Corrections" -#: app_Main.py:3104 +#: app_Main.py:3036 msgid "Important Information's" msgstr "Informations importantes" -#: app_Main.py:3152 +#: app_Main.py:3084 #, python-format msgid "This program is %s and free in a very wide meaning of the word." msgstr "Ce programme est %s et gratuit dans un sens très large du mot." -#: app_Main.py:3153 +#: app_Main.py:3085 msgid "Yet it cannot evolve without contributions." msgstr "Pourtant, il ne peut pas évoluer sans contributions ." -#: app_Main.py:3154 +#: app_Main.py:3086 msgid "If you want to see this application grow and become better and better" msgstr "" "Si vous voulez voir cette application grandir et devenir de mieux en mieux" -#: app_Main.py:3155 +#: app_Main.py:3087 msgid "you can contribute to the development yourself by:" msgstr "vous pouvez contribuer au développement vous-même en:" -#: app_Main.py:3156 +#: app_Main.py:3088 msgid "Pull Requests on the Bitbucket repository, if you are a developer" msgstr "Pull Requests Bitbucket, si vous êtes développeur" -#: app_Main.py:3158 +#: app_Main.py:3090 msgid "Bug Reports by providing the steps required to reproduce the bug" msgstr "" "Rapports de bogues en fournissant les étapes requises pour reproduire le " "bogue" -#: app_Main.py:3189 +#: app_Main.py:3121 msgid "Contribute" msgstr "Contribuer" -#: app_Main.py:3212 +#: app_Main.py:3144 msgid "Links Exchange" msgstr "Échange de liens" -#: app_Main.py:3224 app_Main.py:3243 +#: app_Main.py:3156 app_Main.py:3175 msgid "Soon ..." msgstr "Bientôt ..." -#: app_Main.py:3231 +#: app_Main.py:3163 msgid "How To's" msgstr "Mode d'emploi" -#: app_Main.py:3343 +#: app_Main.py:3275 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -18915,28 +18824,28 @@ msgstr "" "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:3350 +#: app_Main.py:3282 msgid "Alternative website" msgstr "Site alternatif" -#: app_Main.py:3701 +#: app_Main.py:3624 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Extensions de fichier Excellon sélectionnées enregistrées." -#: app_Main.py:3723 +#: app_Main.py:3646 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Extensions de fichier GCode sélectionnées enregistrées." -#: app_Main.py:3745 +#: app_Main.py:3668 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Extensions de fichiers Gerber sélectionnées enregistrées." -#: app_Main.py:3933 app_Main.py:3994 app_Main.py:4024 +#: app_Main.py:3856 app_Main.py:3917 app_Main.py:3947 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:3942 +#: app_Main.py:3865 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 " @@ -18953,47 +18862,47 @@ msgstr "" "inattendu \n" "Vérifiez le GCODE généré." -#: app_Main.py:3956 app_Main.py:3966 +#: app_Main.py:3879 app_Main.py:3889 msgid "Geometry merging finished" msgstr "Fusion de la géométrie terminée" -#: app_Main.py:3989 +#: app_Main.py:3912 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Érreur. Excellon ne travaille que sur des objets Excellon." -#: app_Main.py:4001 +#: app_Main.py:3924 msgid "Excellon merging finished" msgstr "Fusion Excellon terminée" -#: app_Main.py:4019 +#: app_Main.py:3942 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Érreur. Les jonctions Gerber ne fonctionne que sur des objets Gerber." -#: app_Main.py:4029 +#: app_Main.py:3952 msgid "Gerber merging finished" msgstr "Fusion Gerber terminée" -#: app_Main.py:4049 app_Main.py:4086 +#: app_Main.py:3972 app_Main.py:4009 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:4053 app_Main.py:4091 +#: app_Main.py:3976 app_Main.py:4014 msgid "Expected a GeometryObject, got" msgstr "Érreur. Sélectionnez un objet de géométrie et réessayez" -#: app_Main.py:4068 +#: app_Main.py:3991 msgid "A Geometry object was converted to MultiGeo type." msgstr "Un objet Géométrie a été converti au format MultiGeo." -#: app_Main.py:4106 +#: app_Main.py:4029 msgid "A Geometry object was converted to SingleGeo type." msgstr "L'objet Géométrie a été converti au format SingleGeo." -#: app_Main.py:4339 +#: app_Main.py:4262 msgid "Toggle Units" msgstr "Changement d'unités" -#: app_Main.py:4343 +#: app_Main.py:4266 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -19005,24 +18914,24 @@ msgstr "" "\n" "Voulez-vous continuer?" -#: app_Main.py:4346 app_Main.py:4509 app_Main.py:4592 app_Main.py:7327 -#: app_Main.py:7343 app_Main.py:7681 app_Main.py:7693 +#: app_Main.py:4269 app_Main.py:4432 app_Main.py:4515 app_Main.py:8259 +#: app_Main.py:8274 app_Main.py:8605 app_Main.py:8617 msgid "Ok" msgstr "D'accord" -#: app_Main.py:4396 +#: app_Main.py:4319 msgid "Converted units to" msgstr "Unités converties en" -#: app_Main.py:4436 +#: app_Main.py:4359 msgid "Workspace enabled." msgstr "Espace de travail activé." -#: app_Main.py:4439 +#: app_Main.py:4362 msgid "Workspace disabled." msgstr "Espace de travail désactivé." -#: app_Main.py:4503 +#: app_Main.py:4426 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -19030,11 +18939,11 @@ 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:4585 +#: app_Main.py:4508 msgid "Delete objects" msgstr "Supprimer des objets" -#: app_Main.py:4590 +#: app_Main.py:4513 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -19042,87 +18951,87 @@ msgstr "" "Êtes-vous sûr de vouloir supprimer définitivement\n" "les objets sélectionnés?" -#: app_Main.py:4633 +#: app_Main.py:4556 msgid "Object(s) deleted" msgstr "Objets supprimés" -#: app_Main.py:4637 +#: app_Main.py:4560 msgid "Save the work in Editor and try again ..." msgstr "Enregistrez le travail de l'éditeur et réessayez ..." -#: app_Main.py:4666 +#: app_Main.py:4589 msgid "Object deleted" msgstr "Objet supprimé" -#: app_Main.py:4693 +#: app_Main.py:4616 msgid "Click to set the origin ..." msgstr "Cliquez pour définir l'origine ..." -#: app_Main.py:4715 +#: app_Main.py:4638 msgid "Setting Origin..." msgstr "Réglage de l'Origine ..." -#: app_Main.py:4728 app_Main.py:4830 +#: app_Main.py:4651 app_Main.py:4753 msgid "Origin set" msgstr "Réglage de l'origine effectué" -#: app_Main.py:4745 +#: app_Main.py:4668 msgid "Origin coordinates specified but incomplete." msgstr "Coordonnées d'origine spécifiées mais incomplètes." -#: app_Main.py:4786 +#: app_Main.py:4709 msgid "Moving to Origin..." msgstr "Déplacement vers l'origine ..." -#: app_Main.py:4867 +#: app_Main.py:4790 msgid "Jump to ..." msgstr "Sauter à ..." -#: app_Main.py:4868 +#: app_Main.py:4791 msgid "Enter the coordinates in format X,Y:" msgstr "Entrez les coordonnées au format X, Y:" -#: app_Main.py:4878 +#: app_Main.py:4801 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Mauvaises coordonnées. Entrez les coordonnées au format: X, Y" -#: app_Main.py:4995 +#: app_Main.py:4918 msgid "Bottom-Left" msgstr "En bas à gauche" -#: app_Main.py:4998 +#: app_Main.py:4921 msgid "Top-Right" msgstr "En haut à droite" -#: app_Main.py:5019 +#: app_Main.py:4942 msgid "Locate ..." msgstr "Localiser ..." -#: app_Main.py:5292 app_Main.py:5367 app_Main.py:5530 +#: app_Main.py:5215 app_Main.py:5290 app_Main.py:5453 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:5556 +#: app_Main.py:5479 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:5562 +#: app_Main.py:5485 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:5752 +#: app_Main.py:5675 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:5791 +#: app_Main.py:5714 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:5809 +#: app_Main.py:5732 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -19130,585 +19039,236 @@ msgstr "" "Un ou plusieurs outils ont été modifiés.\n" "Voulez-vous mettre à jour la base de données?" -#: app_Main.py:5811 +#: app_Main.py:5734 msgid "Save Tools Database" msgstr "Enregistrement de la base de données d'outils" -#: app_Main.py:5857 +#: app_Main.py:5780 msgid "No object selected to Flip on Y axis." msgstr "Aucun objet sélectionné pour basculer sur l’axe Y." -#: app_Main.py:5883 +#: app_Main.py:5806 msgid "Flip on Y axis done." msgstr "Rotation sur l'axe des Y effectué." -#: app_Main.py:5905 +#: app_Main.py:5828 msgid "No object selected to Flip on X axis." msgstr "Aucun objet sélectionné pour basculer sur l’axe X." -#: app_Main.py:5931 +#: app_Main.py:5854 msgid "Flip on X axis done." msgstr "Rotation sur l'axe des X effectué." -#: app_Main.py:5953 +#: app_Main.py:5876 msgid "No object selected to Rotate." msgstr "Aucun objet sélectionné pour faire pivoter." -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Transform" msgstr "Transformer" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Enter the Angle value:" msgstr "Entrez la valeur de l'angle:" -#: app_Main.py:5986 +#: app_Main.py:5909 msgid "Rotation done." msgstr "Rotation effectuée." -#: app_Main.py:5988 +#: app_Main.py:5911 msgid "Rotation movement was not executed." msgstr "Le mouvement de rotation n'a pas été exécuté." -#: app_Main.py:6005 +#: app_Main.py:5928 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:6026 +#: app_Main.py:5949 msgid "Skew on X axis done." msgstr "Inclinaison sur l'axe X terminée." -#: app_Main.py:6042 +#: app_Main.py:5965 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:6063 +#: app_Main.py:5986 msgid "Skew on Y axis done." msgstr "Inclinaison sur l'axe des Y effectué." -#: app_Main.py:6145 +#: app_Main.py:6068 msgid "New Grid ..." msgstr "Nouvelle grille ..." -#: app_Main.py:6146 +#: app_Main.py:6069 msgid "Enter a Grid Value:" msgstr "Entrez une valeur de grille:" -#: app_Main.py:6154 app_Main.py:6178 +#: app_Main.py:6077 app_Main.py:6101 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:6159 +#: app_Main.py:6082 msgid "New Grid added" msgstr "Nouvelle grille ajoutée" -#: app_Main.py:6161 +#: app_Main.py:6084 msgid "Grid already exists" msgstr "La grille existe déjà" -#: app_Main.py:6163 +#: app_Main.py:6086 msgid "Adding New Grid cancelled" msgstr "Ajout d'une nouvelle grille annulée" -#: app_Main.py:6184 +#: app_Main.py:6107 msgid " Grid Value does not exist" msgstr " Valeur de la grille n'existe pas" -#: app_Main.py:6186 +#: app_Main.py:6109 msgid "Grid Value deleted" msgstr "Valeur de grille supprimée" -#: app_Main.py:6188 +#: app_Main.py:6111 msgid "Delete Grid value cancelled" msgstr "Suppression valeur de grille annulée" -#: app_Main.py:6194 +#: app_Main.py:6117 msgid "Key Shortcut List" msgstr "Liste de raccourcis clavier" -#: app_Main.py:6231 +#: app_Main.py:6154 msgid " No object selected to copy it's name" msgstr " Aucun objet sélectionné pour copier son nom" -#: app_Main.py:6235 +#: app_Main.py:6158 msgid "Name copied on clipboard ..." msgstr "Nom copié dans le presse-papiers ..." -#: app_Main.py:6892 -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:6915 -msgid "New Project created" -msgstr "Nouveau projet" - -#: app_Main.py:7121 app_Main.py:7160 app_Main.py:7204 app_Main.py:7274 -#: app_Main.py:8060 app_Main.py:9304 app_Main.py:9366 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Initialisation du canevas commencé.\n" -"Initialisation du canevas terminée en" - -#: app_Main.py:7123 -msgid "Opening Gerber file." -msgstr "Ouvrir le fichier Gerber." - -#: app_Main.py:7162 -msgid "Opening Excellon file." -msgstr "Ouverture du fichier Excellon." - -#: app_Main.py:7193 app_Main.py:7198 -msgid "Open G-Code" -msgstr "Ouvrir G-code" - -#: app_Main.py:7206 -msgid "Opening G-Code file." -msgstr "Ouverture du fichier G-Code." - -#: app_Main.py:7265 app_Main.py:7269 -msgid "Open HPGL2" -msgstr "Ouvrir HPGL2" - -#: app_Main.py:7276 -msgid "Opening HPGL2 file." -msgstr "Ouverture de fichier HPGL2." - -#: app_Main.py:7299 app_Main.py:7302 -msgid "Open Configuration File" -msgstr "Ouvrir Fichier de configuration" - -#: app_Main.py:7322 app_Main.py:7676 -msgid "Please Select a Geometry object to export" -msgstr "Sélectionner un objet de géométrie à exporter" - -#: app_Main.py:7338 -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:7383 -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:7389 app_Main.py:7393 -msgid "Export PNG Image" -msgstr "Exporter une image PNG" - -#: app_Main.py:7426 app_Main.py:7636 -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:7438 -msgid "Save Gerber source file" -msgstr "Enregistrer le fichier source Gerber" - -#: app_Main.py:7467 -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:7479 -msgid "Save Script source file" -msgstr "Enregistrer le fichier source du script" - -#: app_Main.py:7508 -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:7520 -msgid "Save Document source file" -msgstr "Enregistrer le fichier source du document" - -#: app_Main.py:7550 app_Main.py:7592 app_Main.py:8543 -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:7558 app_Main.py:7563 -msgid "Save Excellon source file" -msgstr "Enregistrer le fichier source Excellon" - -#: app_Main.py:7600 app_Main.py:7604 -msgid "Export Excellon" -msgstr "Exporter Excellon" - -#: app_Main.py:7644 app_Main.py:7648 -msgid "Export Gerber" -msgstr "Export Gerber" - -#: app_Main.py:7688 -msgid "Only Geometry objects can be used." -msgstr "Seuls les objets de géométrie peuvent être utilisés." - -#: app_Main.py:7704 app_Main.py:7708 -msgid "Export DXF" -msgstr "Exportation DXF" - -#: app_Main.py:7733 app_Main.py:7736 -msgid "Import SVG" -msgstr "Importer SVG" - -#: app_Main.py:7764 app_Main.py:7768 -msgid "Import DXF" -msgstr "Importation DXF" - -#: app_Main.py:7822 app_Main.py:7826 +#: app_Main.py:6917 app_Main.py:6921 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:7829 +#: app_Main.py:6924 msgid "Viewing the source code of the selected object." msgstr "Affichage du code source de l'objet sélectionné." -#: app_Main.py:7843 +#: app_Main.py:6938 msgid "Source Editor" msgstr "Éditeur de source" -#: app_Main.py:7879 app_Main.py:7886 +#: app_Main.py:6974 app_Main.py:6981 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:7894 +#: app_Main.py:6989 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:7927 +#: app_Main.py:7022 msgid "Go to Line ..." msgstr "Aller à la ligne ..." -#: app_Main.py:7928 +#: app_Main.py:7023 msgid "Line:" msgstr "Ligne:" -#: app_Main.py:7955 -msgid "New TCL script file created in Code Editor." -msgstr "Nouveau fichier de script TCL créé dans l'éditeur de code." - -#: app_Main.py:7994 app_Main.py:7996 app_Main.py:8032 app_Main.py:8034 -msgid "Open TCL script" -msgstr "Ouvrir le script TCL" - -#: app_Main.py:8062 -msgid "Executing ScriptObject file." -msgstr "Exécution du fichier ScriptObject." - -#: app_Main.py:8070 app_Main.py:8073 -msgid "Run TCL script" -msgstr "Exécuter le script TCL" - -#: app_Main.py:8096 -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:8147 app_Main.py:8153 -msgid "Save Project As ..." -msgstr "Enregistrer le projet sous ..." - -#: app_Main.py:8188 -msgid "FlatCAM objects print" -msgstr "Impression d'objets FlatCAM" - -#: app_Main.py:8201 app_Main.py:8208 -msgid "Save Object as PDF ..." -msgstr "Enregistrement au format PDF ...Enregistrer le projet sous ..." - -#: app_Main.py:8217 -msgid "Printing PDF ... Please wait." -msgstr "Impression du PDF ... Veuillez patienter." - -#: app_Main.py:8396 -msgid "PDF file saved to" -msgstr "Fichier PDF enregistré dans" - -#: app_Main.py:8421 -msgid "Exporting SVG" -msgstr "Exporter du SVG" - -#: app_Main.py:8464 -msgid "SVG file exported to" -msgstr "Fichier SVG exporté vers" - -#: app_Main.py:8490 -#, fuzzy -#| msgid "" -#| "Save cancelled because source file is empty. Try to export the Gerber " -#| "file." -msgid "Save cancelled because source file is empty. Try to export the file." -msgstr "" -"Enregistrement annulé car le fichier source est vide. Essayez d'exporter le " -"fichier Gerber." - -#: app_Main.py:8641 -msgid "Excellon file exported to" -msgstr "Fichier Excellon exporté vers" - -#: app_Main.py:8650 -msgid "Exporting Excellon" -msgstr "Exporter Excellon" - -#: app_Main.py:8655 app_Main.py:8662 -msgid "Could not export Excellon file." -msgstr "Impossible d'exporter le fichier Excellon." - -#: app_Main.py:8778 -msgid "Gerber file exported to" -msgstr "Fichier Gerber exporté vers" - -#: app_Main.py:8786 -msgid "Exporting Gerber" -msgstr "Exporter Gerber" - -#: app_Main.py:8791 app_Main.py:8798 -#, fuzzy -#| msgid "Could not export DXF file." -msgid "Could not export file." -msgstr "Impossible d'exporter le fichier DXF." - -#: app_Main.py:8846 -msgid "DXF file exported to" -msgstr "Fichier DXF exporté vers" - -#: app_Main.py:8855 -msgid "Exporting DXF" -msgstr "Exportation DXF" - -#: app_Main.py:8860 app_Main.py:8867 -msgid "Could not export DXF file." -msgstr "Impossible d'exporter le fichier DXF." - -#: app_Main.py:8906 -msgid "Importing SVG" -msgstr "Importer du SVG" - -#: app_Main.py:8914 app_Main.py:8969 -msgid "Import failed." -msgstr "L'importation a échoué." - -#: app_Main.py:8961 -msgid "Importing DXF" -msgstr "Importation de DXF" - -#: app_Main.py:9002 app_Main.py:9193 app_Main.py:9258 -msgid "Failed to open file" -msgstr "Échec à l'ouverture du fichier" - -#: app_Main.py:9005 app_Main.py:9196 app_Main.py:9261 -msgid "Failed to parse file" -msgstr "Échec de l'analyse du fichier" - -#: app_Main.py:9017 -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:9022 -msgid "Opening Gerber" -msgstr "Ouverture Gerber" - -#: app_Main.py:9033 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Ouverture Gerber échoué. Probablement pas un fichier Gerber." - -#: app_Main.py:9066 -msgid "Cannot open file" -msgstr "Ne peut pas ouvrir le fichier" - -#: app_Main.py:9086 -msgid "Opening Excellon." -msgstr "Ouverture Excellon." - -#: app_Main.py:9096 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "Ouverture Excellon échoué. Probablement pas un fichier Excellon." - -#: app_Main.py:9128 -msgid "Reading GCode file" -msgstr "Lecture du fichier GCode" - -#: app_Main.py:9141 -msgid "This is not GCODE" -msgstr "Ce n'est pas du GCODE" - -#: app_Main.py:9146 -msgid "Opening G-Code." -msgstr "Ouverture G-Code." - -#: app_Main.py:9159 -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:9215 -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:9220 -msgid "Opening HPGL2" -msgstr "Ouverture HPGL2" - -#: app_Main.py:9227 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " Ouverture HPGL2 échoué. Probablement pas un fichier HPGL2 ." - -#: app_Main.py:9253 -msgid "TCL script file opened in Code Editor." -msgstr "Fichier de script TCL ouvert dans l'éditeur de code." - -#: app_Main.py:9273 -msgid "Opening TCL Script..." -msgstr "Ouverture du script TCL ..." - -#: app_Main.py:9284 -msgid "Failed to open TCL Script." -msgstr "Impossible d'ouvrir le script TCL." - -#: app_Main.py:9306 -msgid "Opening FlatCAM Config file." -msgstr "Ouverture du fichier de configuration FlatCAM." - -#: app_Main.py:9334 -msgid "Failed to open config file" -msgstr "Impossible d'ouvrir le fichier de configuration" - -#: app_Main.py:9363 -msgid "Loading Project ... Please Wait ..." -msgstr "Chargement du projet ... Veuillez patienter ..." - -#: app_Main.py:9368 -msgid "Opening FlatCAM Project file." -msgstr "Ouverture du fichier de projet FlatCAM." - -#: app_Main.py:9383 app_Main.py:9387 app_Main.py:9404 -msgid "Failed to open project file" -msgstr "Impossible d'ouvrir le fichier de projet" - -#: app_Main.py:9443 -msgid "Loading Project ... restoring" -msgstr "Chargement du projet ... en cours de restauration" - -#: app_Main.py:9451 -msgid "Project loaded from" -msgstr "Projet chargé à partir de" - -#: app_Main.py:9477 +#: app_Main.py:7053 msgid "Redrawing all objects" msgstr "Redessiner tous les objets" -#: app_Main.py:9565 +#: app_Main.py:7141 msgid "Failed to load recent item list." msgstr "Échec du chargement des éléments récents." -#: app_Main.py:9572 +#: app_Main.py:7148 msgid "Failed to parse recent item list." msgstr "Échec d'analyse des éléments récents." -#: app_Main.py:9582 +#: app_Main.py:7158 msgid "Failed to load recent projects item list." msgstr "Échec du chargement des éléments des projets récents." -#: app_Main.py:9589 +#: app_Main.py:7165 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:9650 +#: app_Main.py:7226 msgid "Clear Recent projects" msgstr "Effacer les projets récents" -#: app_Main.py:9674 +#: app_Main.py:7250 msgid "Clear Recent files" msgstr "Effacer les fichiers récents" -#: app_Main.py:9730 +#: app_Main.py:7306 #, fuzzy #| msgid "FlatCAM.org" msgid "FlatCAM Evo" msgstr "FlatCAM.org" -#: app_Main.py:9734 +#: app_Main.py:7310 msgid "Release date" msgstr "" -#: app_Main.py:9738 +#: app_Main.py:7314 msgid "Displayed" msgstr "" -#: app_Main.py:9741 +#: app_Main.py:7317 #, fuzzy #| msgid "Snap Max" msgid "Snap" msgstr "Accrocher max" -#: app_Main.py:9750 +#: app_Main.py:7326 msgid "Canvas" msgstr "" -#: app_Main.py:9755 +#: app_Main.py:7331 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace active" msgstr "Paramètres de l'espace de travail" -#: app_Main.py:9759 +#: app_Main.py:7335 #, fuzzy #| msgid "Workspace disabled." msgid "Workspace size" msgstr "Espace de travail désactivé." -#: app_Main.py:9763 +#: app_Main.py:7339 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace orientation" msgstr "Paramètres de l'espace de travail" -#: app_Main.py:9826 +#: app_Main.py:7402 msgid "Failed checking for latest version. Could not connect." msgstr "Échec de vérification de mise a jour. Connection impossible." -#: app_Main.py:9833 +#: app_Main.py:7409 msgid "Could not parse information about latest version." msgstr "Impossible d'analyser les informations sur la dernière version." -#: app_Main.py:9843 +#: app_Main.py:7419 msgid "FlatCAM is up to date!" msgstr "FlatCAM est à jour!" -#: app_Main.py:9848 +#: app_Main.py:7424 msgid "Newer Version Available" msgstr "Nouvelle version FlatCam disponible" -#: app_Main.py:9850 +#: app_Main.py:7426 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:9854 +#: app_Main.py:7430 msgid "info" msgstr "info" -#: app_Main.py:9882 +#: app_Main.py:7458 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -19720,66 +19280,431 @@ msgstr "" "Edition -> Paramètres -> onglet Général.\n" "\n" -#: app_Main.py:9960 +#: app_Main.py:7536 msgid "All plots disabled." msgstr "Désactivation de tous les Plots." -#: app_Main.py:9967 +#: app_Main.py:7543 msgid "All non selected plots disabled." msgstr "Désélection de tous les Plots." -#: app_Main.py:9974 +#: app_Main.py:7550 msgid "All plots enabled." msgstr "Activation de tous les Plots." -#: app_Main.py:9980 +#: app_Main.py:7556 msgid "Selected plots enabled..." msgstr "Sélection de tous les Plots activés ..." -#: app_Main.py:9988 +#: app_Main.py:7564 msgid "Selected plots disabled..." msgstr "Selection de tous les Plots désactivés ..." -#: app_Main.py:10021 +#: app_Main.py:7597 msgid "Enabling plots ..." msgstr "Activation des plots ..." -#: app_Main.py:10070 +#: app_Main.py:7646 msgid "Disabling plots ..." msgstr "Désactiver les plots ..." -#: app_Main.py:10093 +#: app_Main.py:7669 msgid "Working ..." msgstr "Travail ..." -#: app_Main.py:10205 +#: app_Main.py:7781 msgid "Set alpha level ..." msgstr "Définir le premier niveau ..." -#: app_Main.py:10271 +#: app_Main.py:8057 app_Main.py:8096 app_Main.py:8140 app_Main.py:8206 +#: app_Main.py:8932 app_Main.py:10193 app_Main.py:10255 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Initialisation du canevas commencé.\n" +"Initialisation du canevas terminée en" + +#: app_Main.py:8060 +msgid "Opening Gerber file." +msgstr "Ouvrir le fichier Gerber." + +#: app_Main.py:8099 +msgid "Opening Excellon file." +msgstr "Ouverture du fichier Excellon." + +#: app_Main.py:8129 app_Main.py:8134 +msgid "Open G-Code" +msgstr "Ouvrir G-code" + +#: app_Main.py:8143 +msgid "Opening G-Code file." +msgstr "Ouverture du fichier G-Code." + +#: app_Main.py:8197 app_Main.py:8201 +msgid "Open HPGL2" +msgstr "Ouvrir HPGL2" + +#: app_Main.py:8209 +msgid "Opening HPGL2 file." +msgstr "Ouverture de fichier HPGL2." + +#: app_Main.py:8232 app_Main.py:8235 +msgid "Open Configuration File" +msgstr "Ouvrir Fichier de configuration" + +#: app_Main.py:8254 app_Main.py:8600 +msgid "Please Select a Geometry object to export" +msgstr "Sélectionner un objet de géométrie à exporter" + +#: app_Main.py:8269 +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:8314 +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:8320 app_Main.py:8324 +msgid "Export PNG Image" +msgstr "Exporter une image PNG" + +#: app_Main.py:8356 app_Main.py:8561 +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:8368 +msgid "Save Gerber source file" +msgstr "Enregistrer le fichier source Gerber" + +#: app_Main.py:8396 +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:8408 +msgid "Save Script source file" +msgstr "Enregistrer le fichier source du script" + +#: app_Main.py:8436 +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:8448 +msgid "Save Document source file" +msgstr "Enregistrer le fichier source du document" + +#: app_Main.py:8477 app_Main.py:8518 app_Main.py:9437 +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:8485 app_Main.py:8490 +msgid "Save Excellon source file" +msgstr "Enregistrer le fichier source Excellon" + +#: app_Main.py:8526 app_Main.py:8530 +msgid "Export Excellon" +msgstr "Exporter Excellon" + +#: app_Main.py:8569 app_Main.py:8573 +msgid "Export Gerber" +msgstr "Export Gerber" + +#: app_Main.py:8612 +msgid "Only Geometry objects can be used." +msgstr "Seuls les objets de géométrie peuvent être utilisés." + +#: app_Main.py:8628 app_Main.py:8632 +msgid "Export DXF" +msgstr "Exportation DXF" + +#: app_Main.py:8656 app_Main.py:8660 +msgid "Import SVG" +msgstr "Importer SVG" + +#: app_Main.py:8686 app_Main.py:8690 +msgid "Import DXF" +msgstr "Importation DXF" + +#: app_Main.py:8716 +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:8739 +msgid "New Project created" +msgstr "Nouveau projet" + +#: app_Main.py:8841 +msgid "New TCL script file created in Code Editor." +msgstr "Nouveau fichier de script TCL créé dans l'éditeur de code." + +#: app_Main.py:8868 app_Main.py:8870 app_Main.py:8905 app_Main.py:8907 +msgid "Open TCL script" +msgstr "Ouvrir le script TCL" + +#: app_Main.py:8934 +msgid "Executing ScriptObject file." +msgstr "Exécution du fichier ScriptObject." + +#: app_Main.py:8942 app_Main.py:8946 +msgid "Run TCL script" +msgstr "Exécuter le script TCL" + +#: app_Main.py:8969 +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:9015 app_Main.py:9021 +msgid "Save Project As ..." +msgstr "Enregistrer le projet sous ..." + +#: app_Main.py:9055 +msgid "FlatCAM objects print" +msgstr "Impression d'objets FlatCAM" + +#: app_Main.py:9068 app_Main.py:9075 +msgid "Save Object as PDF ..." +msgstr "Enregistrement au format PDF ...Enregistrer le projet sous ..." + +#: app_Main.py:9084 +msgid "Printing PDF ... Please wait." +msgstr "Impression du PDF ... Veuillez patienter." + +#: app_Main.py:9262 +msgid "PDF file saved to" +msgstr "Fichier PDF enregistré dans" + +#: app_Main.py:9284 +msgid "Exporting SVG" +msgstr "Exporter du SVG" + +#: app_Main.py:9327 +msgid "SVG file exported to" +msgstr "Fichier SVG exporté vers" + +#: app_Main.py:9342 app_Main.py:9346 +msgid "Import FlatCAM Preferences" +msgstr "Importer les paramètres FlatCAM" + +#: app_Main.py:9357 +msgid "Imported Defaults from" +msgstr "Valeurs par défaut importées de" + +#: app_Main.py:9376 app_Main.py:9382 +msgid "Export FlatCAM Preferences" +msgstr "Exporter les paramètres FlatCAM" + +#: app_Main.py:9402 +msgid "Exported preferences to" +msgstr "Paramètres exportées vers" + +#: app_Main.py:9535 +msgid "Excellon file exported to" +msgstr "Fichier Excellon exporté vers" + +#: app_Main.py:9544 +msgid "Exporting Excellon" +msgstr "Exporter Excellon" + +#: app_Main.py:9549 app_Main.py:9556 +msgid "Could not export Excellon file." +msgstr "Impossible d'exporter le fichier Excellon." + +#: app_Main.py:9670 +msgid "Gerber file exported to" +msgstr "Fichier Gerber exporté vers" + +#: app_Main.py:9678 +msgid "Exporting Gerber" +msgstr "Exporter Gerber" + +#: app_Main.py:9683 app_Main.py:9690 +#, fuzzy +#| msgid "Could not export DXF file." +msgid "Could not export file." +msgstr "Impossible d'exporter le fichier DXF." + +#: app_Main.py:9736 +msgid "DXF file exported to" +msgstr "Fichier DXF exporté vers" + +#: app_Main.py:9745 +msgid "Exporting DXF" +msgstr "Exportation DXF" + +#: app_Main.py:9750 app_Main.py:9757 +msgid "Could not export DXF file." +msgstr "Impossible d'exporter le fichier DXF." + +#: app_Main.py:9795 +msgid "Importing SVG" +msgstr "Importer du SVG" + +#: app_Main.py:9803 app_Main.py:9858 +msgid "Import failed." +msgstr "L'importation a échoué." + +#: app_Main.py:9850 +msgid "Importing DXF" +msgstr "Importation de DXF" + +#: app_Main.py:9891 app_Main.py:10082 app_Main.py:10147 +msgid "Failed to open file" +msgstr "Échec à l'ouverture du fichier" + +#: app_Main.py:9894 app_Main.py:10085 app_Main.py:10150 +msgid "Failed to parse file" +msgstr "Échec de l'analyse du fichier" + +#: app_Main.py:9906 +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:9911 +msgid "Opening Gerber" +msgstr "Ouverture Gerber" + +#: app_Main.py:9922 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Ouverture Gerber échoué. Probablement pas un fichier Gerber." + +#: app_Main.py:9955 +msgid "Cannot open file" +msgstr "Ne peut pas ouvrir le fichier" + +#: app_Main.py:9975 +msgid "Opening Excellon." +msgstr "Ouverture Excellon." + +#: app_Main.py:9985 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "Ouverture Excellon échoué. Probablement pas un fichier Excellon." + +#: app_Main.py:10017 +msgid "Reading GCode file" +msgstr "Lecture du fichier GCode" + +#: app_Main.py:10030 +msgid "This is not GCODE" +msgstr "Ce n'est pas du GCODE" + +#: app_Main.py:10035 +msgid "Opening G-Code." +msgstr "Ouverture G-Code." + +#: app_Main.py:10048 +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:10104 +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:10109 +msgid "Opening HPGL2" +msgstr "Ouverture HPGL2" + +#: app_Main.py:10116 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Ouverture HPGL2 échoué. Probablement pas un fichier HPGL2 ." + +#: app_Main.py:10142 +msgid "TCL script file opened in Code Editor." +msgstr "Fichier de script TCL ouvert dans l'éditeur de code." + +#: app_Main.py:10162 +msgid "Opening TCL Script..." +msgstr "Ouverture du script TCL ..." + +#: app_Main.py:10173 +msgid "Failed to open TCL Script." +msgstr "Impossible d'ouvrir le script TCL." + +#: app_Main.py:10196 +msgid "Opening FlatCAM Config file." +msgstr "Ouverture du fichier de configuration FlatCAM." + +#: app_Main.py:10223 +msgid "Failed to open config file" +msgstr "Impossible d'ouvrir le fichier de configuration" + +#: app_Main.py:10252 +msgid "Loading Project ... Please Wait ..." +msgstr "Chargement du projet ... Veuillez patienter ..." + +#: app_Main.py:10258 +msgid "Opening FlatCAM Project file." +msgstr "Ouverture du fichier de projet FlatCAM." + +#: app_Main.py:10273 app_Main.py:10277 app_Main.py:10295 +msgid "Failed to open project file" +msgstr "Impossible d'ouvrir le fichier de projet" + +#: app_Main.py:10335 +msgid "Loading Project ... restoring" +msgstr "Chargement du projet ... en cours de restauration" + +#: app_Main.py:10339 +msgid "Project loaded from" +msgstr "Projet chargé à partir de" + +#: app_Main.py:10368 msgid "Saving FlatCAM Project" msgstr "Enregistrement du projet FlatCAM" -#: app_Main.py:10294 app_Main.py:10330 +#: app_Main.py:10390 app_Main.py:10426 msgid "Project saved to" msgstr "Projet enregistré dans" -#: app_Main.py:10301 +#: app_Main.py:10397 msgid "The object is used by another application." msgstr "L'objet est utilisé par une autre application." -#: app_Main.py:10315 +#: app_Main.py:10411 msgid "Failed to verify project file" msgstr "Échec de vérification du fichier projet" -#: app_Main.py:10315 app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10411 app_Main.py:10419 app_Main.py:10429 msgid "Retry to save it." msgstr "Réessayez de le sauvegarder." -#: app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10419 app_Main.py:10429 msgid "Failed to parse saved project file" msgstr "Échec d'analyse du fichier de projet enregistré" +#: app_Main.py:10466 +#, fuzzy +#| msgid "" +#| "Save cancelled because source file is empty. Try to export the Gerber " +#| "file." +msgid "Save cancelled because source file is empty. Try to export the file." +msgstr "" +"Enregistrement annulé car le fichier source est vide. Essayez d'exporter le " +"fichier Gerber." + #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" diff --git a/locale/it/LC_MESSAGES/strings.mo b/locale/it/LC_MESSAGES/strings.mo index bc11b6949efbea00e59516c65bc7b6475c895922..412e608ab0579b1183c25bac4ef4dd1a24c57948 100644 GIT binary patch delta 34 ocmZ2KU3~p?@rD-07N#xC+U_itRwfqh`tHm?%(7kIowcC_0LI@6i2wiq delta 34 ocmZ2KU3~p?@rD-07N#xC+U_i-R;DKH`tHm?%(7kIowcC_0LE(yf&c&j diff --git a/locale/it/LC_MESSAGES/strings.po b/locale/it/LC_MESSAGES/strings.po index 6f9498df..60147477 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-10-24 15:54+0300\n" -"PO-Revision-Date: 2020-10-24 15:54+0300\n" +"POT-Creation-Date: 2020-10-24 19:48+0300\n" +"PO-Revision-Date: 2020-10-24 19:48+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: it\n" @@ -111,24 +111,24 @@ msgstr "Segnalibri" #: appObjects/FlatCAMCNCJob.py:1750 appObjects/ObjectCollection.py:126 #: appTools/ToolFilm.py:238 appTools/ToolFilm.py:384 appTools/ToolImage.py:112 #: appTools/ToolMove.py:269 appTools/ToolPcbWizard.py:189 -#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:526 -#: appTools/ToolQRCode.py:573 app_Main.py:1753 app_Main.py:2581 -#: app_Main.py:2617 app_Main.py:2664 app_Main.py:4410 app_Main.py:7128 -#: app_Main.py:7167 app_Main.py:7211 app_Main.py:7240 app_Main.py:7281 -#: app_Main.py:7306 app_Main.py:7362 app_Main.py:7398 app_Main.py:7443 -#: app_Main.py:7484 app_Main.py:7526 app_Main.py:7568 app_Main.py:7609 -#: app_Main.py:7653 app_Main.py:7713 app_Main.py:7745 app_Main.py:7777 -#: app_Main.py:8000 app_Main.py:8038 app_Main.py:8081 app_Main.py:8158 -#: app_Main.py:8213 +#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:527 +#: appTools/ToolQRCode.py:574 app_Main.py:1762 app_Main.py:2596 +#: app_Main.py:4333 app_Main.py:8065 app_Main.py:8104 app_Main.py:8148 +#: app_Main.py:8174 app_Main.py:8214 app_Main.py:8239 app_Main.py:8293 +#: app_Main.py:8329 app_Main.py:8373 app_Main.py:8413 app_Main.py:8454 +#: app_Main.py:8495 app_Main.py:8535 app_Main.py:8578 app_Main.py:8637 +#: app_Main.py:8669 app_Main.py:8699 app_Main.py:8874 app_Main.py:8911 +#: app_Main.py:8954 app_Main.py:9026 app_Main.py:9080 app_Main.py:9350 +#: app_Main.py:9385 msgid "Cancelled." msgstr "Cancellato." #: Bookmark.py:308 appDatabase.py:2089 appEditors/AppTextEditor.py:312 #: appObjects/FlatCAMCNCJob.py:1672 appObjects/FlatCAMCNCJob.py:1862 #: appObjects/FlatCAMCNCJob.py:2311 appTools/ToolFilm.py:582 -#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2672 -#: app_Main.py:8457 app_Main.py:8505 app_Main.py:8634 app_Main.py:8771 -#: app_Main.py:8839 +#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2604 +#: app_Main.py:9320 app_Main.py:9528 app_Main.py:9663 app_Main.py:9729 +#: app_Main.py:10481 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -160,7 +160,7 @@ msgstr "Segnalibri importati da" msgid "The user requested a graceful exit of the current task." msgstr "L'utente ha richiesto l'uscita dal task corrente." -#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:328 +#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:327 #: appTools/ToolIsolation.py:1436 appTools/ToolNCC.py:1366 msgid "Click the start point of the area." msgstr "Fai clic sul punto iniziale dell'area." @@ -170,7 +170,7 @@ msgid "Click the end point of the area." msgstr "Fai clic sul punto finale dell'area." #: appCommon/Common.py:357 appCommon/Common.py:459 -#: appTools/ToolCopperThieving.py:385 appTools/ToolIsolation.py:2348 +#: appTools/ToolCopperThieving.py:384 appTools/ToolIsolation.py:2348 #: appTools/ToolIsolation.py:2400 appTools/ToolNCC.py:1431 #: appTools/ToolNCC.py:1483 appTools/ToolPaint.py:1216 #: appTools/ToolPaint.py:1267 @@ -260,8 +260,8 @@ msgstr "Parametri taglio" #: appDatabase.py:207 appEditors/AppGeoEditor.py:3287 appGUI/ObjectUI.py:219 #: appGUI/ObjectUI.py:570 appGUI/ObjectUI.py:894 appGUI/ObjectUI.py:1876 #: appGUI/ObjectUI.py:2693 appGUI/ObjectUI.py:2760 -#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:681 -#: app_Main.py:9730 +#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:683 +#: app_Main.py:7306 msgid "Name" msgstr "Nome" @@ -332,7 +332,7 @@ msgstr "Il tipo di applicazione in cui utilizzare il tool." #: appDatabase.py:275 appDatabase.py:1778 appDatabase.py:1814 #: appDatabase.py:1877 appDatabase.py:2162 appGUI/MainGUI.py:1299 -#: app_Main.py:9728 +#: app_Main.py:7304 msgid "General" msgstr "Generale" @@ -482,7 +482,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2104 +#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2108 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Taglio Z" @@ -767,9 +767,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1210 appTools/ToolCopperThieving.py:1461 -#: appTools/ToolCorners.py:411 appTools/ToolCutOut.py:2157 -#: appTools/ToolFiducials.py:786 appTools/ToolInvertGerber.py:234 +#: appTools/ToolCopperThieving.py:1206 appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCorners.py:412 appTools/ToolCutOut.py:2161 +#: appTools/ToolFiducials.py:788 appTools/ToolInvertGerber.py:234 #: appTools/ToolInvertGerber.py:242 appTools/ToolNCC.py:4135 #: appTools/ToolNCC.py:4238 msgid "Margin" @@ -780,8 +780,8 @@ msgstr "Margine" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1212 appTools/ToolCorners.py:413 -#: appTools/ToolFiducials.py:788 appTools/ToolNCC.py:4137 +#: appTools/ToolCopperThieving.py:1208 appTools/ToolCorners.py:414 +#: appTools/ToolFiducials.py:790 appTools/ToolNCC.py:4137 #: appTools/ToolNCC.py:4240 msgid "Bounding box margin." msgstr "Margine del riquadro di delimitazione." @@ -793,7 +793,7 @@ msgstr "Margine del riquadro di delimitazione." #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 -#: appTools/ToolExtractDrills.py:520 appTools/ToolNCC.py:4112 +#: appTools/ToolExtractDrills.py:521 appTools/ToolNCC.py:4112 #: appTools/ToolPaint.py:2991 appTools/ToolPunchGerber.py:796 msgid "Method" msgstr "Metodo" @@ -1088,7 +1088,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 -#: appTools/ToolCutOut.py:2128 appTools/ToolDrilling.py:2167 +#: appTools/ToolCutOut.py:2132 appTools/ToolDrilling.py:2167 #: appTools/ToolMilling.py:1817 msgid "" "Use multiple passes to limit\n" @@ -1104,7 +1104,7 @@ msgstr "" #: appDatabase.py:979 appGUI/ObjectUI.py:1251 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 -#: appTools/ToolCutOut.py:2142 appTools/ToolDrilling.py:2180 +#: appTools/ToolCutOut.py:2146 appTools/ToolDrilling.py:2180 #: appTools/ToolMilling.py:1830 msgid "Depth of each pass (positive)." msgstr "Profondità di ogni passaggio (positivo)." @@ -1203,7 +1203,7 @@ msgstr "" "aggiungi un foro come punto finale." #: appDatabase.py:1156 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: appTools/ToolCutOut.py:2159 +#: appTools/ToolCutOut.py:2163 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -1214,12 +1214,12 @@ msgstr "" "bordo effettivo del PCB" #: appDatabase.py:1168 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:131 -#: appTools/ToolCutOut.py:2167 +#: appTools/ToolCutOut.py:2171 msgid "Gap size" msgstr "Dimensione ponticello" #: appDatabase.py:1170 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:133 -#: appTools/ToolCutOut.py:2169 +#: appTools/ToolCutOut.py:2173 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -1232,12 +1232,12 @@ msgstr "" "si sta rimuovendo il PCB)." #: appDatabase.py:1179 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -#: appTools/ToolCutOut.py:2182 +#: appTools/ToolCutOut.py:2186 msgid "Gap type" msgstr "Tipo di gap" #: appDatabase.py:1181 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150 -#: appTools/ToolCutOut.py:2184 +#: appTools/ToolCutOut.py:2188 msgid "" "The type of gap:\n" "- Bridge -> the cutout will be interrupted by bridges\n" @@ -1251,22 +1251,22 @@ msgstr "" "- M-Bites -> 'Mouse Bites' - come 'ponte' ma ricoperto di fori" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 -#: appTools/ToolCutOut.py:2192 +#: appTools/ToolCutOut.py:2196 msgid "Bridge" msgstr "Ponte" #: appDatabase.py:1190 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159 -#: appTools/ToolCutOut.py:2193 +#: appTools/ToolCutOut.py:2197 msgid "Thin" msgstr "Sottile" #: appDatabase.py:1201 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169 -#: appTools/ToolCutOut.py:2203 +#: appTools/ToolCutOut.py:2207 msgid "Depth" msgstr "Profondità" #: appDatabase.py:1203 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171 -#: appTools/ToolCutOut.py:2205 +#: appTools/ToolCutOut.py:2209 msgid "" "The depth until the milling is done\n" "in order to thin the gaps." @@ -1276,12 +1276,12 @@ msgstr "" #: appDatabase.py:1220 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2220 +#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2224 msgid "Tool Diameter" msgstr "Diametro utensile" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 -#: appTools/ToolCutOut.py:2222 +#: appTools/ToolCutOut.py:2226 #, fuzzy #| msgid "The drill hole diameter when doing mpuse bites." msgid "The drill hole diameter when doing mouse bites." @@ -1292,23 +1292,23 @@ msgstr "Diametro dei fori per M-Bites." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1333 appTools/ToolCopperThieving.py:1373 -#: appTools/ToolCopperThieving.py:1413 appTools/ToolCutOut.py:2232 +#: appTools/ToolCopperThieving.py:1329 appTools/ToolCopperThieving.py:1369 +#: appTools/ToolCopperThieving.py:1409 appTools/ToolCutOut.py:2236 msgid "Spacing" msgstr "Spaziatura" #: appDatabase.py:1235 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200 -#: appTools/ToolCutOut.py:2234 +#: appTools/ToolCutOut.py:2238 msgid "The spacing between drill holes when doing mouse bites." msgstr "Distanza tra fori del M-Bites." #: appDatabase.py:1254 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233 -#: appTools/ToolCutOut.py:2034 +#: appTools/ToolCutOut.py:2038 msgid "Convex Shape" msgstr "Forma convessa" #: appDatabase.py:1257 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235 -#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041 +#: appTools/ToolCutOut.py:2040 appTools/ToolCutOut.py:2045 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -1317,11 +1317,11 @@ msgstr "" "Utilizzato solo se il tipo di oggetto di origine è Gerber." #: appDatabase.py:1265 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209 -#: appTools/ToolCutOut.py:2263 +#: appTools/ToolCutOut.py:2267 msgid "Gaps" msgstr "Ponticelli" -#: appDatabase.py:1267 appTools/ToolCutOut.py:2265 +#: appDatabase.py:1267 appTools/ToolCutOut.py:2269 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -1406,8 +1406,8 @@ msgstr "" "in the Tools Database." #: appDatabase.py:1364 appGUI/MainGUI.py:1438 -#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2297 -#: app_Main.py:3392 app_Main.py:4347 app_Main.py:4593 app_Main.py:6901 +#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2306 +#: app_Main.py:3315 app_Main.py:4270 app_Main.py:4516 app_Main.py:8725 msgid "Cancel" msgstr "Cancellare" @@ -1418,16 +1418,16 @@ msgstr "Cancellare" #: appTools/ToolAlignObjects.py:516 appTools/ToolAlignObjects.py:527 #: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1601 appTools/ToolCopperThieving.py:1612 -#: appTools/ToolCorners.py:462 appTools/ToolCorners.py:473 -#: appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448 -#: appTools/ToolDblSided.py:956 appTools/ToolDblSided.py:967 +#: appTools/ToolCopperThieving.py:1597 appTools/ToolCopperThieving.py:1608 +#: appTools/ToolCorners.py:463 appTools/ToolCorners.py:474 +#: appTools/ToolCutOut.py:2441 appTools/ToolCutOut.py:2452 +#: appTools/ToolDblSided.py:958 appTools/ToolDblSided.py:969 #: appTools/ToolDistance.py:659 appTools/ToolDistance.py:670 #: appTools/ToolDistanceMin.py:324 appTools/ToolDistanceMin.py:335 #: appTools/ToolDrilling.py:2666 appTools/ToolDrilling.py:2677 #: appTools/ToolEtchCompensation.py:476 appTools/ToolEtchCompensation.py:487 -#: appTools/ToolExtractDrills.py:732 appTools/ToolExtractDrills.py:743 -#: appTools/ToolFiducials.py:950 appTools/ToolFiducials.py:961 +#: appTools/ToolExtractDrills.py:733 appTools/ToolExtractDrills.py:744 +#: appTools/ToolFiducials.py:952 appTools/ToolFiducials.py:963 #: appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 #: appTools/ToolImage.py:322 appTools/ToolImage.py:333 #: appTools/ToolInvertGerber.py:304 appTools/ToolInvertGerber.py:315 @@ -1439,7 +1439,7 @@ msgstr "Cancellare" #: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925 #: appTools/ToolPcbWizard.py:488 appTools/ToolPcbWizard.py:499 #: appTools/ToolPunchGerber.py:1025 appTools/ToolPunchGerber.py:1036 -#: appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933 +#: appTools/ToolQRCode.py:923 appTools/ToolQRCode.py:934 #: appTools/ToolRulesCheck.py:1657 appTools/ToolRulesCheck.py:1668 #: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586 #: appTools/ToolSub.py:772 appTools/ToolSub.py:783 @@ -1454,16 +1454,16 @@ msgstr "Il valore modificato è fuori range" #: appTools/ToolAlignObjects.py:522 appTools/ToolAlignObjects.py:529 #: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1607 appTools/ToolCopperThieving.py:1614 -#: appTools/ToolCorners.py:468 appTools/ToolCorners.py:475 -#: appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450 -#: appTools/ToolDblSided.py:962 appTools/ToolDblSided.py:969 +#: appTools/ToolCopperThieving.py:1603 appTools/ToolCopperThieving.py:1610 +#: appTools/ToolCorners.py:469 appTools/ToolCorners.py:476 +#: appTools/ToolCutOut.py:2447 appTools/ToolCutOut.py:2454 +#: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:971 #: appTools/ToolDistance.py:665 appTools/ToolDistance.py:672 #: appTools/ToolDistanceMin.py:330 appTools/ToolDistanceMin.py:337 #: appTools/ToolDrilling.py:2672 appTools/ToolDrilling.py:2679 #: appTools/ToolEtchCompensation.py:482 appTools/ToolEtchCompensation.py:489 -#: appTools/ToolExtractDrills.py:738 appTools/ToolExtractDrills.py:745 -#: appTools/ToolFiducials.py:956 appTools/ToolFiducials.py:963 +#: appTools/ToolExtractDrills.py:739 appTools/ToolExtractDrills.py:746 +#: appTools/ToolFiducials.py:958 appTools/ToolFiducials.py:965 #: appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 #: appTools/ToolImage.py:328 appTools/ToolImage.py:335 #: appTools/ToolInvertGerber.py:310 appTools/ToolInvertGerber.py:317 @@ -1475,7 +1475,7 @@ msgstr "Il valore modificato è fuori range" #: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927 #: appTools/ToolPcbWizard.py:494 appTools/ToolPcbWizard.py:501 #: appTools/ToolPunchGerber.py:1031 appTools/ToolPunchGerber.py:1038 -#: appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935 +#: appTools/ToolQRCode.py:929 appTools/ToolQRCode.py:936 #: appTools/ToolRulesCheck.py:1663 appTools/ToolRulesCheck.py:1670 #: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588 #: appTools/ToolSub.py:778 appTools/ToolSub.py:785 @@ -1495,7 +1495,7 @@ msgstr "Copia da DB" msgid "Delete from DB" msgstr "Cancella da DB" -#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3386 app_Main.py:6895 +#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3309 app_Main.py:8719 msgid "Save changes" msgstr "Salva modifiche" @@ -1552,8 +1552,8 @@ msgstr "Importazione DB FlatCAM utensili" #: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525 #: appTools/ToolIsolation.py:2583 appTools/ToolIsolation.py:2667 #: appTools/ToolNCC.py:3715 appTools/ToolNCC.py:3795 appTools/ToolPaint.py:2626 -#: appTools/ToolPaint.py:2715 app_Main.py:5682 app_Main.py:5724 -#: app_Main.py:5755 app_Main.py:5775 app_Main.py:5785 +#: appTools/ToolPaint.py:2715 app_Main.py:5605 app_Main.py:5647 +#: app_Main.py:5678 app_Main.py:5698 app_Main.py:5708 msgid "Tools Database" msgstr "Database degli utensili" @@ -1762,7 +1762,7 @@ msgstr "Errore: Nessun utensile/Foro selezionato" #: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642 #: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871 #: appTools/ToolAlignObjects.py:253 appTools/ToolAlignObjects.py:275 -#: app_Main.py:4961 app_Main.py:5115 +#: app_Main.py:4884 app_Main.py:5038 msgid "Done." msgstr "Fatto." @@ -1823,7 +1823,7 @@ msgstr "" #: appEditors/AppExcEditor.py:3765 appGUI/ObjectUI.py:1082 #: appGUI/ObjectUI.py:1650 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 -#: appTools/ToolCutOut.py:2060 appTools/ToolIsolation.py:3091 +#: appTools/ToolCutOut.py:2064 appTools/ToolIsolation.py:3091 #: appTools/ToolNCC.py:3966 appTools/ToolNCC.py:3977 appTools/ToolPaint.py:2882 msgid "Tool Dia" msgstr "Diametro utensile" @@ -1914,8 +1914,8 @@ msgstr "Lineare" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 -#: appTools/ToolExtractDrills.py:470 appTools/ToolExtractDrills.py:593 -#: appTools/ToolFiducials.py:834 appTools/ToolPunchGerber.py:746 +#: appTools/ToolExtractDrills.py:471 appTools/ToolExtractDrills.py:594 +#: appTools/ToolFiducials.py:836 appTools/ToolPunchGerber.py:746 #: appTools/ToolPunchGerber.py:886 msgid "Circular" msgstr "Circolare" @@ -2082,7 +2082,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:398 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:399 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Lunghezza" @@ -2197,12 +2197,12 @@ msgstr "Arrotondato" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:289 -#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:486 -#: appTools/ToolExtractDrills.py:619 appTools/ToolInvertGerber.py:257 +#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:487 +#: appTools/ToolExtractDrills.py:620 appTools/ToolInvertGerber.py:257 #: appTools/ToolIsolation.py:3430 appTools/ToolMilling.py:2264 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3168 #: appTools/ToolPunchGerber.py:762 appTools/ToolPunchGerber.py:912 -#: appTools/ToolQRCode.py:788 +#: appTools/ToolQRCode.py:789 msgid "Square" msgstr "Squadrato" @@ -2253,8 +2253,8 @@ msgstr "Font" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1360 appTools/ToolCopperThieving.py:1400 -#: appTools/ToolFiducials.py:770 +#: appTools/ToolCopperThieving.py:1356 appTools/ToolCopperThieving.py:1396 +#: appTools/ToolFiducials.py:772 msgid "Size" msgstr "Dimensione" @@ -2278,8 +2278,8 @@ msgstr "Utensile testo" #: appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 #: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:329 #: appTools/ToolNCC.py:2280 appTools/ToolNCC.py:4040 appTools/ToolPaint.py:304 -#: appTools/ToolPaint.py:2940 app_Main.py:2053 app_Main.py:2312 -#: app_Main.py:2419 +#: appTools/ToolPaint.py:2940 app_Main.py:2062 app_Main.py:2321 +#: app_Main.py:2428 msgid "Tool" msgstr "Strumenti" @@ -2369,7 +2369,7 @@ msgstr "Buffer" #: appGUI/GUIElements.py:3015 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 -#: appTools/ToolDblSided.py:681 appTools/ToolDblSided.py:855 +#: appTools/ToolDblSided.py:683 appTools/ToolDblSided.py:857 #: appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 msgid "Reference" msgstr "Riferimento" @@ -2414,7 +2414,7 @@ msgstr "Selezione" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 -#: appTools/ToolDblSided.py:692 appTools/ToolTransform.py:557 +#: appTools/ToolDblSided.py:694 appTools/ToolTransform.py:557 msgid "Point" msgstr "Punto" @@ -2427,10 +2427,9 @@ msgstr "Minimo" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243 -#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677 +#: appTools/ToolExtractDrills.py:557 appTools/ToolExtractDrills.py:678 #: appTools/ToolPunchGerber.py:849 appTools/ToolPunchGerber.py:965 -#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 -#: app_Main.py:10205 +#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:7781 msgid "Value" msgstr "Valore" @@ -2442,10 +2441,10 @@ msgstr "Un punto di riferimento nel formato X,Y." #: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590 #: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 -#: appTools/ToolDblSided.py:706 appTools/ToolDblSided.py:892 +#: appTools/ToolDblSided.py:708 appTools/ToolDblSided.py:894 #: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203 -#: appTools/ToolTransform.py:572 app_Main.py:6127 +#: appTools/ToolTransform.py:572 app_Main.py:6050 msgid "Add" msgstr "Aggiungi" @@ -2656,7 +2655,7 @@ msgstr "Offset X" #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216 -#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:787 +#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:788 #: appTools/ToolTransform.py:854 msgid "Rounded" msgstr "Arrotondato" @@ -3139,7 +3138,7 @@ msgstr "Editor Geometrie" #: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495 #: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 -#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519 +#: appTools/ToolCutOut.py:2017 appTools/ToolDblSided.py:521 #: appTools/ToolTransform.py:579 msgid "Type" msgstr "Tipo" @@ -3528,7 +3527,7 @@ msgstr "Aggiungi una apertura nella lista aperture." #: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 #: appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 #: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 -#: appTools/ToolSolderPaste.py:1209 app_Main.py:6129 +#: appTools/ToolSolderPaste.py:1209 app_Main.py:6052 msgid "Delete" msgstr "Cancella" @@ -3748,8 +3747,8 @@ msgstr "" #: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:164 #: appObjects/FlatCAMGeometry.py:1917 appParsers/ParseExcellon.py:972 -#: appTools/ToolPcbWizard.py:318 app_Main.py:9010 app_Main.py:9070 -#: app_Main.py:9201 app_Main.py:9266 app_Main.py:9881 +#: appTools/ToolPcbWizard.py:318 app_Main.py:7457 app_Main.py:9899 +#: app_Main.py:9959 app_Main.py:10090 app_Main.py:10155 msgid "An internal error has occurred. See shell.\n" msgstr "Errore interno. Vedi shell.\n" @@ -3765,7 +3764,7 @@ msgstr "Fatto. Modifica di Gerber terminata." msgid "Cancelled. No aperture is selected" msgstr "Annullato. Nessuna apertura selezionata" -#: appEditors/AppGerberEditor.py:4555 app_Main.py:6462 +#: appEditors/AppGerberEditor.py:4555 app_Main.py:6385 msgid "Coordinates copied to clipboard." msgstr "Coordinate copiate negli appunti." @@ -3782,8 +3781,8 @@ 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/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 -#: appTools/ToolCutOut.py:895 appTools/ToolCutOut.py:1118 -#: appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663 +#: appTools/ToolCutOut.py:896 appTools/ToolCutOut.py:1119 +#: appTools/ToolCutOut.py:1267 camlib.py:4899 camlib.py:5663 msgid "Failed." msgstr "Fallito." @@ -3813,7 +3812,7 @@ msgstr "Nessun poligono contrassegnato. Nessuno risponde ai criteri." msgid "Rotation action was not executed." msgstr "Azione rotazione non effettuata." -#: appEditors/AppGerberEditor.py:6044 app_Main.py:5885 app_Main.py:5933 +#: appEditors/AppGerberEditor.py:6044 app_Main.py:5808 app_Main.py:5856 msgid "Flip action was not executed." msgstr "Capovolgimento non eseguito." @@ -3926,7 +3925,7 @@ msgstr "Apri il file" #: appObjects/FlatCAMCNCJob.py:1646 appObjects/FlatCAMCNCJob.py:1651 #: appObjects/FlatCAMCNCJob.py:1836 appObjects/FlatCAMCNCJob.py:1841 #: appObjects/FlatCAMCNCJob.py:1914 appObjects/FlatCAMCNCJob.py:1919 -#: appTools/ToolSolderPaste.py:1063 app_Main.py:7044 app_Main.py:7049 +#: appTools/ToolSolderPaste.py:1063 app_Main.py:6839 app_Main.py:6844 msgid "Export Code ..." msgstr "Esporta il Codice ..." @@ -3940,7 +3939,7 @@ msgstr "File o directory inesistente" msgid "Saved to" msgstr "Salvato in" -#: appEditors/appGCodeEditor.py:66 app_Main.py:7905 +#: appEditors/appGCodeEditor.py:66 app_Main.py:7000 msgid "Code Editor" msgstr "Editor del codice" @@ -3968,7 +3967,7 @@ msgstr "Editor GCode" #: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 appGUI/ObjectUI.py:2019 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1320 +#: appTools/ToolCopperThieving.py:1316 msgid "Dia" msgstr "Diametro" @@ -4060,8 +4059,8 @@ msgstr "" msgid "Save Log" msgstr "Salva log" -#: appGUI/GUIElements.py:3085 app_Main.py:2809 app_Main.py:3181 -#: app_Main.py:3354 +#: appGUI/GUIElements.py:3085 app_Main.py:2741 app_Main.py:3113 +#: app_Main.py:3286 msgid "Close" msgstr "Chiudi" @@ -4691,7 +4690,7 @@ msgstr "Aiuto" msgid "Online Help\tF1" msgstr "Aiuto Online\tF1" -#: appGUI/MainGUI.py:527 app_Main.py:3319 app_Main.py:3328 +#: appGUI/MainGUI.py:527 app_Main.py:3251 app_Main.py:3260 msgid "Bookmarks Manager" msgstr "Gestore segnalibri" @@ -4719,7 +4718,7 @@ msgstr "Canale YouTube\tF4" msgid "How To" msgstr "How To" -#: appGUI/MainGUI.py:551 app_Main.py:2776 +#: appGUI/MainGUI.py:551 app_Main.py:2708 msgid "About FlatCAM" msgstr "Informazioni su FlatCAM" @@ -4887,47 +4886,47 @@ msgstr "Disabilita Plot" msgid "Set Color" msgstr "Imposta Colore" -#: appGUI/MainGUI.py:709 app_Main.py:10148 +#: appGUI/MainGUI.py:709 app_Main.py:7724 msgid "Red" msgstr "Rosso" -#: appGUI/MainGUI.py:712 app_Main.py:10150 +#: appGUI/MainGUI.py:712 app_Main.py:7726 msgid "Blue" msgstr "Blu" -#: appGUI/MainGUI.py:715 app_Main.py:10153 +#: appGUI/MainGUI.py:715 app_Main.py:7729 msgid "Yellow" msgstr "Giallo" -#: appGUI/MainGUI.py:718 app_Main.py:10155 +#: appGUI/MainGUI.py:718 app_Main.py:7731 msgid "Green" msgstr "Verde" -#: appGUI/MainGUI.py:721 app_Main.py:10157 +#: appGUI/MainGUI.py:721 app_Main.py:7733 msgid "Purple" msgstr "Porpora" -#: appGUI/MainGUI.py:724 app_Main.py:10159 +#: appGUI/MainGUI.py:724 app_Main.py:7735 msgid "Brown" msgstr "Marrone" -#: appGUI/MainGUI.py:727 app_Main.py:10161 app_Main.py:10220 +#: appGUI/MainGUI.py:727 app_Main.py:7737 app_Main.py:7796 msgid "White" msgstr "Bianco" -#: appGUI/MainGUI.py:730 app_Main.py:10163 +#: appGUI/MainGUI.py:730 app_Main.py:7739 msgid "Black" msgstr "Nero" -#: appGUI/MainGUI.py:735 app_Main.py:10166 +#: appGUI/MainGUI.py:735 app_Main.py:7742 msgid "Custom" msgstr "Personalizzato" -#: appGUI/MainGUI.py:740 app_Main.py:10200 +#: appGUI/MainGUI.py:740 app_Main.py:7776 msgid "Opacity" msgstr "Trasparenza" -#: appGUI/MainGUI.py:743 app_Main.py:10176 +#: appGUI/MainGUI.py:743 app_Main.py:7752 msgid "Default" msgstr "Valori di default" @@ -5001,13 +5000,13 @@ msgstr "Strumenti Griglia" msgid "Status Toolbar" msgstr "Toolbar stato" -#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7110 -#: app_Main.py:7115 +#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:8046 +#: app_Main.py:8051 msgid "Open Gerber" msgstr "Apri Gerber" -#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7150 -#: app_Main.py:7155 +#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:8086 +#: app_Main.py:8091 msgid "Open Excellon" msgstr "Apri Excellon" @@ -5094,7 +5093,7 @@ msgid "Extract Drills Tool" msgstr "Strumento estrai fori" #: appGUI/MainGUI.py:931 appGUI/MainGUI.py:2086 appGUI/ObjectUI.py:387 -#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2052 +#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2056 msgid "Cutout Tool" msgstr "Strumento Ritaglia" @@ -5145,17 +5144,17 @@ msgid "Calculators Tool" msgstr "Strumento Calcolatrici" #: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285 -#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628 +#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:629 msgid "QRCode Tool" msgstr "Strumento QRCode" #: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1137 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1133 msgid "Copper Thieving Tool" msgstr "Strumento Copper Thieving" #: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281 -#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648 +#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:650 msgid "Fiducials Tool" msgstr "Strumento Fiducial" @@ -5174,7 +5173,7 @@ msgid "Invert Gerber Tool" msgstr "Strumento inverti gerber" #: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284 -#: appTools/ToolCorners.py:297 +#: appTools/ToolCorners.py:298 msgid "Corner Markers Tool" msgstr "Strumento marchiatura bordi" @@ -5365,8 +5364,8 @@ msgstr "(Dis)attiva visualizzazione asse sui canvas" #: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:899 #: appGUI/preferences/PreferencesUIManager.py:992 #: appGUI/preferences/PreferencesUIManager.py:1020 -#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5585 -#: app_Main.py:5590 app_Main.py:5605 +#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5508 +#: app_Main.py:5513 app_Main.py:5528 msgid "Preferences" msgstr "Preferenze" @@ -5404,21 +5403,21 @@ msgstr "" msgid "TCL Shell" msgstr "Mostra shell" -#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 +#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:9017 msgid "Project" msgstr "Progetto" #: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:3791 -#: appGUI/MainGUI.py:3797 app_Main.py:2480 app_Main.py:7001 +#: appGUI/MainGUI.py:3797 app_Main.py:2489 app_Main.py:8825 msgid "Plot Area" msgstr "Area Grafica" -#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1169 -#: appTools/ToolCorners.py:317 appTools/ToolEtchCompensation.py:291 -#: appTools/ToolExtractDrills.py:453 appTools/ToolFiducials.py:873 +#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1165 +#: appTools/ToolCorners.py:318 appTools/ToolEtchCompensation.py:291 +#: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:875 #: appTools/ToolInvertGerber.py:215 appTools/ToolIsolation.py:2986 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:721 -#: appTools/ToolQRCode.py:659 appTools/ToolRulesCheck.py:1165 +#: appTools/ToolQRCode.py:660 appTools/ToolRulesCheck.py:1165 #: appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:643 msgid "GERBER" msgstr "GERBER" @@ -5506,9 +5505,9 @@ msgstr "(Dis)abilita visibilità" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:526 -#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:929 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2014 appTools/ToolDblSided.py:528 +#: appTools/ToolDblSided.py:769 appTools/ToolFilm.py:929 #: appTools/ToolFilm.py:952 appTools/ToolImage.py:136 appTools/ToolImage.py:191 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 @@ -5526,9 +5525,9 @@ msgstr "Geometria" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:892 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolDblSided.py:527 appTools/ToolDblSided.py:724 -#: appTools/ToolDblSided.py:766 appTools/ToolFilm.py:1207 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:768 appTools/ToolFilm.py:1207 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:805 appTools/ToolNCC.py:4323 appTools/ToolPaint.py:167 #: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147 @@ -5606,7 +5605,7 @@ msgstr "Editor Excellon" msgid "Add Drill" msgstr "Aggiungi foro" -#: appGUI/MainGUI.py:1581 app_Main.py:2291 +#: appGUI/MainGUI.py:1581 app_Main.py:2300 msgid "Close Editor" msgstr "Chiudi Editor" @@ -5632,8 +5631,8 @@ msgstr "Sicuro di voler cancellare le impostazioni GUI?\n" #: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:931 #: appGUI/preferences/PreferencesUIManager.py:1177 appTranslation.py:111 -#: appTranslation.py:213 app_Main.py:2295 app_Main.py:3390 app_Main.py:5815 -#: app_Main.py:6899 +#: appTranslation.py:213 app_Main.py:2304 app_Main.py:3313 app_Main.py:5738 +#: app_Main.py:8723 msgid "Yes" msgstr "Sì" @@ -5645,7 +5644,7 @@ msgstr "Sì" #: appTools/ToolDrilling.py:2090 appTools/ToolIsolation.py:3066 #: appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3935 #: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 -#: app_Main.py:2296 app_Main.py:3391 app_Main.py:5816 app_Main.py:6900 +#: app_Main.py:2305 app_Main.py:3314 app_Main.py:5739 app_Main.py:8724 msgid "No" msgstr "No" @@ -5735,7 +5734,7 @@ msgstr "Aggiunta utensile annullata ..." msgid "Distance Tool exit..." msgstr "Uscita dallo strumento Distanza..." -#: appGUI/MainGUI.py:3725 app_Main.py:3378 +#: appGUI/MainGUI.py:3725 app_Main.py:3301 msgid "Application is saving the project. Please wait ..." msgstr "L'applicazione sta salvando il progetto. Attendere ..." @@ -5779,7 +5778,7 @@ msgstr "Nuovo Gerber" msgid "Edit Object (if selected)" msgstr "Modifica oggetto (se selezionato)" -#: appGUI/MainGUI.py:4261 app_Main.py:6115 +#: appGUI/MainGUI.py:4261 app_Main.py:6038 msgid "Grid On/Off" msgstr "Griglia On/Off" @@ -5849,7 +5848,7 @@ msgstr "Apri file Gerber" msgid "New Project" msgstr "Nuovo Progetto" -#: appGUI/MainGUI.py:4270 app_Main.py:7229 app_Main.py:7232 +#: appGUI/MainGUI.py:4270 app_Main.py:8166 app_Main.py:8169 msgid "Open Project" msgstr "Apri progetto" @@ -6277,7 +6276,7 @@ msgstr "Opzioni disegno" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1290 +#: appTools/ToolCopperThieving.py:1286 msgid "Solid" msgstr "Solido" @@ -6445,15 +6444,15 @@ msgstr "" msgid "Resulting geometry will have rounded corners." msgstr "La geometria risultante avrà angoli arrotondati." -#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2287 -#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444 +#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2291 +#: appTools/ToolCutOut.py:2306 appTools/ToolIsolation.py:3444 #: appTools/ToolNCC.py:4372 appTools/ToolPaint.py:3178 msgid "Generate Geometry" msgstr "Genera geometria" #: appGUI/ObjectUI.py:478 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:782 +#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:783 msgid "Bounding Box" msgstr "Rettangolo contenitore" @@ -6800,7 +6799,7 @@ msgstr "" msgid "Add from DB" msgstr "Aggiungi dal DB" -#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2071 +#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2075 #: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3122 #: appTools/ToolNCC.py:3996 appTools/ToolPaint.py:2898 msgid "Search and Add" @@ -6814,13 +6813,13 @@ msgstr "" "Aggiungi un nuovo utensile alla tabella degli utensili\n" "con il diametro sopra specificato." -#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2083 +#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2087 #: appTools/ToolIsolation.py:65 appTools/ToolIsolation.py:3133 #: appTools/ToolNCC.py:4007 appTools/ToolPaint.py:2909 msgid "Pick from DB" msgstr "Prendi dal DB" -#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2086 +#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2090 #: appTools/ToolIsolation.py:3136 appTools/ToolNCC.py:4010 #: appTools/ToolPaint.py:2912 #, fuzzy @@ -6920,7 +6919,7 @@ msgstr "" #: appGUI/ObjectUI.py:1216 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2107 +#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2111 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -6932,7 +6931,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 -#: appTools/ToolCutOut.py:2125 appTools/ToolDrilling.py:2164 +#: appTools/ToolCutOut.py:2129 appTools/ToolDrilling.py:2164 #: appTools/ToolMilling.py:1814 msgid "Multi-Depth" msgstr "Multi-Profondità" @@ -7618,12 +7617,12 @@ msgstr "" #: appGUI/ObjectUI.py:2177 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: appTools/ToolCutOut.py:2324 appTools/ToolFiducials.py:801 +#: appTools/ToolCutOut.py:2328 appTools/ToolFiducials.py:803 msgid "Manual" msgstr "Manuale" #: appGUI/ObjectUI.py:2178 -#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:9736 +#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:7312 msgid "Grid" msgstr "Griglia" @@ -7942,7 +7941,7 @@ msgstr "Allineamento" msgid "Align Left" msgstr "Allinea a sinistra" -#: appGUI/ObjectUI.py:2860 app_Main.py:4999 +#: appGUI/ObjectUI.py:2860 app_Main.py:4922 msgid "Center" msgstr "Centro" @@ -8032,7 +8031,7 @@ msgid "Preferences default values are restored." msgstr "I valori predefiniti delle preferenze vengono ripristinati." #: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 -#: app_Main.py:2696 +#: app_Main.py:9396 msgid "Failed to write defaults to file." msgstr "Impossibile scrivere le impostazioni predefinite nel file." @@ -8082,10 +8081,10 @@ msgstr "Opzioni avanzate CNC Job" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1188 -#: appTools/ToolCorners.py:377 appTools/ToolEtchCompensation.py:356 -#: appTools/ToolFiducials.py:763 appTools/ToolInvertGerber.py:228 -#: appTools/ToolQRCode.py:695 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1184 +#: appTools/ToolCorners.py:378 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolFiducials.py:765 appTools/ToolInvertGerber.py:228 +#: appTools/ToolQRCode.py:696 msgid "Parameters" msgstr "Parametri" @@ -8202,7 +8201,7 @@ msgid "G-code Decimals" msgstr "Decimali G-Code" #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:682 +#: appTools/ToolFiducials.py:684 msgid "Coordinates" msgstr "Coordinate" @@ -8967,7 +8966,7 @@ msgstr "Impostazioni App" msgid "Grid Settings" msgstr "Impostazioni Griglia" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:9744 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:7320 msgid "X value" msgstr "Valore X" @@ -8975,7 +8974,7 @@ msgstr "Valore X" 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 app_Main.py:9747 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:7323 msgid "Y value" msgstr "Valore Y" @@ -9022,14 +9021,14 @@ msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: appTools/ToolFilm.py:1274 app_Main.py:9764 +#: appTools/ToolFilm.py:1274 app_Main.py:7340 msgid "Portrait" msgstr "Verticale" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: appTools/ToolFilm.py:1275 app_Main.py:9766 +#: appTools/ToolFilm.py:1275 app_Main.py:7342 msgid "Landscape" msgstr "Orizzontale" @@ -9049,7 +9048,7 @@ msgstr "" "e include le schede Progetto, Selezionato e Strumento." #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -#: appTools/ToolDblSided.py:666 appTools/ToolDblSided.py:838 app_Main.py:9752 +#: appTools/ToolDblSided.py:668 appTools/ToolDblSided.py:840 app_Main.py:7328 msgid "Axis" msgstr "Assi" @@ -9069,7 +9068,7 @@ msgstr "" "Imposta la dimensione del carattere per gli elementi delle\n" "box testo della GUI utilizzati dall'applicazione." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:9769 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:7345 msgid "HUD" msgstr "HUD" @@ -10133,8 +10132,8 @@ msgid "\"Follow\"" msgstr "\"Segui\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:579 -#: appTools/ToolCopperThieving.py:776 appTools/ToolCopperThieving.py:788 +#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:578 +#: appTools/ToolCopperThieving.py:775 appTools/ToolCopperThieving.py:787 #: appTools/ToolIsolation.py:1353 appTools/ToolNCC.py:1793 #: appTools/ToolNCC.py:1820 appTools/ToolNCC.py:1928 appTools/ToolNCC.py:1941 #: appTools/ToolNCC.py:2845 appTools/ToolNCC.py:2950 appTools/ToolNCC.py:2965 @@ -10163,7 +10162,7 @@ msgstr "" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102 +#: appTools/ToolFiducials.py:817 appTools/ToolFilm.py:1102 #: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -10445,7 +10444,7 @@ 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:1195 appTools/ToolCopperThieving.py:1530 +#: appTools/ToolCopperThieving.py:1191 appTools/ToolCopperThieving.py:1526 msgid "Clearance" msgstr "Distanza" @@ -10461,7 +10460,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1224 appTools/ToolNCC.py:1351 +#: appTools/ToolCopperThieving.py:1220 appTools/ToolNCC.py:1351 #: appTools/ToolNCC.py:1667 appTools/ToolNCC.py:1731 appTools/ToolNCC.py:2709 #: appTools/ToolNCC.py:2718 appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4436 #: defaults.py:478 tclCommands/TclCommandCopperClear.py:190 @@ -10472,7 +10471,7 @@ msgstr "Stesso" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1225 appTools/ToolIsolation.py:819 +#: appTools/ToolCopperThieving.py:1221 appTools/ToolIsolation.py:819 #: appTools/ToolIsolation.py:1435 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1365 appTools/ToolNCC.py:1683 appTools/ToolNCC.py:1738 #: appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4446 appTools/ToolPaint.py:1061 @@ -10484,7 +10483,7 @@ msgstr "Selezione Area" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolDblSided.py:757 +#: appTools/ToolCopperThieving.py:1222 appTools/ToolDblSided.py:759 #: appTools/ToolIsolation.py:1475 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1384 appTools/ToolNCC.py:1689 appTools/ToolNCC.py:1746 #: appTools/ToolNCC.py:2124 appTools/ToolNCC.py:2358 appTools/ToolNCC.py:2754 @@ -10495,7 +10494,7 @@ msgid "Reference Object" msgstr "Oggetto di riferimento" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1224 msgid "Reference:" msgstr "Riferimento:" @@ -10519,24 +10518,24 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1270 appTools/ToolExtractDrills.py:494 -#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:770 +#: appTools/ToolCopperThieving.py:1266 appTools/ToolExtractDrills.py:495 +#: appTools/ToolExtractDrills.py:633 appTools/ToolPunchGerber.py:770 #: appTools/ToolPunchGerber.py:925 msgid "Rectangular" msgstr "Rettangolare" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1271 +#: appTools/ToolCopperThieving.py:1267 msgid "Minimal" msgstr "Minima" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1273 appTools/ToolFilm.py:954 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolFilm.py:954 msgid "Box Type:" msgstr "Tipo contenitore:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1275 +#: appTools/ToolCopperThieving.py:1271 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10545,27 +10544,27 @@ msgstr "" "- 'Minimo': il riquadro di delimitazione avrà la forma convessa del guscio." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1291 +#: appTools/ToolCopperThieving.py:1287 msgid "Dots Grid" msgstr "Griglia punti" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1292 +#: appTools/ToolCopperThieving.py:1288 msgid "Squares Grid" msgstr "Griglia quadrati" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1293 +#: appTools/ToolCopperThieving.py:1289 msgid "Lines Grid" msgstr "Griglia linee" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1295 +#: appTools/ToolCopperThieving.py:1291 msgid "Fill Type:" msgstr "Tipo riempimento:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1297 +#: appTools/ToolCopperThieving.py:1293 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10578,57 +10577,57 @@ msgstr "" "- 'Griglia di linee': l'area vuota verrà riempita con un motivo di linee." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1316 +#: appTools/ToolCopperThieving.py:1312 msgid "Dots Grid Parameters" msgstr "Parametri griglia di punti" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1322 +#: appTools/ToolCopperThieving.py:1318 msgid "Dot diameter in Dots Grid." msgstr "Diametro punti nella griglia di punti." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1335 +#: appTools/ToolCopperThieving.py:1331 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:1356 +#: appTools/ToolCopperThieving.py:1352 msgid "Squares Grid Parameters" msgstr "Parametri griglia quadrati" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1362 +#: appTools/ToolCopperThieving.py:1358 msgid "Square side size in Squares Grid." msgstr "Dimensione quadrati nella griglia." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1375 +#: appTools/ToolCopperThieving.py:1371 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:1396 +#: appTools/ToolCopperThieving.py:1392 msgid "Lines Grid Parameters" msgstr "Parametri griglia lineei" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1402 +#: appTools/ToolCopperThieving.py:1398 msgid "Line thickness size in Lines Grid." msgstr "Spessore delle linee nella griglia." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1415 +#: appTools/ToolCopperThieving.py:1411 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:1453 +#: appTools/ToolCopperThieving.py:1449 msgid "Robber Bar Parameters" msgstr "Parametri \"rapinatore\"" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1455 +#: appTools/ToolCopperThieving.py:1451 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10637,34 +10636,34 @@ msgstr "" "\"Rapinatore\" = bordo in rame che aiuta nella placatura dei fori." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1463 +#: appTools/ToolCopperThieving.py:1459 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:1474 appTools/ToolCorners.py:384 +#: appTools/ToolCopperThieving.py:1470 appTools/ToolCorners.py:385 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Spessore" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1476 +#: appTools/ToolCopperThieving.py:1472 msgid "The robber bar thickness." msgstr "Lo spessore del \"rapinatore\"." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1507 +#: appTools/ToolCopperThieving.py:1503 msgid "Pattern Plating Mask" msgstr "Maschera di placatura" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1509 +#: appTools/ToolCopperThieving.py:1505 msgid "Generate a mask for pattern plating." msgstr "Genera una maschera per la placatura." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1532 +#: appTools/ToolCopperThieving.py:1528 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10681,8 +10680,8 @@ msgstr "Opzioni strumento calibrazione" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1190 appTools/ToolCorners.py:379 -#: appTools/ToolFiducials.py:765 +#: appTools/ToolCopperThieving.py:1186 appTools/ToolCorners.py:380 +#: appTools/ToolFiducials.py:767 msgid "Parameters used for this tool." msgstr "Parametri usati per questo strumento." @@ -10771,12 +10770,12 @@ msgstr "" "- basso-destra -> l'utente allineerà il PCB orizzontalmente" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: appTools/ToolCalibration.py:854 app_Main.py:4996 +#: appTools/ToolCalibration.py:854 app_Main.py:4919 msgid "Top-Left" msgstr "Alto-Sinistra" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: appTools/ToolCalibration.py:855 app_Main.py:4997 +#: appTools/ToolCalibration.py:855 app_Main.py:4920 msgid "Bottom-Right" msgstr "Basso-Destra" @@ -10786,13 +10785,13 @@ msgstr "Opzioni fori" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:732 +#: appTools/ToolExtractDrills.py:461 appTools/ToolPunchGerber.py:732 msgid "Processed Pads Type" msgstr "Tipo pad processati" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:734 +#: appTools/ToolExtractDrills.py:463 appTools/ToolPunchGerber.py:734 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -10804,7 +10803,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:748 +#: appTools/ToolExtractDrills.py:473 appTools/ToolPunchGerber.py:748 msgid "Process Circular Pads." msgstr "Elabora pad circolari." @@ -10812,26 +10811,26 @@ msgstr "Elabora pad circolari." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606 +#: appTools/ToolExtractDrills.py:479 appTools/ToolExtractDrills.py:607 #: appTools/ToolPunchGerber.py:754 appTools/ToolPunchGerber.py:899 msgid "Oblong" msgstr "Oblungo" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:756 +#: appTools/ToolExtractDrills.py:481 appTools/ToolPunchGerber.py:756 msgid "Process Oblong Pads." msgstr "Elabora pad oblunghi." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:764 +#: appTools/ToolExtractDrills.py:489 appTools/ToolPunchGerber.py:764 msgid "Process Square Pads." msgstr "Elabora pad quadrati." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:772 +#: appTools/ToolExtractDrills.py:497 appTools/ToolPunchGerber.py:772 msgid "Process Rectangular Pads." msgstr "Elabora pad rettangolari." @@ -10839,15 +10838,15 @@ msgstr "Elabora pad rettangolari." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502 -#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:171 +#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:503 +#: appTools/ToolExtractDrills.py:646 appTools/ToolProperties.py:171 #: appTools/ToolPunchGerber.py:778 appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "Altri" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:780 +#: appTools/ToolExtractDrills.py:505 appTools/ToolPunchGerber.py:780 msgid "Process pads not in the categories above." msgstr "Elabora pad non appartenenti alle categoria sopra." @@ -10855,7 +10854,7 @@ msgstr "Elabora pad non appartenenti alle categoria sopra." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548 +#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:549 #: appTools/ToolPunchGerber.py:807 appTools/ToolPunchGerber.py:841 msgid "Fixed Diameter" msgstr "Diametro fisso" @@ -10864,19 +10863,19 @@ msgstr "Diametro fisso" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584 +#: appTools/ToolExtractDrills.py:533 appTools/ToolExtractDrills.py:585 #: appTools/ToolPunchGerber.py:808 appTools/ToolPunchGerber.py:871 msgid "Fixed Annular Ring" msgstr "Anello fisso" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:809 +#: appTools/ToolExtractDrills.py:534 appTools/ToolPunchGerber.py:809 msgid "Proportional" msgstr "Proporzionale" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: appTools/ToolExtractDrills.py:522 +#: appTools/ToolExtractDrills.py:523 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -10891,13 +10890,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:851 +#: appTools/ToolExtractDrills.py:559 appTools/ToolPunchGerber.py:851 msgid "Fixed hole diameter." msgstr "Diametro foro fisso." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: appTools/ToolExtractDrills.py:586 appTools/ToolPunchGerber.py:873 +#: appTools/ToolExtractDrills.py:587 appTools/ToolPunchGerber.py:873 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -10909,37 +10908,37 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:888 +#: appTools/ToolExtractDrills.py:596 appTools/ToolPunchGerber.py:888 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:608 appTools/ToolPunchGerber.py:901 +#: appTools/ToolExtractDrills.py:609 appTools/ToolPunchGerber.py:901 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:621 appTools/ToolPunchGerber.py:914 +#: appTools/ToolExtractDrills.py:622 appTools/ToolPunchGerber.py:914 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:634 appTools/ToolPunchGerber.py:927 +#: appTools/ToolExtractDrills.py:635 appTools/ToolPunchGerber.py:927 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:647 appTools/ToolPunchGerber.py:940 +#: appTools/ToolExtractDrills.py:648 appTools/ToolPunchGerber.py:940 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:668 appTools/ToolPunchGerber.py:956 +#: appTools/ToolExtractDrills.py:669 appTools/ToolPunchGerber.py:956 msgid "Proportional Diameter" msgstr "Diametro proporzionale" @@ -10950,7 +10949,7 @@ msgstr "Fattore" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:967 +#: appTools/ToolExtractDrills.py:680 appTools/ToolPunchGerber.py:967 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -10963,7 +10962,7 @@ msgid "Fiducials Tool Options" msgstr "Opzioni strumento fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: appTools/ToolFiducials.py:772 +#: appTools/ToolFiducials.py:774 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -10974,12 +10973,12 @@ msgstr "" "L'apertura del soldermask è il doppia." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: appTools/ToolFiducials.py:800 +#: appTools/ToolFiducials.py:802 msgid "Auto" msgstr "Auto" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:803 +#: appTools/ToolFiducials.py:805 msgid "Mode:" msgstr "Modo:" @@ -10994,22 +10993,22 @@ msgstr "" "- 'Manuale' - posizionamento manuale dei fiducial." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: appTools/ToolFiducials.py:813 +#: appTools/ToolFiducials.py:815 msgid "Up" msgstr "Su" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: appTools/ToolFiducials.py:814 +#: appTools/ToolFiducials.py:816 msgid "Down" msgstr "Giù" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: appTools/ToolFiducials.py:817 +#: appTools/ToolFiducials.py:819 msgid "Second fiducial" msgstr "Secondo fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: appTools/ToolFiducials.py:819 +#: appTools/ToolFiducials.py:821 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -11023,22 +11022,22 @@ msgstr "" "destra." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: appTools/ToolFiducials.py:835 +#: appTools/ToolFiducials.py:837 msgid "Cross" msgstr "Croce" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: appTools/ToolFiducials.py:836 +#: appTools/ToolFiducials.py:838 msgid "Chess" msgstr "Schacchiera" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: appTools/ToolFiducials.py:838 +#: appTools/ToolFiducials.py:840 msgid "Fiducial Type" msgstr "Tipo fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: appTools/ToolFiducials.py:840 +#: appTools/ToolFiducials.py:842 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -11051,7 +11050,7 @@ msgstr "" "- 'Scacchiera' - motivo a scacchiera." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: appTools/ToolFiducials.py:849 +#: appTools/ToolFiducials.py:851 msgid "Line thickness" msgstr "Spessore linea" @@ -11163,12 +11162,12 @@ msgstr "" "in un file Gerber selezionato o esportato su file." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: appTools/ToolQRCode.py:702 app_Main.py:9732 +#: appTools/ToolQRCode.py:703 app_Main.py:7308 msgid "Version" msgstr "Versione" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: appTools/ToolQRCode.py:704 +#: appTools/ToolQRCode.py:705 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11177,13 +11176,13 @@ msgstr "" "a 40 (177x177 punti)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: appTools/ToolQRCode.py:715 +#: appTools/ToolQRCode.py:716 msgid "Error correction" msgstr "Correzione errore" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: appTools/ToolQRCode.py:717 appTools/ToolQRCode.py:728 +#: appTools/ToolQRCode.py:718 appTools/ToolQRCode.py:729 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -11199,12 +11198,12 @@ msgstr "" "H = possono essere corretti errori al massimo del 30%%." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: appTools/ToolQRCode.py:738 +#: appTools/ToolQRCode.py:739 msgid "Box Size" msgstr "Dimensione contenitore" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: appTools/ToolQRCode.py:740 +#: appTools/ToolQRCode.py:741 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11213,12 +11212,12 @@ msgstr "" "controllando la dimensione dei singoli punti nel codice." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: appTools/ToolQRCode.py:751 +#: appTools/ToolQRCode.py:752 msgid "Border Size" msgstr "Dimensione bordi" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: appTools/ToolQRCode.py:753 +#: appTools/ToolQRCode.py:754 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." @@ -11227,27 +11226,27 @@ msgstr "" "Valore di default è 4. La larghezza della distanza attorno al QRCode." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: appTools/ToolQRCode.py:673 +#: appTools/ToolQRCode.py:674 msgid "QRCode Data" msgstr "Dati QRCode" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: appTools/ToolQRCode.py:675 +#: appTools/ToolQRCode.py:676 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:679 +#: appTools/ToolQRCode.py:680 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:764 +#: appTools/ToolQRCode.py:765 msgid "Polarity" msgstr "Polarità" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: appTools/ToolQRCode.py:766 +#: appTools/ToolQRCode.py:767 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11258,17 +11257,17 @@ msgstr "" "o in modo positivo (i quadrati sono scuri)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:770 +#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:771 msgid "Negative" msgstr "Negativa" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:771 +#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:772 msgid "Positive" msgstr "Positiva" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: appTools/ToolQRCode.py:773 +#: appTools/ToolQRCode.py:774 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -11282,7 +11281,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: appTools/ToolQRCode.py:784 appTools/ToolQRCode.py:790 +#: appTools/ToolQRCode.py:785 appTools/ToolQRCode.py:791 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -11291,22 +11290,22 @@ msgstr "" "la geometria QRCode, può avere una forma arrotondata o quadrata." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: appTools/ToolQRCode.py:818 +#: appTools/ToolQRCode.py:819 msgid "Fill Color" msgstr "Colore riempimento" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: appTools/ToolQRCode.py:820 +#: appTools/ToolQRCode.py:821 msgid "Set the QRCode fill color (squares color)." msgstr "Imposta il colore di riempimento del QRCode (colore dei punti)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: appTools/ToolQRCode.py:842 +#: appTools/ToolQRCode.py:843 msgid "Back Color" msgstr "Colore sfondo" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: appTools/ToolQRCode.py:844 +#: appTools/ToolQRCode.py:845 msgid "Set the QRCode background color." msgstr "Imposta il colore dello sfondo del QRCode." @@ -11531,7 +11530,7 @@ msgid "Drill dia" msgstr "Diametro fori" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: appTools/ToolDblSided.py:824 appTools/ToolDblSided.py:829 +#: appTools/ToolDblSided.py:826 appTools/ToolDblSided.py:831 msgid "Diameter of the drill for the alignment holes." msgstr "Diametro per i fori di allineamento." @@ -11541,7 +11540,7 @@ msgstr "Allinea all'asse" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: appTools/ToolDblSided.py:667 appTools/ToolDblSided.py:840 +#: appTools/ToolDblSided.py:669 appTools/ToolDblSided.py:842 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Specchia verticale (X) o orizzontale (Y)." @@ -11550,12 +11549,12 @@ msgid "Mirror Axis:" msgstr "Asse di specchio:" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 -#: appTools/ToolDblSided.py:693 +#: appTools/ToolDblSided.py:695 msgid "Box" msgstr "Contenitore" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 -#: appTools/ToolDblSided.py:694 +#: appTools/ToolDblSided.py:696 msgid "Hole Snap" msgstr "Snap fori" @@ -11704,12 +11703,12 @@ msgid "Corner Markers Options" msgstr "Opzioni marcatori bordi" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:386 +#: appTools/ToolCorners.py:387 msgid "The thickness of the line that makes the corner marker." msgstr "Spessore delle linee create dal marcatore bordi." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:400 +#: appTools/ToolCorners.py:401 msgid "The length of the line that makes the corner marker." msgstr "La lunghezza delle linee create dal marcatore bordi." @@ -11728,7 +11727,7 @@ msgstr "" "scheda originale." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: appTools/ToolCutOut.py:2062 +#: appTools/ToolCutOut.py:2066 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -11741,7 +11740,7 @@ msgid "Object kind" msgstr "Tipo oggetto" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: appTools/ToolCutOut.py:1995 +#: appTools/ToolCutOut.py:1999 msgid "" "Choice of what kind the object we want to cutout is.
    - Single: " "contain a single PCB Gerber outline object.
    - Panel: a panel PCB " @@ -11754,12 +11753,12 @@ msgstr "" "ta tanti bordi singoli di PCB." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: appTools/ToolCutOut.py:2001 +#: appTools/ToolCutOut.py:2005 msgid "Single" msgstr "Singolo" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: appTools/ToolCutOut.py:2002 +#: appTools/ToolCutOut.py:2006 msgid "Panel" msgstr "Pannello" @@ -11788,12 +11787,12 @@ msgstr "" "- 8 - 2*sinistra + 2*destra +2*sopra + 2*sotto" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 -#: appTools/ToolCutOut.py:2333 +#: appTools/ToolCutOut.py:2337 msgid "Big cursor" msgstr "Cursore grande" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 -#: appTools/ToolCutOut.py:2335 +#: appTools/ToolCutOut.py:2339 msgid "Use a big cursor when adding manual gaps." msgstr "Usa un cursore grande mentre si aggiungono gaps manualmente." @@ -12068,18 +12067,18 @@ msgstr "" "geometria." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:342 appTools/ToolFiducials.py:694 +#: appTools/ToolCorners.py:343 appTools/ToolFiducials.py:696 #: appTools/ToolFilm.py:1065 msgid "Bottom Left" msgstr "Basso Sinistra" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:350 appTools/ToolFilm.py:1066 +#: appTools/ToolCorners.py:351 appTools/ToolFilm.py:1066 msgid "Top Left" msgstr "Alto Destra" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:346 appTools/ToolFilm.py:1067 +#: appTools/ToolCorners.py:347 appTools/ToolFilm.py:1067 msgid "Bottom Right" msgstr "Basso Destra" @@ -12368,9 +12367,9 @@ msgstr "Progressivo" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:453 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1044 -#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530 -#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:463 app_Main.py:4682 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCorners.py:264 appTools/ToolFiducials.py:532 +#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:464 app_Main.py:4605 msgid "Plotting" msgstr "Sto tracciando" @@ -12568,9 +12567,9 @@ msgstr "Numero di righe nel pannello desiderato" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:891 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2009 appTools/ToolDblSided.py:525 -#: appTools/ToolDblSided.py:765 appTools/ToolFilm.py:928 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:527 +#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:928 #: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 #: appTools/ToolIsolation.py:3339 appTools/ToolIsolation.py:3391 @@ -13190,7 +13189,7 @@ msgid "Export cancelled ..." msgstr "Esportazione annullata ..." #: appObjects/FlatCAMCNCJob.py:1678 appObjects/FlatCAMCNCJob.py:1965 -#: appObjects/FlatCAMScript.py:134 app_Main.py:7830 +#: appObjects/FlatCAMScript.py:134 app_Main.py:6925 msgid "Loading..." msgstr "Caricamento..." @@ -13324,7 +13323,7 @@ msgstr "Aggiungi dal DB utensili" #: appTools/ToolDrilling.py:1021 appTools/ToolIsolation.py:639 #: appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744 #: appTools/ToolMilling.py:779 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 -#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2194 +#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2203 msgid "No Tool Selected" msgstr "Nessun utensile selezionato" @@ -13631,7 +13630,7 @@ msgstr "Oggetto rinominato da {old} a {new}" #: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939 #: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951 #: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 -#: app_Main.py:6707 app_Main.py:6713 app_Main.py:6719 app_Main.py:6725 +#: app_Main.py:6630 app_Main.py:6636 app_Main.py:6642 app_Main.py:6648 msgid "selected" msgstr "selezionato" @@ -13799,7 +13798,7 @@ msgid "Click on the START point." msgstr "Fai clic sul punto di PARTENZA." #: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276 -#: appTools/ToolDblSided.py:285 +#: appTools/ToolDblSided.py:287 msgid "Cancelled by user request." msgstr "Annullato su richiesta dell'utente." @@ -13813,7 +13812,7 @@ msgid "Or right click to cancel." msgstr "O click destro per annullare." #: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267 -#: appTools/ToolFiducials.py:718 +#: appTools/ToolFiducials.py:720 msgid "Second Point" msgstr "Secondo punto" @@ -13898,32 +13897,32 @@ msgstr "" "Se si utilizzano i punti, si assume la traslazione e rotazione." #: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1583 -#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394 -#: appTools/ToolDblSided.py:938 appTools/ToolDrilling.py:2649 -#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:702 -#: appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCorners.py:445 appTools/ToolCutOut.py:2398 +#: appTools/ToolDblSided.py:940 appTools/ToolDrilling.py:2649 +#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:703 +#: appTools/ToolFiducials.py:934 appTools/ToolFilm.py:1383 #: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477 #: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4388 #: appTools/ToolOptimal.py:593 appTools/ToolPaint.py:3194 #: appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:996 -#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1620 +#: appTools/ToolQRCode.py:905 appTools/ToolRulesCheck.py:1620 #: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:754 #: appTools/ToolTransform.py:920 msgid "Reset Tool" msgstr "Azzera strumento" #: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1586 -#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397 -#: appTools/ToolDblSided.py:941 appTools/ToolDrilling.py:2652 -#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:705 -#: appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1582 +#: appTools/ToolCorners.py:448 appTools/ToolCutOut.py:2401 +#: appTools/ToolDblSided.py:943 appTools/ToolDrilling.py:2652 +#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:706 +#: appTools/ToolFiducials.py:937 appTools/ToolFilm.py:1386 #: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480 #: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4391 #: appTools/ToolOptimal.py:596 appTools/ToolPaint.py:3197 #: appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:999 -#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1623 +#: appTools/ToolQRCode.py:908 appTools/ToolRulesCheck.py:1623 #: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:757 #: appTools/ToolTransform.py:923 msgid "Will reset the tool parameters." @@ -14331,30 +14330,30 @@ msgstr "Riempimento griglia di punti selezionata." msgid "Squares grid fill selected." msgstr "Riempimento griglia di quadrati selezionata." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308 -#: appTools/ToolCopperThieving.py:916 appTools/ToolCorners.py:120 -#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141 +#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:307 +#: appTools/ToolCopperThieving.py:914 appTools/ToolCorners.py:120 +#: appTools/ToolDblSided.py:306 appTools/ToolExtractDrills.py:141 #: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464 #: appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:188 #: appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Non ci sono oggetti Gerber caricati ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:844 +#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 msgid "Append geometry" msgstr "Aggiungi geometria" -#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:877 -#: appTools/ToolCopperThieving.py:1022 +#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:876 +#: appTools/ToolCopperThieving.py:1020 msgid "Append source file" msgstr "Aggiungi file sorgente" -#: appTools/ToolCopperThieving.py:291 appTools/ToolCopperThieving.py:885 +#: appTools/ToolCopperThieving.py:290 appTools/ToolCopperThieving.py:883 msgid "Copper Thieving Tool done." msgstr "Strumento Copper Thieving fatto." -#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351 -#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917 +#: appTools/ToolCopperThieving.py:317 appTools/ToolCopperThieving.py:350 +#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:918 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 #: appTools/ToolIsolation.py:908 appTools/ToolIsolation.py:1345 @@ -14369,79 +14368,79 @@ msgstr "Strumento Copper Thieving fatto." msgid "Could not retrieve object" msgstr "Impossibile recuperare l'oggetto" -#: appTools/ToolCopperThieving.py:379 +#: appTools/ToolCopperThieving.py:378 msgid "Click the end point of the filling area." msgstr "Fai clic sul punto finale dell'area di riempimento." -#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511 -#: appTools/ToolCopperThieving.py:570 +#: appTools/ToolCopperThieving.py:506 appTools/ToolCopperThieving.py:510 +#: appTools/ToolCopperThieving.py:569 msgid "Thieving" msgstr "Deposito" -#: appTools/ToolCopperThieving.py:518 +#: appTools/ToolCopperThieving.py:517 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Strumento Copper Thieving avviato. Lettura dei parametri." -#: appTools/ToolCopperThieving.py:543 +#: appTools/ToolCopperThieving.py:542 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "" "Strumento Copper Thieving avviato. Preparazione poligoni di isolamento." -#: appTools/ToolCopperThieving.py:586 +#: appTools/ToolCopperThieving.py:585 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "" "Strumento Copper Thieving avviato. Preparazione aree da riempire di rame." -#: appTools/ToolCopperThieving.py:597 appTools/ToolFilm.py:631 +#: appTools/ToolCopperThieving.py:596 appTools/ToolFilm.py:631 #: appTools/ToolFilm.py:879 appTools/ToolIsolation.py:916 #: appTools/ToolNCC.py:853 appTools/ToolOptimal.py:145 #: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:627 msgid "Working..." msgstr "Elaborazione..." -#: appTools/ToolCopperThieving.py:626 +#: appTools/ToolCopperThieving.py:625 msgid "Geometry not supported for bounding box" msgstr "Geometria non supportata per box di selezione" -#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1681 +#: appTools/ToolCopperThieving.py:631 appTools/ToolNCC.py:1681 #: appTools/ToolNCC.py:1736 appTools/ToolNCC.py:2734 appTools/ToolPaint.py:2457 msgid "No object available." msgstr "Nessun oggetto disponibile." -#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1706 +#: appTools/ToolCopperThieving.py:668 appTools/ToolNCC.py:1706 #: appTools/ToolNCC.py:1759 appTools/ToolNCC.py:2776 msgid "The reference object type is not supported." msgstr "Il tipo di oggetto di riferimento non è supportato." -#: appTools/ToolCopperThieving.py:674 +#: appTools/ToolCopperThieving.py:673 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Strumento Copper Thieving. Aggiunta di nuova geometria e buffering." -#: appTools/ToolCopperThieving.py:690 +#: appTools/ToolCopperThieving.py:689 msgid "Create geometry" msgstr "Crea geometria" -#: appTools/ToolCopperThieving.py:896 appTools/ToolCopperThieving.py:900 +#: appTools/ToolCopperThieving.py:894 appTools/ToolCopperThieving.py:898 msgid "P-Plating Mask" msgstr "Maskera P-Placatura" -#: appTools/ToolCopperThieving.py:922 +#: appTools/ToolCopperThieving.py:920 msgid "Append PP-M geometry" msgstr "Aggiunta geometria maschera placatura" -#: appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCopperThieving.py:1036 msgid "Generating Pattern Plating Mask done." msgstr "Generazione maschera Placatura eseguita." -#: appTools/ToolCopperThieving.py:1112 +#: appTools/ToolCopperThieving.py:1108 msgid "Copper Thieving Tool exit." msgstr "Chiudi strumento Copper Thieving." -#: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 +#: appTools/ToolCopperThieving.py:1167 appTools/ToolFiducials.py:877 msgid "Gerber Object to which will be added a copper thieving." msgstr "Oggetto Gerber a cui verrà aggiunto il copper thieving." -#: appTools/ToolCopperThieving.py:1197 +#: appTools/ToolCopperThieving.py:1193 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14451,7 +14450,7 @@ msgstr "" "(il riempimento poligonale può essere suddiviso in più poligoni)\n" "e le tracce di rame nel file Gerber." -#: appTools/ToolCopperThieving.py:1230 +#: appTools/ToolCopperThieving.py:1226 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 " @@ -14466,12 +14465,12 @@ msgstr "" "- 'Oggetto di riferimento': eseguirà il furto di rame nell'area specificata " "da un altro oggetto." -#: appTools/ToolCopperThieving.py:1237 appTools/ToolIsolation.py:3385 +#: appTools/ToolCopperThieving.py:1233 appTools/ToolIsolation.py:3385 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3137 msgid "Ref. Type" msgstr "Tipo riferimento" -#: appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1235 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14479,21 +14478,21 @@ msgstr "" "Il tipo di oggetto FlatCAM da utilizzare come riferimento Copper Thieving.\n" "Può essere Gerber, Excellon o Geometry." -#: appTools/ToolCopperThieving.py:1248 appTools/ToolIsolation.py:3396 +#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3396 #: appTools/ToolNCC.py:4327 appTools/ToolPaint.py:3147 msgid "Ref. Object" msgstr "Oggetto di riferimento" -#: appTools/ToolCopperThieving.py:1250 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1246 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4329 appTools/ToolPaint.py:3149 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "Oggetto FlatCAM da usare come riferimento rimozione rame." -#: appTools/ToolCopperThieving.py:1426 +#: appTools/ToolCopperThieving.py:1422 msgid "Insert Copper thieving" msgstr "Inserire il Copper Thieving" -#: appTools/ToolCopperThieving.py:1428 +#: appTools/ToolCopperThieving.py:1424 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14501,11 +14500,11 @@ msgstr "" "Aggiungerà un poligono (può essere diviso in più parti)\n" "che circonderà le tracce Gerber attuali ad una certa distanza." -#: appTools/ToolCopperThieving.py:1487 +#: appTools/ToolCopperThieving.py:1483 msgid "Insert Robber Bar" msgstr "Inserisci la barra del ladro" -#: appTools/ToolCopperThieving.py:1489 +#: appTools/ToolCopperThieving.py:1485 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14517,11 +14516,11 @@ msgstr "" "ad una certa distanza.\n" "Richiesto quando si esegue la placcatura di fori." -#: appTools/ToolCopperThieving.py:1513 +#: appTools/ToolCopperThieving.py:1509 msgid "Select Soldermask object" msgstr "Seleziona oggetto Soldermask" -#: appTools/ToolCopperThieving.py:1515 +#: appTools/ToolCopperThieving.py:1511 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14531,11 +14530,11 @@ msgstr "" "Sarà usato come base per\n" "la maschera di placcatura del modello." -#: appTools/ToolCopperThieving.py:1544 +#: appTools/ToolCopperThieving.py:1540 msgid "Plated area" msgstr "Area ricoperta" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1542 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14553,19 +14552,19 @@ msgstr "" "un po' più grandi dei pad di rame, e questa area è\n" "calcolata dalle aperture del soldermask." -#: appTools/ToolCopperThieving.py:1557 +#: appTools/ToolCopperThieving.py:1553 msgid "mm" msgstr "mm" -#: appTools/ToolCopperThieving.py:1559 +#: appTools/ToolCopperThieving.py:1555 msgid "in" msgstr "pollici" -#: appTools/ToolCopperThieving.py:1566 +#: appTools/ToolCopperThieving.py:1562 msgid "Generate pattern plating mask" msgstr "Genera maschera placcatura modello" -#: appTools/ToolCopperThieving.py:1568 +#: appTools/ToolCopperThieving.py:1564 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14579,39 +14578,39 @@ msgstr "" msgid "Corners Tool" msgstr "Strumento Bordi" -#: appTools/ToolCorners.py:157 +#: appTools/ToolCorners.py:158 msgid "Please select at least a location" msgstr "Selezionare almeno una locazione" -#: appTools/ToolCorners.py:292 +#: appTools/ToolCorners.py:293 msgid "Corners Tool exit." msgstr "Esci dallo strumento bordi." -#: appTools/ToolCorners.py:319 +#: appTools/ToolCorners.py:320 msgid "The Gerber object to which will be added corner markers." msgstr "Oggetto Gerber a cui verranno aggiunti i marcatori bordi." -#: appTools/ToolCorners.py:335 +#: appTools/ToolCorners.py:336 msgid "Locations" msgstr "Locazioni" -#: appTools/ToolCorners.py:337 +#: appTools/ToolCorners.py:338 msgid "Locations where to place corner markers." msgstr "Locazioni in cui inserire i marcatori dei bordi." -#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706 +#: appTools/ToolCorners.py:355 appTools/ToolFiducials.py:708 msgid "Top Right" msgstr "Alto destra" -#: appTools/ToolCorners.py:363 +#: appTools/ToolCorners.py:364 msgid "Toggle ALL" msgstr "Attiva / disattiva TUTTO" -#: appTools/ToolCorners.py:429 +#: appTools/ToolCorners.py:430 msgid "Add Marker" msgstr "Aggiungi marcatore" -#: appTools/ToolCorners.py:431 +#: appTools/ToolCorners.py:432 msgid "Will add corner markers to the selected Gerber file." msgstr "Aggiungerà marcatori bordi al file Gerber selezionato." @@ -14620,7 +14619,7 @@ msgstr "Aggiungerà marcatori bordi al file Gerber selezionato." #: appTools/ToolNCC.py:463 appTools/ToolNCC.py:992 appTools/ToolNCC.py:1130 #: appTools/ToolPaint.py:395 appTools/ToolPaint.py:686 #: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131 -#: appTools/ToolSolderPaste.py:464 app_Main.py:4496 +#: appTools/ToolSolderPaste.py:464 app_Main.py:4419 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." @@ -14665,19 +14664,19 @@ msgstr "" "Nessun oggetto selezionato per Ritaglio.\n" "Selezionane uno e riprova." -#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:926 -#: appTools/ToolCutOut.py:1300 appTools/ToolCutOut.py:1431 +#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:927 +#: appTools/ToolCutOut.py:1303 appTools/ToolCutOut.py:1434 #: 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:568 appTools/ToolCutOut.py:940 +#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:941 msgid "Number of gaps value is missing. Add it and retry." msgstr "Manca il numero dei testimoni. Aggiungilo e riprova." -#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:944 +#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:945 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " @@ -14685,16 +14684,16 @@ 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:891 appTools/ToolCutOut.py:1260 -#: appTools/ToolCutOut.py:1615 +#: appTools/ToolCutOut.py:892 appTools/ToolCutOut.py:1263 +#: appTools/ToolCutOut.py:1619 msgid "Mouse bites failed." msgstr "Mouse Bites fallito." -#: appTools/ToolCutOut.py:899 +#: appTools/ToolCutOut.py:900 msgid "Any form CutOut operation finished." msgstr "Tutti i task di CutOut terminati." -#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586 +#: appTools/ToolCutOut.py:922 appTools/ToolDrilling.py:1586 #: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349 #: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326 @@ -14704,47 +14703,47 @@ msgstr "Tutti i task di CutOut terminati." msgid "Object not found" msgstr "Oggetto non trovato" -#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187 +#: appTools/ToolCutOut.py:1115 appTools/ToolCutOut.py:1188 msgid "Rectangular cutout with negative margin is not possible." msgstr "Ritaglio rettangolare con margine negativo non possibile." -#: appTools/ToolCutOut.py:1268 +#: appTools/ToolCutOut.py:1271 #, fuzzy #| msgid "Any form CutOut operation finished." msgid "Rectangular CutOut operation finished." msgstr "Tutti i task di CutOut terminati." -#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316 +#: appTools/ToolCutOut.py:1287 appTools/ToolCutOut.py:1319 msgid "Could not retrieve Geometry object" msgstr "Impossibile recuperare l'oggetto Geometry" -#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344 +#: appTools/ToolCutOut.py:1292 appTools/ToolCutOut.py:1347 msgid "Geometry object for manual cutout not found" msgstr "Oggetto Geometria per ritaglio manuale non trovato" -#: appTools/ToolCutOut.py:1292 +#: appTools/ToolCutOut.py:1295 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:1380 +#: appTools/ToolCutOut.py:1383 msgid "No tool in the Geometry object." msgstr "Nessun tool nell'oggetto geometria." -#: appTools/ToolCutOut.py:1401 +#: appTools/ToolCutOut.py:1404 msgid "" "Added manual Bridge Gap. Left click to add another or right click to finish." msgstr "" "Aggiunti Gap ponte manuali. Click sinistro per aggiungerne altri, destro per " "terminare." -#: appTools/ToolCutOut.py:1413 +#: appTools/ToolCutOut.py:1416 msgid "Could not retrieve Gerber object" msgstr "Impossibile recuperare l'oggetto Gerber" -#: appTools/ToolCutOut.py:1418 +#: appTools/ToolCutOut.py:1421 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." @@ -14752,7 +14751,7 @@ msgstr "" "Non è stato selezionato alcun oggetto Gerber per il Ritaglio.\n" "Selezionane uno e riprova." -#: appTools/ToolCutOut.py:1424 +#: appTools/ToolCutOut.py:1427 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -14760,36 +14759,36 @@ msgstr "" "L'oggetto selezionato deve essere di tipo Gerber.\n" "Seleziona un file Gerber e riprova." -#: appTools/ToolCutOut.py:1459 +#: appTools/ToolCutOut.py:1462 msgid "Geometry not supported for cutout" msgstr "Geometria non supportata per il ritaglio" -#: appTools/ToolCutOut.py:1531 +#: appTools/ToolCutOut.py:1534 msgid "Making manual bridge gap..." msgstr "Creare un testimone manualmente ..." -#: appTools/ToolCutOut.py:1619 +#: appTools/ToolCutOut.py:1623 msgid "Finished manual adding of gaps." msgstr "Aggiunta di gaps terminata." -#: appTools/ToolCutOut.py:1961 +#: appTools/ToolCutOut.py:1965 msgid "Cutout PCB" msgstr "Taglia PCB" -#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513 +#: appTools/ToolCutOut.py:1991 appTools/ToolDblSided.py:515 #: appTools/ToolPanelize.py:652 msgid "Source Object" msgstr "Oggetto sorgente" -#: appTools/ToolCutOut.py:1988 +#: appTools/ToolCutOut.py:1992 msgid "Object to be cutout" msgstr "Oggetto da tagliare" -#: appTools/ToolCutOut.py:1993 +#: appTools/ToolCutOut.py:1997 msgid "Kind" msgstr "Tipo" -#: appTools/ToolCutOut.py:2015 +#: appTools/ToolCutOut.py:2019 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -14801,7 +14800,7 @@ msgstr "" "Ciò che è selezionato qui detterà il tipo\n" "di oggetti che popoleranno la casella combinata 'Oggetto'." -#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125 +#: appTools/ToolCutOut.py:2078 appTools/ToolIsolation.py:3125 #: appTools/ToolNCC.py:3999 appTools/ToolPaint.py:2901 msgid "" "Add a new tool to the Tool Table\n" @@ -14816,23 +14815,23 @@ msgstr "" "nel database degli strumenti. Se non viene trovato nulla\n" "nel database degli strumenti viene aggiunto uno strumento predefinito." -#: appTools/ToolCutOut.py:2100 +#: appTools/ToolCutOut.py:2104 msgid "Tool Parameters" msgstr "Parametri Utensile" -#: appTools/ToolCutOut.py:2249 +#: appTools/ToolCutOut.py:2253 msgid "Automatic" msgstr "Automatico" -#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324 +#: appTools/ToolCutOut.py:2253 appTools/ToolCutOut.py:2328 msgid "Bridge Gaps" msgstr "Gaps ponte" -#: appTools/ToolCutOut.py:2251 +#: appTools/ToolCutOut.py:2255 msgid "This section handle creation of automatic bridge gaps." msgstr "Questa sezione gestisce la creazione di testimoni automatici." -#: appTools/ToolCutOut.py:2290 +#: appTools/ToolCutOut.py:2294 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -14842,7 +14841,7 @@ msgstr "" "La forma del ritaglio può essere di qualsiasi forma.\n" "Utile quando il PCB ha una forma non rettangolare." -#: appTools/ToolCutOut.py:2305 +#: appTools/ToolCutOut.py:2309 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -14854,7 +14853,7 @@ msgstr "" "sempre una forma rettangolare e sarà\n" "rettangolare anche la selezione dell'oggetto." -#: appTools/ToolCutOut.py:2326 +#: appTools/ToolCutOut.py:2330 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -14864,11 +14863,11 @@ msgstr "" "Questo viene fatto facendo clic con il mouse sul perimetro\n" "dell'oggetto Geometria utilizzato come oggetto ritaglio. " -#: appTools/ToolCutOut.py:2342 +#: appTools/ToolCutOut.py:2346 msgid "Generate Manual Geometry" msgstr "Genera geometria manuale" -#: appTools/ToolCutOut.py:2345 +#: appTools/ToolCutOut.py:2349 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -14880,19 +14879,19 @@ msgstr "" "da usare come ritaglio, se non ne esiste ancora uno.\n" "Seleziona il file Gerber di origine nel box in alto." -#: appTools/ToolCutOut.py:2365 +#: appTools/ToolCutOut.py:2369 msgid "Manual cutout Geometry" msgstr "Geomatria di taglio manuale" -#: appTools/ToolCutOut.py:2367 +#: appTools/ToolCutOut.py:2371 msgid "Geometry object used to create the manual cutout." msgstr "Oggetto geometria utilizzato per creare il ritaglio manuale." -#: appTools/ToolCutOut.py:2374 +#: appTools/ToolCutOut.py:2378 msgid "Manual Add Bridge Gaps" msgstr "Aggiungi testimoni manualmente" -#: appTools/ToolCutOut.py:2377 +#: appTools/ToolCutOut.py:2381 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -14936,62 +14935,62 @@ msgstr "" "Non ci sono coordinate per i fori di allineamento da usare. Aggiungili e " "riprova." -#: appTools/ToolDblSided.py:213 +#: appTools/ToolDblSided.py:215 msgid "Excellon object with alignment drills created..." msgstr "Oggetto Excellon con i fori di allineamento creati ..." -#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209 +#: appTools/ToolDblSided.py:226 appTools/ToolPunchGerber.py:209 msgid "There is no Excellon object loaded ..." msgstr "Nessun oggetto Excellon caricato ..." -#: appTools/ToolDblSided.py:236 +#: appTools/ToolDblSided.py:238 msgid "Click on canvas within the desired Excellon drill hole" msgstr "Clicca sul disegno nel foro Excellon desiderato" -#: appTools/ToolDblSided.py:280 +#: appTools/ToolDblSided.py:282 msgid "Mirror reference point set." msgstr "Punto di riferimento specchio." -#: appTools/ToolDblSided.py:308 +#: appTools/ToolDblSided.py:310 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "Possono essere specchiati solo oggetti Gerber, Excellon e Geometry." -#: appTools/ToolDblSided.py:320 +#: appTools/ToolDblSided.py:322 msgid "There is no Box object loaded ..." msgstr "Nessun oggetto contenitore caricato ..." -#: appTools/ToolDblSided.py:330 +#: appTools/ToolDblSided.py:332 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:337 camlib.py:2401 +#: appTools/ToolDblSided.py:339 camlib.py:2401 msgid "Object was mirrored" msgstr "Oggetti specchiati" -#: appTools/ToolDblSided.py:403 app_Main.py:4635 app_Main.py:4790 +#: appTools/ToolDblSided.py:405 app_Main.py:4558 app_Main.py:4713 msgid "Failed. No object(s) selected..." msgstr "Errore. Nessun oggetto selezionato..." -#: appTools/ToolDblSided.py:487 +#: appTools/ToolDblSided.py:489 msgid "2-Sided PCB" msgstr "PCB doppia faccia" -#: appTools/ToolDblSided.py:514 +#: appTools/ToolDblSided.py:516 msgid "Objects to be mirrored" msgstr "Oggetto da specchiare" -#: appTools/ToolDblSided.py:521 +#: appTools/ToolDblSided.py:523 msgid "Select the type of application object to be processed in this tool." msgstr "" -#: appTools/ToolDblSided.py:555 +#: appTools/ToolDblSided.py:557 msgid "Bounds Values" msgstr "Valori limite" -#: appTools/ToolDblSided.py:557 +#: appTools/ToolDblSided.py:559 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -14999,39 +14998,39 @@ msgstr "" "Seleziona dal disegno l'oggetto(i)\n" "per i quali calcolare i valori limite." -#: appTools/ToolDblSided.py:567 +#: appTools/ToolDblSided.py:569 msgid "X min" msgstr "X min" -#: appTools/ToolDblSided.py:569 appTools/ToolDblSided.py:583 +#: appTools/ToolDblSided.py:571 appTools/ToolDblSided.py:585 msgid "Minimum location." msgstr "Locazione minima." -#: appTools/ToolDblSided.py:581 +#: appTools/ToolDblSided.py:583 msgid "Y min" msgstr "Y min" -#: appTools/ToolDblSided.py:595 +#: appTools/ToolDblSided.py:597 msgid "X max" msgstr "X max" -#: appTools/ToolDblSided.py:597 appTools/ToolDblSided.py:611 +#: appTools/ToolDblSided.py:599 appTools/ToolDblSided.py:613 msgid "Maximum location." msgstr "Locazione massima." -#: appTools/ToolDblSided.py:609 +#: appTools/ToolDblSided.py:611 msgid "Y max" msgstr "Y max" -#: appTools/ToolDblSided.py:620 +#: appTools/ToolDblSided.py:622 msgid "Center point coordinates" msgstr "Coordinate punto centrale" -#: appTools/ToolDblSided.py:622 +#: appTools/ToolDblSided.py:624 msgid "Centroid" msgstr "Centroide" -#: appTools/ToolDblSided.py:624 +#: appTools/ToolDblSided.py:626 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -15039,11 +15038,11 @@ msgstr "" "La posizione del punto centrale per il box delimitante\n" "rettangolare. Centroide. Il formato è (x, y)." -#: appTools/ToolDblSided.py:633 +#: appTools/ToolDblSided.py:635 msgid "Calculate Bounds Values" msgstr "Calcola i valori dei limiti" -#: appTools/ToolDblSided.py:635 +#: appTools/ToolDblSided.py:637 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" @@ -15053,15 +15052,15 @@ msgstr "" "per la selezione di oggetti.\n" "La forma dell'inviluppo è parallela all'asse X, Y." -#: appTools/ToolDblSided.py:660 +#: appTools/ToolDblSided.py:662 msgid "Mirror Operation" msgstr "Operazione Specchio" -#: appTools/ToolDblSided.py:661 +#: appTools/ToolDblSided.py:663 msgid "Parameters for the mirror operation" msgstr "Parametri per l'operazione specchio" -#: appTools/ToolDblSided.py:683 +#: appTools/ToolDblSided.py:685 #, fuzzy #| msgid "" #| "The coordinates used as reference for the mirror operation.\n" @@ -15089,11 +15088,11 @@ msgstr "" "riquadro di selezione di un altro oggetto selezionato sotto\n" "- Snap fori -> un punto definito dal centro di un foro in un oggetto Excellon" -#: appTools/ToolDblSided.py:703 +#: appTools/ToolDblSided.py:705 msgid "Point coordinates" msgstr "Coordinate punto" -#: appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:710 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -15108,7 +15107,7 @@ msgstr "" "Le coordinate (x, y) vengono acquisite premendo il tasto SHIFT\n" "e con il clic sinistro del mouse oppure inserite manualmente." -#: appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:728 #, fuzzy #| msgid "" #| "Object that holds holes that can be picked as reference for mirroing." @@ -15117,11 +15116,11 @@ msgstr "" "Oggetto che contiene fori che possono essere selezionati come riferimento " "per la specchiatura." -#: appTools/ToolDblSided.py:741 +#: appTools/ToolDblSided.py:743 msgid "Pick hole" msgstr "Prendi foro" -#: appTools/ToolDblSided.py:743 +#: appTools/ToolDblSided.py:745 msgid "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." @@ -15130,7 +15129,7 @@ msgstr "" "selezionato,\n" "e le coordinate del centro del foro verranno copiate nel campo Punto." -#: appTools/ToolDblSided.py:759 +#: appTools/ToolDblSided.py:761 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -15140,11 +15139,11 @@ msgstr "" "Le coordinate del centro del rettangolo di selezione vengono usate\n" "come riferimento per l'operazione di specchio." -#: appTools/ToolDblSided.py:785 +#: appTools/ToolDblSided.py:787 msgid "Mirror" msgstr "Specchia" -#: appTools/ToolDblSided.py:787 +#: appTools/ToolDblSided.py:789 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -15154,11 +15153,11 @@ msgstr "" "l'asse specificato. Non crea un nuovo oggetto,\n" "ma lo modifica." -#: appTools/ToolDblSided.py:813 +#: appTools/ToolDblSided.py:815 msgid "PCB Alignment" msgstr "Allineamento PCB" -#: appTools/ToolDblSided.py:815 appTools/ToolDblSided.py:923 +#: appTools/ToolDblSided.py:817 appTools/ToolDblSided.py:925 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -15168,11 +15167,11 @@ msgstr "" "fori di allineamento specificati e la loro\n" "relativa immagine speculare." -#: appTools/ToolDblSided.py:822 +#: appTools/ToolDblSided.py:824 msgid "Drill Diameter" msgstr "Diametro punta" -#: appTools/ToolDblSided.py:857 appTools/ToolDblSided.py:864 +#: appTools/ToolDblSided.py:859 appTools/ToolDblSided.py:866 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -15183,11 +15182,11 @@ msgstr "" "dal primo foro, facendone la copia speculare.\n" "Può essere modificato nella sezione Parametri specchio -> Riferimento" -#: appTools/ToolDblSided.py:877 +#: appTools/ToolDblSided.py:879 msgid "Alignment Drill Coordinates" msgstr "Coordinate fori di allineamento" -#: appTools/ToolDblSided.py:879 +#: appTools/ToolDblSided.py:881 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -15205,11 +15204,11 @@ msgstr "" "- un foro in posizione speculare sull'asse selezionato sopra in 'asse " "specchio'." -#: appTools/ToolDblSided.py:887 +#: appTools/ToolDblSided.py:889 msgid "Drill coordinates" msgstr "Coordinate fori" -#: appTools/ToolDblSided.py:894 +#: appTools/ToolDblSided.py:896 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -15236,15 +15235,15 @@ msgstr "" "col pulsante destro nel campo e fai clic su Incolla.\n" "- inserendo manualmente le coordinate nel formato: (x1, y1), (x2, y2), ..." -#: appTools/ToolDblSided.py:909 +#: appTools/ToolDblSided.py:911 msgid "Delete Last" msgstr "Cancella ultimo" -#: appTools/ToolDblSided.py:911 +#: appTools/ToolDblSided.py:913 msgid "Delete the last coordinates tuple in the list." msgstr "Cancella l'ultima tupla di coordinate dalla lista." -#: appTools/ToolDblSided.py:921 +#: appTools/ToolDblSided.py:923 msgid "Create Excellon Object" msgstr "Creao oggetto Excellon" @@ -15639,15 +15638,15 @@ msgstr "" msgid "No drills extracted. Try different parameters." msgstr "Nessun foro estratto. Prova con altri parametri." -#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687 +#: appTools/ToolExtractDrills.py:421 appTools/ToolExtractDrills.py:688 msgid "Extract Drills" msgstr "Estrai fori" -#: appTools/ToolExtractDrills.py:454 +#: appTools/ToolExtractDrills.py:455 msgid "Gerber from which to extract drill holes" msgstr "Gerber dal quale estrarre i fori" -#: appTools/ToolExtractDrills.py:689 +#: appTools/ToolExtractDrills.py:690 msgid "Extract drills from a given Gerber file." msgstr "Estrae i fori da un dato file gerber." @@ -15655,29 +15654,29 @@ msgstr "Estrae i fori da un dato file gerber." msgid "Click to add first Fiducial. Bottom Left..." msgstr "Fai clic per aggiungere il primo Fiducial. In basso a sinistra..." -#: appTools/ToolFiducials.py:501 +#: appTools/ToolFiducials.py:503 msgid "Click to add the last fiducial. Top Right..." msgstr "Fai clic per aggiungere l'ultimo Fiducial. In alto a destra..." -#: appTools/ToolFiducials.py:506 +#: appTools/ToolFiducials.py:508 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:509 appTools/ToolFiducials.py:518 +#: appTools/ToolFiducials.py:511 appTools/ToolFiducials.py:520 msgid "Done. All fiducials have been added." msgstr "Fatto. Tutti i fiduciali sono stati aggiunti." -#: appTools/ToolFiducials.py:595 +#: appTools/ToolFiducials.py:597 msgid "Fiducials Tool exit." msgstr "Esci dallo strumento fiducial." -#: appTools/ToolFiducials.py:667 +#: appTools/ToolFiducials.py:669 msgid "Fiducials Coordinates" msgstr "Coordinate fiducial" -#: appTools/ToolFiducials.py:669 +#: appTools/ToolFiducials.py:671 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -15685,7 +15684,7 @@ msgstr "" "Tabella con le coordinate dei punti fiducial,\n" "nel formato (x, y)." -#: appTools/ToolFiducials.py:805 +#: appTools/ToolFiducials.py:807 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -15695,31 +15694,31 @@ msgstr "" "di selezione.\n" " - 'Manuale': posizionamento manuale dei fiducial." -#: appTools/ToolFiducials.py:851 +#: appTools/ToolFiducials.py:853 msgid "Thickness of the line that makes the fiducial." msgstr "Spessore della linea che crea i fiducial." -#: appTools/ToolFiducials.py:882 +#: appTools/ToolFiducials.py:884 msgid "Add Fiducial" msgstr "Aggiungi fiducial" -#: appTools/ToolFiducials.py:884 +#: appTools/ToolFiducials.py:886 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:900 +#: appTools/ToolFiducials.py:902 msgid "Soldermask Gerber" msgstr "Gerber soldermask" -#: appTools/ToolFiducials.py:902 +#: appTools/ToolFiducials.py:904 msgid "The Soldermask Gerber object." msgstr "L'oggetto gerber soldermask." -#: appTools/ToolFiducials.py:914 +#: appTools/ToolFiducials.py:916 msgid "Add Soldermask Opening" msgstr "Aggiungi apertura soldermask" -#: appTools/ToolFiducials.py:916 +#: appTools/ToolFiducials.py:918 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -15911,7 +15910,7 @@ msgstr "Strumento Immagine" msgid "Import IMAGE" msgstr "Importa IMMAGINE" -#: appTools/ToolImage.py:142 app_Main.py:8893 app_Main.py:8943 +#: appTools/ToolImage.py:142 app_Main.py:9782 app_Main.py:9832 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -15921,9 +15920,9 @@ msgstr "Parametro non supportato. Utilizzare solo Geometrie o Gerber" msgid "Importing Image" msgstr "Importo immagine" -#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8921 -#: app_Main.py:8976 app_Main.py:9040 app_Main.py:9103 app_Main.py:9169 -#: app_Main.py:9234 app_Main.py:9291 +#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:9810 +#: app_Main.py:9865 app_Main.py:9929 app_Main.py:9992 app_Main.py:10058 +#: app_Main.py:10123 app_Main.py:10180 msgid "Opened" msgstr "Aperto" @@ -16053,7 +16052,7 @@ msgid "New Tool" msgstr "Nuovo utensile" #: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:467 -#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4500 +#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4423 msgid "Adding Tool cancelled" msgstr "Aggiunta utensile annullata" @@ -16215,7 +16214,7 @@ msgid "Click the end point of the paint area." msgstr "Fai clic sul punto finale dell'area." #: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3722 -#: appTools/ToolPaint.py:2633 app_Main.py:5779 app_Main.py:5789 +#: appTools/ToolPaint.py:2633 app_Main.py:5702 app_Main.py:5712 msgid "Tool from DB added in Tool Table." msgstr "Utensile da DB aggiunto alla tabella utensili." @@ -16763,11 +16762,11 @@ msgstr "Apertura PDF annullata" msgid "Parsing PDF file ..." msgstr "Analisi file PDF ..." -#: appTools/ToolPDF.py:138 app_Main.py:9134 +#: appTools/ToolPDF.py:138 app_Main.py:10023 msgid "Failed to open" msgstr "Errore di apertura" -#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9083 +#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9972 msgid "No geometry found in file" msgstr "Nessuna geometria trovata nel file" @@ -17189,7 +17188,7 @@ msgstr "File PcbWizard caricato." msgid "Main PcbWizard Excellon file loaded." msgstr "File principale PcbWizard caricato." -#: appTools/ToolPcbWizard.py:310 app_Main.py:9063 +#: appTools/ToolPcbWizard.py:310 app_Main.py:9952 msgid "This is not Excellon file." msgstr "Non è un file Excellon." @@ -17320,9 +17319,9 @@ msgstr "" "l'altro ha estensione .INF." #: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 -#: app_Main.py:4976 app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 -#: app_Main.py:7503 app_Main.py:7545 app_Main.py:7587 app_Main.py:7631 -#: app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 +#: app_Main.py:4899 app_Main.py:8253 app_Main.py:8351 app_Main.py:8391 +#: app_Main.py:8431 app_Main.py:8472 app_Main.py:8513 app_Main.py:8556 +#: app_Main.py:8599 app_Main.py:9058 app_Main.py:9062 msgid "No object selected." msgstr "Nessun oggetto selezionato." @@ -17414,8 +17413,8 @@ msgstr "" "Crea un oggetto gerber dall'oggetto selezionato, dento\n" "il box specificato." -#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485 -#: appTools/ToolQRCode.py:534 +#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:486 +#: appTools/ToolQRCode.py:535 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Annullato. Non ci sono dati QRCode nel box testo." @@ -17427,32 +17426,32 @@ msgstr "Generazione geometria QRCode" msgid "Click on the Destination point ..." msgstr "Clicca sul punto di destinazione ..." -#: appTools/ToolQRCode.py:321 +#: appTools/ToolQRCode.py:322 msgid "QRCode Tool done." msgstr "Strumento QRCode fatto." -#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521 +#: appTools/ToolQRCode.py:518 appTools/ToolQRCode.py:522 msgid "Export PNG" msgstr "Esporta PNG" -#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7353 -#: app_Main.py:7357 +#: appTools/ToolQRCode.py:565 appTools/ToolQRCode.py:569 app_Main.py:8284 +#: app_Main.py:8288 msgid "Export SVG" msgstr "Esporta SVG" -#: appTools/ToolQRCode.py:661 +#: appTools/ToolQRCode.py:662 msgid "Gerber Object to which the QRCode will be added." msgstr "Oggetto Gerber a cui verrà aggiunto il QRCode." -#: appTools/ToolQRCode.py:697 +#: appTools/ToolQRCode.py:698 msgid "The parameters used to shape the QRCode." msgstr "Parametri usati per formare il QRCode." -#: appTools/ToolQRCode.py:797 +#: appTools/ToolQRCode.py:798 msgid "Export QRCode" msgstr "Esporta QRCode" -#: appTools/ToolQRCode.py:799 +#: appTools/ToolQRCode.py:800 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -17460,31 +17459,31 @@ 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:838 +#: appTools/ToolQRCode.py:839 msgid "Transparent back color" msgstr "Colore trasparente sfondo" -#: appTools/ToolQRCode.py:863 +#: appTools/ToolQRCode.py:864 msgid "Export QRCode SVG" msgstr "Esporta QRCode su SVG" -#: appTools/ToolQRCode.py:865 +#: appTools/ToolQRCode.py:866 msgid "Export a SVG file with the QRCode content." msgstr "Esporta un file SVG con il contenuto del QRCode." -#: appTools/ToolQRCode.py:876 +#: appTools/ToolQRCode.py:877 msgid "Export QRCode PNG" msgstr "Esporta QRCode su PNG" -#: appTools/ToolQRCode.py:878 +#: appTools/ToolQRCode.py:879 msgid "Export a PNG image file with the QRCode content." msgstr "Esporta file immagine PNG con il contenuto del QRCode." -#: appTools/ToolQRCode.py:889 +#: appTools/ToolQRCode.py:890 msgid "Insert QRCode" msgstr "Inserisci QRCode" -#: appTools/ToolQRCode.py:891 +#: appTools/ToolQRCode.py:892 msgid "Create the QRCode object." msgstr "Crea oggetto QRCode." @@ -18237,7 +18236,7 @@ msgstr "Sei sicuro di voler cambiare lingua in" msgid "Apply Language ..." msgstr "Applica lingua ..." -#: appTranslation.py:206 app_Main.py:3383 +#: appTranslation.py:206 app_Main.py:3306 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -18271,42 +18270,42 @@ msgstr "" "Inizializzazione della Grafica avviata.\n" "Inizializzazione della Grafica completata" -#: app_Main.py:1596 app_Main.py:7007 +#: app_Main.py:1292 app_Main.py:8831 msgid "New Project - Not saved" msgstr "Nuovo progetto - Non salvato" -#: app_Main.py:1702 +#: app_Main.py:1711 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." -#: app_Main.py:1769 +#: app_Main.py:1778 msgid "Open Config file failed." msgstr "Apri file di configurazione non riuscito." -#: app_Main.py:1784 +#: app_Main.py:1793 msgid "Open Script file failed." msgstr "Apri file di script non riuscito." -#: app_Main.py:1810 +#: app_Main.py:1819 msgid "Open Excellon file failed." msgstr "Apri file Excellon non riuscito." -#: app_Main.py:1823 +#: app_Main.py:1832 msgid "Open GCode file failed." msgstr "Apri file GCode non riuscito." -#: app_Main.py:1836 +#: app_Main.py:1845 msgid "Open Gerber file failed." msgstr "Apri file Gerber non riuscito." -#: app_Main.py:2174 +#: app_Main.py:2183 msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." msgstr "Seleziona un oggetto Geometry, Gerber o Excellon da modificare." -#: app_Main.py:2189 +#: app_Main.py:2198 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -18316,99 +18315,83 @@ msgstr "" "MultiGeo non è possibile.\n" "Modifica solo una geometria alla volta." -#: app_Main.py:2267 +#: app_Main.py:2276 msgid "EDITOR Area" msgstr "" -#: app_Main.py:2269 +#: app_Main.py:2278 msgid "Editor is activated ..." msgstr "L'editor è attivato ..." -#: app_Main.py:2290 +#: app_Main.py:2299 msgid "Do you want to save the edited object?" msgstr "Vuoi salvare l'oggetto modificato?" -#: app_Main.py:2331 +#: app_Main.py:2340 msgid "Object empty after edit." msgstr "Oggetto vuoto dopo la modifica." -#: app_Main.py:2336 app_Main.py:2354 app_Main.py:2385 app_Main.py:2401 +#: app_Main.py:2345 app_Main.py:2363 app_Main.py:2394 app_Main.py:2410 msgid "Editor exited. Editor content saved." msgstr "Edito chiuso. Contenuto salvato." -#: app_Main.py:2405 app_Main.py:2446 +#: app_Main.py:2414 app_Main.py:2455 msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update." msgstr "Seleziona un oggetto Gerber, Geometry o Excellon da aggiornare." -#: app_Main.py:2408 +#: app_Main.py:2417 msgid "is updated, returning to App..." msgstr "viene aggiornato, tornando all'App ..." -#: app_Main.py:2421 +#: app_Main.py:2430 msgid "Editor exited. Editor content was not saved." msgstr "Editor chiuso. Contenuto non salvato." -#: app_Main.py:2469 +#: app_Main.py:2478 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Seleziona un oggetto Gerber, Geometry o Excellon da aggiornare." -#: app_Main.py:2573 app_Main.py:2577 -msgid "Import FlatCAM Preferences" -msgstr "Importa le preferenze di FlatCAM" - -#: app_Main.py:2588 -msgid "Imported Defaults from" -msgstr "Predefiniti importati da" - -#: app_Main.py:2608 app_Main.py:2614 -msgid "Export FlatCAM Preferences" -msgstr "Esporta le preferenze di FlatCAM" - -#: app_Main.py:2634 -msgid "Exported preferences to" -msgstr "Preferenze esportate in" - -#: app_Main.py:2654 app_Main.py:2659 +#: app_Main.py:2586 app_Main.py:2591 msgid "Save to file" msgstr "Salvato su file" -#: app_Main.py:2683 +#: app_Main.py:2615 msgid "Could not load the file." msgstr "Impossibile caricare il file." -#: app_Main.py:2699 +#: app_Main.py:2631 msgid "Exported file to" msgstr "File esportato su" -#: app_Main.py:2736 +#: app_Main.py:2668 msgid "Failed to open recent files file for writing." msgstr "Errore durante l'apertura dei file recenti in scrittura." -#: app_Main.py:2747 +#: app_Main.py:2679 msgid "Failed to open recent projects file for writing." msgstr "Errore durante l'apertura dei progetti recenti in scrittura." -#: app_Main.py:2802 +#: app_Main.py:2734 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Creazione Printed Circuit Board 2D Assistito da Computer" -#: app_Main.py:2803 +#: app_Main.py:2735 msgid "Development" msgstr "Sviluppo" -#: app_Main.py:2804 +#: app_Main.py:2736 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: app_Main.py:2805 +#: app_Main.py:2737 msgid "Issue tracker" msgstr "Flusso problemi" -#: app_Main.py:2824 +#: app_Main.py:2756 msgid "Licensed under the MIT license" msgstr "Con licenza MIT" -#: app_Main.py:2833 +#: app_Main.py:2765 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -18461,7 +18444,7 @@ msgstr "" "OPERAZIONI\n" "DEL SOFTWARE." -#: app_Main.py:2855 +#: app_Main.py:2787 msgid "" "Some of the icons used are from the following sources:
    " -#: app_Main.py:2891 +#: app_Main.py:2823 msgid "Splash" msgstr "Splash" -#: app_Main.py:2897 +#: app_Main.py:2829 msgid "Programmers" msgstr "Programmatori" -#: app_Main.py:2903 +#: app_Main.py:2835 msgid "Translators" msgstr "Traduttori" -#: app_Main.py:2909 +#: app_Main.py:2841 msgid "License" msgstr "Licenza" -#: app_Main.py:2915 +#: app_Main.py:2847 msgid "Attributions" msgstr "Attribuizioni" -#: app_Main.py:2938 +#: app_Main.py:2870 msgid "Programmer" msgstr "Programmatori" -#: app_Main.py:2939 +#: app_Main.py:2871 msgid "Status" msgstr "Stato" -#: app_Main.py:2940 app_Main.py:3020 +#: app_Main.py:2872 app_Main.py:2952 msgid "E-mail" msgstr "E-mail" -#: app_Main.py:2943 +#: app_Main.py:2875 msgid "Program Author" msgstr "Autore del programma" -#: app_Main.py:2948 +#: app_Main.py:2880 msgid "BETA Maintainer >= 2019" msgstr "Manutenzione BETA >= 2019" -#: app_Main.py:3017 +#: app_Main.py:2949 msgid "Language" msgstr "Lingua" -#: app_Main.py:3018 +#: app_Main.py:2950 msgid "Translator" msgstr "Traduttore" -#: app_Main.py:3019 +#: app_Main.py:2951 msgid "Corrections" msgstr "Correzioni" -#: app_Main.py:3104 +#: app_Main.py:3036 msgid "Important Information's" msgstr "Informazioni importanti" -#: app_Main.py:3152 +#: app_Main.py:3084 #, python-format msgid "This program is %s and free in a very wide meaning of the word." msgstr "" "Questo programma è %s e gratuito in un significato molto ampio della parola." -#: app_Main.py:3153 +#: app_Main.py:3085 msgid "Yet it cannot evolve without contributions." msgstr "Tuttavia non può evolversi senza contributi ." -#: app_Main.py:3154 +#: app_Main.py:3086 msgid "If you want to see this application grow and become better and better" msgstr "Se vuoi vedere questa applicazione crescere e diventare sempre meglio" -#: app_Main.py:3155 +#: app_Main.py:3087 msgid "you can contribute to the development yourself by:" msgstr "puoi contribuire allo sviluppo da solo:" -#: app_Main.py:3156 +#: app_Main.py:3088 msgid "Pull Requests on the Bitbucket repository, if you are a developer" msgstr "Estrai richieste nel repository Bitbucket, se sei uno sviluppatore" -#: app_Main.py:3158 +#: app_Main.py:3090 msgid "Bug Reports by providing the steps required to reproduce the bug" msgstr "" "Segnalazioni di bug fornendo i passaggi necessari per riprodurre il bug" -#: app_Main.py:3189 +#: app_Main.py:3121 msgid "Contribute" msgstr "Contribuire" -#: app_Main.py:3212 +#: app_Main.py:3144 msgid "Links Exchange" msgstr "Scambio di link" -#: app_Main.py:3224 app_Main.py:3243 +#: app_Main.py:3156 app_Main.py:3175 msgid "Soon ..." msgstr "Presto ..." -#: app_Main.py:3231 +#: app_Main.py:3163 msgid "How To's" msgstr "How To's" -#: app_Main.py:3343 +#: app_Main.py:3275 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -18602,29 +18585,29 @@ msgstr "" "Se non riesci ad ottenere informazioni su FlatCAM beta\n" "usa il link al canale YouTube nel menu Aiuto." -#: app_Main.py:3350 +#: app_Main.py:3282 msgid "Alternative website" msgstr "Sito web alternativo" -#: app_Main.py:3701 +#: app_Main.py:3624 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "L'estensione file Excellon selezionata è registrata con FlatCAM." -#: app_Main.py:3723 +#: app_Main.py:3646 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "L'estensione file GCode selezionata è registrata con FlatCAM." -#: app_Main.py:3745 +#: app_Main.py:3668 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "L'estensione file Gerber selezionata è registrata con FlatCAM." -#: app_Main.py:3933 app_Main.py:3994 app_Main.py:4024 +#: app_Main.py:3856 app_Main.py:3917 app_Main.py:3947 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" -#: app_Main.py:3942 +#: app_Main.py:3865 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 " @@ -18640,47 +18623,47 @@ msgstr "" "potrebbero essere perse e il risultato diverso da quello atteso. \n" "Controlla il GCODE generato." -#: app_Main.py:3956 app_Main.py:3966 +#: app_Main.py:3879 app_Main.py:3889 msgid "Geometry merging finished" msgstr "Unione geometrie terminato" -#: app_Main.py:3989 +#: app_Main.py:3912 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Errore. L'unione Excellon funziona solo con oggetti Excellon." -#: app_Main.py:4001 +#: app_Main.py:3924 msgid "Excellon merging finished" msgstr "Unione Excellon completata" -#: app_Main.py:4019 +#: app_Main.py:3942 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Errore. Unione Gerber funziona solo con oggetti Gerber." -#: app_Main.py:4029 +#: app_Main.py:3952 msgid "Gerber merging finished" msgstr "Unione Gerber completata" -#: app_Main.py:4049 app_Main.py:4086 +#: app_Main.py:3972 app_Main.py:4009 msgid "Failed. Select a Geometry Object and try again." msgstr "Errore. Selezionare un oggetto Geometria e riprovare." -#: app_Main.py:4053 app_Main.py:4091 +#: app_Main.py:3976 app_Main.py:4014 msgid "Expected a GeometryObject, got" msgstr "Era atteso un oggetto geometria, ottenuto" -#: app_Main.py:4068 +#: app_Main.py:3991 msgid "A Geometry object was converted to MultiGeo type." msgstr "Un oggetto Geometria è stato convertito in tipo MultiGeo." -#: app_Main.py:4106 +#: app_Main.py:4029 msgid "A Geometry object was converted to SingleGeo type." msgstr "Un oggetto Geometria è stato convertito in tipo SingleGeo." -#: app_Main.py:4339 +#: app_Main.py:4262 msgid "Toggle Units" msgstr "Camba unità" -#: app_Main.py:4343 +#: app_Main.py:4266 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -18692,24 +18675,24 @@ msgstr "" "\n" "Vuoi continuare?" -#: app_Main.py:4346 app_Main.py:4509 app_Main.py:4592 app_Main.py:7327 -#: app_Main.py:7343 app_Main.py:7681 app_Main.py:7693 +#: app_Main.py:4269 app_Main.py:4432 app_Main.py:4515 app_Main.py:8259 +#: app_Main.py:8274 app_Main.py:8605 app_Main.py:8617 msgid "Ok" msgstr "Ok" -#: app_Main.py:4396 +#: app_Main.py:4319 msgid "Converted units to" msgstr "Unità convertite in" -#: app_Main.py:4436 +#: app_Main.py:4359 msgid "Workspace enabled." msgstr "Area di lavoro abilitata." -#: app_Main.py:4439 +#: app_Main.py:4362 msgid "Workspace disabled." msgstr "Area di lavoro disabilitata." -#: app_Main.py:4503 +#: app_Main.py:4426 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -18717,11 +18700,11 @@ msgstr "" "Aggiunta utensile funziona solo con le opzioni avanzate.\n" "Vai su Preferenze -> Generale - Mostra Opzioni Avanzate." -#: app_Main.py:4585 +#: app_Main.py:4508 msgid "Delete objects" msgstr "Cancella oggetti" -#: app_Main.py:4590 +#: app_Main.py:4513 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -18729,84 +18712,84 @@ msgstr "" "Sei sicuro di voler cancellare permanentemente\n" "gli oggetti selezionati?" -#: app_Main.py:4633 +#: app_Main.py:4556 msgid "Object(s) deleted" msgstr "Oggetto(i) cancellato(i)" -#: app_Main.py:4637 +#: app_Main.py:4560 msgid "Save the work in Editor and try again ..." msgstr "Salva il lavoro nell'editor e riprova..." -#: app_Main.py:4666 +#: app_Main.py:4589 msgid "Object deleted" msgstr "Oggetto cancellato" -#: app_Main.py:4693 +#: app_Main.py:4616 msgid "Click to set the origin ..." msgstr "Clicca per impostare l'origine ..." -#: app_Main.py:4715 +#: app_Main.py:4638 msgid "Setting Origin..." msgstr "Impostazione Origine..." -#: app_Main.py:4728 app_Main.py:4830 +#: app_Main.py:4651 app_Main.py:4753 msgid "Origin set" msgstr "Origine impostata" -#: app_Main.py:4745 +#: app_Main.py:4668 msgid "Origin coordinates specified but incomplete." msgstr "Coordinate Origine non complete." -#: app_Main.py:4786 +#: app_Main.py:4709 msgid "Moving to Origin..." msgstr "Spostamento sull'origine..." -#: app_Main.py:4867 +#: app_Main.py:4790 msgid "Jump to ..." msgstr "Salta a ..." -#: app_Main.py:4868 +#: app_Main.py:4791 msgid "Enter the coordinates in format X,Y:" msgstr "Inserire coordinate nel formato X,Y:" -#: app_Main.py:4878 +#: app_Main.py:4801 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordinate errate. Inserire coordinate nel formato X,Y" -#: app_Main.py:4995 +#: app_Main.py:4918 msgid "Bottom-Left" msgstr "Basso-Sinistra" -#: app_Main.py:4998 +#: app_Main.py:4921 msgid "Top-Right" msgstr "Alto-destra" -#: app_Main.py:5019 +#: app_Main.py:4942 msgid "Locate ..." msgstr "Individua ..." -#: app_Main.py:5292 app_Main.py:5367 app_Main.py:5530 +#: app_Main.py:5215 app_Main.py:5290 app_Main.py:5453 msgid "No object is selected. Select an object and try again." msgstr "Nessun oggetto selezionato. Seleziona un oggetto e riprova." -#: app_Main.py:5556 +#: app_Main.py:5479 msgid "" "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "Annullamento. Il task attuale sarà chiuso prima possibile..." -#: app_Main.py:5562 +#: app_Main.py:5485 msgid "The current task was gracefully closed on user request..." msgstr "Il task corrente è stato chiuso su richiesta dell'utente..." -#: app_Main.py:5752 +#: app_Main.py:5675 msgid "Tools in Tools Database edited but not saved." msgstr "Utensili nel Database Utensili modificati ma non salvati." -#: app_Main.py:5791 +#: app_Main.py:5714 msgid "Adding tool from DB is not allowed for this object." msgstr "Non è permesso aggiungere un untensile dal DB per questo oggetto." -#: app_Main.py:5809 +#: app_Main.py:5732 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -18814,571 +18797,235 @@ msgstr "" "Uno o più Utensili modificati.\n" "Vuoi aggiornare il Database Utensili?" -#: app_Main.py:5811 +#: app_Main.py:5734 msgid "Save Tools Database" msgstr "Salva Database Utensili" -#: app_Main.py:5857 +#: app_Main.py:5780 msgid "No object selected to Flip on Y axis." msgstr "Nessun oggetto selezionato da capovolgere sull'asse Y." -#: app_Main.py:5883 +#: app_Main.py:5806 msgid "Flip on Y axis done." msgstr "Capovolgimento in Y effettuato." -#: app_Main.py:5905 +#: app_Main.py:5828 msgid "No object selected to Flip on X axis." msgstr "Nessun oggetto selezionato da capovolgere sull'asse X." -#: app_Main.py:5931 +#: app_Main.py:5854 msgid "Flip on X axis done." msgstr "Capovolgimento in X effettuato." -#: app_Main.py:5953 +#: app_Main.py:5876 msgid "No object selected to Rotate." msgstr "Nessun oggetto selezionato da ruotare." -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Transform" msgstr "Trasforma" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Enter the Angle value:" msgstr "Inserire il valore dell'angolo:" -#: app_Main.py:5986 +#: app_Main.py:5909 msgid "Rotation done." msgstr "Rotazione effettuata." -#: app_Main.py:5988 +#: app_Main.py:5911 msgid "Rotation movement was not executed." msgstr "Movimento di rotazione non eseguito." -#: app_Main.py:6005 +#: app_Main.py:5928 msgid "No object selected to Skew/Shear on X axis." msgstr "Nessun oggetto selezionato per deformare/tagliare nell'asse X." -#: app_Main.py:6026 +#: app_Main.py:5949 msgid "Skew on X axis done." msgstr "Deformazione in X applicata." -#: app_Main.py:6042 +#: app_Main.py:5965 msgid "No object selected to Skew/Shear on Y axis." msgstr "Nessun oggetto selezionato per deformare/tagliare nell'asse Y." -#: app_Main.py:6063 +#: app_Main.py:5986 msgid "Skew on Y axis done." msgstr "Deformazione in Y applicata." -#: app_Main.py:6145 +#: app_Main.py:6068 msgid "New Grid ..." msgstr "Nuova griglia ..." -#: app_Main.py:6146 +#: app_Main.py:6069 msgid "Enter a Grid Value:" msgstr "Valore della griglia:" -#: app_Main.py:6154 app_Main.py:6178 +#: app_Main.py:6077 app_Main.py:6101 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." -#: app_Main.py:6159 +#: app_Main.py:6082 msgid "New Grid added" msgstr "Nuova griglia aggiunta" -#: app_Main.py:6161 +#: app_Main.py:6084 msgid "Grid already exists" msgstr "Griglia già esistente" -#: app_Main.py:6163 +#: app_Main.py:6086 msgid "Adding New Grid cancelled" msgstr "Aggiunta griglia annullata" -#: app_Main.py:6184 +#: app_Main.py:6107 msgid " Grid Value does not exist" msgstr " Valore griglia non esistente" -#: app_Main.py:6186 +#: app_Main.py:6109 msgid "Grid Value deleted" msgstr "Valore griglia cancellato" -#: app_Main.py:6188 +#: app_Main.py:6111 msgid "Delete Grid value cancelled" msgstr "Cancellazione valore griglia annullata" -#: app_Main.py:6194 +#: app_Main.py:6117 msgid "Key Shortcut List" msgstr "Lista tasti Shortcuts" -#: app_Main.py:6231 +#: app_Main.py:6154 msgid " No object selected to copy it's name" msgstr " Nessun oggetto selezionato da cui copiarne il nome" -#: app_Main.py:6235 +#: app_Main.py:6158 msgid "Name copied on clipboard ..." msgstr "Nomi copiati negli appunti ..." -#: app_Main.py:6892 -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 "" -"Ci sono file/oggetti aperti in FlatCAM.\n" -"Creare un nuovo progetto li cancellerà.\n" -"Vuoi salvare il progetto?" - -#: app_Main.py:6915 -msgid "New Project created" -msgstr "Nuovo progetto creato" - -#: app_Main.py:7121 app_Main.py:7160 app_Main.py:7204 app_Main.py:7274 -#: app_Main.py:8060 app_Main.py:9304 app_Main.py:9366 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Inizializzazione della tela avviata.\n" -"Inizializzazione della tela completata" - -#: app_Main.py:7123 -msgid "Opening Gerber file." -msgstr "Apertura file Gerber." - -#: app_Main.py:7162 -msgid "Opening Excellon file." -msgstr "Apertura file Excellon." - -#: app_Main.py:7193 app_Main.py:7198 -msgid "Open G-Code" -msgstr "Apri G-Code" - -#: app_Main.py:7206 -msgid "Opening G-Code file." -msgstr "Apertura file G-Code." - -#: app_Main.py:7265 app_Main.py:7269 -msgid "Open HPGL2" -msgstr "Apri HPGL2" - -#: app_Main.py:7276 -msgid "Opening HPGL2 file." -msgstr "Apertura file HPGL2." - -#: app_Main.py:7299 app_Main.py:7302 -msgid "Open Configuration File" -msgstr "Apri file di configurazione" - -#: app_Main.py:7322 app_Main.py:7676 -msgid "Please Select a Geometry object to export" -msgstr "Selezionare un oggetto geometria da esportare" - -#: app_Main.py:7338 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Possono essere usati solo geometrie, gerber od oggetti CNCJob." - -#: app_Main.py:7383 -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" - -#: app_Main.py:7389 app_Main.py:7393 -msgid "Export PNG Image" -msgstr "Esporta immagine PNG" - -#: app_Main.py:7426 app_Main.py:7636 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "Errore. Solo oggetti Gerber possono essere salvati come file Gerber..." - -#: app_Main.py:7438 -msgid "Save Gerber source file" -msgstr "Salva il file sorgente Gerber" - -#: app_Main.py:7467 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "" -"Errore. Solo oggetti Script possono essere salvati come file Script TCL..." - -#: app_Main.py:7479 -msgid "Save Script source file" -msgstr "Salva il file sorgente dello Script" - -#: app_Main.py:7508 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "" -"Errore. Solo oggetti Documenti possono essere salvati come file Documenti..." - -#: app_Main.py:7520 -msgid "Save Document source file" -msgstr "Salva il file di origine del Documento" - -#: app_Main.py:7550 app_Main.py:7592 app_Main.py:8543 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" -"Errore. Solo oggetti Excellon possono essere salvati come file Excellon..." - -#: app_Main.py:7558 app_Main.py:7563 -msgid "Save Excellon source file" -msgstr "Salva il file sorgente di Excellon" - -#: app_Main.py:7600 app_Main.py:7604 -msgid "Export Excellon" -msgstr "Esporta Excellon" - -#: app_Main.py:7644 app_Main.py:7648 -msgid "Export Gerber" -msgstr "Esporta Gerber" - -#: app_Main.py:7688 -msgid "Only Geometry objects can be used." -msgstr "Possono essere usate solo oggetti Geometrie." - -#: app_Main.py:7704 app_Main.py:7708 -msgid "Export DXF" -msgstr "Esporta DXF" - -#: app_Main.py:7733 app_Main.py:7736 -msgid "Import SVG" -msgstr "Importa SVG" - -#: app_Main.py:7764 app_Main.py:7768 -msgid "Import DXF" -msgstr "Importa DXF" - -#: app_Main.py:7822 app_Main.py:7826 +#: app_Main.py:6917 app_Main.py:6921 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "Seleziona un Gerber o Ecxcellon per vederne il file sorgente." -#: app_Main.py:7829 +#: app_Main.py:6924 msgid "Viewing the source code of the selected object." msgstr "Vedi il codice sorgente dell'oggetto selezionato." -#: app_Main.py:7843 +#: app_Main.py:6938 msgid "Source Editor" msgstr "Editor sorgente" -#: app_Main.py:7879 app_Main.py:7886 +#: app_Main.py:6974 app_Main.py:6981 msgid "There is no selected object for which to see it's source file code." msgstr "Nessun oggetto di cui vedere il file sorgente." -#: app_Main.py:7894 +#: app_Main.py:6989 msgid "Failed to load the source code for the selected object" msgstr "Errore durante l'apertura del file sorgente per l'oggetto selezionato" -#: app_Main.py:7927 +#: app_Main.py:7022 msgid "Go to Line ..." msgstr "Vai alla Riga ..." -#: app_Main.py:7928 +#: app_Main.py:7023 msgid "Line:" msgstr "Riga:" -#: app_Main.py:7955 -msgid "New TCL script file created in Code Editor." -msgstr "Nuovo Script TCL creato nell'edito di codice." - -#: app_Main.py:7994 app_Main.py:7996 app_Main.py:8032 app_Main.py:8034 -msgid "Open TCL script" -msgstr "Apri Script TCL" - -#: app_Main.py:8062 -msgid "Executing ScriptObject file." -msgstr "Esecuzione file oggetto Script." - -#: app_Main.py:8070 app_Main.py:8073 -msgid "Run TCL script" -msgstr "Esegui Script TCL" - -#: app_Main.py:8096 -msgid "TCL script file opened in Code Editor and executed." -msgstr "Fil script TCL aperto nell'edito ed eseguito." - -#: app_Main.py:8147 app_Main.py:8153 -msgid "Save Project As ..." -msgstr "Salva progetto come ..." - -#: app_Main.py:8188 -msgid "FlatCAM objects print" -msgstr "Stampa oggetto FlatCAM" - -#: app_Main.py:8201 app_Main.py:8208 -msgid "Save Object as PDF ..." -msgstr "Salva oggetto come PDF ..." - -#: app_Main.py:8217 -msgid "Printing PDF ... Please wait." -msgstr "Stampa PDF ... Attendere." - -#: app_Main.py:8396 -msgid "PDF file saved to" -msgstr "File PDF salvato in" - -#: app_Main.py:8421 -msgid "Exporting SVG" -msgstr "Esportazione SVG" - -#: app_Main.py:8464 -msgid "SVG file exported to" -msgstr "File SVG esportato in" - -#: app_Main.py:8490 -msgid "Save cancelled because source file is empty. Try to export the file." -msgstr "" -"Salvataggio annullato a causa di sorgenti vuoti. Provare ad esportare il " -"file." - -#: app_Main.py:8641 -msgid "Excellon file exported to" -msgstr "File Excellon esportato in" - -#: app_Main.py:8650 -msgid "Exporting Excellon" -msgstr "Esportazione Excellon" - -#: app_Main.py:8655 app_Main.py:8662 -msgid "Could not export Excellon file." -msgstr "Impossibile esportare file Excellon." - -#: app_Main.py:8778 -msgid "Gerber file exported to" -msgstr "File Gerber esportato in" - -#: app_Main.py:8786 -msgid "Exporting Gerber" -msgstr "Esportazione Gerber" - -#: app_Main.py:8791 app_Main.py:8798 -msgid "Could not export file." -msgstr "Impossibile esportare il file." - -#: app_Main.py:8846 -msgid "DXF file exported to" -msgstr "File DXF esportato in" - -#: app_Main.py:8855 -msgid "Exporting DXF" -msgstr "Esportazione DXF" - -#: app_Main.py:8860 app_Main.py:8867 -msgid "Could not export DXF file." -msgstr "Impossibile esportare file DXF." - -#: app_Main.py:8906 -msgid "Importing SVG" -msgstr "Importazione SVG" - -#: app_Main.py:8914 app_Main.py:8969 -msgid "Import failed." -msgstr "Importazione fallita." - -#: app_Main.py:8961 -msgid "Importing DXF" -msgstr "Importazione DXF" - -#: app_Main.py:9002 app_Main.py:9193 app_Main.py:9258 -msgid "Failed to open file" -msgstr "Errore nell'apertura file" - -#: app_Main.py:9005 app_Main.py:9196 app_Main.py:9261 -msgid "Failed to parse file" -msgstr "Errore nell'analisi del file" - -#: app_Main.py:9017 -msgid "Object is not Gerber file or empty. Aborting object creation." -msgstr "L'oggetto non è Gerber o è vuoto. Annullo creazione oggetto." - -#: app_Main.py:9022 -msgid "Opening Gerber" -msgstr "Apertura Gerber" - -#: app_Main.py:9033 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Apertura Gerber fallita. Forse non è un file Gerber." - -#: app_Main.py:9066 -msgid "Cannot open file" -msgstr "Impossibile aprire il file" - -#: app_Main.py:9086 -msgid "Opening Excellon." -msgstr "Apertura Excellon." - -#: app_Main.py:9096 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "Apertura Excellon fallita. Forse non è un file Excellon." - -#: app_Main.py:9128 -msgid "Reading GCode file" -msgstr "Lettura file GCode" - -#: app_Main.py:9141 -msgid "This is not GCODE" -msgstr "Non è G-CODE" - -#: app_Main.py:9146 -msgid "Opening G-Code." -msgstr "Apertura G-Code." - -#: app_Main.py:9159 -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 "" -"Errore nella creazione oggetto CNCJob. Probabilmente non è un file GCode. " -"Prova a caricarlo dal menu File.\n" -" Tentativo di creazione di oggetto FlatCAM CNCJob da file G-Code fallito " -"durante l'analisi" - -#: app_Main.py:9215 -msgid "Object is not HPGL2 file or empty. Aborting object creation." -msgstr "L'oggetto non è un file HPGL2 o è vuoto. Annullo creazione oggetto." - -#: app_Main.py:9220 -msgid "Opening HPGL2" -msgstr "Apertura HPGL2" - -#: app_Main.py:9227 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " Apertura HPGL2 fallita. Forse non è un file HPGL2." - -#: app_Main.py:9253 -msgid "TCL script file opened in Code Editor." -msgstr "Script TCL aperto nell'editor." - -#: app_Main.py:9273 -msgid "Opening TCL Script..." -msgstr "Apertura Script TCL..." - -#: app_Main.py:9284 -msgid "Failed to open TCL Script." -msgstr "Errore nell'apertura dello Script TCL." - -#: app_Main.py:9306 -msgid "Opening FlatCAM Config file." -msgstr "Apertura file di configurazione FlatCAM." - -#: app_Main.py:9334 -msgid "Failed to open config file" -msgstr "Errore nell'apertura sel file di configurazione" - -#: app_Main.py:9363 -msgid "Loading Project ... Please Wait ..." -msgstr "Apertura progetto … Attendere ..." - -#: app_Main.py:9368 -msgid "Opening FlatCAM Project file." -msgstr "Apertura file progetto FlatCAM." - -#: app_Main.py:9383 app_Main.py:9387 app_Main.py:9404 -msgid "Failed to open project file" -msgstr "Errore nell'apertura file progetto" - -#: app_Main.py:9443 -msgid "Loading Project ... restoring" -msgstr "Apertura progetto … ripristino" - -#: app_Main.py:9451 -msgid "Project loaded from" -msgstr "Progetto caricato da" - -#: app_Main.py:9477 +#: app_Main.py:7053 msgid "Redrawing all objects" msgstr "Ridisegno tutti gli oggetti" -#: app_Main.py:9565 +#: app_Main.py:7141 msgid "Failed to load recent item list." msgstr "Errore nel caricamento della lista dei file recenti." -#: app_Main.py:9572 +#: app_Main.py:7148 msgid "Failed to parse recent item list." msgstr "Errore nell'analisi della lista dei file recenti." -#: app_Main.py:9582 +#: app_Main.py:7158 msgid "Failed to load recent projects item list." msgstr "Errore nel caricamento della lista dei progetti recenti." -#: app_Main.py:9589 +#: app_Main.py:7165 msgid "Failed to parse recent project item list." msgstr "Errore nell'analisi della lista dei progetti recenti." -#: app_Main.py:9650 +#: app_Main.py:7226 msgid "Clear Recent projects" msgstr "Azzera lista progetti recenti" -#: app_Main.py:9674 +#: app_Main.py:7250 msgid "Clear Recent files" msgstr "Azzera lista file recenti" -#: app_Main.py:9730 +#: app_Main.py:7306 #, fuzzy #| msgid "FlatCAM Beta" msgid "FlatCAM Evo" msgstr "FlatCAM Beta" -#: app_Main.py:9734 +#: app_Main.py:7310 msgid "Release date" msgstr "" -#: app_Main.py:9738 +#: app_Main.py:7314 msgid "Displayed" msgstr "" -#: app_Main.py:9741 +#: app_Main.py:7317 #, fuzzy #| msgid "Snap Max" msgid "Snap" msgstr "Snap massimo" -#: app_Main.py:9750 +#: app_Main.py:7326 msgid "Canvas" msgstr "" -#: app_Main.py:9755 +#: app_Main.py:7331 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace active" msgstr "Impostazioni area di lavoro" -#: app_Main.py:9759 +#: app_Main.py:7335 #, fuzzy #| msgid "Workspace disabled." msgid "Workspace size" msgstr "Area di lavoro disabilitata." -#: app_Main.py:9763 +#: app_Main.py:7339 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace orientation" msgstr "Impostazioni area di lavoro" -#: app_Main.py:9826 +#: app_Main.py:7402 msgid "Failed checking for latest version. Could not connect." msgstr "" "Errore durante il controllo dell'ultima versione. Impossibile connettersi." -#: app_Main.py:9833 +#: app_Main.py:7409 msgid "Could not parse information about latest version." msgstr "Impossibile elaborare le info sull'ultima versione." -#: app_Main.py:9843 +#: app_Main.py:7419 msgid "FlatCAM is up to date!" msgstr "FlatCAM è aggiornato!" -#: app_Main.py:9848 +#: app_Main.py:7424 msgid "Newer Version Available" msgstr "E' disponibile una nuova versione" -#: app_Main.py:9850 +#: app_Main.py:7426 msgid "There is a newer version of FlatCAM available for download:" msgstr "E' disponibile una nuova versione di FlatCAM per il download:" -#: app_Main.py:9854 +#: app_Main.py:7430 msgid "info" msgstr "informazioni" -#: app_Main.py:9882 +#: app_Main.py:7458 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -19390,66 +19037,418 @@ msgstr "" "Preferenze -> Generale.\n" "\n" -#: app_Main.py:9960 +#: app_Main.py:7536 msgid "All plots disabled." msgstr "Tutte le tracce disabilitate." -#: app_Main.py:9967 +#: app_Main.py:7543 msgid "All non selected plots disabled." msgstr "Tutte le tracce non selezionate sono disabilitate." -#: app_Main.py:9974 +#: app_Main.py:7550 msgid "All plots enabled." msgstr "Tutte le tracce sono abilitate." -#: app_Main.py:9980 +#: app_Main.py:7556 msgid "Selected plots enabled..." msgstr "Tracce selezionate attive..." -#: app_Main.py:9988 +#: app_Main.py:7564 msgid "Selected plots disabled..." msgstr "Tracce selezionate disattive..." -#: app_Main.py:10021 +#: app_Main.py:7597 msgid "Enabling plots ..." msgstr "Abilitazione tracce ..." -#: app_Main.py:10070 +#: app_Main.py:7646 msgid "Disabling plots ..." msgstr "Disabilitazione tracce ..." -#: app_Main.py:10093 +#: app_Main.py:7669 msgid "Working ..." msgstr "Elaborazione ..." -#: app_Main.py:10205 +#: app_Main.py:7781 msgid "Set alpha level ..." msgstr "Imposta livello alfa ..." -#: app_Main.py:10271 +#: app_Main.py:8057 app_Main.py:8096 app_Main.py:8140 app_Main.py:8206 +#: app_Main.py:8932 app_Main.py:10193 app_Main.py:10255 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Inizializzazione della tela avviata.\n" +"Inizializzazione della tela completata" + +#: app_Main.py:8060 +msgid "Opening Gerber file." +msgstr "Apertura file Gerber." + +#: app_Main.py:8099 +msgid "Opening Excellon file." +msgstr "Apertura file Excellon." + +#: app_Main.py:8129 app_Main.py:8134 +msgid "Open G-Code" +msgstr "Apri G-Code" + +#: app_Main.py:8143 +msgid "Opening G-Code file." +msgstr "Apertura file G-Code." + +#: app_Main.py:8197 app_Main.py:8201 +msgid "Open HPGL2" +msgstr "Apri HPGL2" + +#: app_Main.py:8209 +msgid "Opening HPGL2 file." +msgstr "Apertura file HPGL2." + +#: app_Main.py:8232 app_Main.py:8235 +msgid "Open Configuration File" +msgstr "Apri file di configurazione" + +#: app_Main.py:8254 app_Main.py:8600 +msgid "Please Select a Geometry object to export" +msgstr "Selezionare un oggetto geometria da esportare" + +#: app_Main.py:8269 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Possono essere usati solo geometrie, gerber od oggetti CNCJob." + +#: app_Main.py:8314 +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" + +#: app_Main.py:8320 app_Main.py:8324 +msgid "Export PNG Image" +msgstr "Esporta immagine PNG" + +#: app_Main.py:8356 app_Main.py:8561 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "Errore. Solo oggetti Gerber possono essere salvati come file Gerber..." + +#: app_Main.py:8368 +msgid "Save Gerber source file" +msgstr "Salva il file sorgente Gerber" + +#: app_Main.py:8396 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "" +"Errore. Solo oggetti Script possono essere salvati come file Script TCL..." + +#: app_Main.py:8408 +msgid "Save Script source file" +msgstr "Salva il file sorgente dello Script" + +#: app_Main.py:8436 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "" +"Errore. Solo oggetti Documenti possono essere salvati come file Documenti..." + +#: app_Main.py:8448 +msgid "Save Document source file" +msgstr "Salva il file di origine del Documento" + +#: app_Main.py:8477 app_Main.py:8518 app_Main.py:9437 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" +"Errore. Solo oggetti Excellon possono essere salvati come file Excellon..." + +#: app_Main.py:8485 app_Main.py:8490 +msgid "Save Excellon source file" +msgstr "Salva il file sorgente di Excellon" + +#: app_Main.py:8526 app_Main.py:8530 +msgid "Export Excellon" +msgstr "Esporta Excellon" + +#: app_Main.py:8569 app_Main.py:8573 +msgid "Export Gerber" +msgstr "Esporta Gerber" + +#: app_Main.py:8612 +msgid "Only Geometry objects can be used." +msgstr "Possono essere usate solo oggetti Geometrie." + +#: app_Main.py:8628 app_Main.py:8632 +msgid "Export DXF" +msgstr "Esporta DXF" + +#: app_Main.py:8656 app_Main.py:8660 +msgid "Import SVG" +msgstr "Importa SVG" + +#: app_Main.py:8686 app_Main.py:8690 +msgid "Import DXF" +msgstr "Importa DXF" + +#: app_Main.py:8716 +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 "" +"Ci sono file/oggetti aperti in FlatCAM.\n" +"Creare un nuovo progetto li cancellerà.\n" +"Vuoi salvare il progetto?" + +#: app_Main.py:8739 +msgid "New Project created" +msgstr "Nuovo progetto creato" + +#: app_Main.py:8841 +msgid "New TCL script file created in Code Editor." +msgstr "Nuovo Script TCL creato nell'edito di codice." + +#: app_Main.py:8868 app_Main.py:8870 app_Main.py:8905 app_Main.py:8907 +msgid "Open TCL script" +msgstr "Apri Script TCL" + +#: app_Main.py:8934 +msgid "Executing ScriptObject file." +msgstr "Esecuzione file oggetto Script." + +#: app_Main.py:8942 app_Main.py:8946 +msgid "Run TCL script" +msgstr "Esegui Script TCL" + +#: app_Main.py:8969 +msgid "TCL script file opened in Code Editor and executed." +msgstr "Fil script TCL aperto nell'edito ed eseguito." + +#: app_Main.py:9015 app_Main.py:9021 +msgid "Save Project As ..." +msgstr "Salva progetto come ..." + +#: app_Main.py:9055 +msgid "FlatCAM objects print" +msgstr "Stampa oggetto FlatCAM" + +#: app_Main.py:9068 app_Main.py:9075 +msgid "Save Object as PDF ..." +msgstr "Salva oggetto come PDF ..." + +#: app_Main.py:9084 +msgid "Printing PDF ... Please wait." +msgstr "Stampa PDF ... Attendere." + +#: app_Main.py:9262 +msgid "PDF file saved to" +msgstr "File PDF salvato in" + +#: app_Main.py:9284 +msgid "Exporting SVG" +msgstr "Esportazione SVG" + +#: app_Main.py:9327 +msgid "SVG file exported to" +msgstr "File SVG esportato in" + +#: app_Main.py:9342 app_Main.py:9346 +msgid "Import FlatCAM Preferences" +msgstr "Importa le preferenze di FlatCAM" + +#: app_Main.py:9357 +msgid "Imported Defaults from" +msgstr "Predefiniti importati da" + +#: app_Main.py:9376 app_Main.py:9382 +msgid "Export FlatCAM Preferences" +msgstr "Esporta le preferenze di FlatCAM" + +#: app_Main.py:9402 +msgid "Exported preferences to" +msgstr "Preferenze esportate in" + +#: app_Main.py:9535 +msgid "Excellon file exported to" +msgstr "File Excellon esportato in" + +#: app_Main.py:9544 +msgid "Exporting Excellon" +msgstr "Esportazione Excellon" + +#: app_Main.py:9549 app_Main.py:9556 +msgid "Could not export Excellon file." +msgstr "Impossibile esportare file Excellon." + +#: app_Main.py:9670 +msgid "Gerber file exported to" +msgstr "File Gerber esportato in" + +#: app_Main.py:9678 +msgid "Exporting Gerber" +msgstr "Esportazione Gerber" + +#: app_Main.py:9683 app_Main.py:9690 +msgid "Could not export file." +msgstr "Impossibile esportare il file." + +#: app_Main.py:9736 +msgid "DXF file exported to" +msgstr "File DXF esportato in" + +#: app_Main.py:9745 +msgid "Exporting DXF" +msgstr "Esportazione DXF" + +#: app_Main.py:9750 app_Main.py:9757 +msgid "Could not export DXF file." +msgstr "Impossibile esportare file DXF." + +#: app_Main.py:9795 +msgid "Importing SVG" +msgstr "Importazione SVG" + +#: app_Main.py:9803 app_Main.py:9858 +msgid "Import failed." +msgstr "Importazione fallita." + +#: app_Main.py:9850 +msgid "Importing DXF" +msgstr "Importazione DXF" + +#: app_Main.py:9891 app_Main.py:10082 app_Main.py:10147 +msgid "Failed to open file" +msgstr "Errore nell'apertura file" + +#: app_Main.py:9894 app_Main.py:10085 app_Main.py:10150 +msgid "Failed to parse file" +msgstr "Errore nell'analisi del file" + +#: app_Main.py:9906 +msgid "Object is not Gerber file or empty. Aborting object creation." +msgstr "L'oggetto non è Gerber o è vuoto. Annullo creazione oggetto." + +#: app_Main.py:9911 +msgid "Opening Gerber" +msgstr "Apertura Gerber" + +#: app_Main.py:9922 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Apertura Gerber fallita. Forse non è un file Gerber." + +#: app_Main.py:9955 +msgid "Cannot open file" +msgstr "Impossibile aprire il file" + +#: app_Main.py:9975 +msgid "Opening Excellon." +msgstr "Apertura Excellon." + +#: app_Main.py:9985 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "Apertura Excellon fallita. Forse non è un file Excellon." + +#: app_Main.py:10017 +msgid "Reading GCode file" +msgstr "Lettura file GCode" + +#: app_Main.py:10030 +msgid "This is not GCODE" +msgstr "Non è G-CODE" + +#: app_Main.py:10035 +msgid "Opening G-Code." +msgstr "Apertura G-Code." + +#: app_Main.py:10048 +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 "" +"Errore nella creazione oggetto CNCJob. Probabilmente non è un file GCode. " +"Prova a caricarlo dal menu File.\n" +" Tentativo di creazione di oggetto FlatCAM CNCJob da file G-Code fallito " +"durante l'analisi" + +#: app_Main.py:10104 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "L'oggetto non è un file HPGL2 o è vuoto. Annullo creazione oggetto." + +#: app_Main.py:10109 +msgid "Opening HPGL2" +msgstr "Apertura HPGL2" + +#: app_Main.py:10116 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Apertura HPGL2 fallita. Forse non è un file HPGL2." + +#: app_Main.py:10142 +msgid "TCL script file opened in Code Editor." +msgstr "Script TCL aperto nell'editor." + +#: app_Main.py:10162 +msgid "Opening TCL Script..." +msgstr "Apertura Script TCL..." + +#: app_Main.py:10173 +msgid "Failed to open TCL Script." +msgstr "Errore nell'apertura dello Script TCL." + +#: app_Main.py:10196 +msgid "Opening FlatCAM Config file." +msgstr "Apertura file di configurazione FlatCAM." + +#: app_Main.py:10223 +msgid "Failed to open config file" +msgstr "Errore nell'apertura sel file di configurazione" + +#: app_Main.py:10252 +msgid "Loading Project ... Please Wait ..." +msgstr "Apertura progetto … Attendere ..." + +#: app_Main.py:10258 +msgid "Opening FlatCAM Project file." +msgstr "Apertura file progetto FlatCAM." + +#: app_Main.py:10273 app_Main.py:10277 app_Main.py:10295 +msgid "Failed to open project file" +msgstr "Errore nell'apertura file progetto" + +#: app_Main.py:10335 +msgid "Loading Project ... restoring" +msgstr "Apertura progetto … ripristino" + +#: app_Main.py:10339 +msgid "Project loaded from" +msgstr "Progetto caricato da" + +#: app_Main.py:10368 msgid "Saving FlatCAM Project" msgstr "Salva progetto FlatCAM" -#: app_Main.py:10294 app_Main.py:10330 +#: app_Main.py:10390 app_Main.py:10426 msgid "Project saved to" msgstr "Progetto salvato in" -#: app_Main.py:10301 +#: app_Main.py:10397 msgid "The object is used by another application." msgstr "L'oggetto è usato da un'altra applicazione." -#: app_Main.py:10315 +#: app_Main.py:10411 msgid "Failed to verify project file" msgstr "Errore durante l'analisi del file progetto" -#: app_Main.py:10315 app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10411 app_Main.py:10419 app_Main.py:10429 msgid "Retry to save it." msgstr "Ritenta il salvataggio." -#: app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10419 app_Main.py:10429 msgid "Failed to parse saved project file" msgstr "Errore nell'analisi del progetto salvato" +#: app_Main.py:10466 +msgid "Save cancelled because source file is empty. Try to export the file." +msgstr "" +"Salvataggio annullato a causa di sorgenti vuoti. Provare ad esportare il " +"file." + #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" diff --git a/locale/pt_BR/LC_MESSAGES/strings.mo b/locale/pt_BR/LC_MESSAGES/strings.mo index 2481151c5ab2f29e827f932babbc8174899580d5..d611f5eea359a9d818afb62fa7b79b1c5a4e628e 100644 GIT binary patch delta 34 ocmccrSoHp5(S{br7N#xC?*&*atxPQ1KMODeG0XPP0<3Qm00CGH`2YX_ delta 34 ocmccrSoHp5(S{br7N#xC?*&*)txQeYKMODeG0XPP0<3Qm0086-@&Et; diff --git a/locale/pt_BR/LC_MESSAGES/strings.po b/locale/pt_BR/LC_MESSAGES/strings.po index bc5c77f6..2ecbb8e5 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-10-24 15:54+0300\n" -"PO-Revision-Date: 2020-10-24 15:54+0300\n" +"POT-Creation-Date: 2020-10-24 19:48+0300\n" +"PO-Revision-Date: 2020-10-24 19:48+0300\n" "Last-Translator: Carlos Stein \n" "Language-Team: \n" "Language: pt_BR\n" @@ -107,24 +107,24 @@ msgstr "Favoritos" #: appObjects/FlatCAMCNCJob.py:1750 appObjects/ObjectCollection.py:126 #: appTools/ToolFilm.py:238 appTools/ToolFilm.py:384 appTools/ToolImage.py:112 #: appTools/ToolMove.py:269 appTools/ToolPcbWizard.py:189 -#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:526 -#: appTools/ToolQRCode.py:573 app_Main.py:1753 app_Main.py:2581 -#: app_Main.py:2617 app_Main.py:2664 app_Main.py:4410 app_Main.py:7128 -#: app_Main.py:7167 app_Main.py:7211 app_Main.py:7240 app_Main.py:7281 -#: app_Main.py:7306 app_Main.py:7362 app_Main.py:7398 app_Main.py:7443 -#: app_Main.py:7484 app_Main.py:7526 app_Main.py:7568 app_Main.py:7609 -#: app_Main.py:7653 app_Main.py:7713 app_Main.py:7745 app_Main.py:7777 -#: app_Main.py:8000 app_Main.py:8038 app_Main.py:8081 app_Main.py:8158 -#: app_Main.py:8213 +#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:527 +#: appTools/ToolQRCode.py:574 app_Main.py:1762 app_Main.py:2596 +#: app_Main.py:4333 app_Main.py:8065 app_Main.py:8104 app_Main.py:8148 +#: app_Main.py:8174 app_Main.py:8214 app_Main.py:8239 app_Main.py:8293 +#: app_Main.py:8329 app_Main.py:8373 app_Main.py:8413 app_Main.py:8454 +#: app_Main.py:8495 app_Main.py:8535 app_Main.py:8578 app_Main.py:8637 +#: app_Main.py:8669 app_Main.py:8699 app_Main.py:8874 app_Main.py:8911 +#: app_Main.py:8954 app_Main.py:9026 app_Main.py:9080 app_Main.py:9350 +#: app_Main.py:9385 msgid "Cancelled." msgstr "Cancelado." #: Bookmark.py:308 appDatabase.py:2089 appEditors/AppTextEditor.py:312 #: appObjects/FlatCAMCNCJob.py:1672 appObjects/FlatCAMCNCJob.py:1862 #: appObjects/FlatCAMCNCJob.py:2311 appTools/ToolFilm.py:582 -#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2672 -#: app_Main.py:8457 app_Main.py:8505 app_Main.py:8634 app_Main.py:8771 -#: app_Main.py:8839 +#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2604 +#: app_Main.py:9320 app_Main.py:9528 app_Main.py:9663 app_Main.py:9729 +#: app_Main.py:10481 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -157,7 +157,7 @@ msgstr "Favoritos importados de" msgid "The user requested a graceful exit of the current task." msgstr "O usuário solicitou uma saída normal da tarefa atual." -#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:328 +#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:327 #: appTools/ToolIsolation.py:1436 appTools/ToolNCC.py:1366 msgid "Click the start point of the area." msgstr "Clique no ponto inicial da área." @@ -167,7 +167,7 @@ msgid "Click the end point of the area." msgstr "Clique no ponto final da área." #: appCommon/Common.py:357 appCommon/Common.py:459 -#: appTools/ToolCopperThieving.py:385 appTools/ToolIsolation.py:2348 +#: appTools/ToolCopperThieving.py:384 appTools/ToolIsolation.py:2348 #: appTools/ToolIsolation.py:2400 appTools/ToolNCC.py:1431 #: appTools/ToolNCC.py:1483 appTools/ToolPaint.py:1216 #: appTools/ToolPaint.py:1267 @@ -265,8 +265,8 @@ msgstr "Parâmetros de Ranhura" #: appDatabase.py:207 appEditors/AppGeoEditor.py:3287 appGUI/ObjectUI.py:219 #: appGUI/ObjectUI.py:570 appGUI/ObjectUI.py:894 appGUI/ObjectUI.py:1876 #: appGUI/ObjectUI.py:2693 appGUI/ObjectUI.py:2760 -#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:681 -#: app_Main.py:9730 +#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:683 +#: app_Main.py:7306 msgid "Name" msgstr "Nome" @@ -341,7 +341,7 @@ msgstr "" #: appDatabase.py:275 appDatabase.py:1778 appDatabase.py:1814 #: appDatabase.py:1877 appDatabase.py:2162 appGUI/MainGUI.py:1299 -#: app_Main.py:9728 +#: app_Main.py:7304 msgid "General" msgstr "Geral" @@ -496,7 +496,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2104 +#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2108 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Profundidade de Corte" @@ -791,9 +791,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1210 appTools/ToolCopperThieving.py:1461 -#: appTools/ToolCorners.py:411 appTools/ToolCutOut.py:2157 -#: appTools/ToolFiducials.py:786 appTools/ToolInvertGerber.py:234 +#: appTools/ToolCopperThieving.py:1206 appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCorners.py:412 appTools/ToolCutOut.py:2161 +#: appTools/ToolFiducials.py:788 appTools/ToolInvertGerber.py:234 #: appTools/ToolInvertGerber.py:242 appTools/ToolNCC.py:4135 #: appTools/ToolNCC.py:4238 msgid "Margin" @@ -804,8 +804,8 @@ msgstr "Margem" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1212 appTools/ToolCorners.py:413 -#: appTools/ToolFiducials.py:788 appTools/ToolNCC.py:4137 +#: appTools/ToolCopperThieving.py:1208 appTools/ToolCorners.py:414 +#: appTools/ToolFiducials.py:790 appTools/ToolNCC.py:4137 #: appTools/ToolNCC.py:4240 msgid "Bounding box margin." msgstr "Margem da caixa delimitadora." @@ -817,7 +817,7 @@ msgstr "Margem da caixa delimitadora." #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 -#: appTools/ToolExtractDrills.py:520 appTools/ToolNCC.py:4112 +#: appTools/ToolExtractDrills.py:521 appTools/ToolNCC.py:4112 #: appTools/ToolPaint.py:2991 appTools/ToolPunchGerber.py:796 msgid "Method" msgstr "Método" @@ -1108,7 +1108,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 -#: appTools/ToolCutOut.py:2128 appTools/ToolDrilling.py:2167 +#: appTools/ToolCutOut.py:2132 appTools/ToolDrilling.py:2167 #: appTools/ToolMilling.py:1817 msgid "" "Use multiple passes to limit\n" @@ -1124,7 +1124,7 @@ msgstr "" #: appDatabase.py:979 appGUI/ObjectUI.py:1251 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 -#: appTools/ToolCutOut.py:2142 appTools/ToolDrilling.py:2180 +#: appTools/ToolCutOut.py:2146 appTools/ToolDrilling.py:2180 #: appTools/ToolMilling.py:1830 msgid "Depth of each pass (positive)." msgstr "Profundidade de cada passe (positivo)." @@ -1224,7 +1224,7 @@ msgid "" msgstr "" #: appDatabase.py:1156 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: appTools/ToolCutOut.py:2159 +#: appTools/ToolCutOut.py:2163 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -1234,12 +1234,12 @@ msgstr "" "tornará o recorte do PCB mais longe da borda da PCB" #: appDatabase.py:1168 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:131 -#: appTools/ToolCutOut.py:2167 +#: appTools/ToolCutOut.py:2171 msgid "Gap size" msgstr "Tamanho da Ponte" #: appDatabase.py:1170 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:133 -#: appTools/ToolCutOut.py:2169 +#: appTools/ToolCutOut.py:2173 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -1251,14 +1251,14 @@ msgstr "" "circundante (de onde o PCB é recortado)." #: appDatabase.py:1179 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -#: appTools/ToolCutOut.py:2182 +#: appTools/ToolCutOut.py:2186 #, fuzzy #| msgid "Image type" msgid "Gap type" msgstr "Tipo de imagem" #: appDatabase.py:1181 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150 -#: appTools/ToolCutOut.py:2184 +#: appTools/ToolCutOut.py:2188 msgid "" "The type of gap:\n" "- Bridge -> the cutout will be interrupted by bridges\n" @@ -1268,24 +1268,24 @@ msgid "" msgstr "" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 -#: appTools/ToolCutOut.py:2192 +#: appTools/ToolCutOut.py:2196 msgid "Bridge" msgstr "" #: appDatabase.py:1190 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159 -#: appTools/ToolCutOut.py:2193 +#: appTools/ToolCutOut.py:2197 msgid "Thin" msgstr "" #: appDatabase.py:1201 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169 -#: appTools/ToolCutOut.py:2203 +#: appTools/ToolCutOut.py:2207 #, fuzzy #| msgid "MultiDepth" msgid "Depth" msgstr "Multi-Profundidade" #: appDatabase.py:1203 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171 -#: appTools/ToolCutOut.py:2205 +#: appTools/ToolCutOut.py:2209 #, fuzzy #| msgid "" #| "The width of the travel lines to be\n" @@ -1297,12 +1297,12 @@ msgstr "Largura da linha a ser renderizada no gráfico." #: appDatabase.py:1220 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2220 +#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2224 msgid "Tool Diameter" msgstr "Diâmetro" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 -#: appTools/ToolCutOut.py:2222 +#: appTools/ToolCutOut.py:2226 msgid "The drill hole diameter when doing mouse bites." msgstr "" @@ -1311,23 +1311,23 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1333 appTools/ToolCopperThieving.py:1373 -#: appTools/ToolCopperThieving.py:1413 appTools/ToolCutOut.py:2232 +#: appTools/ToolCopperThieving.py:1329 appTools/ToolCopperThieving.py:1369 +#: appTools/ToolCopperThieving.py:1409 appTools/ToolCutOut.py:2236 msgid "Spacing" msgstr "Espaçamento" #: appDatabase.py:1235 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200 -#: appTools/ToolCutOut.py:2234 +#: appTools/ToolCutOut.py:2238 msgid "The spacing between drill holes when doing mouse bites." msgstr "" #: appDatabase.py:1254 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233 -#: appTools/ToolCutOut.py:2034 +#: appTools/ToolCutOut.py:2038 msgid "Convex Shape" msgstr "Forma Convexa" #: appDatabase.py:1257 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235 -#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041 +#: appTools/ToolCutOut.py:2040 appTools/ToolCutOut.py:2045 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -1336,11 +1336,11 @@ msgstr "" "Utilize somente se o tipo de objeto de origem for Gerber." #: appDatabase.py:1265 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209 -#: appTools/ToolCutOut.py:2263 +#: appTools/ToolCutOut.py:2267 msgid "Gaps" msgstr "Pontes" -#: appDatabase.py:1267 appTools/ToolCutOut.py:2265 +#: appDatabase.py:1267 appTools/ToolCutOut.py:2269 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -1428,8 +1428,8 @@ msgstr "" "no banco de dados de ferramentas." #: appDatabase.py:1364 appGUI/MainGUI.py:1438 -#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2297 -#: app_Main.py:3392 app_Main.py:4347 app_Main.py:4593 app_Main.py:6901 +#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2306 +#: app_Main.py:3315 app_Main.py:4270 app_Main.py:4516 app_Main.py:8725 msgid "Cancel" msgstr "Cancelar" @@ -1440,16 +1440,16 @@ msgstr "Cancelar" #: appTools/ToolAlignObjects.py:516 appTools/ToolAlignObjects.py:527 #: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1601 appTools/ToolCopperThieving.py:1612 -#: appTools/ToolCorners.py:462 appTools/ToolCorners.py:473 -#: appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448 -#: appTools/ToolDblSided.py:956 appTools/ToolDblSided.py:967 +#: appTools/ToolCopperThieving.py:1597 appTools/ToolCopperThieving.py:1608 +#: appTools/ToolCorners.py:463 appTools/ToolCorners.py:474 +#: appTools/ToolCutOut.py:2441 appTools/ToolCutOut.py:2452 +#: appTools/ToolDblSided.py:958 appTools/ToolDblSided.py:969 #: appTools/ToolDistance.py:659 appTools/ToolDistance.py:670 #: appTools/ToolDistanceMin.py:324 appTools/ToolDistanceMin.py:335 #: appTools/ToolDrilling.py:2666 appTools/ToolDrilling.py:2677 #: appTools/ToolEtchCompensation.py:476 appTools/ToolEtchCompensation.py:487 -#: appTools/ToolExtractDrills.py:732 appTools/ToolExtractDrills.py:743 -#: appTools/ToolFiducials.py:950 appTools/ToolFiducials.py:961 +#: appTools/ToolExtractDrills.py:733 appTools/ToolExtractDrills.py:744 +#: appTools/ToolFiducials.py:952 appTools/ToolFiducials.py:963 #: appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 #: appTools/ToolImage.py:322 appTools/ToolImage.py:333 #: appTools/ToolInvertGerber.py:304 appTools/ToolInvertGerber.py:315 @@ -1461,7 +1461,7 @@ msgstr "Cancelar" #: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925 #: appTools/ToolPcbWizard.py:488 appTools/ToolPcbWizard.py:499 #: appTools/ToolPunchGerber.py:1025 appTools/ToolPunchGerber.py:1036 -#: appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933 +#: appTools/ToolQRCode.py:923 appTools/ToolQRCode.py:934 #: appTools/ToolRulesCheck.py:1657 appTools/ToolRulesCheck.py:1668 #: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586 #: appTools/ToolSub.py:772 appTools/ToolSub.py:783 @@ -1476,16 +1476,16 @@ msgstr "Valor fora da faixa" #: appTools/ToolAlignObjects.py:522 appTools/ToolAlignObjects.py:529 #: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1607 appTools/ToolCopperThieving.py:1614 -#: appTools/ToolCorners.py:468 appTools/ToolCorners.py:475 -#: appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450 -#: appTools/ToolDblSided.py:962 appTools/ToolDblSided.py:969 +#: appTools/ToolCopperThieving.py:1603 appTools/ToolCopperThieving.py:1610 +#: appTools/ToolCorners.py:469 appTools/ToolCorners.py:476 +#: appTools/ToolCutOut.py:2447 appTools/ToolCutOut.py:2454 +#: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:971 #: appTools/ToolDistance.py:665 appTools/ToolDistance.py:672 #: appTools/ToolDistanceMin.py:330 appTools/ToolDistanceMin.py:337 #: appTools/ToolDrilling.py:2672 appTools/ToolDrilling.py:2679 #: appTools/ToolEtchCompensation.py:482 appTools/ToolEtchCompensation.py:489 -#: appTools/ToolExtractDrills.py:738 appTools/ToolExtractDrills.py:745 -#: appTools/ToolFiducials.py:956 appTools/ToolFiducials.py:963 +#: appTools/ToolExtractDrills.py:739 appTools/ToolExtractDrills.py:746 +#: appTools/ToolFiducials.py:958 appTools/ToolFiducials.py:965 #: appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 #: appTools/ToolImage.py:328 appTools/ToolImage.py:335 #: appTools/ToolInvertGerber.py:310 appTools/ToolInvertGerber.py:317 @@ -1497,7 +1497,7 @@ msgstr "Valor fora da faixa" #: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927 #: appTools/ToolPcbWizard.py:494 appTools/ToolPcbWizard.py:501 #: appTools/ToolPunchGerber.py:1031 appTools/ToolPunchGerber.py:1038 -#: appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935 +#: appTools/ToolQRCode.py:929 appTools/ToolQRCode.py:936 #: appTools/ToolRulesCheck.py:1663 appTools/ToolRulesCheck.py:1670 #: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588 #: appTools/ToolSub.py:778 appTools/ToolSub.py:785 @@ -1517,7 +1517,7 @@ msgstr "Copiar do BD" msgid "Delete from DB" msgstr "Excluir do BD" -#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3386 app_Main.py:6895 +#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3309 app_Main.py:8719 msgid "Save changes" msgstr "Salvar alterações" @@ -1574,8 +1574,8 @@ msgstr "Importar Banco de Dados de Ferramentas do FlatCAM" #: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525 #: appTools/ToolIsolation.py:2583 appTools/ToolIsolation.py:2667 #: appTools/ToolNCC.py:3715 appTools/ToolNCC.py:3795 appTools/ToolPaint.py:2626 -#: appTools/ToolPaint.py:2715 app_Main.py:5682 app_Main.py:5724 -#: app_Main.py:5755 app_Main.py:5775 app_Main.py:5785 +#: appTools/ToolPaint.py:2715 app_Main.py:5605 app_Main.py:5647 +#: app_Main.py:5678 app_Main.py:5698 app_Main.py:5708 msgid "Tools Database" msgstr "Banco de Dados de Ferramentas" @@ -1791,7 +1791,7 @@ msgstr "Cancelado. Não há ferramenta/broca selecionada" #: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642 #: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871 #: appTools/ToolAlignObjects.py:253 appTools/ToolAlignObjects.py:275 -#: app_Main.py:4961 app_Main.py:5115 +#: app_Main.py:4884 app_Main.py:5038 msgid "Done." msgstr "Pronto." @@ -1854,7 +1854,7 @@ msgstr "" #: appEditors/AppExcEditor.py:3765 appGUI/ObjectUI.py:1082 #: appGUI/ObjectUI.py:1650 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 -#: appTools/ToolCutOut.py:2060 appTools/ToolIsolation.py:3091 +#: appTools/ToolCutOut.py:2064 appTools/ToolIsolation.py:3091 #: appTools/ToolNCC.py:3966 appTools/ToolNCC.py:3977 appTools/ToolPaint.py:2882 msgid "Tool Dia" msgstr "Diâmetro da Ferramenta" @@ -1945,8 +1945,8 @@ msgstr "Linear" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 -#: appTools/ToolExtractDrills.py:470 appTools/ToolExtractDrills.py:593 -#: appTools/ToolFiducials.py:834 appTools/ToolPunchGerber.py:746 +#: appTools/ToolExtractDrills.py:471 appTools/ToolExtractDrills.py:594 +#: appTools/ToolFiducials.py:836 appTools/ToolPunchGerber.py:746 #: appTools/ToolPunchGerber.py:886 msgid "Circular" msgstr "Circular" @@ -2112,7 +2112,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:398 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:399 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Comprimento" @@ -2232,12 +2232,12 @@ msgstr "Redondo" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:289 -#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:486 -#: appTools/ToolExtractDrills.py:619 appTools/ToolInvertGerber.py:257 +#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:487 +#: appTools/ToolExtractDrills.py:620 appTools/ToolInvertGerber.py:257 #: appTools/ToolIsolation.py:3430 appTools/ToolMilling.py:2264 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3168 #: appTools/ToolPunchGerber.py:762 appTools/ToolPunchGerber.py:912 -#: appTools/ToolQRCode.py:788 +#: appTools/ToolQRCode.py:789 msgid "Square" msgstr "Quadrado" @@ -2288,8 +2288,8 @@ msgstr "Fonte" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1360 appTools/ToolCopperThieving.py:1400 -#: appTools/ToolFiducials.py:770 +#: appTools/ToolCopperThieving.py:1356 appTools/ToolCopperThieving.py:1396 +#: appTools/ToolFiducials.py:772 msgid "Size" msgstr "Tamanho" @@ -2313,8 +2313,8 @@ msgstr "Ferramenta de Texto" #: appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 #: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:329 #: appTools/ToolNCC.py:2280 appTools/ToolNCC.py:4040 appTools/ToolPaint.py:304 -#: appTools/ToolPaint.py:2940 app_Main.py:2053 app_Main.py:2312 -#: app_Main.py:2419 +#: appTools/ToolPaint.py:2940 app_Main.py:2062 app_Main.py:2321 +#: app_Main.py:2428 msgid "Tool" msgstr "Ferramenta" @@ -2404,7 +2404,7 @@ msgstr "Buffer" #: appGUI/GUIElements.py:3015 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 -#: appTools/ToolDblSided.py:681 appTools/ToolDblSided.py:855 +#: appTools/ToolDblSided.py:683 appTools/ToolDblSided.py:857 #: appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 msgid "Reference" msgstr "Referência" @@ -2449,7 +2449,7 @@ msgstr "Seleção" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 -#: appTools/ToolDblSided.py:692 appTools/ToolTransform.py:557 +#: appTools/ToolDblSided.py:694 appTools/ToolTransform.py:557 msgid "Point" msgstr "Ponto" @@ -2462,10 +2462,9 @@ msgstr "Mínimo" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243 -#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677 +#: appTools/ToolExtractDrills.py:557 appTools/ToolExtractDrills.py:678 #: appTools/ToolPunchGerber.py:849 appTools/ToolPunchGerber.py:965 -#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 -#: app_Main.py:10205 +#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:7781 msgid "Value" msgstr "Valor" @@ -2477,10 +2476,10 @@ msgstr "Um ponto de referência no formato X,Y." #: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590 #: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 -#: appTools/ToolDblSided.py:706 appTools/ToolDblSided.py:892 +#: appTools/ToolDblSided.py:708 appTools/ToolDblSided.py:894 #: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203 -#: appTools/ToolTransform.py:572 app_Main.py:6127 +#: appTools/ToolTransform.py:572 app_Main.py:6050 msgid "Add" msgstr "Adicionar" @@ -2691,7 +2690,7 @@ msgstr "Deslocar Y" #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216 -#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:787 +#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:788 #: appTools/ToolTransform.py:854 msgid "Rounded" msgstr "Arredondado" @@ -3171,7 +3170,7 @@ msgstr "Editor de Geometria" #: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495 #: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 -#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519 +#: appTools/ToolCutOut.py:2017 appTools/ToolDblSided.py:521 #: appTools/ToolTransform.py:579 msgid "Type" msgstr "Tipo" @@ -3560,7 +3559,7 @@ msgstr "Adiciona uma nova abertura à lista de aberturas." #: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 #: appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 #: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 -#: appTools/ToolSolderPaste.py:1209 app_Main.py:6129 +#: appTools/ToolSolderPaste.py:1209 app_Main.py:6052 msgid "Delete" msgstr "Excluir" @@ -3780,8 +3779,8 @@ msgstr "" #: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:164 #: appObjects/FlatCAMGeometry.py:1917 appParsers/ParseExcellon.py:972 -#: appTools/ToolPcbWizard.py:318 app_Main.py:9010 app_Main.py:9070 -#: app_Main.py:9201 app_Main.py:9266 app_Main.py:9881 +#: appTools/ToolPcbWizard.py:318 app_Main.py:7457 app_Main.py:9899 +#: app_Main.py:9959 app_Main.py:10090 app_Main.py:10155 msgid "An internal error has occurred. See shell.\n" msgstr "Ocorreu um erro interno. Veja shell (linha de comando).\n" @@ -3797,7 +3796,7 @@ msgstr "Edição de Gerber concluída." msgid "Cancelled. No aperture is selected" msgstr "Cancelado. Nenhuma abertura selecionada" -#: appEditors/AppGerberEditor.py:4555 app_Main.py:6462 +#: appEditors/AppGerberEditor.py:4555 app_Main.py:6385 msgid "Coordinates copied to clipboard." msgstr "Coordenadas copiadas para a área de transferência." @@ -3816,8 +3815,8 @@ msgstr "" "novamente." #: appEditors/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 -#: appTools/ToolCutOut.py:895 appTools/ToolCutOut.py:1118 -#: appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663 +#: appTools/ToolCutOut.py:896 appTools/ToolCutOut.py:1119 +#: appTools/ToolCutOut.py:1267 camlib.py:4899 camlib.py:5663 msgid "Failed." msgstr "Falhou." @@ -3849,7 +3848,7 @@ msgstr "Nenhum polígono foi marcado. Nenhum se encaixa dentro dos limites." msgid "Rotation action was not executed." msgstr "A rotação não foi executada." -#: appEditors/AppGerberEditor.py:6044 app_Main.py:5885 app_Main.py:5933 +#: appEditors/AppGerberEditor.py:6044 app_Main.py:5808 app_Main.py:5856 msgid "Flip action was not executed." msgstr "A ação de espelhamento não foi executada." @@ -3961,7 +3960,7 @@ msgstr "Abrir arquivo" #: appObjects/FlatCAMCNCJob.py:1646 appObjects/FlatCAMCNCJob.py:1651 #: appObjects/FlatCAMCNCJob.py:1836 appObjects/FlatCAMCNCJob.py:1841 #: appObjects/FlatCAMCNCJob.py:1914 appObjects/FlatCAMCNCJob.py:1919 -#: appTools/ToolSolderPaste.py:1063 app_Main.py:7044 app_Main.py:7049 +#: appTools/ToolSolderPaste.py:1063 app_Main.py:6839 app_Main.py:6844 msgid "Export Code ..." msgstr "Exportar código ..." @@ -3975,7 +3974,7 @@ msgstr "Nenhum arquivo ou diretório" msgid "Saved to" msgstr "Salvo em" -#: appEditors/appGCodeEditor.py:66 app_Main.py:7905 +#: appEditors/appGCodeEditor.py:66 app_Main.py:7000 msgid "Code Editor" msgstr "Editor de Códigos" @@ -4011,7 +4010,7 @@ msgstr "Editor de Códigos" #: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 appGUI/ObjectUI.py:2019 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1320 +#: appTools/ToolCopperThieving.py:1316 msgid "Dia" msgstr "Dia" @@ -4108,8 +4107,8 @@ msgstr "" msgid "Save Log" msgstr "Salvar Log" -#: appGUI/GUIElements.py:3085 app_Main.py:2809 app_Main.py:3181 -#: app_Main.py:3354 +#: appGUI/GUIElements.py:3085 app_Main.py:2741 app_Main.py:3113 +#: app_Main.py:3286 msgid "Close" msgstr "Fechar" @@ -4750,7 +4749,7 @@ msgstr "Ajuda" msgid "Online Help\tF1" msgstr "Ajuda Online\tF1" -#: appGUI/MainGUI.py:527 app_Main.py:3319 app_Main.py:3328 +#: appGUI/MainGUI.py:527 app_Main.py:3251 app_Main.py:3260 msgid "Bookmarks Manager" msgstr "Gerenciados de Favoritos" @@ -4780,7 +4779,7 @@ msgstr "Canal no YouTube\tF4" msgid "How To" msgstr "How To's" -#: appGUI/MainGUI.py:551 app_Main.py:2776 +#: appGUI/MainGUI.py:551 app_Main.py:2708 msgid "About FlatCAM" msgstr "Sobre FlatCAM" @@ -4948,47 +4947,47 @@ msgstr "Desabilitar Gráfico" msgid "Set Color" msgstr "Definir cor" -#: appGUI/MainGUI.py:709 app_Main.py:10148 +#: appGUI/MainGUI.py:709 app_Main.py:7724 msgid "Red" msgstr "Vermelho" -#: appGUI/MainGUI.py:712 app_Main.py:10150 +#: appGUI/MainGUI.py:712 app_Main.py:7726 msgid "Blue" msgstr "Azul" -#: appGUI/MainGUI.py:715 app_Main.py:10153 +#: appGUI/MainGUI.py:715 app_Main.py:7729 msgid "Yellow" msgstr "Amarela" -#: appGUI/MainGUI.py:718 app_Main.py:10155 +#: appGUI/MainGUI.py:718 app_Main.py:7731 msgid "Green" msgstr "Verde" -#: appGUI/MainGUI.py:721 app_Main.py:10157 +#: appGUI/MainGUI.py:721 app_Main.py:7733 msgid "Purple" msgstr "Roxo" -#: appGUI/MainGUI.py:724 app_Main.py:10159 +#: appGUI/MainGUI.py:724 app_Main.py:7735 msgid "Brown" msgstr "Marrom" -#: appGUI/MainGUI.py:727 app_Main.py:10161 app_Main.py:10220 +#: appGUI/MainGUI.py:727 app_Main.py:7737 app_Main.py:7796 msgid "White" msgstr "Branco" -#: appGUI/MainGUI.py:730 app_Main.py:10163 +#: appGUI/MainGUI.py:730 app_Main.py:7739 msgid "Black" msgstr "Preto" -#: appGUI/MainGUI.py:735 app_Main.py:10166 +#: appGUI/MainGUI.py:735 app_Main.py:7742 msgid "Custom" msgstr "Personalizado" -#: appGUI/MainGUI.py:740 app_Main.py:10200 +#: appGUI/MainGUI.py:740 app_Main.py:7776 msgid "Opacity" msgstr "Opacidade" -#: appGUI/MainGUI.py:743 app_Main.py:10176 +#: appGUI/MainGUI.py:743 app_Main.py:7752 msgid "Default" msgstr "Padrão" @@ -5068,13 +5067,13 @@ msgstr "Barra de Ferramentas Grade" msgid "Status Toolbar" msgstr "Barra de Ferramentas Editar" -#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7110 -#: app_Main.py:7115 +#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:8046 +#: app_Main.py:8051 msgid "Open Gerber" msgstr "Abrir Gerber" -#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7150 -#: app_Main.py:7155 +#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:8086 +#: app_Main.py:8091 msgid "Open Excellon" msgstr "Abrir Excellon" @@ -5161,7 +5160,7 @@ msgid "Extract Drills Tool" msgstr "Ferramenta Extrair Furos" #: appGUI/MainGUI.py:931 appGUI/MainGUI.py:2086 appGUI/ObjectUI.py:387 -#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2052 +#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2056 msgid "Cutout Tool" msgstr "Ferramenta de Recorte" @@ -5214,17 +5213,17 @@ msgid "Calculators Tool" msgstr "Calculadoras" #: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285 -#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628 +#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:629 msgid "QRCode Tool" msgstr "Ferramenta de QRCode" #: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1137 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1133 msgid "Copper Thieving Tool" msgstr "Ferramenta de Adição de Cobre" #: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281 -#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648 +#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:650 msgid "Fiducials Tool" msgstr "Ferramenta de Fiduciais" @@ -5243,7 +5242,7 @@ msgid "Invert Gerber Tool" msgstr "Ferramenta Inverter Gerber" #: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284 -#: appTools/ToolCorners.py:297 +#: appTools/ToolCorners.py:298 msgid "Corner Markers Tool" msgstr "Ferramenta Marcadores de Canto" @@ -5434,8 +5433,8 @@ msgstr "Alternar a exibição do eixo na tela" #: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:899 #: appGUI/preferences/PreferencesUIManager.py:992 #: appGUI/preferences/PreferencesUIManager.py:1020 -#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5585 -#: app_Main.py:5590 app_Main.py:5605 +#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5508 +#: app_Main.py:5513 app_Main.py:5528 msgid "Preferences" msgstr "Preferências" @@ -5473,21 +5472,21 @@ msgstr "" msgid "TCL Shell" msgstr "Mostrar Shell" -#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 +#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:9017 msgid "Project" msgstr "Projeto" #: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:3791 -#: appGUI/MainGUI.py:3797 app_Main.py:2480 app_Main.py:7001 +#: appGUI/MainGUI.py:3797 app_Main.py:2489 app_Main.py:8825 msgid "Plot Area" msgstr "Área de Gráfico" -#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1169 -#: appTools/ToolCorners.py:317 appTools/ToolEtchCompensation.py:291 -#: appTools/ToolExtractDrills.py:453 appTools/ToolFiducials.py:873 +#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1165 +#: appTools/ToolCorners.py:318 appTools/ToolEtchCompensation.py:291 +#: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:875 #: appTools/ToolInvertGerber.py:215 appTools/ToolIsolation.py:2986 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:721 -#: appTools/ToolQRCode.py:659 appTools/ToolRulesCheck.py:1165 +#: appTools/ToolQRCode.py:660 appTools/ToolRulesCheck.py:1165 #: appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:643 msgid "GERBER" msgstr "Gerber" @@ -5575,9 +5574,9 @@ msgstr "Alternar Visibilidade" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:526 -#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:929 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2014 appTools/ToolDblSided.py:528 +#: appTools/ToolDblSided.py:769 appTools/ToolFilm.py:929 #: appTools/ToolFilm.py:952 appTools/ToolImage.py:136 appTools/ToolImage.py:191 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 @@ -5595,9 +5594,9 @@ msgstr "Geometria" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:892 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolDblSided.py:527 appTools/ToolDblSided.py:724 -#: appTools/ToolDblSided.py:766 appTools/ToolFilm.py:1207 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:768 appTools/ToolFilm.py:1207 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:805 appTools/ToolNCC.py:4323 appTools/ToolPaint.py:167 #: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147 @@ -5675,7 +5674,7 @@ msgstr "Editor Exc" msgid "Add Drill" msgstr "Adicionar Furo" -#: appGUI/MainGUI.py:1581 app_Main.py:2291 +#: appGUI/MainGUI.py:1581 app_Main.py:2300 msgid "Close Editor" msgstr "Fechar Editor" @@ -5701,8 +5700,8 @@ msgstr "Você tem certeza de que deseja excluir as configurações da GUI? \n" #: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:931 #: appGUI/preferences/PreferencesUIManager.py:1177 appTranslation.py:111 -#: appTranslation.py:213 app_Main.py:2295 app_Main.py:3390 app_Main.py:5815 -#: app_Main.py:6899 +#: appTranslation.py:213 app_Main.py:2304 app_Main.py:3313 app_Main.py:5738 +#: app_Main.py:8723 msgid "Yes" msgstr "Sim" @@ -5714,7 +5713,7 @@ msgstr "Sim" #: appTools/ToolDrilling.py:2090 appTools/ToolIsolation.py:3066 #: appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3935 #: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 -#: app_Main.py:2296 app_Main.py:3391 app_Main.py:5816 app_Main.py:6900 +#: app_Main.py:2305 app_Main.py:3314 app_Main.py:5739 app_Main.py:8724 msgid "No" msgstr "Não" @@ -5804,7 +5803,7 @@ msgstr "Adicionar ferramenta cancelado ..." msgid "Distance Tool exit..." msgstr "Sair da ferramenta de medição ..." -#: appGUI/MainGUI.py:3725 app_Main.py:3378 +#: appGUI/MainGUI.py:3725 app_Main.py:3301 msgid "Application is saving the project. Please wait ..." msgstr "O aplicativo está salvando o projeto. Por favor, espere ..." @@ -5848,7 +5847,7 @@ msgstr "Novo Gerber" msgid "Edit Object (if selected)" msgstr "Editar Objeto (se selecionado)" -#: appGUI/MainGUI.py:4261 app_Main.py:6115 +#: appGUI/MainGUI.py:4261 app_Main.py:6038 msgid "Grid On/Off" msgstr "Liga/Desliga a Grade" @@ -5919,7 +5918,7 @@ msgstr "Abrir Gerber" msgid "New Project" msgstr "Novo Projeto" -#: appGUI/MainGUI.py:4270 app_Main.py:7229 app_Main.py:7232 +#: appGUI/MainGUI.py:4270 app_Main.py:8166 app_Main.py:8169 msgid "Open Project" msgstr "Abrir Projeto" @@ -6343,7 +6342,7 @@ msgstr "Opções de Gráfico" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1290 +#: appTools/ToolCopperThieving.py:1286 msgid "Solid" msgstr "Preenchido" @@ -6514,15 +6513,15 @@ msgstr "" msgid "Resulting geometry will have rounded corners." msgstr "A geometria resultante terá cantos arredondados." -#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2287 -#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444 +#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2291 +#: appTools/ToolCutOut.py:2306 appTools/ToolIsolation.py:3444 #: appTools/ToolNCC.py:4372 appTools/ToolPaint.py:3178 msgid "Generate Geometry" msgstr "Gerar Geometria" #: appGUI/ObjectUI.py:478 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:782 +#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:783 msgid "Bounding Box" msgstr "Caixa Delimitadora" @@ -6875,7 +6874,7 @@ msgstr "" msgid "Add from DB" msgstr "Adicionar do BD" -#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2071 +#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2075 #: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3122 #: appTools/ToolNCC.py:3996 appTools/ToolPaint.py:2898 msgid "Search and Add" @@ -6889,7 +6888,7 @@ msgstr "" "Adicione uma nova ferramenta à Tabela de Ferramentas\n" "com o diâmetro especificado." -#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2083 +#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2087 #: appTools/ToolIsolation.py:65 appTools/ToolIsolation.py:3133 #: appTools/ToolNCC.py:4007 appTools/ToolPaint.py:2909 #, fuzzy @@ -6897,7 +6896,7 @@ msgstr "" msgid "Pick from DB" msgstr "Adicionar do BD" -#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2086 +#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2090 #: appTools/ToolIsolation.py:3136 appTools/ToolNCC.py:4010 #: appTools/ToolPaint.py:2912 #, fuzzy @@ -6993,7 +6992,7 @@ msgstr "O ângulo da ponta da ferramenta em forma de V, em graus." #: appGUI/ObjectUI.py:1216 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2107 +#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2111 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -7005,7 +7004,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 -#: appTools/ToolCutOut.py:2125 appTools/ToolDrilling.py:2164 +#: appTools/ToolCutOut.py:2129 appTools/ToolDrilling.py:2164 #: appTools/ToolMilling.py:1814 msgid "Multi-Depth" msgstr "Multi-Profundidade" @@ -7699,12 +7698,12 @@ msgstr "" #: appGUI/ObjectUI.py:2177 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: appTools/ToolCutOut.py:2324 appTools/ToolFiducials.py:801 +#: appTools/ToolCutOut.py:2328 appTools/ToolFiducials.py:803 msgid "Manual" msgstr "Manual" #: appGUI/ObjectUI.py:2178 -#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:9736 +#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:7312 #, fuzzy #| msgid "Grids" msgid "Grid" @@ -8048,7 +8047,7 @@ msgstr "Alinhamento" msgid "Align Left" msgstr "Esquerda" -#: appGUI/ObjectUI.py:2860 app_Main.py:4999 +#: appGUI/ObjectUI.py:2860 app_Main.py:4922 msgid "Center" msgstr "Centro" @@ -8137,7 +8136,7 @@ msgid "Preferences default values are restored." msgstr "Os valores padrão das preferências são restaurados." #: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 -#: app_Main.py:2696 +#: app_Main.py:9396 msgid "Failed to write defaults to file." msgstr "Falha ao gravar os padrões no arquivo." @@ -8187,10 +8186,10 @@ msgstr "Opções Avançadas" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1188 -#: appTools/ToolCorners.py:377 appTools/ToolEtchCompensation.py:356 -#: appTools/ToolFiducials.py:763 appTools/ToolInvertGerber.py:228 -#: appTools/ToolQRCode.py:695 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1184 +#: appTools/ToolCorners.py:378 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolFiducials.py:765 appTools/ToolInvertGerber.py:228 +#: appTools/ToolQRCode.py:696 msgid "Parameters" msgstr "Parâmetros" @@ -8311,7 +8310,7 @@ msgid "G-code Decimals" msgstr "Decimais de código G" #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:682 +#: appTools/ToolFiducials.py:684 msgid "Coordinates" msgstr "Coordenadas" @@ -9067,7 +9066,7 @@ msgstr "Configurações do Aplicativo" msgid "Grid Settings" msgstr "Configurações de Grade" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:9744 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:7320 msgid "X value" msgstr "Valor X" @@ -9075,7 +9074,7 @@ msgstr "Valor X" 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 app_Main.py:9747 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:7323 msgid "Y value" msgstr "Valor Y" @@ -9122,14 +9121,14 @@ msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: appTools/ToolFilm.py:1274 app_Main.py:9764 +#: appTools/ToolFilm.py:1274 app_Main.py:7340 msgid "Portrait" msgstr "Retrato" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: appTools/ToolFilm.py:1275 app_Main.py:9766 +#: appTools/ToolFilm.py:1275 app_Main.py:7342 msgid "Landscape" msgstr "Paisagem" @@ -9149,7 +9148,7 @@ msgstr "" "e inclui as guias Projeto, Selecionado e Ferramenta." #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -#: appTools/ToolDblSided.py:666 appTools/ToolDblSided.py:838 app_Main.py:9752 +#: appTools/ToolDblSided.py:668 appTools/ToolDblSided.py:840 app_Main.py:7328 msgid "Axis" msgstr "Eixo" @@ -9169,7 +9168,7 @@ msgstr "" "Define o tamanho da fonte da caixa de texto\n" "de elementos da GUI usados no aplicativo." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:9769 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:7345 msgid "HUD" msgstr "HUD" @@ -10234,8 +10233,8 @@ msgid "\"Follow\"" msgstr "\"Segue\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:579 -#: appTools/ToolCopperThieving.py:776 appTools/ToolCopperThieving.py:788 +#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:578 +#: appTools/ToolCopperThieving.py:775 appTools/ToolCopperThieving.py:787 #: appTools/ToolIsolation.py:1353 appTools/ToolNCC.py:1793 #: appTools/ToolNCC.py:1820 appTools/ToolNCC.py:1928 appTools/ToolNCC.py:1941 #: appTools/ToolNCC.py:2845 appTools/ToolNCC.py:2950 appTools/ToolNCC.py:2965 @@ -10264,7 +10263,7 @@ msgstr "" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102 +#: appTools/ToolFiducials.py:817 appTools/ToolFilm.py:1102 #: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -10548,7 +10547,7 @@ 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:1195 appTools/ToolCopperThieving.py:1530 +#: appTools/ToolCopperThieving.py:1191 appTools/ToolCopperThieving.py:1526 msgid "Clearance" msgstr "Espaço" @@ -10564,7 +10563,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1224 appTools/ToolNCC.py:1351 +#: appTools/ToolCopperThieving.py:1220 appTools/ToolNCC.py:1351 #: appTools/ToolNCC.py:1667 appTools/ToolNCC.py:1731 appTools/ToolNCC.py:2709 #: appTools/ToolNCC.py:2718 appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4436 #: defaults.py:478 tclCommands/TclCommandCopperClear.py:190 @@ -10575,7 +10574,7 @@ msgstr "Própria" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1225 appTools/ToolIsolation.py:819 +#: appTools/ToolCopperThieving.py:1221 appTools/ToolIsolation.py:819 #: appTools/ToolIsolation.py:1435 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1365 appTools/ToolNCC.py:1683 appTools/ToolNCC.py:1738 #: appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4446 appTools/ToolPaint.py:1061 @@ -10587,7 +10586,7 @@ msgstr "Seleção de Área" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolDblSided.py:757 +#: appTools/ToolCopperThieving.py:1222 appTools/ToolDblSided.py:759 #: appTools/ToolIsolation.py:1475 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1384 appTools/ToolNCC.py:1689 appTools/ToolNCC.py:1746 #: appTools/ToolNCC.py:2124 appTools/ToolNCC.py:2358 appTools/ToolNCC.py:2754 @@ -10598,7 +10597,7 @@ msgid "Reference Object" msgstr "Objeto de Referência" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1224 msgid "Reference:" msgstr "Referência:" @@ -10621,24 +10620,24 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1270 appTools/ToolExtractDrills.py:494 -#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:770 +#: appTools/ToolCopperThieving.py:1266 appTools/ToolExtractDrills.py:495 +#: appTools/ToolExtractDrills.py:633 appTools/ToolPunchGerber.py:770 #: appTools/ToolPunchGerber.py:925 msgid "Rectangular" msgstr "Retangular" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1271 +#: appTools/ToolCopperThieving.py:1267 msgid "Minimal" msgstr "Mínima" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1273 appTools/ToolFilm.py:954 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolFilm.py:954 msgid "Box Type:" msgstr "Tipo de Caixa:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1275 +#: appTools/ToolCopperThieving.py:1271 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10647,27 +10646,27 @@ msgstr "" "- 'Mínima' - a caixa delimitadora terá a forma convexa do casco." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1291 +#: appTools/ToolCopperThieving.py:1287 msgid "Dots Grid" msgstr "Pontos" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1292 +#: appTools/ToolCopperThieving.py:1288 msgid "Squares Grid" msgstr "Quadrados" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1293 +#: appTools/ToolCopperThieving.py:1289 msgid "Lines Grid" msgstr "Linhas" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1295 +#: appTools/ToolCopperThieving.py:1291 msgid "Fill Type:" msgstr "Tipo de Preenchimento:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1297 +#: appTools/ToolCopperThieving.py:1293 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10680,57 +10679,57 @@ msgstr "" "- 'Linhas' - a área vazia será preenchida com um padrão de linhas." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1316 +#: appTools/ToolCopperThieving.py:1312 msgid "Dots Grid Parameters" msgstr "Parâmetros dos Pontos" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1322 +#: appTools/ToolCopperThieving.py:1318 msgid "Dot diameter in Dots Grid." msgstr "Diâmetro dos Pontos." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1335 +#: appTools/ToolCopperThieving.py:1331 msgid "Distance between each two dots in Dots Grid." msgstr "Distância entre dois pontos." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1356 +#: appTools/ToolCopperThieving.py:1352 msgid "Squares Grid Parameters" msgstr "Parâmetros dos Quadrados" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1362 +#: appTools/ToolCopperThieving.py:1358 msgid "Square side size in Squares Grid." msgstr "Lado do quadrado." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1375 +#: appTools/ToolCopperThieving.py:1371 msgid "Distance between each two squares in Squares Grid." msgstr "Distância entre dois quadrados." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1396 +#: appTools/ToolCopperThieving.py:1392 msgid "Lines Grid Parameters" msgstr "Parâmetros das Linhas" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1402 +#: appTools/ToolCopperThieving.py:1398 msgid "Line thickness size in Lines Grid." msgstr "Espessura das Linhas." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1415 +#: appTools/ToolCopperThieving.py:1411 msgid "Distance between each two lines in Lines Grid." msgstr "Distância entre duas linhas." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1453 +#: appTools/ToolCopperThieving.py:1449 msgid "Robber Bar Parameters" msgstr "Parâmetros da Barra" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1455 +#: appTools/ToolCopperThieving.py:1451 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10739,34 +10738,34 @@ msgstr "" "Barra = borda de cobre para ajudar no revestimento do furo do padrão." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1463 +#: appTools/ToolCopperThieving.py:1459 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:1474 appTools/ToolCorners.py:384 +#: appTools/ToolCopperThieving.py:1470 appTools/ToolCorners.py:385 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Espessura" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1476 +#: appTools/ToolCopperThieving.py:1472 msgid "The robber bar thickness." msgstr "Espessura da barra." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1507 +#: appTools/ToolCopperThieving.py:1503 msgid "Pattern Plating Mask" msgstr "Máscara do Revestimento Padrão" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1509 +#: appTools/ToolCopperThieving.py:1505 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:1532 +#: appTools/ToolCopperThieving.py:1528 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10783,8 +10782,8 @@ msgstr "Opções da Ferramenta de Calibração" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1190 appTools/ToolCorners.py:379 -#: appTools/ToolFiducials.py:765 +#: appTools/ToolCopperThieving.py:1186 appTools/ToolCorners.py:380 +#: appTools/ToolFiducials.py:767 msgid "Parameters used for this tool." msgstr "Parâmetros usados para esta ferramenta." @@ -10874,12 +10873,12 @@ msgstr "" "- canto inferior direito -> o usuário alinhará o PCB horizontalmente" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: appTools/ToolCalibration.py:854 app_Main.py:4996 +#: appTools/ToolCalibration.py:854 app_Main.py:4919 msgid "Top-Left" msgstr "Esquerda Superior" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: appTools/ToolCalibration.py:855 app_Main.py:4997 +#: appTools/ToolCalibration.py:855 app_Main.py:4920 msgid "Bottom-Right" msgstr "Direita Inferior" @@ -10889,13 +10888,13 @@ msgstr "Opções de Extração de Furos" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:732 +#: appTools/ToolExtractDrills.py:461 appTools/ToolPunchGerber.py:732 msgid "Processed Pads Type" msgstr "Tipo de Pads Processados" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:734 +#: appTools/ToolExtractDrills.py:463 appTools/ToolPunchGerber.py:734 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -10907,7 +10906,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:748 +#: appTools/ToolExtractDrills.py:473 appTools/ToolPunchGerber.py:748 msgid "Process Circular Pads." msgstr "Pads Circulares." @@ -10915,26 +10914,26 @@ msgstr "Pads Circulares." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606 +#: appTools/ToolExtractDrills.py:479 appTools/ToolExtractDrills.py:607 #: appTools/ToolPunchGerber.py:754 appTools/ToolPunchGerber.py:899 msgid "Oblong" msgstr "Oblongo" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:756 +#: appTools/ToolExtractDrills.py:481 appTools/ToolPunchGerber.py:756 msgid "Process Oblong Pads." msgstr "Pads Oblongos." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:764 +#: appTools/ToolExtractDrills.py:489 appTools/ToolPunchGerber.py:764 msgid "Process Square Pads." msgstr "Pads Quadrados." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:772 +#: appTools/ToolExtractDrills.py:497 appTools/ToolPunchGerber.py:772 msgid "Process Rectangular Pads." msgstr "Pads Retangulares." @@ -10942,15 +10941,15 @@ msgstr "Pads Retangulares." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502 -#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:171 +#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:503 +#: appTools/ToolExtractDrills.py:646 appTools/ToolProperties.py:171 #: appTools/ToolPunchGerber.py:778 appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "Outros" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:780 +#: appTools/ToolExtractDrills.py:505 appTools/ToolPunchGerber.py:780 msgid "Process pads not in the categories above." msgstr "Processa pads fora das categorias acima." @@ -10958,7 +10957,7 @@ msgstr "Processa pads fora das categorias acima." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548 +#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:549 #: appTools/ToolPunchGerber.py:807 appTools/ToolPunchGerber.py:841 msgid "Fixed Diameter" msgstr "Diâmetro Fixo" @@ -10967,19 +10966,19 @@ msgstr "Diâmetro Fixo" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584 +#: appTools/ToolExtractDrills.py:533 appTools/ToolExtractDrills.py:585 #: appTools/ToolPunchGerber.py:808 appTools/ToolPunchGerber.py:871 msgid "Fixed Annular Ring" msgstr "Anel Anular Fixo" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:809 +#: appTools/ToolExtractDrills.py:534 appTools/ToolPunchGerber.py:809 msgid "Proportional" msgstr "Proporcional" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: appTools/ToolExtractDrills.py:522 +#: appTools/ToolExtractDrills.py:523 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -10993,13 +10992,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:851 +#: appTools/ToolExtractDrills.py:559 appTools/ToolPunchGerber.py:851 msgid "Fixed hole diameter." msgstr "Diâmetro fixo." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: appTools/ToolExtractDrills.py:586 appTools/ToolPunchGerber.py:873 +#: appTools/ToolExtractDrills.py:587 appTools/ToolPunchGerber.py:873 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -11011,37 +11010,37 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:888 +#: appTools/ToolExtractDrills.py:596 appTools/ToolPunchGerber.py:888 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:608 appTools/ToolPunchGerber.py:901 +#: appTools/ToolExtractDrills.py:609 appTools/ToolPunchGerber.py:901 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:621 appTools/ToolPunchGerber.py:914 +#: appTools/ToolExtractDrills.py:622 appTools/ToolPunchGerber.py:914 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:634 appTools/ToolPunchGerber.py:927 +#: appTools/ToolExtractDrills.py:635 appTools/ToolPunchGerber.py:927 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:647 appTools/ToolPunchGerber.py:940 +#: appTools/ToolExtractDrills.py:648 appTools/ToolPunchGerber.py:940 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:668 appTools/ToolPunchGerber.py:956 +#: appTools/ToolExtractDrills.py:669 appTools/ToolPunchGerber.py:956 msgid "Proportional Diameter" msgstr "Diâmetro Proporcional" @@ -11052,7 +11051,7 @@ msgstr "Fator" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:967 +#: appTools/ToolExtractDrills.py:680 appTools/ToolPunchGerber.py:967 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -11065,7 +11064,7 @@ msgid "Fiducials Tool Options" msgstr "Opções da Ferramenta de Fiduciais" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: appTools/ToolFiducials.py:772 +#: appTools/ToolFiducials.py:774 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -11076,12 +11075,12 @@ msgstr "" "A abertura da máscara de solda é o dobro disso." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: appTools/ToolFiducials.py:800 +#: appTools/ToolFiducials.py:802 msgid "Auto" msgstr "Auto" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:803 +#: appTools/ToolFiducials.py:805 msgid "Mode:" msgstr "Modo:" @@ -11096,22 +11095,22 @@ msgstr "" "- 'Manual' - colocação manual de fiduciais." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: appTools/ToolFiducials.py:813 +#: appTools/ToolFiducials.py:815 msgid "Up" msgstr "Acima" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: appTools/ToolFiducials.py:814 +#: appTools/ToolFiducials.py:816 msgid "Down" msgstr "Abaixo" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: appTools/ToolFiducials.py:817 +#: appTools/ToolFiducials.py:819 msgid "Second fiducial" msgstr "Segundo fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: appTools/ToolFiducials.py:819 +#: appTools/ToolFiducials.py:821 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -11127,22 +11126,22 @@ msgstr "" "superior direito." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: appTools/ToolFiducials.py:835 +#: appTools/ToolFiducials.py:837 msgid "Cross" msgstr "Cruz" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: appTools/ToolFiducials.py:836 +#: appTools/ToolFiducials.py:838 msgid "Chess" msgstr "Xadrez" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: appTools/ToolFiducials.py:838 +#: appTools/ToolFiducials.py:840 msgid "Fiducial Type" msgstr "Tipo de Fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: appTools/ToolFiducials.py:840 +#: appTools/ToolFiducials.py:842 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -11155,7 +11154,7 @@ msgstr "" "- 'Xadrez' - padrão de xadrez fiducial." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: appTools/ToolFiducials.py:849 +#: appTools/ToolFiducials.py:851 msgid "Line thickness" msgstr "Espessura da linha" @@ -11266,12 +11265,12 @@ msgstr "" "em um arquivo Gerber selecionado ou pode ser exportado como um arquivo." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: appTools/ToolQRCode.py:702 app_Main.py:9732 +#: appTools/ToolQRCode.py:703 app_Main.py:7308 msgid "Version" msgstr "Versão" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: appTools/ToolQRCode.py:704 +#: appTools/ToolQRCode.py:705 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11280,13 +11279,13 @@ msgstr "" "a 40 (caixas 177x177)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: appTools/ToolQRCode.py:715 +#: appTools/ToolQRCode.py:716 msgid "Error correction" msgstr "Correção de erros" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: appTools/ToolQRCode.py:717 appTools/ToolQRCode.py:728 +#: appTools/ToolQRCode.py:718 appTools/ToolQRCode.py:729 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -11302,12 +11301,12 @@ msgstr "" "H = máximo de 30%% dos erros pode ser corrigido." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: appTools/ToolQRCode.py:738 +#: appTools/ToolQRCode.py:739 msgid "Box Size" msgstr "Tamanho da Caixa" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: appTools/ToolQRCode.py:740 +#: appTools/ToolQRCode.py:741 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11316,12 +11315,12 @@ msgstr "" "ajustando o tamanho de cada caixa no código." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: appTools/ToolQRCode.py:751 +#: appTools/ToolQRCode.py:752 msgid "Border Size" msgstr "Tamanho da Borda" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: appTools/ToolQRCode.py:753 +#: appTools/ToolQRCode.py:754 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." @@ -11330,27 +11329,27 @@ msgstr "" "O valor padrão é 4. A largura da folga ao redor do QRCode." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: appTools/ToolQRCode.py:673 +#: appTools/ToolQRCode.py:674 msgid "QRCode Data" msgstr "Dado QRCode" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: appTools/ToolQRCode.py:675 +#: appTools/ToolQRCode.py:676 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:679 +#: appTools/ToolQRCode.py:680 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:764 +#: appTools/ToolQRCode.py:765 msgid "Polarity" msgstr "Polaridade" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: appTools/ToolQRCode.py:766 +#: appTools/ToolQRCode.py:767 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11361,17 +11360,17 @@ msgstr "" "ou de maneira positiva (os quadrados são opacos)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:770 +#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:771 msgid "Negative" msgstr "Negativo" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:771 +#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:772 msgid "Positive" msgstr "Positivo" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: appTools/ToolQRCode.py:773 +#: appTools/ToolQRCode.py:774 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -11385,7 +11384,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: appTools/ToolQRCode.py:784 appTools/ToolQRCode.py:790 +#: appTools/ToolQRCode.py:785 appTools/ToolQRCode.py:791 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -11394,22 +11393,22 @@ msgstr "" "a geometria QRCode, pode ter uma forma arredondada ou quadrada." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: appTools/ToolQRCode.py:818 +#: appTools/ToolQRCode.py:819 msgid "Fill Color" msgstr "Cor de Preenchimento" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: appTools/ToolQRCode.py:820 +#: appTools/ToolQRCode.py:821 msgid "Set the QRCode fill color (squares color)." msgstr "Define a cor de preenchimento do QRCode (cor dos quadrados)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: appTools/ToolQRCode.py:842 +#: appTools/ToolQRCode.py:843 msgid "Back Color" msgstr "Cor de Fundo" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: appTools/ToolQRCode.py:844 +#: appTools/ToolQRCode.py:845 msgid "Set the QRCode background color." msgstr "Define a cor de fundo do QRCode." @@ -11635,7 +11634,7 @@ msgid "Drill dia" msgstr "Diâmetro" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: appTools/ToolDblSided.py:824 appTools/ToolDblSided.py:829 +#: appTools/ToolDblSided.py:826 appTools/ToolDblSided.py:831 msgid "Diameter of the drill for the alignment holes." msgstr "Diâmetro da broca para os furos de alinhamento." @@ -11645,7 +11644,7 @@ msgstr "Alinhar Eixo" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: appTools/ToolDblSided.py:667 appTools/ToolDblSided.py:840 +#: appTools/ToolDblSided.py:669 appTools/ToolDblSided.py:842 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Espelha verticalmente (X) ou horizontalmente (Y)." @@ -11654,12 +11653,12 @@ msgid "Mirror Axis:" msgstr "Espelhar Eixo:" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 -#: appTools/ToolDblSided.py:693 +#: appTools/ToolDblSided.py:695 msgid "Box" msgstr "Caixa" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 -#: appTools/ToolDblSided.py:694 +#: appTools/ToolDblSided.py:696 #, fuzzy #| msgid "Hole Size" msgid "Hole Snap" @@ -11815,12 +11814,12 @@ msgid "Corner Markers Options" msgstr "Opções de marcadores de canto" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:386 +#: appTools/ToolCorners.py:387 msgid "The thickness of the line that makes the corner marker." msgstr "A espessura da linha que forma o marcador de canto." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:400 +#: appTools/ToolCorners.py:401 msgid "The length of the line that makes the corner marker." msgstr "O comprimento da linha que forma o marcador de canto." @@ -11838,7 +11837,7 @@ msgstr "" "o PCB e separá-lo da placa original." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: appTools/ToolCutOut.py:2062 +#: appTools/ToolCutOut.py:2066 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -11849,7 +11848,7 @@ msgid "Object kind" msgstr "Tipo de objeto" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: appTools/ToolCutOut.py:1995 +#: appTools/ToolCutOut.py:1999 msgid "" "Choice of what kind the object we want to cutout is.
    - Single: " "contain a single PCB Gerber outline object.
    - Panel: a panel PCB " @@ -11861,12 +11860,12 @@ msgstr "" "Gerber PCB, composto por muitos contornos PCB individuais." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: appTools/ToolCutOut.py:2001 +#: appTools/ToolCutOut.py:2005 msgid "Single" msgstr "Único" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: appTools/ToolCutOut.py:2002 +#: appTools/ToolCutOut.py:2006 msgid "Panel" msgstr "Painel" @@ -11895,12 +11894,12 @@ msgstr "" "- 8: 2*esquerda + 2*direita + 2*topo + 2*baixo" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 -#: appTools/ToolCutOut.py:2333 +#: appTools/ToolCutOut.py:2337 msgid "Big cursor" msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 -#: appTools/ToolCutOut.py:2335 +#: appTools/ToolCutOut.py:2339 msgid "Use a big cursor when adding manual gaps." msgstr "" @@ -12173,18 +12172,18 @@ msgstr "" "Pode ser um dos quatro pontos da caixa delimitadora de geometria." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:342 appTools/ToolFiducials.py:694 +#: appTools/ToolCorners.py:343 appTools/ToolFiducials.py:696 #: appTools/ToolFilm.py:1065 msgid "Bottom Left" msgstr "Esquerda Inferior" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:350 appTools/ToolFilm.py:1066 +#: appTools/ToolCorners.py:351 appTools/ToolFilm.py:1066 msgid "Top Left" msgstr "Esquerda Superior" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:346 appTools/ToolFilm.py:1067 +#: appTools/ToolCorners.py:347 appTools/ToolFilm.py:1067 msgid "Bottom Right" msgstr "Direita Inferior" @@ -12461,9 +12460,9 @@ msgstr "Progressivo" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:453 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1044 -#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530 -#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:463 app_Main.py:4682 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCorners.py:264 appTools/ToolFiducials.py:532 +#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:464 app_Main.py:4605 msgid "Plotting" msgstr "Plotando" @@ -12654,9 +12653,9 @@ msgstr "Número de linhas do painel desejado" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:891 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2009 appTools/ToolDblSided.py:525 -#: appTools/ToolDblSided.py:765 appTools/ToolFilm.py:928 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:527 +#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:928 #: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 #: appTools/ToolIsolation.py:3339 appTools/ToolIsolation.py:3391 @@ -13284,7 +13283,7 @@ msgid "Export cancelled ..." msgstr "Exportar cancelado ..." #: appObjects/FlatCAMCNCJob.py:1678 appObjects/FlatCAMCNCJob.py:1965 -#: appObjects/FlatCAMScript.py:134 app_Main.py:7830 +#: appObjects/FlatCAMScript.py:134 app_Main.py:6925 msgid "Loading..." msgstr "Lendo..." @@ -13428,7 +13427,7 @@ msgstr "Adicionar Ferramenta do BD" #: appTools/ToolDrilling.py:1021 appTools/ToolIsolation.py:639 #: appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744 #: appTools/ToolMilling.py:779 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 -#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2194 +#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2203 msgid "No Tool Selected" msgstr "Nenhuma Ferramenta Selecionada" @@ -13738,7 +13737,7 @@ msgstr "Objeto renomeado de {old} para {new}" #: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939 #: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951 #: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 -#: app_Main.py:6707 app_Main.py:6713 app_Main.py:6719 app_Main.py:6725 +#: app_Main.py:6630 app_Main.py:6636 app_Main.py:6642 app_Main.py:6648 msgid "selected" msgstr "selecionado" @@ -13908,7 +13907,7 @@ msgid "Click on the START point." msgstr "Clique no ponto INICIAL." #: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276 -#: appTools/ToolDblSided.py:285 +#: appTools/ToolDblSided.py:287 msgid "Cancelled by user request." msgstr "Cancelado por solicitação do usuário." @@ -13922,7 +13921,7 @@ msgid "Or right click to cancel." msgstr "Ou clique esquerdo para cancelar." #: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267 -#: appTools/ToolFiducials.py:718 +#: appTools/ToolFiducials.py:720 msgid "Second Point" msgstr "Segundo Ponto" @@ -14009,32 +14008,32 @@ msgstr "" "Se forem usados dois pontos, assume translação e rotação." #: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1583 -#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394 -#: appTools/ToolDblSided.py:938 appTools/ToolDrilling.py:2649 -#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:702 -#: appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCorners.py:445 appTools/ToolCutOut.py:2398 +#: appTools/ToolDblSided.py:940 appTools/ToolDrilling.py:2649 +#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:703 +#: appTools/ToolFiducials.py:934 appTools/ToolFilm.py:1383 #: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477 #: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4388 #: appTools/ToolOptimal.py:593 appTools/ToolPaint.py:3194 #: appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:996 -#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1620 +#: appTools/ToolQRCode.py:905 appTools/ToolRulesCheck.py:1620 #: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:754 #: appTools/ToolTransform.py:920 msgid "Reset Tool" msgstr "Redefinir Ferramenta" #: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1586 -#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397 -#: appTools/ToolDblSided.py:941 appTools/ToolDrilling.py:2652 -#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:705 -#: appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1582 +#: appTools/ToolCorners.py:448 appTools/ToolCutOut.py:2401 +#: appTools/ToolDblSided.py:943 appTools/ToolDrilling.py:2652 +#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:706 +#: appTools/ToolFiducials.py:937 appTools/ToolFilm.py:1386 #: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480 #: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4391 #: appTools/ToolOptimal.py:596 appTools/ToolPaint.py:3197 #: appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:999 -#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1623 +#: appTools/ToolQRCode.py:908 appTools/ToolRulesCheck.py:1623 #: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:757 #: appTools/ToolTransform.py:923 msgid "Will reset the tool parameters." @@ -14446,30 +14445,30 @@ msgstr "Preenchimento de pontos selecionado." msgid "Squares grid fill selected." msgstr "Preenchimento de quadrados selecionado." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308 -#: appTools/ToolCopperThieving.py:916 appTools/ToolCorners.py:120 -#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141 +#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:307 +#: appTools/ToolCopperThieving.py:914 appTools/ToolCorners.py:120 +#: appTools/ToolDblSided.py:306 appTools/ToolExtractDrills.py:141 #: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464 #: appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:188 #: appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Não há objeto Gerber carregado ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:844 +#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 msgid "Append geometry" msgstr "Anexar geometria" -#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:877 -#: appTools/ToolCopperThieving.py:1022 +#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:876 +#: appTools/ToolCopperThieving.py:1020 msgid "Append source file" msgstr "Anexar arquivo fonte" -#: appTools/ToolCopperThieving.py:291 appTools/ToolCopperThieving.py:885 +#: appTools/ToolCopperThieving.py:290 appTools/ToolCopperThieving.py:883 msgid "Copper Thieving Tool done." msgstr "Área de Adição de Cobre." -#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351 -#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917 +#: appTools/ToolCopperThieving.py:317 appTools/ToolCopperThieving.py:350 +#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:918 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 #: appTools/ToolIsolation.py:908 appTools/ToolIsolation.py:1345 @@ -14484,78 +14483,78 @@ msgstr "Área de Adição de Cobre." msgid "Could not retrieve object" msgstr "Não foi possível recuperar o objeto" -#: appTools/ToolCopperThieving.py:379 +#: appTools/ToolCopperThieving.py:378 msgid "Click the end point of the filling area." msgstr "Clique no ponto final da área de preenchimento." -#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511 -#: appTools/ToolCopperThieving.py:570 +#: appTools/ToolCopperThieving.py:506 appTools/ToolCopperThieving.py:510 +#: appTools/ToolCopperThieving.py:569 msgid "Thieving" msgstr "Adição" -#: appTools/ToolCopperThieving.py:518 +#: appTools/ToolCopperThieving.py:517 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Ferramenta de Adição de Cobre iniciada. Lendo parâmetros." -#: appTools/ToolCopperThieving.py:543 +#: appTools/ToolCopperThieving.py:542 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Ferramenta de Adição de Cobre. Preparando polígonos de isolação." -#: appTools/ToolCopperThieving.py:586 +#: appTools/ToolCopperThieving.py:585 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:597 appTools/ToolFilm.py:631 +#: appTools/ToolCopperThieving.py:596 appTools/ToolFilm.py:631 #: appTools/ToolFilm.py:879 appTools/ToolIsolation.py:916 #: appTools/ToolNCC.py:853 appTools/ToolOptimal.py:145 #: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:627 msgid "Working..." msgstr "Trabalhando..." -#: appTools/ToolCopperThieving.py:626 +#: appTools/ToolCopperThieving.py:625 msgid "Geometry not supported for bounding box" msgstr "Geometria não suportada para caixa delimitadora" -#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1681 +#: appTools/ToolCopperThieving.py:631 appTools/ToolNCC.py:1681 #: appTools/ToolNCC.py:1736 appTools/ToolNCC.py:2734 appTools/ToolPaint.py:2457 msgid "No object available." msgstr "Nenhum objeto disponível." -#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1706 +#: appTools/ToolCopperThieving.py:668 appTools/ToolNCC.py:1706 #: appTools/ToolNCC.py:1759 appTools/ToolNCC.py:2776 msgid "The reference object type is not supported." msgstr "O tipo do objeto de referência não é suportado." -#: appTools/ToolCopperThieving.py:674 +#: appTools/ToolCopperThieving.py:673 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Ferramenta de Adição de Cobre. Anexando nova geometria e buffer." -#: appTools/ToolCopperThieving.py:690 +#: appTools/ToolCopperThieving.py:689 msgid "Create geometry" msgstr "Criar Geometria" -#: appTools/ToolCopperThieving.py:896 appTools/ToolCopperThieving.py:900 +#: appTools/ToolCopperThieving.py:894 appTools/ToolCopperThieving.py:898 msgid "P-Plating Mask" msgstr "Máscara de Revestimento Padrão" -#: appTools/ToolCopperThieving.py:922 +#: appTools/ToolCopperThieving.py:920 msgid "Append PP-M geometry" msgstr "Anexar geometria" -#: appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCopperThieving.py:1036 msgid "Generating Pattern Plating Mask done." msgstr "Geração de Máscara de Revestimento Padrão concluída." -#: appTools/ToolCopperThieving.py:1112 +#: appTools/ToolCopperThieving.py:1108 msgid "Copper Thieving Tool exit." msgstr "Sair da Ferramenta de Adição de Cobre." -#: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 +#: appTools/ToolCopperThieving.py:1167 appTools/ToolFiducials.py:877 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:1197 +#: appTools/ToolCopperThieving.py:1193 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14565,7 +14564,7 @@ msgstr "" "(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:1230 +#: appTools/ToolCopperThieving.py:1226 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 " @@ -14580,12 +14579,12 @@ msgstr "" "- 'Objeto de referência' - fará Copper Thieving dentro da área especificada " "por outro objeto." -#: appTools/ToolCopperThieving.py:1237 appTools/ToolIsolation.py:3385 +#: appTools/ToolCopperThieving.py:1233 appTools/ToolIsolation.py:3385 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3137 msgid "Ref. Type" msgstr "Tipo de Ref" -#: appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1235 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14593,21 +14592,21 @@ 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:1248 appTools/ToolIsolation.py:3396 +#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3396 #: appTools/ToolNCC.py:4327 appTools/ToolPaint.py:3147 msgid "Ref. Object" msgstr "Objeto de Ref" -#: appTools/ToolCopperThieving.py:1250 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1246 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4329 appTools/ToolPaint.py:3149 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:1426 +#: appTools/ToolCopperThieving.py:1422 msgid "Insert Copper thieving" msgstr "Inserir adição de cobre" -#: appTools/ToolCopperThieving.py:1428 +#: appTools/ToolCopperThieving.py:1424 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14615,11 +14614,11 @@ 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:1487 +#: appTools/ToolCopperThieving.py:1483 msgid "Insert Robber Bar" msgstr "Inserir Barra" -#: appTools/ToolCopperThieving.py:1489 +#: appTools/ToolCopperThieving.py:1485 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14631,11 +14630,11 @@ msgstr "" "a uma certa distância.\n" "Necessário ao fazer o padrão de furos." -#: appTools/ToolCopperThieving.py:1513 +#: appTools/ToolCopperThieving.py:1509 msgid "Select Soldermask object" msgstr "Selecionar objeto Máscara de Solda" -#: appTools/ToolCopperThieving.py:1515 +#: appTools/ToolCopperThieving.py:1511 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14645,11 +14644,11 @@ msgstr "" "Será usado como base para\n" "a máscara de revestimento padrão." -#: appTools/ToolCopperThieving.py:1544 +#: appTools/ToolCopperThieving.py:1540 msgid "Plated area" msgstr "Área revestida" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1542 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14667,19 +14666,19 @@ msgstr "" "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:1557 +#: appTools/ToolCopperThieving.py:1553 msgid "mm" msgstr "mm" -#: appTools/ToolCopperThieving.py:1559 +#: appTools/ToolCopperThieving.py:1555 msgid "in" msgstr "in" -#: appTools/ToolCopperThieving.py:1566 +#: appTools/ToolCopperThieving.py:1562 msgid "Generate pattern plating mask" msgstr "Gerar máscara de revestimento padrão" -#: appTools/ToolCopperThieving.py:1568 +#: appTools/ToolCopperThieving.py:1564 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14693,39 +14692,39 @@ msgstr "" msgid "Corners Tool" msgstr "Ferramenta de Canto" -#: appTools/ToolCorners.py:157 +#: appTools/ToolCorners.py:158 msgid "Please select at least a location" msgstr "Selecione pelo menos um local" -#: appTools/ToolCorners.py:292 +#: appTools/ToolCorners.py:293 msgid "Corners Tool exit." msgstr "Sair da Ferramenta de Canto." -#: appTools/ToolCorners.py:319 +#: appTools/ToolCorners.py:320 msgid "The Gerber object to which will be added corner markers." msgstr "Objeto Gerber ao qual serão adicionados marcadores de canto." -#: appTools/ToolCorners.py:335 +#: appTools/ToolCorners.py:336 msgid "Locations" msgstr "Locais" -#: appTools/ToolCorners.py:337 +#: appTools/ToolCorners.py:338 msgid "Locations where to place corner markers." msgstr "Locais onde colocar marcadores de canto." -#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706 +#: appTools/ToolCorners.py:355 appTools/ToolFiducials.py:708 msgid "Top Right" msgstr "Direita Superior" -#: appTools/ToolCorners.py:363 +#: appTools/ToolCorners.py:364 msgid "Toggle ALL" msgstr "Alternar TUDO" -#: appTools/ToolCorners.py:429 +#: appTools/ToolCorners.py:430 msgid "Add Marker" msgstr "Adicionar Marcador" -#: appTools/ToolCorners.py:431 +#: appTools/ToolCorners.py:432 msgid "Will add corner markers to the selected Gerber file." msgstr "Adicionará marcadores de canto ao arquivo Gerber selecionado." @@ -14734,7 +14733,7 @@ msgstr "Adicionará marcadores de canto ao arquivo Gerber selecionado." #: appTools/ToolNCC.py:463 appTools/ToolNCC.py:992 appTools/ToolNCC.py:1130 #: appTools/ToolPaint.py:395 appTools/ToolPaint.py:686 #: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131 -#: appTools/ToolSolderPaste.py:464 app_Main.py:4496 +#: appTools/ToolSolderPaste.py:464 app_Main.py:4419 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 " @@ -14786,18 +14785,18 @@ msgstr "" "Não há objeto selecionado para Recorte.\n" "Selecione um e tente novamente." -#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:926 -#: appTools/ToolCutOut.py:1300 appTools/ToolCutOut.py:1431 +#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:927 +#: appTools/ToolCutOut.py:1303 appTools/ToolCutOut.py:1434 #: 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:568 appTools/ToolCutOut.py:940 +#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:941 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:573 appTools/ToolCutOut.py:944 +#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:945 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " @@ -14805,18 +14804,18 @@ 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:891 appTools/ToolCutOut.py:1260 -#: appTools/ToolCutOut.py:1615 +#: appTools/ToolCutOut.py:892 appTools/ToolCutOut.py:1263 +#: appTools/ToolCutOut.py:1619 #, fuzzy #| msgid "Open GCode file failed." msgid "Mouse bites failed." msgstr "Falha ao abrir o arquivo G-Code." -#: appTools/ToolCutOut.py:899 +#: appTools/ToolCutOut.py:900 msgid "Any form CutOut operation finished." msgstr "Recorte concluído." -#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586 +#: appTools/ToolCutOut.py:922 appTools/ToolDrilling.py:1586 #: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349 #: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326 @@ -14826,38 +14825,38 @@ msgstr "Recorte concluído." msgid "Object not found" msgstr "Objeto não encontrado" -#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187 +#: appTools/ToolCutOut.py:1115 appTools/ToolCutOut.py:1188 msgid "Rectangular cutout with negative margin is not possible." msgstr "Recorte retangular com margem negativa não é possível." -#: appTools/ToolCutOut.py:1268 +#: appTools/ToolCutOut.py:1271 #, fuzzy #| msgid "Any form CutOut operation finished." msgid "Rectangular CutOut operation finished." msgstr "Recorte concluído." -#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316 +#: appTools/ToolCutOut.py:1287 appTools/ToolCutOut.py:1319 msgid "Could not retrieve Geometry object" msgstr "Não foi possível recuperar o objeto Geometria" -#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344 +#: appTools/ToolCutOut.py:1292 appTools/ToolCutOut.py:1347 msgid "Geometry object for manual cutout not found" msgstr "Objeto de geometria para recorte manual não encontrado" -#: appTools/ToolCutOut.py:1292 +#: appTools/ToolCutOut.py:1295 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:1380 +#: appTools/ToolCutOut.py:1383 #, fuzzy #| msgid "Generate the Geometry object." msgid "No tool in the Geometry object." msgstr "Gera o objeto Geometria." -#: appTools/ToolCutOut.py:1401 +#: appTools/ToolCutOut.py:1404 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -14867,11 +14866,11 @@ msgstr "" "Zona adicionada. Clique para iniciar a adição da próxima zona ou clique com " "o botão direito para terminar." -#: appTools/ToolCutOut.py:1413 +#: appTools/ToolCutOut.py:1416 msgid "Could not retrieve Gerber object" msgstr "Não foi possível recuperar o objeto Gerber" -#: appTools/ToolCutOut.py:1418 +#: appTools/ToolCutOut.py:1421 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." @@ -14879,7 +14878,7 @@ msgstr "" "Não há nenhum objeto Gerber selecionado para o Recorte.\n" "Selecione um e tente novamente." -#: appTools/ToolCutOut.py:1424 +#: appTools/ToolCutOut.py:1427 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -14887,36 +14886,36 @@ msgstr "" "O objeto selecionado deve ser do tipo Gerber.\n" "Selecione um arquivo Gerber e tente novamente." -#: appTools/ToolCutOut.py:1459 +#: appTools/ToolCutOut.py:1462 msgid "Geometry not supported for cutout" msgstr "Geometria não suportada para recorte" -#: appTools/ToolCutOut.py:1531 +#: appTools/ToolCutOut.py:1534 msgid "Making manual bridge gap..." msgstr "Fazendo ponte manual..." -#: appTools/ToolCutOut.py:1619 +#: appTools/ToolCutOut.py:1623 msgid "Finished manual adding of gaps." msgstr "" -#: appTools/ToolCutOut.py:1961 +#: appTools/ToolCutOut.py:1965 msgid "Cutout PCB" msgstr "Recorte PCB" -#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513 +#: appTools/ToolCutOut.py:1991 appTools/ToolDblSided.py:515 #: appTools/ToolPanelize.py:652 msgid "Source Object" msgstr "Objeto Fonte" -#: appTools/ToolCutOut.py:1988 +#: appTools/ToolCutOut.py:1992 msgid "Object to be cutout" msgstr "Objeto a ser recortado" -#: appTools/ToolCutOut.py:1993 +#: appTools/ToolCutOut.py:1997 msgid "Kind" msgstr "Tipo" -#: appTools/ToolCutOut.py:2015 +#: appTools/ToolCutOut.py:2019 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -14928,7 +14927,7 @@ msgstr "" "O que estiver selecionado aqui irá ditar o tipo\n" "de objetos que preencherão a caixa de combinação 'Objeto'." -#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125 +#: appTools/ToolCutOut.py:2078 appTools/ToolIsolation.py:3125 #: appTools/ToolNCC.py:3999 appTools/ToolPaint.py:2901 msgid "" "Add a new tool to the Tool Table\n" @@ -14938,27 +14937,27 @@ msgid "" "in the Tools DB then a default tool is added." msgstr "" -#: appTools/ToolCutOut.py:2100 +#: appTools/ToolCutOut.py:2104 msgid "Tool Parameters" msgstr "Parâmetros de Ferramenta" -#: appTools/ToolCutOut.py:2249 +#: appTools/ToolCutOut.py:2253 #, fuzzy #| msgid "Auto" msgid "Automatic" msgstr "Auto" -#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324 +#: appTools/ToolCutOut.py:2253 appTools/ToolCutOut.py:2328 #, fuzzy #| msgid "B. Manual Bridge Gaps" msgid "Bridge Gaps" msgstr "B. Pontes Manuais" -#: appTools/ToolCutOut.py:2251 +#: appTools/ToolCutOut.py:2255 msgid "This section handle creation of automatic bridge gaps." msgstr "Esta seção trata da criação de pontes automáticas." -#: appTools/ToolCutOut.py:2290 +#: appTools/ToolCutOut.py:2294 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -14968,7 +14967,7 @@ msgstr "" "O recorte pode ter qualquer forma.\n" "Útil quando o PCB tem uma forma não retangular." -#: appTools/ToolCutOut.py:2305 +#: appTools/ToolCutOut.py:2309 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -14980,7 +14979,7 @@ msgstr "" "sempre em forma de retângulo e será\n" "a caixa delimitadora do objeto." -#: appTools/ToolCutOut.py:2326 +#: appTools/ToolCutOut.py:2330 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -14990,11 +14989,11 @@ msgstr "" "Isso é feito clicando com o mouse no perímetro do objeto\n" "de Geometria que é usado como objeto de recorte. " -#: appTools/ToolCutOut.py:2342 +#: appTools/ToolCutOut.py:2346 msgid "Generate Manual Geometry" msgstr "Gerar Geometria Manual" -#: appTools/ToolCutOut.py:2345 +#: appTools/ToolCutOut.py:2349 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -15006,21 +15005,21 @@ msgstr "" "para ser usado como recorte, caso ainda não exista.\n" "Selecione o arquivo Gerber de origem na combobox do objeto." -#: appTools/ToolCutOut.py:2365 +#: appTools/ToolCutOut.py:2369 #, fuzzy #| msgid "Subtract Geometry" msgid "Manual cutout Geometry" msgstr "Subtrair Geometria" -#: appTools/ToolCutOut.py:2367 +#: appTools/ToolCutOut.py:2371 msgid "Geometry object used to create the manual cutout." msgstr "Objeto de geometria usado para criar o recorte manual." -#: appTools/ToolCutOut.py:2374 +#: appTools/ToolCutOut.py:2378 msgid "Manual Add Bridge Gaps" msgstr "Adicionar Pontes Manuais" -#: appTools/ToolCutOut.py:2377 +#: appTools/ToolCutOut.py:2381 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -15062,33 +15061,33 @@ msgstr "" "Não há Coordenadas para usar no Furo de Alinhamento. Adicione-as e tente " "novamente." -#: appTools/ToolDblSided.py:213 +#: appTools/ToolDblSided.py:215 msgid "Excellon object with alignment drills created..." msgstr "Objeto Excellon com furos de alinhamento criado ..." -#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209 +#: appTools/ToolDblSided.py:226 appTools/ToolPunchGerber.py:209 msgid "There is no Excellon object loaded ..." msgstr "Não há objeto Excellon carregado ..." -#: appTools/ToolDblSided.py:236 +#: appTools/ToolDblSided.py:238 msgid "Click on canvas within the desired Excellon drill hole" msgstr "" -#: appTools/ToolDblSided.py:280 +#: appTools/ToolDblSided.py:282 #, fuzzy #| msgid "Mirror Reference point" msgid "Mirror reference point set." msgstr "Referência do Espelhamento" -#: appTools/ToolDblSided.py:308 +#: appTools/ToolDblSided.py:310 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "Apenas objetos Gerber, Excellon e Geometria podem ser espelhados." -#: appTools/ToolDblSided.py:320 +#: appTools/ToolDblSided.py:322 msgid "There is no Box object loaded ..." msgstr "Não há objeto Caixa carregado ..." -#: appTools/ToolDblSided.py:330 +#: appTools/ToolDblSided.py:332 msgid "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." @@ -15096,31 +15095,31 @@ msgstr "" "Faltando as Coordenadas do 'Ponto'. Adicione as coordenadas e tente " "novamente ..." -#: appTools/ToolDblSided.py:337 camlib.py:2401 +#: appTools/ToolDblSided.py:339 camlib.py:2401 msgid "Object was mirrored" msgstr "O objeto foi espelhado" -#: appTools/ToolDblSided.py:403 app_Main.py:4635 app_Main.py:4790 +#: appTools/ToolDblSided.py:405 app_Main.py:4558 app_Main.py:4713 msgid "Failed. No object(s) selected..." msgstr "Falha. Nenhum objeto selecionado..." -#: appTools/ToolDblSided.py:487 +#: appTools/ToolDblSided.py:489 msgid "2-Sided PCB" msgstr "PCB de 2 faces" -#: appTools/ToolDblSided.py:514 +#: appTools/ToolDblSided.py:516 msgid "Objects to be mirrored" msgstr "Objetos a espelhar" -#: appTools/ToolDblSided.py:521 +#: appTools/ToolDblSided.py:523 msgid "Select the type of application object to be processed in this tool." msgstr "" -#: appTools/ToolDblSided.py:555 +#: appTools/ToolDblSided.py:557 msgid "Bounds Values" msgstr "Valores Limite" -#: appTools/ToolDblSided.py:557 +#: appTools/ToolDblSided.py:559 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -15128,39 +15127,39 @@ msgstr "" "Selecione na tela o(s) objeto(s)\n" "para o qual calcular valores limites." -#: appTools/ToolDblSided.py:567 +#: appTools/ToolDblSided.py:569 msgid "X min" msgstr "X min" -#: appTools/ToolDblSided.py:569 appTools/ToolDblSided.py:583 +#: appTools/ToolDblSided.py:571 appTools/ToolDblSided.py:585 msgid "Minimum location." msgstr "Localização mínima." -#: appTools/ToolDblSided.py:581 +#: appTools/ToolDblSided.py:583 msgid "Y min" msgstr "Y min" -#: appTools/ToolDblSided.py:595 +#: appTools/ToolDblSided.py:597 msgid "X max" msgstr "X max" -#: appTools/ToolDblSided.py:597 appTools/ToolDblSided.py:611 +#: appTools/ToolDblSided.py:599 appTools/ToolDblSided.py:613 msgid "Maximum location." msgstr "Localização máxima." -#: appTools/ToolDblSided.py:609 +#: appTools/ToolDblSided.py:611 msgid "Y max" msgstr "Y max" -#: appTools/ToolDblSided.py:620 +#: appTools/ToolDblSided.py:622 msgid "Center point coordinates" msgstr "Coordenadas do ponto central" -#: appTools/ToolDblSided.py:622 +#: appTools/ToolDblSided.py:624 msgid "Centroid" msgstr "Centroid" -#: appTools/ToolDblSided.py:624 +#: appTools/ToolDblSided.py:626 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -15168,11 +15167,11 @@ msgstr "" "A localização do ponto central do retângulo\n" "forma delimitadora. Centroid. O formato é (x, y)." -#: appTools/ToolDblSided.py:633 +#: appTools/ToolDblSided.py:635 msgid "Calculate Bounds Values" msgstr "Calcular valores de limitesCalculadoras" -#: appTools/ToolDblSided.py:635 +#: appTools/ToolDblSided.py:637 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" @@ -15182,15 +15181,15 @@ msgstr "" "para a seleção de objetos.\n" "A forma do envelope é paralela ao eixo X, Y." -#: appTools/ToolDblSided.py:660 +#: appTools/ToolDblSided.py:662 msgid "Mirror Operation" msgstr "Operação Espelho" -#: appTools/ToolDblSided.py:661 +#: appTools/ToolDblSided.py:663 msgid "Parameters for the mirror operation" msgstr "Parâmetros para a operação de espelhamento" -#: appTools/ToolDblSided.py:683 +#: appTools/ToolDblSided.py:685 #, fuzzy #| msgid "" #| "The coordinates used as reference for the mirror operation.\n" @@ -15215,11 +15214,11 @@ msgstr "" "- Caixa -> um conjunto de coordenadas (x, y) obtidas do centro da\n" "caixa delimitadora de outro objeto selecionado abaixo" -#: appTools/ToolDblSided.py:703 +#: appTools/ToolDblSided.py:705 msgid "Point coordinates" msgstr "Coords dos pontos" -#: appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:710 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -15233,21 +15232,21 @@ msgstr "" "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:726 +#: appTools/ToolDblSided.py:728 msgid "Object that holds holes that can be picked as reference for mirroring." msgstr "" -#: appTools/ToolDblSided.py:741 +#: appTools/ToolDblSided.py:743 msgid "Pick hole" msgstr "" -#: appTools/ToolDblSided.py:743 +#: appTools/ToolDblSided.py:745 msgid "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." msgstr "" -#: appTools/ToolDblSided.py:759 +#: appTools/ToolDblSided.py:761 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -15257,11 +15256,11 @@ msgstr "" "As coordenadas do centro da caixa delimitadora são usadas\n" "como referência para operação de espelho." -#: appTools/ToolDblSided.py:785 +#: appTools/ToolDblSided.py:787 msgid "Mirror" msgstr "Espelhar" -#: appTools/ToolDblSided.py:787 +#: appTools/ToolDblSided.py:789 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -15270,11 +15269,11 @@ 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:813 +#: appTools/ToolDblSided.py:815 msgid "PCB Alignment" msgstr "Alinhamento PCB" -#: appTools/ToolDblSided.py:815 appTools/ToolDblSided.py:923 +#: appTools/ToolDblSided.py:817 appTools/ToolDblSided.py:925 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -15284,11 +15283,11 @@ msgstr "" "furos de alinhamento especificados e suas\n" "imagens espelhadas." -#: appTools/ToolDblSided.py:822 +#: appTools/ToolDblSided.py:824 msgid "Drill Diameter" msgstr "Diâmetro da Broca" -#: appTools/ToolDblSided.py:857 appTools/ToolDblSided.py:864 +#: appTools/ToolDblSided.py:859 appTools/ToolDblSided.py:866 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -15298,11 +15297,11 @@ msgstr "" "do primeiro furo de alinhamento, fazendo espelho.\n" "Pode ser modificado na seção Parâmetros de espelho -> Referência" -#: appTools/ToolDblSided.py:877 +#: appTools/ToolDblSided.py:879 msgid "Alignment Drill Coordinates" msgstr "Coords Furos de Alinhamento" -#: appTools/ToolDblSided.py:879 +#: appTools/ToolDblSided.py:881 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -15320,11 +15319,11 @@ msgstr "" "- uma furo na posição espelhada sobre o eixo selecionado acima no 'Alinhar " "eixo'." -#: appTools/ToolDblSided.py:887 +#: appTools/ToolDblSided.py:889 msgid "Drill coordinates" msgstr "Coordenadas dos furos" -#: appTools/ToolDblSided.py:894 +#: appTools/ToolDblSided.py:896 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -15351,15 +15350,15 @@ msgstr "" "clicar no campo e em Colar.\n" "- inserindo as coordenadas manualmente no formato: (x1, y1), (x2, y2), ..." -#: appTools/ToolDblSided.py:909 +#: appTools/ToolDblSided.py:911 msgid "Delete Last" msgstr "Excluir Último" -#: appTools/ToolDblSided.py:911 +#: appTools/ToolDblSided.py:913 msgid "Delete the last coordinates tuple in the list." msgstr "Exclua a última dupla de coordenadas da lista." -#: appTools/ToolDblSided.py:921 +#: appTools/ToolDblSided.py:923 msgid "Create Excellon Object" msgstr "Criar Objeto Excellon" @@ -15757,15 +15756,15 @@ msgstr "" msgid "No drills extracted. Try different parameters." msgstr "Nenhum furo extraído. Tente parâmetros diferentes." -#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687 +#: appTools/ToolExtractDrills.py:421 appTools/ToolExtractDrills.py:688 msgid "Extract Drills" msgstr "Extrair Furos" -#: appTools/ToolExtractDrills.py:454 +#: appTools/ToolExtractDrills.py:455 msgid "Gerber from which to extract drill holes" msgstr "Objeto para extrair furos" -#: appTools/ToolExtractDrills.py:689 +#: appTools/ToolExtractDrills.py:690 msgid "Extract drills from a given Gerber file." msgstr "Extrai furos de um arquivo Gerber." @@ -15773,29 +15772,29 @@ msgstr "Extrai furos de um arquivo Gerber." msgid "Click to add first Fiducial. Bottom Left..." msgstr "Clique para adicionar o primeiro Fiducial. Inferior Esquerdo..." -#: appTools/ToolFiducials.py:501 +#: appTools/ToolFiducials.py:503 msgid "Click to add the last fiducial. Top Right..." msgstr "Clique para adicionar o último fiducial. Superior Direito..." -#: appTools/ToolFiducials.py:506 +#: appTools/ToolFiducials.py:508 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:509 appTools/ToolFiducials.py:518 +#: appTools/ToolFiducials.py:511 appTools/ToolFiducials.py:520 msgid "Done. All fiducials have been added." msgstr "Feito. Todos os fiduciais foram adicionados." -#: appTools/ToolFiducials.py:595 +#: appTools/ToolFiducials.py:597 msgid "Fiducials Tool exit." msgstr "Sair da ferramenta de fiduciais." -#: appTools/ToolFiducials.py:667 +#: appTools/ToolFiducials.py:669 msgid "Fiducials Coordinates" msgstr "Coordenadas dos Fiduciais" -#: appTools/ToolFiducials.py:669 +#: appTools/ToolFiducials.py:671 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -15803,7 +15802,7 @@ msgstr "" "Uma tabela com as coordenadas dos pontos fiduciais,\n" "no formato (x, y)." -#: appTools/ToolFiducials.py:805 +#: appTools/ToolFiducials.py:807 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -15813,31 +15812,31 @@ msgstr "" "delimitadora.\n" "- 'Manual' - colocação manual de fiduciais." -#: appTools/ToolFiducials.py:851 +#: appTools/ToolFiducials.py:853 msgid "Thickness of the line that makes the fiducial." msgstr "Espessura da linha que faz o fiducial." -#: appTools/ToolFiducials.py:882 +#: appTools/ToolFiducials.py:884 msgid "Add Fiducial" msgstr "Adicionar Fiducial" -#: appTools/ToolFiducials.py:884 +#: appTools/ToolFiducials.py:886 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:900 +#: appTools/ToolFiducials.py:902 msgid "Soldermask Gerber" msgstr "Gerber Máscara de Solda" -#: appTools/ToolFiducials.py:902 +#: appTools/ToolFiducials.py:904 msgid "The Soldermask Gerber object." msgstr "Objeto Gerber de Máscara de Solda." -#: appTools/ToolFiducials.py:914 +#: appTools/ToolFiducials.py:916 msgid "Add Soldermask Opening" msgstr "Adicionar Máscara de Solda" -#: appTools/ToolFiducials.py:916 +#: appTools/ToolFiducials.py:918 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -16030,7 +16029,7 @@ msgstr "Ferramenta de Imagem" msgid "Import IMAGE" msgstr "Importar IMAGEM" -#: appTools/ToolImage.py:142 app_Main.py:8893 app_Main.py:8943 +#: appTools/ToolImage.py:142 app_Main.py:9782 app_Main.py:9832 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -16042,9 +16041,9 @@ msgstr "" msgid "Importing Image" msgstr "Importando Imagem" -#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8921 -#: app_Main.py:8976 app_Main.py:9040 app_Main.py:9103 app_Main.py:9169 -#: app_Main.py:9234 app_Main.py:9291 +#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:9810 +#: app_Main.py:9865 app_Main.py:9929 app_Main.py:9992 app_Main.py:10058 +#: app_Main.py:10123 app_Main.py:10180 msgid "Opened" msgstr "Aberto" @@ -16174,7 +16173,7 @@ msgid "New Tool" msgstr "Nova Ferramenta" #: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:467 -#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4500 +#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4423 msgid "Adding Tool cancelled" msgstr "Adicionar ferramenta cancelada" @@ -16341,7 +16340,7 @@ msgid "Click the end point of the paint area." msgstr "Clique no ponto final da área." #: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3722 -#: appTools/ToolPaint.py:2633 app_Main.py:5779 app_Main.py:5789 +#: appTools/ToolPaint.py:2633 app_Main.py:5702 app_Main.py:5712 msgid "Tool from DB added in Tool Table." msgstr "Ferramenta do Banco de Dados adicionada na Tabela de Ferramentas." @@ -16884,11 +16883,11 @@ msgstr "Abrir PDF cancelado" msgid "Parsing PDF file ..." msgstr "Analisando arquivo PDF ..." -#: appTools/ToolPDF.py:138 app_Main.py:9134 +#: appTools/ToolPDF.py:138 app_Main.py:10023 msgid "Failed to open" msgstr "Falha ao abrir" -#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9083 +#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9972 msgid "No geometry found in file" msgstr "Nenhuma geometria encontrada no arquivo" @@ -17320,7 +17319,7 @@ msgstr "Arquivo PcbWizard .INF carregado." msgid "Main PcbWizard Excellon file loaded." msgstr "Arquivo PcbWizard Excellon carregado." -#: appTools/ToolPcbWizard.py:310 app_Main.py:9063 +#: appTools/ToolPcbWizard.py:310 app_Main.py:9952 msgid "This is not Excellon file." msgstr "Este não é um arquivo Excellon." @@ -17450,9 +17449,9 @@ msgstr "" "Um geralmente possui extensão .DRL e o outro tem extensão .INF." #: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 -#: app_Main.py:4976 app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 -#: app_Main.py:7503 app_Main.py:7545 app_Main.py:7587 app_Main.py:7631 -#: app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 +#: app_Main.py:4899 app_Main.py:8253 app_Main.py:8351 app_Main.py:8391 +#: app_Main.py:8431 app_Main.py:8472 app_Main.py:8513 app_Main.py:8556 +#: app_Main.py:8599 app_Main.py:9058 app_Main.py:9062 msgid "No object selected." msgstr "Nenhum objeto selecionado." @@ -17543,8 +17542,8 @@ msgstr "" "Cria um objeto Gerber a partir do objeto selecionado, dentro\n" "da caixa especificada." -#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485 -#: appTools/ToolQRCode.py:534 +#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:486 +#: appTools/ToolQRCode.py:535 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Cancelado. Não há dados para o QRCode na caixa de texto." @@ -17556,32 +17555,32 @@ msgstr "Gerando Geometria QRCode" msgid "Click on the Destination point ..." msgstr "Clique no ponto de destino ..." -#: appTools/ToolQRCode.py:321 +#: appTools/ToolQRCode.py:322 msgid "QRCode Tool done." msgstr "Ferramenta QRCode pronta." -#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521 +#: appTools/ToolQRCode.py:518 appTools/ToolQRCode.py:522 msgid "Export PNG" msgstr "Exportar PNG" -#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7353 -#: app_Main.py:7357 +#: appTools/ToolQRCode.py:565 appTools/ToolQRCode.py:569 app_Main.py:8284 +#: app_Main.py:8288 msgid "Export SVG" msgstr "Exportar SVG" -#: appTools/ToolQRCode.py:661 +#: appTools/ToolQRCode.py:662 msgid "Gerber Object to which the QRCode will be added." msgstr "Objeto Gerber ao qual o QRCode será adicionado." -#: appTools/ToolQRCode.py:697 +#: appTools/ToolQRCode.py:698 msgid "The parameters used to shape the QRCode." msgstr "Os parâmetros usados para modelar o QRCode." -#: appTools/ToolQRCode.py:797 +#: appTools/ToolQRCode.py:798 msgid "Export QRCode" msgstr "Exportar QRCode" -#: appTools/ToolQRCode.py:799 +#: appTools/ToolQRCode.py:800 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -17589,31 +17588,31 @@ msgstr "" "Mostrar um conjunto de controles que permitem exportar o QRCode\n" "para um arquivo SVG ou PNG." -#: appTools/ToolQRCode.py:838 +#: appTools/ToolQRCode.py:839 msgid "Transparent back color" msgstr "Cor transparente de fundo" -#: appTools/ToolQRCode.py:863 +#: appTools/ToolQRCode.py:864 msgid "Export QRCode SVG" msgstr "Exportar QRCode SVG" -#: appTools/ToolQRCode.py:865 +#: appTools/ToolQRCode.py:866 msgid "Export a SVG file with the QRCode content." msgstr "Exporta um arquivo SVG com o conteúdo QRCode." -#: appTools/ToolQRCode.py:876 +#: appTools/ToolQRCode.py:877 msgid "Export QRCode PNG" msgstr "Exportar QRCode PNG" -#: appTools/ToolQRCode.py:878 +#: appTools/ToolQRCode.py:879 msgid "Export a PNG image file with the QRCode content." msgstr "Exporta um arquivo PNG com o conteúdo QRCode." -#: appTools/ToolQRCode.py:889 +#: appTools/ToolQRCode.py:890 msgid "Insert QRCode" msgstr "Inserir QRCode" -#: appTools/ToolQRCode.py:891 +#: appTools/ToolQRCode.py:892 msgid "Create the QRCode object." msgstr "Cria o objeto QRCode." @@ -18358,7 +18357,7 @@ msgstr "Você tem certeza de que quer alterar o idioma para" msgid "Apply Language ..." msgstr "Aplicar o Idioma ..." -#: appTranslation.py:206 app_Main.py:3383 +#: appTranslation.py:206 app_Main.py:3306 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -18394,43 +18393,43 @@ msgstr "" "Inicialização do Canvas iniciada.\n" "Inicialização do Canvas concluída em" -#: app_Main.py:1596 app_Main.py:7007 +#: app_Main.py:1292 app_Main.py:8831 msgid "New Project - Not saved" msgstr "Novo Projeto - Não salvo" -#: app_Main.py:1702 +#: app_Main.py:1711 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." -#: app_Main.py:1769 +#: app_Main.py:1778 msgid "Open Config file failed." msgstr "Falha ao abrir o arquivo de Configuração." -#: app_Main.py:1784 +#: app_Main.py:1793 msgid "Open Script file failed." msgstr "Falha ao abrir o arquivo de Script." -#: app_Main.py:1810 +#: app_Main.py:1819 msgid "Open Excellon file failed." msgstr "Falha ao abrir o arquivo Excellon." -#: app_Main.py:1823 +#: app_Main.py:1832 msgid "Open GCode file failed." msgstr "Falha ao abrir o arquivo G-Code." -#: app_Main.py:1836 +#: app_Main.py:1845 msgid "Open Gerber file failed." msgstr "Falha ao abrir o arquivo Gerber." -#: app_Main.py:2174 +#: app_Main.py:2183 msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." msgstr "" "Selecione um Objeto Geometria, Gerber, Excellon ou Trabalho CNC para editar." -#: app_Main.py:2189 +#: app_Main.py:2198 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -18440,101 +18439,85 @@ msgstr "" "possível. \n" "Edite apenas uma geometria por vez." -#: app_Main.py:2267 +#: app_Main.py:2276 msgid "EDITOR Area" msgstr "" -#: app_Main.py:2269 +#: app_Main.py:2278 msgid "Editor is activated ..." msgstr "Editor está ativado ..." -#: app_Main.py:2290 +#: app_Main.py:2299 msgid "Do you want to save the edited object?" msgstr "Você quer salvar o objeto editado?" -#: app_Main.py:2331 +#: app_Main.py:2340 msgid "Object empty after edit." msgstr "Objeto vazio após a edição." -#: app_Main.py:2336 app_Main.py:2354 app_Main.py:2385 app_Main.py:2401 +#: app_Main.py:2345 app_Main.py:2363 app_Main.py:2394 app_Main.py:2410 msgid "Editor exited. Editor content saved." msgstr "Editor fechado. Conteúdo salvo." -#: app_Main.py:2405 app_Main.py:2446 +#: app_Main.py:2414 app_Main.py:2455 #, fuzzy #| msgid "Select a Gerber, Geometry or Excellon Object to update." msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update." msgstr "Selecione um objeto Gerber, Geometria ou Excellon para atualizar." -#: app_Main.py:2408 +#: app_Main.py:2417 msgid "is updated, returning to App..." msgstr "está atualizado, retornando ao App..." -#: app_Main.py:2421 +#: app_Main.py:2430 msgid "Editor exited. Editor content was not saved." msgstr "Editor fechado. Conteúdo não salvo." -#: app_Main.py:2469 +#: app_Main.py:2478 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Selecione um objeto Gerber, Geometria ou Excellon para atualizar." -#: app_Main.py:2573 app_Main.py:2577 -msgid "Import FlatCAM Preferences" -msgstr "Importar Preferências do FlatCAM" - -#: app_Main.py:2588 -msgid "Imported Defaults from" -msgstr "Padrões importados de" - -#: app_Main.py:2608 app_Main.py:2614 -msgid "Export FlatCAM Preferences" -msgstr "Exportar Preferências do FlatCAM" - -#: app_Main.py:2634 -msgid "Exported preferences to" -msgstr "Preferências exportadas para" - -#: app_Main.py:2654 app_Main.py:2659 +#: app_Main.py:2586 app_Main.py:2591 msgid "Save to file" msgstr "Salvar em arquivo" -#: app_Main.py:2683 +#: app_Main.py:2615 msgid "Could not load the file." msgstr "Não foi possível carregar o arquivo." -#: app_Main.py:2699 +#: app_Main.py:2631 msgid "Exported file to" msgstr "Arquivo exportado para" -#: app_Main.py:2736 +#: app_Main.py:2668 msgid "Failed to open recent files file for writing." msgstr "Falha ao abrir o arquivo com lista de arquivos recentes para gravação." -#: app_Main.py:2747 +#: app_Main.py:2679 msgid "Failed to open recent projects file for writing." msgstr "Falha ao abrir o arquivo com lista de projetos recentes para gravação." -#: app_Main.py:2802 +#: app_Main.py:2734 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Fabricação de Placas de Circuito Impresso 2D Assistida por Computador" -#: app_Main.py:2803 +#: app_Main.py:2735 msgid "Development" msgstr "Desenvolvimento" -#: app_Main.py:2804 +#: app_Main.py:2736 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: app_Main.py:2805 +#: app_Main.py:2737 msgid "Issue tracker" msgstr "Rastreador de problemas" -#: app_Main.py:2824 +#: app_Main.py:2756 msgid "Licensed under the MIT license" msgstr "Licenciado sob licença do MIT" -#: app_Main.py:2833 +#: app_Main.py:2765 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -18582,7 +18565,7 @@ msgstr "" "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" "THE SOFTWARE." -#: app_Main.py:2855 +#: app_Main.py:2787 msgid "" "Some of the icons used are from the following sources:
    " -#: app_Main.py:2891 +#: app_Main.py:2823 msgid "Splash" msgstr "Abertura" -#: app_Main.py:2897 +#: app_Main.py:2829 msgid "Programmers" msgstr "Programadores" -#: app_Main.py:2903 +#: app_Main.py:2835 msgid "Translators" msgstr "Tradutores" -#: app_Main.py:2909 +#: app_Main.py:2841 msgid "License" msgstr "Licença" -#: app_Main.py:2915 +#: app_Main.py:2847 msgid "Attributions" msgstr "Atribuições" -#: app_Main.py:2938 +#: app_Main.py:2870 msgid "Programmer" msgstr "Programador" -#: app_Main.py:2939 +#: app_Main.py:2871 msgid "Status" msgstr "Status" -#: app_Main.py:2940 app_Main.py:3020 +#: app_Main.py:2872 app_Main.py:2952 msgid "E-mail" msgstr "E-mail" -#: app_Main.py:2943 +#: app_Main.py:2875 msgid "Program Author" msgstr "Autor do Programa" -#: app_Main.py:2948 +#: app_Main.py:2880 msgid "BETA Maintainer >= 2019" msgstr "Mantenedor BETA >= 2019" -#: app_Main.py:3017 +#: app_Main.py:2949 msgid "Language" msgstr "Idioma" -#: app_Main.py:3018 +#: app_Main.py:2950 msgid "Translator" msgstr "Tradutor" -#: app_Main.py:3019 +#: app_Main.py:2951 msgid "Corrections" msgstr "Correções" -#: app_Main.py:3104 +#: app_Main.py:3036 msgid "Important Information's" msgstr "Informações Importantes" -#: app_Main.py:3152 +#: app_Main.py:3084 #, python-format msgid "This program is %s and free in a very wide meaning of the word." msgstr "" "Este programa é %s e gratuito, com um significado muito amplo da palavra." -#: app_Main.py:3153 +#: app_Main.py:3085 msgid "Yet it cannot evolve without contributions." msgstr "No entanto, não pode evoluir sem contribuições ." -#: app_Main.py:3154 +#: app_Main.py:3086 msgid "If you want to see this application grow and become better and better" msgstr "Se você quiser ver esse aplicativo crescer e se tornar cada vez melhor" -#: app_Main.py:3155 +#: app_Main.py:3087 msgid "you can contribute to the development yourself by:" msgstr "você pode contribuir para o desenvolvimento por:" -#: app_Main.py:3156 +#: app_Main.py:3088 msgid "Pull Requests on the Bitbucket repository, if you are a developer" msgstr "Solicitações Pull no repositório Bitbucket, se você é um desenvolvedor" -#: app_Main.py:3158 +#: app_Main.py:3090 msgid "Bug Reports by providing the steps required to reproduce the bug" msgstr "" "Relatórios de erros, fornecendo as etapas necessárias para reproduzir o erro" -#: app_Main.py:3189 +#: app_Main.py:3121 msgid "Contribute" msgstr "Contribuir" -#: app_Main.py:3212 +#: app_Main.py:3144 msgid "Links Exchange" msgstr "Troca de Links" -#: app_Main.py:3224 app_Main.py:3243 +#: app_Main.py:3156 app_Main.py:3175 msgid "Soon ..." msgstr "Em breve ..." -#: app_Main.py:3231 +#: app_Main.py:3163 msgid "How To's" msgstr "How To's" -#: app_Main.py:3343 +#: app_Main.py:3275 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -18723,33 +18706,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." -#: app_Main.py:3350 +#: app_Main.py:3282 msgid "Alternative website" msgstr "Site alternativo" -#: app_Main.py:3701 +#: app_Main.py:3624 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "" "As extensões de arquivo Excellon selecionadas foram registradas para o " "FlatCAM." -#: app_Main.py:3723 +#: app_Main.py:3646 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "" "As extensões de arquivo G-Code selecionadas foram registradas para o FlatCAM." -#: app_Main.py:3745 +#: app_Main.py:3668 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "" "As extensões de arquivo Gerber selecionadas foram registradas para o FlatCAM." -#: app_Main.py:3933 app_Main.py:3994 app_Main.py:4024 +#: app_Main.py:3856 app_Main.py:3917 app_Main.py:3947 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" -#: app_Main.py:3942 +#: app_Main.py:3865 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 " @@ -18765,47 +18748,47 @@ msgstr "" "perdidas e o resultado pode não ser o esperado.\n" "Verifique o G-CODE gerado." -#: app_Main.py:3956 app_Main.py:3966 +#: app_Main.py:3879 app_Main.py:3889 msgid "Geometry merging finished" msgstr "Fusão de geometria concluída" -#: app_Main.py:3989 +#: app_Main.py:3912 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Falha. A união de Excellon funciona apenas em objetos Excellon." -#: app_Main.py:4001 +#: app_Main.py:3924 msgid "Excellon merging finished" msgstr "Fusão de Excellon concluída" -#: app_Main.py:4019 +#: app_Main.py:3942 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Falha. A união de Gerber funciona apenas em objetos Gerber." -#: app_Main.py:4029 +#: app_Main.py:3952 msgid "Gerber merging finished" msgstr "Fusão de Gerber concluída" -#: app_Main.py:4049 app_Main.py:4086 +#: app_Main.py:3972 app_Main.py:4009 msgid "Failed. Select a Geometry Object and try again." msgstr "Falha. Selecione um Objeto de Geometria e tente novamente." -#: app_Main.py:4053 app_Main.py:4091 +#: app_Main.py:3976 app_Main.py:4014 msgid "Expected a GeometryObject, got" msgstr "Geometria FlatCAM esperada, recebido" -#: app_Main.py:4068 +#: app_Main.py:3991 msgid "A Geometry object was converted to MultiGeo type." msgstr "Um objeto Geometria foi convertido para o tipo MultiGeo." -#: app_Main.py:4106 +#: app_Main.py:4029 msgid "A Geometry object was converted to SingleGeo type." msgstr "Um objeto Geometria foi convertido para o tipo Único." -#: app_Main.py:4339 +#: app_Main.py:4262 msgid "Toggle Units" msgstr "Alternar Unidades" -#: app_Main.py:4343 +#: app_Main.py:4266 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -18817,24 +18800,24 @@ msgstr "" "\n" "Você quer continuar?" -#: app_Main.py:4346 app_Main.py:4509 app_Main.py:4592 app_Main.py:7327 -#: app_Main.py:7343 app_Main.py:7681 app_Main.py:7693 +#: app_Main.py:4269 app_Main.py:4432 app_Main.py:4515 app_Main.py:8259 +#: app_Main.py:8274 app_Main.py:8605 app_Main.py:8617 msgid "Ok" msgstr "Ok" -#: app_Main.py:4396 +#: app_Main.py:4319 msgid "Converted units to" msgstr "Unidades convertidas para" -#: app_Main.py:4436 +#: app_Main.py:4359 msgid "Workspace enabled." msgstr "Área de trabalho habilitada." -#: app_Main.py:4439 +#: app_Main.py:4362 msgid "Workspace disabled." msgstr "Área de trabalho desabilitada." -#: app_Main.py:4503 +#: app_Main.py:4426 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -18842,11 +18825,11 @@ msgstr "" "Adicionar Ferramenta funciona somente no modo Avançado.\n" "Vá em Preferências -> Geral - Mostrar Opções Avançadas." -#: app_Main.py:4585 +#: app_Main.py:4508 msgid "Delete objects" msgstr "Excluir objetos" -#: app_Main.py:4590 +#: app_Main.py:4513 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -18854,86 +18837,86 @@ msgstr "" "Você tem certeza de que deseja excluir permanentemente\n" "os objetos selecionados?" -#: app_Main.py:4633 +#: app_Main.py:4556 msgid "Object(s) deleted" msgstr "Objeto(s) excluído(s)" -#: app_Main.py:4637 +#: app_Main.py:4560 msgid "Save the work in Editor and try again ..." msgstr "Salve o trabalho no Editor e tente novamente ..." -#: app_Main.py:4666 +#: app_Main.py:4589 msgid "Object deleted" msgstr "Objeto excluído" -#: app_Main.py:4693 +#: app_Main.py:4616 msgid "Click to set the origin ..." msgstr "Clique para definir a origem ..." -#: app_Main.py:4715 +#: app_Main.py:4638 msgid "Setting Origin..." msgstr "Definindo Origem..." -#: app_Main.py:4728 app_Main.py:4830 +#: app_Main.py:4651 app_Main.py:4753 msgid "Origin set" msgstr "Origem definida" -#: app_Main.py:4745 +#: app_Main.py:4668 msgid "Origin coordinates specified but incomplete." msgstr "Coordenadas de origem especificadas, mas incompletas." -#: app_Main.py:4786 +#: app_Main.py:4709 msgid "Moving to Origin..." msgstr "Movendo para Origem..." -#: app_Main.py:4867 +#: app_Main.py:4790 msgid "Jump to ..." msgstr "Pular para ..." -#: app_Main.py:4868 +#: app_Main.py:4791 msgid "Enter the coordinates in format X,Y:" msgstr "Digite as coordenadas no formato X,Y:" -#: app_Main.py:4878 +#: app_Main.py:4801 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordenadas erradas. Insira as coordenadas no formato X,Y" -#: app_Main.py:4995 +#: app_Main.py:4918 msgid "Bottom-Left" msgstr "Esquerda Inferior" -#: app_Main.py:4998 +#: app_Main.py:4921 msgid "Top-Right" msgstr "Direita Superior" -#: app_Main.py:5019 +#: app_Main.py:4942 msgid "Locate ..." msgstr "Localizar ..." -#: app_Main.py:5292 app_Main.py:5367 app_Main.py:5530 +#: app_Main.py:5215 app_Main.py:5290 app_Main.py:5453 msgid "No object is selected. Select an object and try again." msgstr "Nenhum objeto está selecionado. Selecione um objeto e tente novamente." -#: app_Main.py:5556 +#: app_Main.py:5479 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 ..." -#: app_Main.py:5562 +#: app_Main.py:5485 msgid "The current task was gracefully closed on user request..." msgstr "" "A tarefa atual foi fechada normalmente mediante solicitação do usuário ..." -#: app_Main.py:5752 +#: app_Main.py:5675 msgid "Tools in Tools Database edited but not saved." msgstr "Ferramenta editada, mas não salva." -#: app_Main.py:5791 +#: app_Main.py:5714 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." -#: app_Main.py:5809 +#: app_Main.py:5732 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -18941,584 +18924,237 @@ msgstr "" "Um ou mais Ferramentas foram editadas.\n" "Você deseja salvar o Banco de Dados de Ferramentas?" -#: app_Main.py:5811 +#: app_Main.py:5734 msgid "Save Tools Database" msgstr "Salvar Banco de Dados" -#: app_Main.py:5857 +#: app_Main.py:5780 msgid "No object selected to Flip on Y axis." msgstr "Nenhum objeto selecionado para Espelhar no eixo Y." -#: app_Main.py:5883 +#: app_Main.py:5806 msgid "Flip on Y axis done." msgstr "Espelhado no eixo Y." -#: app_Main.py:5905 +#: app_Main.py:5828 msgid "No object selected to Flip on X axis." msgstr "Nenhum objeto selecionado para Espelhar no eixo X." -#: app_Main.py:5931 +#: app_Main.py:5854 msgid "Flip on X axis done." msgstr "Espelhado no eixo X." -#: app_Main.py:5953 +#: app_Main.py:5876 msgid "No object selected to Rotate." msgstr "Nenhum objeto selecionado para Girar." -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Transform" msgstr "Transformar" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Enter the Angle value:" msgstr "Digite o valor do Ângulo:" -#: app_Main.py:5986 +#: app_Main.py:5909 msgid "Rotation done." msgstr "Rotação realizada." -#: app_Main.py:5988 +#: app_Main.py:5911 msgid "Rotation movement was not executed." msgstr "O movimento de rotação não foi executado." -#: app_Main.py:6005 +#: app_Main.py:5928 msgid "No object selected to Skew/Shear on X axis." msgstr "Nenhum objeto selecionado para Inclinar no eixo X." -#: app_Main.py:6026 +#: app_Main.py:5949 msgid "Skew on X axis done." msgstr "Inclinação no eixo X concluída." -#: app_Main.py:6042 +#: app_Main.py:5965 msgid "No object selected to Skew/Shear on Y axis." msgstr "Nenhum objeto selecionado para Inclinar no eixo Y." -#: app_Main.py:6063 +#: app_Main.py:5986 msgid "Skew on Y axis done." msgstr "Inclinação no eixo Y concluída." -#: app_Main.py:6145 +#: app_Main.py:6068 msgid "New Grid ..." msgstr "Nova Grade ..." -#: app_Main.py:6146 +#: app_Main.py:6069 msgid "Enter a Grid Value:" msgstr "Digite um valor para grade:" -#: app_Main.py:6154 app_Main.py:6178 +#: app_Main.py:6077 app_Main.py:6101 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." -#: app_Main.py:6159 +#: app_Main.py:6082 msgid "New Grid added" msgstr "Nova Grade adicionada" -#: app_Main.py:6161 +#: app_Main.py:6084 msgid "Grid already exists" msgstr "Grade já existe" -#: app_Main.py:6163 +#: app_Main.py:6086 msgid "Adding New Grid cancelled" msgstr "Adicionar nova grade cancelada" -#: app_Main.py:6184 +#: app_Main.py:6107 msgid " Grid Value does not exist" msgstr " O valor da grade não existe" -#: app_Main.py:6186 +#: app_Main.py:6109 msgid "Grid Value deleted" msgstr "Grade apagada" -#: app_Main.py:6188 +#: app_Main.py:6111 msgid "Delete Grid value cancelled" msgstr "Excluir valor de grade cancelado" -#: app_Main.py:6194 +#: app_Main.py:6117 msgid "Key Shortcut List" msgstr "Lista de Teclas de Atalho" -#: app_Main.py:6231 +#: app_Main.py:6154 msgid " No object selected to copy it's name" msgstr " Nenhum objeto selecionado para copiar nome" -#: app_Main.py:6235 +#: app_Main.py:6158 msgid "Name copied on clipboard ..." msgstr "Nome copiado para a área de transferência..." -#: app_Main.py:6892 -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 "" -"Existem arquivos/objetos abertos no FlatCAM.\n" -"Criar um novo projeto irá apagá-los.\n" -"Você deseja Salvar o Projeto?" - -#: app_Main.py:6915 -msgid "New Project created" -msgstr "Novo Projeto criado" - -#: app_Main.py:7121 app_Main.py:7160 app_Main.py:7204 app_Main.py:7274 -#: app_Main.py:8060 app_Main.py:9304 app_Main.py:9366 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Inicialização do Canvas iniciada.\n" -"Inicialização do Canvas concluída em" - -#: app_Main.py:7123 -msgid "Opening Gerber file." -msgstr "Abrindo Arquivo Gerber." - -#: app_Main.py:7162 -msgid "Opening Excellon file." -msgstr "Abrindo Arquivo Excellon." - -#: app_Main.py:7193 app_Main.py:7198 -msgid "Open G-Code" -msgstr "Abrir G-Code" - -#: app_Main.py:7206 -msgid "Opening G-Code file." -msgstr "Abrindo Arquivo G-Code." - -#: app_Main.py:7265 app_Main.py:7269 -msgid "Open HPGL2" -msgstr "Abrir HPGL2" - -#: app_Main.py:7276 -msgid "Opening HPGL2 file." -msgstr "Abrindo Arquivo HPGL2 ." - -#: app_Main.py:7299 app_Main.py:7302 -msgid "Open Configuration File" -msgstr "Abrir Arquivo de Configuração" - -#: app_Main.py:7322 app_Main.py:7676 -msgid "Please Select a Geometry object to export" -msgstr "Por favor, selecione um objeto Geometria para exportar" - -#: app_Main.py:7338 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Somente objetos Geometria, Gerber e Trabalho CNC podem ser usados." - -#: app_Main.py:7383 -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" - -#: app_Main.py:7389 app_Main.py:7393 -msgid "Export PNG Image" -msgstr "Exportar Imagem PNG" - -#: app_Main.py:7426 app_Main.py:7636 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "" -"Falhou. Somente objetos Gerber podem ser salvos como arquivos Gerber..." - -#: app_Main.py:7438 -msgid "Save Gerber source file" -msgstr "Salvar arquivo fonte Gerber" - -#: app_Main.py:7467 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "Falhou. Somente Scripts podem ser salvos como arquivos Scripts TCL..." - -#: app_Main.py:7479 -msgid "Save Script source file" -msgstr "Salvar arquivo fonte do Script" - -#: app_Main.py:7508 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "" -"Falhou. Somente objetos Documentos podem ser salvos como arquivos " -"Documentos..." - -#: app_Main.py:7520 -msgid "Save Document source file" -msgstr "Salvar o arquivo fonte Documento" - -#: app_Main.py:7550 app_Main.py:7592 app_Main.py:8543 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" -"Falhou. Somente objetos Excellon podem ser salvos como arquivos Excellon..." - -#: app_Main.py:7558 app_Main.py:7563 -msgid "Save Excellon source file" -msgstr "Salvar o arquivo fonte Excellon" - -#: app_Main.py:7600 app_Main.py:7604 -msgid "Export Excellon" -msgstr "Exportar Excellon" - -#: app_Main.py:7644 app_Main.py:7648 -msgid "Export Gerber" -msgstr "Exportar Gerber" - -#: app_Main.py:7688 -msgid "Only Geometry objects can be used." -msgstr "Apenas objetos Geometria podem ser usados." - -#: app_Main.py:7704 app_Main.py:7708 -msgid "Export DXF" -msgstr "Exportar DXF" - -#: app_Main.py:7733 app_Main.py:7736 -msgid "Import SVG" -msgstr "Importar SVG" - -#: app_Main.py:7764 app_Main.py:7768 -msgid "Import DXF" -msgstr "Importar DXF" - -#: app_Main.py:7822 app_Main.py:7826 +#: app_Main.py:6917 app_Main.py:6921 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." -#: app_Main.py:7829 +#: app_Main.py:6924 msgid "Viewing the source code of the selected object." msgstr "Vendo o código fonte do objeto selecionado." -#: app_Main.py:7843 +#: app_Main.py:6938 msgid "Source Editor" msgstr "Editor de Fontes" -#: app_Main.py:7879 app_Main.py:7886 +#: app_Main.py:6974 app_Main.py:6981 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." -#: app_Main.py:7894 +#: app_Main.py:6989 msgid "Failed to load the source code for the selected object" msgstr "Falha ao ler o código fonte do objeto selecionado" -#: app_Main.py:7927 +#: app_Main.py:7022 msgid "Go to Line ..." msgstr "Ir para Linha ..." -#: app_Main.py:7928 +#: app_Main.py:7023 msgid "Line:" msgstr "Linha:" -#: app_Main.py:7955 -msgid "New TCL script file created in Code Editor." -msgstr "Novo arquivo de script TCL criado no Editor de Códigos." - -#: app_Main.py:7994 app_Main.py:7996 app_Main.py:8032 app_Main.py:8034 -msgid "Open TCL script" -msgstr "Abrir script TCL" - -#: app_Main.py:8062 -msgid "Executing ScriptObject file." -msgstr "Executando arquivo de Script FlatCAM." - -#: app_Main.py:8070 app_Main.py:8073 -msgid "Run TCL script" -msgstr "Executar script TCL" - -#: app_Main.py:8096 -msgid "TCL script file opened in Code Editor and executed." -msgstr "Arquivo de script TCL aberto no Editor de Código e executado." - -#: app_Main.py:8147 app_Main.py:8153 -msgid "Save Project As ..." -msgstr "Salvar Projeto Como..." - -#: app_Main.py:8188 -msgid "FlatCAM objects print" -msgstr "Objetos FlatCAM imprimem" - -#: app_Main.py:8201 app_Main.py:8208 -msgid "Save Object as PDF ..." -msgstr "Salvar objeto como PDF ..." - -#: app_Main.py:8217 -msgid "Printing PDF ... Please wait." -msgstr "Imprimindo PDF ... Aguarde." - -#: app_Main.py:8396 -msgid "PDF file saved to" -msgstr "Arquivo PDF salvo em" - -#: app_Main.py:8421 -msgid "Exporting SVG" -msgstr "Exportando SVG" - -#: app_Main.py:8464 -msgid "SVG file exported to" -msgstr "Arquivo SVG exportado para" - -#: app_Main.py:8490 -#, fuzzy -#| msgid "" -#| "Save cancelled because source file is empty. Try to export the Gerber " -#| "file." -msgid "Save cancelled because source file is empty. Try to export the file." -msgstr "" -"Salvar cancelado porque o arquivo de origem está vazio. Tente exportar o " -"arquivo Gerber." - -#: app_Main.py:8641 -msgid "Excellon file exported to" -msgstr "Arquivo Excellon exportado para" - -#: app_Main.py:8650 -msgid "Exporting Excellon" -msgstr "Exportando Excellon" - -#: app_Main.py:8655 app_Main.py:8662 -msgid "Could not export Excellon file." -msgstr "Não foi possível exportar o arquivo Excellon." - -#: app_Main.py:8778 -msgid "Gerber file exported to" -msgstr "Arquivo Gerber exportado para" - -#: app_Main.py:8786 -msgid "Exporting Gerber" -msgstr "Exportando Gerber" - -#: app_Main.py:8791 app_Main.py:8798 -#, fuzzy -#| msgid "Could not export DXF file." -msgid "Could not export file." -msgstr "Não foi possível exportar o arquivo DXF." - -#: app_Main.py:8846 -msgid "DXF file exported to" -msgstr "Arquivo DXF exportado para" - -#: app_Main.py:8855 -msgid "Exporting DXF" -msgstr "Exportando DXF" - -#: app_Main.py:8860 app_Main.py:8867 -msgid "Could not export DXF file." -msgstr "Não foi possível exportar o arquivo DXF." - -#: app_Main.py:8906 -msgid "Importing SVG" -msgstr "Importando SVG" - -#: app_Main.py:8914 app_Main.py:8969 -msgid "Import failed." -msgstr "Importação falhou." - -#: app_Main.py:8961 -msgid "Importing DXF" -msgstr "Importando DXF" - -#: app_Main.py:9002 app_Main.py:9193 app_Main.py:9258 -msgid "Failed to open file" -msgstr "Falha ao abrir o arquivo" - -#: app_Main.py:9005 app_Main.py:9196 app_Main.py:9261 -msgid "Failed to parse file" -msgstr "Falha ao analisar o arquivo" - -#: app_Main.py:9017 -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." - -#: app_Main.py:9022 -msgid "Opening Gerber" -msgstr "Abrindo Gerber" - -#: app_Main.py:9033 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Abrir Gerber falhou. Provavelmente não é um arquivo Gerber." - -#: app_Main.py:9066 -msgid "Cannot open file" -msgstr "Não é possível abrir o arquivo" - -#: app_Main.py:9086 -msgid "Opening Excellon." -msgstr "Abrindo Excellon." - -#: app_Main.py:9096 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "Falha ao abrir Excellon. Provavelmente não é um arquivo Excellon." - -#: app_Main.py:9128 -msgid "Reading GCode file" -msgstr "Lendo Arquivo G-Code" - -#: app_Main.py:9141 -msgid "This is not GCODE" -msgstr "Não é G-Code" - -#: app_Main.py:9146 -msgid "Opening G-Code." -msgstr "Abrindo G-Code." - -#: app_Main.py:9159 -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 "" -"Falha ao criar o objeto Trabalho CNC. Provavelmente não é um arquivo G-" -"Code. Tente ler a usando o menu.\n" -"A tentativa de criar um objeto de Trabalho CNC do arquivo G-Code falhou " -"durante o processamento" - -#: app_Main.py:9215 -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." - -#: app_Main.py:9220 -msgid "Opening HPGL2" -msgstr "Abrindo o HPGL2" - -#: app_Main.py:9227 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " Falha no HPGL2 aberto. Provavelmente não é um arquivo HPGL2." - -#: app_Main.py:9253 -msgid "TCL script file opened in Code Editor." -msgstr "Arquivo de script TCL aberto no Editor de Códigos." - -#: app_Main.py:9273 -msgid "Opening TCL Script..." -msgstr "Abrindo script TCL..." - -#: app_Main.py:9284 -msgid "Failed to open TCL Script." -msgstr "Falha ao abrir o Script TCL." - -#: app_Main.py:9306 -msgid "Opening FlatCAM Config file." -msgstr "Abrindo arquivo de Configuração." - -#: app_Main.py:9334 -msgid "Failed to open config file" -msgstr "Falha ao abrir o arquivo de configuração" - -#: app_Main.py:9363 -msgid "Loading Project ... Please Wait ..." -msgstr "Carregando projeto ... Por favor aguarde ..." - -#: app_Main.py:9368 -msgid "Opening FlatCAM Project file." -msgstr "Abrindo Projeto FlatCAM." - -#: app_Main.py:9383 app_Main.py:9387 app_Main.py:9404 -msgid "Failed to open project file" -msgstr "Falha ao abrir o arquivo de projeto" - -#: app_Main.py:9443 -msgid "Loading Project ... restoring" -msgstr "Carregando projeto ... restaurando" - -#: app_Main.py:9451 -msgid "Project loaded from" -msgstr "Projeto carregado de" - -#: app_Main.py:9477 +#: app_Main.py:7053 msgid "Redrawing all objects" msgstr "Redesenha todos os objetos" -#: app_Main.py:9565 +#: app_Main.py:7141 msgid "Failed to load recent item list." msgstr "Falha ao carregar a lista de itens recentes." -#: app_Main.py:9572 +#: app_Main.py:7148 msgid "Failed to parse recent item list." msgstr "Falha ao analisar a lista de itens recentes." -#: app_Main.py:9582 +#: app_Main.py:7158 msgid "Failed to load recent projects item list." msgstr "Falha ao carregar a lista de projetos recentes." -#: app_Main.py:9589 +#: app_Main.py:7165 msgid "Failed to parse recent project item list." msgstr "Falha ao analisar a lista de projetos recentes." -#: app_Main.py:9650 +#: app_Main.py:7226 msgid "Clear Recent projects" msgstr "Limpar Projetos Recentes" -#: app_Main.py:9674 +#: app_Main.py:7250 msgid "Clear Recent files" msgstr "Limpar Arquivos Recentes" -#: app_Main.py:9730 +#: app_Main.py:7306 #, fuzzy #| msgid "FlatCAM.org" msgid "FlatCAM Evo" msgstr "FlatCAM.org" -#: app_Main.py:9734 +#: app_Main.py:7310 msgid "Release date" msgstr "" -#: app_Main.py:9738 +#: app_Main.py:7314 msgid "Displayed" msgstr "" -#: app_Main.py:9741 +#: app_Main.py:7317 #, fuzzy #| msgid "Snap Max" msgid "Snap" msgstr "Encaixe Max" -#: app_Main.py:9750 +#: app_Main.py:7326 msgid "Canvas" msgstr "" -#: app_Main.py:9755 +#: app_Main.py:7331 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace active" msgstr "Configurações da área de trabalho" -#: app_Main.py:9759 +#: app_Main.py:7335 #, fuzzy #| msgid "Workspace disabled." msgid "Workspace size" msgstr "Área de trabalho desabilitada." -#: app_Main.py:9763 +#: app_Main.py:7339 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace orientation" msgstr "Configurações da área de trabalho" -#: app_Main.py:9826 +#: app_Main.py:7402 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." -#: app_Main.py:9833 +#: app_Main.py:7409 msgid "Could not parse information about latest version." msgstr "Não foi possível analisar informações sobre a versão mais recente." -#: app_Main.py:9843 +#: app_Main.py:7419 msgid "FlatCAM is up to date!" msgstr "O FlatCAM está atualizado!" -#: app_Main.py:9848 +#: app_Main.py:7424 msgid "Newer Version Available" msgstr "Nova Versão Disponível" -#: app_Main.py:9850 +#: app_Main.py:7426 msgid "There is a newer version of FlatCAM available for download:" msgstr "Existe uma versão nova do FlatCAM disponível para download:" -#: app_Main.py:9854 +#: app_Main.py:7430 msgid "info" msgstr "info" -#: app_Main.py:9882 +#: app_Main.py:7458 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -19530,66 +19166,429 @@ msgstr "" "Preferências -> aba Geral.\n" "\n" -#: app_Main.py:9960 +#: app_Main.py:7536 msgid "All plots disabled." msgstr "Todos os gráficos desabilitados." -#: app_Main.py:9967 +#: app_Main.py:7543 msgid "All non selected plots disabled." msgstr "Todos os gráficos não selecionados desabilitados." -#: app_Main.py:9974 +#: app_Main.py:7550 msgid "All plots enabled." msgstr "Todos os gráficos habilitados." -#: app_Main.py:9980 +#: app_Main.py:7556 msgid "Selected plots enabled..." msgstr "Gráficos selecionados habilitados..." -#: app_Main.py:9988 +#: app_Main.py:7564 msgid "Selected plots disabled..." msgstr "Gráficos selecionados desabilitados..." -#: app_Main.py:10021 +#: app_Main.py:7597 msgid "Enabling plots ..." msgstr "Habilitando gráficos..." -#: app_Main.py:10070 +#: app_Main.py:7646 msgid "Disabling plots ..." msgstr "Desabilitando gráficos..." -#: app_Main.py:10093 +#: app_Main.py:7669 msgid "Working ..." msgstr "Trabalhando ..." -#: app_Main.py:10205 +#: app_Main.py:7781 msgid "Set alpha level ..." msgstr "Ajustar nível alfa ..." -#: app_Main.py:10271 +#: app_Main.py:8057 app_Main.py:8096 app_Main.py:8140 app_Main.py:8206 +#: app_Main.py:8932 app_Main.py:10193 app_Main.py:10255 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Inicialização do Canvas iniciada.\n" +"Inicialização do Canvas concluída em" + +#: app_Main.py:8060 +msgid "Opening Gerber file." +msgstr "Abrindo Arquivo Gerber." + +#: app_Main.py:8099 +msgid "Opening Excellon file." +msgstr "Abrindo Arquivo Excellon." + +#: app_Main.py:8129 app_Main.py:8134 +msgid "Open G-Code" +msgstr "Abrir G-Code" + +#: app_Main.py:8143 +msgid "Opening G-Code file." +msgstr "Abrindo Arquivo G-Code." + +#: app_Main.py:8197 app_Main.py:8201 +msgid "Open HPGL2" +msgstr "Abrir HPGL2" + +#: app_Main.py:8209 +msgid "Opening HPGL2 file." +msgstr "Abrindo Arquivo HPGL2 ." + +#: app_Main.py:8232 app_Main.py:8235 +msgid "Open Configuration File" +msgstr "Abrir Arquivo de Configuração" + +#: app_Main.py:8254 app_Main.py:8600 +msgid "Please Select a Geometry object to export" +msgstr "Por favor, selecione um objeto Geometria para exportar" + +#: app_Main.py:8269 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Somente objetos Geometria, Gerber e Trabalho CNC podem ser usados." + +#: app_Main.py:8314 +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" + +#: app_Main.py:8320 app_Main.py:8324 +msgid "Export PNG Image" +msgstr "Exportar Imagem PNG" + +#: app_Main.py:8356 app_Main.py:8561 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "" +"Falhou. Somente objetos Gerber podem ser salvos como arquivos Gerber..." + +#: app_Main.py:8368 +msgid "Save Gerber source file" +msgstr "Salvar arquivo fonte Gerber" + +#: app_Main.py:8396 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "Falhou. Somente Scripts podem ser salvos como arquivos Scripts TCL..." + +#: app_Main.py:8408 +msgid "Save Script source file" +msgstr "Salvar arquivo fonte do Script" + +#: app_Main.py:8436 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "" +"Falhou. Somente objetos Documentos podem ser salvos como arquivos " +"Documentos..." + +#: app_Main.py:8448 +msgid "Save Document source file" +msgstr "Salvar o arquivo fonte Documento" + +#: app_Main.py:8477 app_Main.py:8518 app_Main.py:9437 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" +"Falhou. Somente objetos Excellon podem ser salvos como arquivos Excellon..." + +#: app_Main.py:8485 app_Main.py:8490 +msgid "Save Excellon source file" +msgstr "Salvar o arquivo fonte Excellon" + +#: app_Main.py:8526 app_Main.py:8530 +msgid "Export Excellon" +msgstr "Exportar Excellon" + +#: app_Main.py:8569 app_Main.py:8573 +msgid "Export Gerber" +msgstr "Exportar Gerber" + +#: app_Main.py:8612 +msgid "Only Geometry objects can be used." +msgstr "Apenas objetos Geometria podem ser usados." + +#: app_Main.py:8628 app_Main.py:8632 +msgid "Export DXF" +msgstr "Exportar DXF" + +#: app_Main.py:8656 app_Main.py:8660 +msgid "Import SVG" +msgstr "Importar SVG" + +#: app_Main.py:8686 app_Main.py:8690 +msgid "Import DXF" +msgstr "Importar DXF" + +#: app_Main.py:8716 +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 "" +"Existem arquivos/objetos abertos no FlatCAM.\n" +"Criar um novo projeto irá apagá-los.\n" +"Você deseja Salvar o Projeto?" + +#: app_Main.py:8739 +msgid "New Project created" +msgstr "Novo Projeto criado" + +#: app_Main.py:8841 +msgid "New TCL script file created in Code Editor." +msgstr "Novo arquivo de script TCL criado no Editor de Códigos." + +#: app_Main.py:8868 app_Main.py:8870 app_Main.py:8905 app_Main.py:8907 +msgid "Open TCL script" +msgstr "Abrir script TCL" + +#: app_Main.py:8934 +msgid "Executing ScriptObject file." +msgstr "Executando arquivo de Script FlatCAM." + +#: app_Main.py:8942 app_Main.py:8946 +msgid "Run TCL script" +msgstr "Executar script TCL" + +#: app_Main.py:8969 +msgid "TCL script file opened in Code Editor and executed." +msgstr "Arquivo de script TCL aberto no Editor de Código e executado." + +#: app_Main.py:9015 app_Main.py:9021 +msgid "Save Project As ..." +msgstr "Salvar Projeto Como..." + +#: app_Main.py:9055 +msgid "FlatCAM objects print" +msgstr "Objetos FlatCAM imprimem" + +#: app_Main.py:9068 app_Main.py:9075 +msgid "Save Object as PDF ..." +msgstr "Salvar objeto como PDF ..." + +#: app_Main.py:9084 +msgid "Printing PDF ... Please wait." +msgstr "Imprimindo PDF ... Aguarde." + +#: app_Main.py:9262 +msgid "PDF file saved to" +msgstr "Arquivo PDF salvo em" + +#: app_Main.py:9284 +msgid "Exporting SVG" +msgstr "Exportando SVG" + +#: app_Main.py:9327 +msgid "SVG file exported to" +msgstr "Arquivo SVG exportado para" + +#: app_Main.py:9342 app_Main.py:9346 +msgid "Import FlatCAM Preferences" +msgstr "Importar Preferências do FlatCAM" + +#: app_Main.py:9357 +msgid "Imported Defaults from" +msgstr "Padrões importados de" + +#: app_Main.py:9376 app_Main.py:9382 +msgid "Export FlatCAM Preferences" +msgstr "Exportar Preferências do FlatCAM" + +#: app_Main.py:9402 +msgid "Exported preferences to" +msgstr "Preferências exportadas para" + +#: app_Main.py:9535 +msgid "Excellon file exported to" +msgstr "Arquivo Excellon exportado para" + +#: app_Main.py:9544 +msgid "Exporting Excellon" +msgstr "Exportando Excellon" + +#: app_Main.py:9549 app_Main.py:9556 +msgid "Could not export Excellon file." +msgstr "Não foi possível exportar o arquivo Excellon." + +#: app_Main.py:9670 +msgid "Gerber file exported to" +msgstr "Arquivo Gerber exportado para" + +#: app_Main.py:9678 +msgid "Exporting Gerber" +msgstr "Exportando Gerber" + +#: app_Main.py:9683 app_Main.py:9690 +#, fuzzy +#| msgid "Could not export DXF file." +msgid "Could not export file." +msgstr "Não foi possível exportar o arquivo DXF." + +#: app_Main.py:9736 +msgid "DXF file exported to" +msgstr "Arquivo DXF exportado para" + +#: app_Main.py:9745 +msgid "Exporting DXF" +msgstr "Exportando DXF" + +#: app_Main.py:9750 app_Main.py:9757 +msgid "Could not export DXF file." +msgstr "Não foi possível exportar o arquivo DXF." + +#: app_Main.py:9795 +msgid "Importing SVG" +msgstr "Importando SVG" + +#: app_Main.py:9803 app_Main.py:9858 +msgid "Import failed." +msgstr "Importação falhou." + +#: app_Main.py:9850 +msgid "Importing DXF" +msgstr "Importando DXF" + +#: app_Main.py:9891 app_Main.py:10082 app_Main.py:10147 +msgid "Failed to open file" +msgstr "Falha ao abrir o arquivo" + +#: app_Main.py:9894 app_Main.py:10085 app_Main.py:10150 +msgid "Failed to parse file" +msgstr "Falha ao analisar o arquivo" + +#: app_Main.py:9906 +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." + +#: app_Main.py:9911 +msgid "Opening Gerber" +msgstr "Abrindo Gerber" + +#: app_Main.py:9922 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Abrir Gerber falhou. Provavelmente não é um arquivo Gerber." + +#: app_Main.py:9955 +msgid "Cannot open file" +msgstr "Não é possível abrir o arquivo" + +#: app_Main.py:9975 +msgid "Opening Excellon." +msgstr "Abrindo Excellon." + +#: app_Main.py:9985 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "Falha ao abrir Excellon. Provavelmente não é um arquivo Excellon." + +#: app_Main.py:10017 +msgid "Reading GCode file" +msgstr "Lendo Arquivo G-Code" + +#: app_Main.py:10030 +msgid "This is not GCODE" +msgstr "Não é G-Code" + +#: app_Main.py:10035 +msgid "Opening G-Code." +msgstr "Abrindo G-Code." + +#: app_Main.py:10048 +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 "" +"Falha ao criar o objeto Trabalho CNC. Provavelmente não é um arquivo G-" +"Code. Tente ler a usando o menu.\n" +"A tentativa de criar um objeto de Trabalho CNC do arquivo G-Code falhou " +"durante o processamento" + +#: app_Main.py:10104 +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." + +#: app_Main.py:10109 +msgid "Opening HPGL2" +msgstr "Abrindo o HPGL2" + +#: app_Main.py:10116 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Falha no HPGL2 aberto. Provavelmente não é um arquivo HPGL2." + +#: app_Main.py:10142 +msgid "TCL script file opened in Code Editor." +msgstr "Arquivo de script TCL aberto no Editor de Códigos." + +#: app_Main.py:10162 +msgid "Opening TCL Script..." +msgstr "Abrindo script TCL..." + +#: app_Main.py:10173 +msgid "Failed to open TCL Script." +msgstr "Falha ao abrir o Script TCL." + +#: app_Main.py:10196 +msgid "Opening FlatCAM Config file." +msgstr "Abrindo arquivo de Configuração." + +#: app_Main.py:10223 +msgid "Failed to open config file" +msgstr "Falha ao abrir o arquivo de configuração" + +#: app_Main.py:10252 +msgid "Loading Project ... Please Wait ..." +msgstr "Carregando projeto ... Por favor aguarde ..." + +#: app_Main.py:10258 +msgid "Opening FlatCAM Project file." +msgstr "Abrindo Projeto FlatCAM." + +#: app_Main.py:10273 app_Main.py:10277 app_Main.py:10295 +msgid "Failed to open project file" +msgstr "Falha ao abrir o arquivo de projeto" + +#: app_Main.py:10335 +msgid "Loading Project ... restoring" +msgstr "Carregando projeto ... restaurando" + +#: app_Main.py:10339 +msgid "Project loaded from" +msgstr "Projeto carregado de" + +#: app_Main.py:10368 msgid "Saving FlatCAM Project" msgstr "Salvando o Projeto FlatCAM" -#: app_Main.py:10294 app_Main.py:10330 +#: app_Main.py:10390 app_Main.py:10426 msgid "Project saved to" msgstr "Projeto salvo em" -#: app_Main.py:10301 +#: app_Main.py:10397 msgid "The object is used by another application." msgstr "O objeto é usado por outro aplicativo." -#: app_Main.py:10315 +#: app_Main.py:10411 msgid "Failed to verify project file" msgstr "Falha ao verificar o arquivo do projeto" -#: app_Main.py:10315 app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10411 app_Main.py:10419 app_Main.py:10429 msgid "Retry to save it." msgstr "Tente salvá-lo novamente." -#: app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10419 app_Main.py:10429 msgid "Failed to parse saved project file" msgstr "Falha ao analisar o arquivo de projeto salvo" +#: app_Main.py:10466 +#, fuzzy +#| msgid "" +#| "Save cancelled because source file is empty. Try to export the Gerber " +#| "file." +msgid "Save cancelled because source file is empty. Try to export the file." +msgstr "" +"Salvar cancelado porque o arquivo de origem está vazio. Tente exportar o " +"arquivo Gerber." + #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" diff --git a/locale/ro/LC_MESSAGES/strings.mo b/locale/ro/LC_MESSAGES/strings.mo index 6abfefbe8480948bf23b1a1fa7230dc9ca9d86c9..985f5cbeaf500a57864c31f26e328acd6e981454 100644 GIT binary patch delta 34 ocmca}K;q5;iG~)&7N#xC+6gR{Rwfqh`U%WH%(7iSfmQba0N{cPga7~l delta 34 ocmca}K;q5;iG~)&7N#xC+6gSCR;H%y`U%WH%(7iSfmQba0N@=9egFUf diff --git a/locale/ro/LC_MESSAGES/strings.po b/locale/ro/LC_MESSAGES/strings.po index 2a90a423..b2e2bda3 100644 --- a/locale/ro/LC_MESSAGES/strings.po +++ b/locale/ro/LC_MESSAGES/strings.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-10-24 15:55+0300\n" -"PO-Revision-Date: 2020-10-24 15:55+0300\n" +"POT-Creation-Date: 2020-10-24 19:48+0300\n" +"PO-Revision-Date: 2020-10-24 19:48+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: ro\n" @@ -112,24 +112,24 @@ msgstr "Bookmarks" #: appObjects/FlatCAMCNCJob.py:1750 appObjects/ObjectCollection.py:126 #: appTools/ToolFilm.py:238 appTools/ToolFilm.py:384 appTools/ToolImage.py:112 #: appTools/ToolMove.py:269 appTools/ToolPcbWizard.py:189 -#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:526 -#: appTools/ToolQRCode.py:573 app_Main.py:1753 app_Main.py:2581 -#: app_Main.py:2617 app_Main.py:2664 app_Main.py:4410 app_Main.py:7128 -#: app_Main.py:7167 app_Main.py:7211 app_Main.py:7240 app_Main.py:7281 -#: app_Main.py:7306 app_Main.py:7362 app_Main.py:7398 app_Main.py:7443 -#: app_Main.py:7484 app_Main.py:7526 app_Main.py:7568 app_Main.py:7609 -#: app_Main.py:7653 app_Main.py:7713 app_Main.py:7745 app_Main.py:7777 -#: app_Main.py:8000 app_Main.py:8038 app_Main.py:8081 app_Main.py:8158 -#: app_Main.py:8213 +#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:527 +#: appTools/ToolQRCode.py:574 app_Main.py:1762 app_Main.py:2596 +#: app_Main.py:4333 app_Main.py:8065 app_Main.py:8104 app_Main.py:8148 +#: app_Main.py:8174 app_Main.py:8214 app_Main.py:8239 app_Main.py:8293 +#: app_Main.py:8329 app_Main.py:8373 app_Main.py:8413 app_Main.py:8454 +#: app_Main.py:8495 app_Main.py:8535 app_Main.py:8578 app_Main.py:8637 +#: app_Main.py:8669 app_Main.py:8699 app_Main.py:8874 app_Main.py:8911 +#: app_Main.py:8954 app_Main.py:9026 app_Main.py:9080 app_Main.py:9350 +#: app_Main.py:9385 msgid "Cancelled." msgstr "Anulat." #: Bookmark.py:308 appDatabase.py:2089 appEditors/AppTextEditor.py:312 #: appObjects/FlatCAMCNCJob.py:1672 appObjects/FlatCAMCNCJob.py:1862 #: appObjects/FlatCAMCNCJob.py:2311 appTools/ToolFilm.py:582 -#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2672 -#: app_Main.py:8457 app_Main.py:8505 app_Main.py:8634 app_Main.py:8771 -#: app_Main.py:8839 +#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2604 +#: app_Main.py:9320 app_Main.py:9528 app_Main.py:9663 app_Main.py:9729 +#: app_Main.py:10481 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -161,7 +161,7 @@ msgstr "Bookmark-uri au fost importate din" msgid "The user requested a graceful exit of the current task." msgstr "Utilizatorul a solicitat o inchidere grațioasă a taskului curent." -#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:328 +#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:327 #: appTools/ToolIsolation.py:1436 appTools/ToolNCC.py:1366 msgid "Click the start point of the area." msgstr "Faceți clic pe punctul de pornire al zonei." @@ -171,7 +171,7 @@ msgid "Click the end point of the area." msgstr "Faceți clic pe punctul final al zonei." #: appCommon/Common.py:357 appCommon/Common.py:459 -#: appTools/ToolCopperThieving.py:385 appTools/ToolIsolation.py:2348 +#: appTools/ToolCopperThieving.py:384 appTools/ToolIsolation.py:2348 #: appTools/ToolIsolation.py:2400 appTools/ToolNCC.py:1431 #: appTools/ToolNCC.py:1483 appTools/ToolPaint.py:1216 #: appTools/ToolPaint.py:1267 @@ -259,8 +259,8 @@ msgstr "Parametrii Decupare" #: appDatabase.py:207 appEditors/AppGeoEditor.py:3287 appGUI/ObjectUI.py:219 #: appGUI/ObjectUI.py:570 appGUI/ObjectUI.py:894 appGUI/ObjectUI.py:1876 #: appGUI/ObjectUI.py:2693 appGUI/ObjectUI.py:2760 -#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:681 -#: app_Main.py:9730 +#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:683 +#: app_Main.py:7306 msgid "Name" msgstr "Nume" @@ -336,7 +336,7 @@ msgstr "" #: appDatabase.py:275 appDatabase.py:1778 appDatabase.py:1814 #: appDatabase.py:1877 appDatabase.py:2162 appGUI/MainGUI.py:1299 -#: app_Main.py:9728 +#: app_Main.py:7304 msgid "General" msgstr "General" @@ -486,7 +486,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2104 +#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2108 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Z tăiere" @@ -774,9 +774,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1210 appTools/ToolCopperThieving.py:1461 -#: appTools/ToolCorners.py:411 appTools/ToolCutOut.py:2157 -#: appTools/ToolFiducials.py:786 appTools/ToolInvertGerber.py:234 +#: appTools/ToolCopperThieving.py:1206 appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCorners.py:412 appTools/ToolCutOut.py:2161 +#: appTools/ToolFiducials.py:788 appTools/ToolInvertGerber.py:234 #: appTools/ToolInvertGerber.py:242 appTools/ToolNCC.py:4135 #: appTools/ToolNCC.py:4238 msgid "Margin" @@ -787,8 +787,8 @@ msgstr "Margine" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1212 appTools/ToolCorners.py:413 -#: appTools/ToolFiducials.py:788 appTools/ToolNCC.py:4137 +#: appTools/ToolCopperThieving.py:1208 appTools/ToolCorners.py:414 +#: appTools/ToolFiducials.py:790 appTools/ToolNCC.py:4137 #: appTools/ToolNCC.py:4240 msgid "Bounding box margin." msgstr "Marginea pentru forma înconjurătoare." @@ -800,7 +800,7 @@ msgstr "Marginea pentru forma înconjurătoare." #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 -#: appTools/ToolExtractDrills.py:520 appTools/ToolNCC.py:4112 +#: appTools/ToolExtractDrills.py:521 appTools/ToolNCC.py:4112 #: appTools/ToolPaint.py:2991 appTools/ToolPunchGerber.py:796 msgid "Method" msgstr "Metodă" @@ -1100,7 +1100,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 -#: appTools/ToolCutOut.py:2128 appTools/ToolDrilling.py:2167 +#: appTools/ToolCutOut.py:2132 appTools/ToolDrilling.py:2167 #: appTools/ToolMilling.py:1817 msgid "" "Use multiple passes to limit\n" @@ -1116,7 +1116,7 @@ msgstr "" #: appDatabase.py:979 appGUI/ObjectUI.py:1251 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 -#: appTools/ToolCutOut.py:2142 appTools/ToolDrilling.py:2180 +#: appTools/ToolCutOut.py:2146 appTools/ToolDrilling.py:2180 #: appTools/ToolMilling.py:1830 msgid "Depth of each pass (positive)." msgstr "" @@ -1219,7 +1219,7 @@ msgstr "" "adăugați o gaură pe punctul final al slotului." #: appDatabase.py:1156 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: appTools/ToolCutOut.py:2159 +#: appTools/ToolCutOut.py:2163 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -1230,12 +1230,12 @@ msgstr "" "fata de PCB-ul efectiv" #: appDatabase.py:1168 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:131 -#: appTools/ToolCutOut.py:2167 +#: appTools/ToolCutOut.py:2171 msgid "Gap size" msgstr "Dim. punte" #: appDatabase.py:1170 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:133 -#: appTools/ToolCutOut.py:2169 +#: appTools/ToolCutOut.py:2173 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -1247,12 +1247,12 @@ msgstr "" "este decupat." #: appDatabase.py:1179 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -#: appTools/ToolCutOut.py:2182 +#: appTools/ToolCutOut.py:2186 msgid "Gap type" msgstr "Tip Punte" #: appDatabase.py:1181 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150 -#: appTools/ToolCutOut.py:2184 +#: appTools/ToolCutOut.py:2188 msgid "" "The type of gap:\n" "- Bridge -> the cutout will be interrupted by bridges\n" @@ -1267,22 +1267,22 @@ msgstr "" "- M-Bites -> „Mouse Bites” - la fel ca „Punte”, dar acoperit cu găuri" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 -#: appTools/ToolCutOut.py:2192 +#: appTools/ToolCutOut.py:2196 msgid "Bridge" msgstr "Punte" #: appDatabase.py:1190 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159 -#: appTools/ToolCutOut.py:2193 +#: appTools/ToolCutOut.py:2197 msgid "Thin" msgstr "Subţire" #: appDatabase.py:1201 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169 -#: appTools/ToolCutOut.py:2203 +#: appTools/ToolCutOut.py:2207 msgid "Depth" msgstr "Adâncime" #: appDatabase.py:1203 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171 -#: appTools/ToolCutOut.py:2205 +#: appTools/ToolCutOut.py:2209 msgid "" "The depth until the milling is done\n" "in order to thin the gaps." @@ -1292,12 +1292,12 @@ msgstr "" #: appDatabase.py:1220 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2220 +#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2224 msgid "Tool Diameter" msgstr "Dia unealtă" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 -#: appTools/ToolCutOut.py:2222 +#: appTools/ToolCutOut.py:2226 msgid "The drill hole diameter when doing mouse bites." msgstr "Diametrul găurilor atunci când faceți Mouse Bites." @@ -1306,23 +1306,23 @@ msgstr "Diametrul găurilor atunci când faceți Mouse Bites." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1333 appTools/ToolCopperThieving.py:1373 -#: appTools/ToolCopperThieving.py:1413 appTools/ToolCutOut.py:2232 +#: appTools/ToolCopperThieving.py:1329 appTools/ToolCopperThieving.py:1369 +#: appTools/ToolCopperThieving.py:1409 appTools/ToolCutOut.py:2236 msgid "Spacing" msgstr "Spaţiere" #: appDatabase.py:1235 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200 -#: appTools/ToolCutOut.py:2234 +#: appTools/ToolCutOut.py:2238 msgid "The spacing between drill holes when doing mouse bites." msgstr "Distanța dintre găuri atunci când faceți Mouse Bites." #: appDatabase.py:1254 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233 -#: appTools/ToolCutOut.py:2034 +#: appTools/ToolCutOut.py:2038 msgid "Convex Shape" msgstr "Forma convexă" #: appDatabase.py:1257 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235 -#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041 +#: appTools/ToolCutOut.py:2040 appTools/ToolCutOut.py:2045 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -1332,11 +1332,11 @@ msgstr "" "Se foloseste doar daca obiectul sursă este de tip Gerber." #: appDatabase.py:1265 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209 -#: appTools/ToolCutOut.py:2263 +#: appTools/ToolCutOut.py:2267 msgid "Gaps" msgstr "Punţi" -#: appDatabase.py:1267 appTools/ToolCutOut.py:2265 +#: appDatabase.py:1267 appTools/ToolCutOut.py:2269 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -1420,8 +1420,8 @@ msgstr "" "aplicației după selectarea unei unelte în baza de date a Uneltelor." #: appDatabase.py:1364 appGUI/MainGUI.py:1438 -#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2297 -#: app_Main.py:3392 app_Main.py:4347 app_Main.py:4593 app_Main.py:6901 +#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2306 +#: app_Main.py:3315 app_Main.py:4270 app_Main.py:4516 app_Main.py:8725 msgid "Cancel" msgstr "Anuleaza" @@ -1432,16 +1432,16 @@ msgstr "Anuleaza" #: appTools/ToolAlignObjects.py:516 appTools/ToolAlignObjects.py:527 #: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1601 appTools/ToolCopperThieving.py:1612 -#: appTools/ToolCorners.py:462 appTools/ToolCorners.py:473 -#: appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448 -#: appTools/ToolDblSided.py:956 appTools/ToolDblSided.py:967 +#: appTools/ToolCopperThieving.py:1597 appTools/ToolCopperThieving.py:1608 +#: appTools/ToolCorners.py:463 appTools/ToolCorners.py:474 +#: appTools/ToolCutOut.py:2441 appTools/ToolCutOut.py:2452 +#: appTools/ToolDblSided.py:958 appTools/ToolDblSided.py:969 #: appTools/ToolDistance.py:659 appTools/ToolDistance.py:670 #: appTools/ToolDistanceMin.py:324 appTools/ToolDistanceMin.py:335 #: appTools/ToolDrilling.py:2666 appTools/ToolDrilling.py:2677 #: appTools/ToolEtchCompensation.py:476 appTools/ToolEtchCompensation.py:487 -#: appTools/ToolExtractDrills.py:732 appTools/ToolExtractDrills.py:743 -#: appTools/ToolFiducials.py:950 appTools/ToolFiducials.py:961 +#: appTools/ToolExtractDrills.py:733 appTools/ToolExtractDrills.py:744 +#: appTools/ToolFiducials.py:952 appTools/ToolFiducials.py:963 #: appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 #: appTools/ToolImage.py:322 appTools/ToolImage.py:333 #: appTools/ToolInvertGerber.py:304 appTools/ToolInvertGerber.py:315 @@ -1453,7 +1453,7 @@ msgstr "Anuleaza" #: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925 #: appTools/ToolPcbWizard.py:488 appTools/ToolPcbWizard.py:499 #: appTools/ToolPunchGerber.py:1025 appTools/ToolPunchGerber.py:1036 -#: appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933 +#: appTools/ToolQRCode.py:923 appTools/ToolQRCode.py:934 #: appTools/ToolRulesCheck.py:1657 appTools/ToolRulesCheck.py:1668 #: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586 #: appTools/ToolSub.py:772 appTools/ToolSub.py:783 @@ -1468,16 +1468,16 @@ msgstr "Valoarea editată este in afara limitelor" #: appTools/ToolAlignObjects.py:522 appTools/ToolAlignObjects.py:529 #: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1607 appTools/ToolCopperThieving.py:1614 -#: appTools/ToolCorners.py:468 appTools/ToolCorners.py:475 -#: appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450 -#: appTools/ToolDblSided.py:962 appTools/ToolDblSided.py:969 +#: appTools/ToolCopperThieving.py:1603 appTools/ToolCopperThieving.py:1610 +#: appTools/ToolCorners.py:469 appTools/ToolCorners.py:476 +#: appTools/ToolCutOut.py:2447 appTools/ToolCutOut.py:2454 +#: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:971 #: appTools/ToolDistance.py:665 appTools/ToolDistance.py:672 #: appTools/ToolDistanceMin.py:330 appTools/ToolDistanceMin.py:337 #: appTools/ToolDrilling.py:2672 appTools/ToolDrilling.py:2679 #: appTools/ToolEtchCompensation.py:482 appTools/ToolEtchCompensation.py:489 -#: appTools/ToolExtractDrills.py:738 appTools/ToolExtractDrills.py:745 -#: appTools/ToolFiducials.py:956 appTools/ToolFiducials.py:963 +#: appTools/ToolExtractDrills.py:739 appTools/ToolExtractDrills.py:746 +#: appTools/ToolFiducials.py:958 appTools/ToolFiducials.py:965 #: appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 #: appTools/ToolImage.py:328 appTools/ToolImage.py:335 #: appTools/ToolInvertGerber.py:310 appTools/ToolInvertGerber.py:317 @@ -1489,7 +1489,7 @@ msgstr "Valoarea editată este in afara limitelor" #: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927 #: appTools/ToolPcbWizard.py:494 appTools/ToolPcbWizard.py:501 #: appTools/ToolPunchGerber.py:1031 appTools/ToolPunchGerber.py:1038 -#: appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935 +#: appTools/ToolQRCode.py:929 appTools/ToolQRCode.py:936 #: appTools/ToolRulesCheck.py:1663 appTools/ToolRulesCheck.py:1670 #: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588 #: appTools/ToolSub.py:778 appTools/ToolSub.py:785 @@ -1509,7 +1509,7 @@ msgstr "Copiați din DB Unelte" msgid "Delete from DB" msgstr "Ștergeți din DB Unelte" -#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3386 app_Main.py:6895 +#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3309 app_Main.py:8719 msgid "Save changes" msgstr "Salvează modificarile" @@ -1566,8 +1566,8 @@ msgstr "Importă DB Unelte" #: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525 #: appTools/ToolIsolation.py:2583 appTools/ToolIsolation.py:2667 #: appTools/ToolNCC.py:3715 appTools/ToolNCC.py:3795 appTools/ToolPaint.py:2626 -#: appTools/ToolPaint.py:2715 app_Main.py:5682 app_Main.py:5724 -#: app_Main.py:5755 app_Main.py:5775 app_Main.py:5785 +#: appTools/ToolPaint.py:2715 app_Main.py:5605 app_Main.py:5647 +#: app_Main.py:5678 app_Main.py:5698 app_Main.py:5708 msgid "Tools Database" msgstr "Baza de Date Unelte" @@ -1789,7 +1789,7 @@ msgstr "Anulat. Nu este selectată nici-o unealtă sau op. de găurire" #: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642 #: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871 #: appTools/ToolAlignObjects.py:253 appTools/ToolAlignObjects.py:275 -#: app_Main.py:4961 app_Main.py:5115 +#: app_Main.py:4884 app_Main.py:5038 msgid "Done." msgstr "Executat." @@ -1850,7 +1850,7 @@ msgstr "" #: appEditors/AppExcEditor.py:3765 appGUI/ObjectUI.py:1082 #: appGUI/ObjectUI.py:1650 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 -#: appTools/ToolCutOut.py:2060 appTools/ToolIsolation.py:3091 +#: appTools/ToolCutOut.py:2064 appTools/ToolIsolation.py:3091 #: appTools/ToolNCC.py:3966 appTools/ToolNCC.py:3977 appTools/ToolPaint.py:2882 msgid "Tool Dia" msgstr "Dia Unealtă" @@ -1943,8 +1943,8 @@ msgstr "Liniar" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 -#: appTools/ToolExtractDrills.py:470 appTools/ToolExtractDrills.py:593 -#: appTools/ToolFiducials.py:834 appTools/ToolPunchGerber.py:746 +#: appTools/ToolExtractDrills.py:471 appTools/ToolExtractDrills.py:594 +#: appTools/ToolFiducials.py:836 appTools/ToolPunchGerber.py:746 #: appTools/ToolPunchGerber.py:886 msgid "Circular" msgstr "Circular" @@ -2113,7 +2113,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:398 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:399 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Lungime" @@ -2227,12 +2227,12 @@ msgstr "Rotund" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:289 -#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:486 -#: appTools/ToolExtractDrills.py:619 appTools/ToolInvertGerber.py:257 +#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:487 +#: appTools/ToolExtractDrills.py:620 appTools/ToolInvertGerber.py:257 #: appTools/ToolIsolation.py:3430 appTools/ToolMilling.py:2264 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3168 #: appTools/ToolPunchGerber.py:762 appTools/ToolPunchGerber.py:912 -#: appTools/ToolQRCode.py:788 +#: appTools/ToolQRCode.py:789 msgid "Square" msgstr "Patrat" @@ -2281,8 +2281,8 @@ msgstr "Font" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1360 appTools/ToolCopperThieving.py:1400 -#: appTools/ToolFiducials.py:770 +#: appTools/ToolCopperThieving.py:1356 appTools/ToolCopperThieving.py:1396 +#: appTools/ToolFiducials.py:772 msgid "Size" msgstr "Dimensiune" @@ -2306,8 +2306,8 @@ msgstr "Unealta Text" #: appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 #: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:329 #: appTools/ToolNCC.py:2280 appTools/ToolNCC.py:4040 appTools/ToolPaint.py:304 -#: appTools/ToolPaint.py:2940 app_Main.py:2053 app_Main.py:2312 -#: app_Main.py:2419 +#: appTools/ToolPaint.py:2940 app_Main.py:2062 app_Main.py:2321 +#: app_Main.py:2428 msgid "Tool" msgstr "Unealta" @@ -2397,7 +2397,7 @@ msgstr "Bufer" #: appGUI/GUIElements.py:3015 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 -#: appTools/ToolDblSided.py:681 appTools/ToolDblSided.py:855 +#: appTools/ToolDblSided.py:683 appTools/ToolDblSided.py:857 #: appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 msgid "Reference" msgstr "Referinţă" @@ -2442,7 +2442,7 @@ msgstr "Selecţie" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 -#: appTools/ToolDblSided.py:692 appTools/ToolTransform.py:557 +#: appTools/ToolDblSided.py:694 appTools/ToolTransform.py:557 msgid "Point" msgstr "Punct" @@ -2455,10 +2455,9 @@ msgstr "Minim" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243 -#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677 +#: appTools/ToolExtractDrills.py:557 appTools/ToolExtractDrills.py:678 #: appTools/ToolPunchGerber.py:849 appTools/ToolPunchGerber.py:965 -#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 -#: app_Main.py:10205 +#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:7781 msgid "Value" msgstr "Valoare" @@ -2470,10 +2469,10 @@ msgstr "Un punct de referință în format X, Y." #: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590 #: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 -#: appTools/ToolDblSided.py:706 appTools/ToolDblSided.py:892 +#: appTools/ToolDblSided.py:708 appTools/ToolDblSided.py:894 #: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203 -#: appTools/ToolTransform.py:572 app_Main.py:6127 +#: appTools/ToolTransform.py:572 app_Main.py:6050 msgid "Add" msgstr "Adaugă" @@ -2684,7 +2683,7 @@ msgstr "Ofset pe Y" #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216 -#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:787 +#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:788 #: appTools/ToolTransform.py:854 msgid "Rounded" msgstr "Rotunjit" @@ -3166,7 +3165,7 @@ msgstr "Editor Geometrii" #: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495 #: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 -#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519 +#: appTools/ToolCutOut.py:2017 appTools/ToolDblSided.py:521 #: appTools/ToolTransform.py:579 msgid "Type" msgstr "Tip" @@ -3560,7 +3559,7 @@ msgstr "Adaugă o nouă apertură in lista de aperturi." #: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 #: appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 #: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 -#: appTools/ToolSolderPaste.py:1209 app_Main.py:6129 +#: appTools/ToolSolderPaste.py:1209 app_Main.py:6052 msgid "Delete" msgstr "Șterge" @@ -3780,8 +3779,8 @@ msgstr "" #: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:164 #: appObjects/FlatCAMGeometry.py:1917 appParsers/ParseExcellon.py:972 -#: appTools/ToolPcbWizard.py:318 app_Main.py:9010 app_Main.py:9070 -#: app_Main.py:9201 app_Main.py:9266 app_Main.py:9881 +#: appTools/ToolPcbWizard.py:318 app_Main.py:7457 app_Main.py:9899 +#: app_Main.py:9959 app_Main.py:10090 app_Main.py:10155 msgid "An internal error has occurred. See shell.\n" msgstr "" "A apărut o eroare internă. Verifică in TCL Shell pt mai multe detalii.\n" @@ -3798,7 +3797,7 @@ msgstr "Editarea Gerber a fost terminată." msgid "Cancelled. No aperture is selected" msgstr "Anulat. Nici-o apertură nu este selectată" -#: appEditors/AppGerberEditor.py:4555 app_Main.py:6462 +#: appEditors/AppGerberEditor.py:4555 app_Main.py:6385 msgid "Coordinates copied to clipboard." msgstr "Coordonatele au fost copiate in clipboard." @@ -3817,8 +3816,8 @@ msgstr "" "încearcă din nou." #: appEditors/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 -#: appTools/ToolCutOut.py:895 appTools/ToolCutOut.py:1118 -#: appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663 +#: appTools/ToolCutOut.py:896 appTools/ToolCutOut.py:1119 +#: appTools/ToolCutOut.py:1267 camlib.py:4899 camlib.py:5663 msgid "Failed." msgstr "Esuat." @@ -3850,7 +3849,7 @@ msgstr "Nu au fost marcate poligoane. Niciunul nu se încadrează în limite." msgid "Rotation action was not executed." msgstr "Actiuena de rotatie nu a fost efectuatăt." -#: appEditors/AppGerberEditor.py:6044 app_Main.py:5885 app_Main.py:5933 +#: appEditors/AppGerberEditor.py:6044 app_Main.py:5808 app_Main.py:5856 msgid "Flip action was not executed." msgstr "Acțiunea de Oglindire nu a fost executată." @@ -3965,7 +3964,7 @@ msgstr "Deschide fişierul" #: appObjects/FlatCAMCNCJob.py:1646 appObjects/FlatCAMCNCJob.py:1651 #: appObjects/FlatCAMCNCJob.py:1836 appObjects/FlatCAMCNCJob.py:1841 #: appObjects/FlatCAMCNCJob.py:1914 appObjects/FlatCAMCNCJob.py:1919 -#: appTools/ToolSolderPaste.py:1063 app_Main.py:7044 app_Main.py:7049 +#: appTools/ToolSolderPaste.py:1063 app_Main.py:6839 app_Main.py:6844 msgid "Export Code ..." msgstr "Exportă GCode ..." @@ -3979,7 +3978,7 @@ msgstr "Nu exista un aşa fişier sau director" msgid "Saved to" msgstr "Salvat in" -#: appEditors/appGCodeEditor.py:66 app_Main.py:7905 +#: appEditors/appGCodeEditor.py:66 app_Main.py:7000 msgid "Code Editor" msgstr "Editor Cod" @@ -4007,7 +4006,7 @@ msgstr "Editor Cod" #: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 appGUI/ObjectUI.py:2019 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1320 +#: appTools/ToolCopperThieving.py:1316 msgid "Dia" msgstr "Dia" @@ -4098,8 +4097,8 @@ msgstr "" msgid "Save Log" msgstr "Salvează Log" -#: appGUI/GUIElements.py:3085 app_Main.py:2809 app_Main.py:3181 -#: app_Main.py:3354 +#: appGUI/GUIElements.py:3085 app_Main.py:2741 app_Main.py:3113 +#: app_Main.py:3286 msgid "Close" msgstr "Închide" @@ -4661,7 +4660,7 @@ msgstr "Ajutor" msgid "Online Help\tF1" msgstr "Resurse online\tF1" -#: appGUI/MainGUI.py:527 app_Main.py:3319 app_Main.py:3328 +#: appGUI/MainGUI.py:527 app_Main.py:3251 app_Main.py:3260 msgid "Bookmarks Manager" msgstr "Bookmarks Manager" @@ -4689,7 +4688,7 @@ msgstr "YouTube \tF4" msgid "How To" msgstr "How To" -#: appGUI/MainGUI.py:551 app_Main.py:2776 +#: appGUI/MainGUI.py:551 app_Main.py:2708 msgid "About FlatCAM" msgstr "Despre FlatCAM" @@ -4857,47 +4856,47 @@ msgstr "Dezactivează Afișare" msgid "Set Color" msgstr "Setați culoarea" -#: appGUI/MainGUI.py:709 app_Main.py:10148 +#: appGUI/MainGUI.py:709 app_Main.py:7724 msgid "Red" msgstr "Roșu" -#: appGUI/MainGUI.py:712 app_Main.py:10150 +#: appGUI/MainGUI.py:712 app_Main.py:7726 msgid "Blue" msgstr "Albastru" -#: appGUI/MainGUI.py:715 app_Main.py:10153 +#: appGUI/MainGUI.py:715 app_Main.py:7729 msgid "Yellow" msgstr "Galben" -#: appGUI/MainGUI.py:718 app_Main.py:10155 +#: appGUI/MainGUI.py:718 app_Main.py:7731 msgid "Green" msgstr "Verde" -#: appGUI/MainGUI.py:721 app_Main.py:10157 +#: appGUI/MainGUI.py:721 app_Main.py:7733 msgid "Purple" msgstr "Violet" -#: appGUI/MainGUI.py:724 app_Main.py:10159 +#: appGUI/MainGUI.py:724 app_Main.py:7735 msgid "Brown" msgstr "Maro" -#: appGUI/MainGUI.py:727 app_Main.py:10161 app_Main.py:10220 +#: appGUI/MainGUI.py:727 app_Main.py:7737 app_Main.py:7796 msgid "White" msgstr "Alb" -#: appGUI/MainGUI.py:730 app_Main.py:10163 +#: appGUI/MainGUI.py:730 app_Main.py:7739 msgid "Black" msgstr "Negru" -#: appGUI/MainGUI.py:735 app_Main.py:10166 +#: appGUI/MainGUI.py:735 app_Main.py:7742 msgid "Custom" msgstr "Personalizat" -#: appGUI/MainGUI.py:740 app_Main.py:10200 +#: appGUI/MainGUI.py:740 app_Main.py:7776 msgid "Opacity" msgstr "Opacitate" -#: appGUI/MainGUI.py:743 app_Main.py:10176 +#: appGUI/MainGUI.py:743 app_Main.py:7752 msgid "Default" msgstr "Implicit" @@ -4971,13 +4970,13 @@ msgstr "Toolbar Grid-uri" msgid "Status Toolbar" msgstr "Bara de instrumente de Stare" -#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7110 -#: app_Main.py:7115 +#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:8046 +#: app_Main.py:8051 msgid "Open Gerber" msgstr "Încarcă Gerber" -#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7150 -#: app_Main.py:7155 +#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:8086 +#: app_Main.py:8091 msgid "Open Excellon" msgstr "Încarcă Excellon" @@ -5062,7 +5061,7 @@ msgid "Extract Drills Tool" msgstr "Unealta de Extragere Găuri" #: appGUI/MainGUI.py:931 appGUI/MainGUI.py:2086 appGUI/ObjectUI.py:387 -#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2052 +#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2056 msgid "Cutout Tool" msgstr "Unealta Decupare" @@ -5113,17 +5112,17 @@ msgid "Calculators Tool" msgstr "Unealta Calculatoare" #: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285 -#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628 +#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:629 msgid "QRCode Tool" msgstr "Unealta QRCode" #: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1137 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1133 msgid "Copper Thieving Tool" msgstr "Unealta Copper Thieving" #: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281 -#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648 +#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:650 msgid "Fiducials Tool" msgstr "Unealta Fiducials" @@ -5142,7 +5141,7 @@ msgid "Invert Gerber Tool" msgstr "Unealta Inversare Gerber" #: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284 -#: appTools/ToolCorners.py:297 +#: appTools/ToolCorners.py:298 msgid "Corner Markers Tool" msgstr "Unealta pentru Semne la Colț" @@ -5333,8 +5332,8 @@ msgstr "Comutați afișarea Axelor" #: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:899 #: appGUI/preferences/PreferencesUIManager.py:992 #: appGUI/preferences/PreferencesUIManager.py:1020 -#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5585 -#: app_Main.py:5590 app_Main.py:5605 +#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5508 +#: app_Main.py:5513 app_Main.py:5528 msgid "Preferences" msgstr "Preferințe" @@ -5370,21 +5369,21 @@ msgstr "" msgid "TCL Shell" msgstr "TCL Shell" -#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 +#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:9017 msgid "Project" msgstr "Proiect" #: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:3791 -#: appGUI/MainGUI.py:3797 app_Main.py:2480 app_Main.py:7001 +#: appGUI/MainGUI.py:3797 app_Main.py:2489 app_Main.py:8825 msgid "Plot Area" msgstr "Arie Afișare" -#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1169 -#: appTools/ToolCorners.py:317 appTools/ToolEtchCompensation.py:291 -#: appTools/ToolExtractDrills.py:453 appTools/ToolFiducials.py:873 +#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1165 +#: appTools/ToolCorners.py:318 appTools/ToolEtchCompensation.py:291 +#: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:875 #: appTools/ToolInvertGerber.py:215 appTools/ToolIsolation.py:2986 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:721 -#: appTools/ToolQRCode.py:659 appTools/ToolRulesCheck.py:1165 +#: appTools/ToolQRCode.py:660 appTools/ToolRulesCheck.py:1165 #: appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:643 msgid "GERBER" msgstr "GERBER" @@ -5472,9 +5471,9 @@ msgstr "Comută Vizibilitate" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:526 -#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:929 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2014 appTools/ToolDblSided.py:528 +#: appTools/ToolDblSided.py:769 appTools/ToolFilm.py:929 #: appTools/ToolFilm.py:952 appTools/ToolImage.py:136 appTools/ToolImage.py:191 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 @@ -5492,9 +5491,9 @@ msgstr "Geometrie" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:892 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolDblSided.py:527 appTools/ToolDblSided.py:724 -#: appTools/ToolDblSided.py:766 appTools/ToolFilm.py:1207 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:768 appTools/ToolFilm.py:1207 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:805 appTools/ToolNCC.py:4323 appTools/ToolPaint.py:167 #: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147 @@ -5572,7 +5571,7 @@ msgstr "Editor EXC" msgid "Add Drill" msgstr "Adaugă găurire" -#: appGUI/MainGUI.py:1581 app_Main.py:2291 +#: appGUI/MainGUI.py:1581 app_Main.py:2300 msgid "Close Editor" msgstr "Inchide Editorul" @@ -5598,8 +5597,8 @@ msgstr "Esti sigur că dorești să ștergi setările GUI?\n" #: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:931 #: appGUI/preferences/PreferencesUIManager.py:1177 appTranslation.py:111 -#: appTranslation.py:213 app_Main.py:2295 app_Main.py:3390 app_Main.py:5815 -#: app_Main.py:6899 +#: appTranslation.py:213 app_Main.py:2304 app_Main.py:3313 app_Main.py:5738 +#: app_Main.py:8723 msgid "Yes" msgstr "Da" @@ -5611,7 +5610,7 @@ msgstr "Da" #: appTools/ToolDrilling.py:2090 appTools/ToolIsolation.py:3066 #: appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3935 #: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 -#: app_Main.py:2296 app_Main.py:3391 app_Main.py:5816 app_Main.py:6900 +#: app_Main.py:2305 app_Main.py:3314 app_Main.py:5739 app_Main.py:8724 msgid "No" msgstr "Nu" @@ -5700,7 +5699,7 @@ msgstr "Adăugarea unei unelte anulată..." msgid "Distance Tool exit..." msgstr "Măsurătoarea s-a terminat ..." -#: appGUI/MainGUI.py:3725 app_Main.py:3378 +#: appGUI/MainGUI.py:3725 app_Main.py:3301 msgid "Application is saving the project. Please wait ..." msgstr "Aplicația salvează proiectul. Vă rugăm aşteptați ..." @@ -5744,7 +5743,7 @@ msgstr "Gerber Nou" msgid "Edit Object (if selected)" msgstr "Editeaza obiectul (daca este selectat)" -#: appGUI/MainGUI.py:4261 app_Main.py:6115 +#: appGUI/MainGUI.py:4261 app_Main.py:6038 msgid "Grid On/Off" msgstr "Grid On/Off" @@ -5815,7 +5814,7 @@ msgstr "Încarcă un fisier Gerber" msgid "New Project" msgstr "Un Nou Project" -#: appGUI/MainGUI.py:4270 app_Main.py:7229 app_Main.py:7232 +#: appGUI/MainGUI.py:4270 app_Main.py:8166 app_Main.py:8169 msgid "Open Project" msgstr "Încarcă Project" @@ -6242,7 +6241,7 @@ msgstr "Opțiuni afișare" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1290 +#: appTools/ToolCopperThieving.py:1286 msgid "Solid" msgstr "Solid" @@ -6408,15 +6407,15 @@ msgstr "" "Obiectul Geometrie rezultat \n" "va avea colțurile rotunjite." -#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2287 -#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444 +#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2291 +#: appTools/ToolCutOut.py:2306 appTools/ToolIsolation.py:3444 #: appTools/ToolNCC.py:4372 appTools/ToolPaint.py:3178 msgid "Generate Geometry" msgstr "Genereza Geometrie" #: appGUI/ObjectUI.py:478 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:782 +#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:783 msgid "Bounding Box" msgstr "Forma înconjurătoare" @@ -6753,7 +6752,7 @@ msgstr "" msgid "Add from DB" msgstr "Adaugă Unealtă din DB" -#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2071 +#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2075 #: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3122 #: appTools/ToolNCC.py:3996 appTools/ToolPaint.py:2898 msgid "Search and Add" @@ -6767,13 +6766,13 @@ msgstr "" "Adaugă o noua unelata in Tabela de Unelte,\n" "cu diametrul specificat mai sus." -#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2083 +#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2087 #: appTools/ToolIsolation.py:65 appTools/ToolIsolation.py:3133 #: appTools/ToolNCC.py:4007 appTools/ToolPaint.py:2909 msgid "Pick from DB" msgstr "Alegeți din DB" -#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2086 +#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2090 #: appTools/ToolIsolation.py:3136 appTools/ToolNCC.py:4010 #: appTools/ToolPaint.py:2912 msgid "" @@ -6871,7 +6870,7 @@ msgstr "" #: appGUI/ObjectUI.py:1216 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2107 +#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2111 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -6883,7 +6882,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 -#: appTools/ToolCutOut.py:2125 appTools/ToolDrilling.py:2164 +#: appTools/ToolCutOut.py:2129 appTools/ToolDrilling.py:2164 #: appTools/ToolMilling.py:1814 msgid "Multi-Depth" msgstr "Multi-Pas" @@ -7557,12 +7556,12 @@ msgstr "" #: appGUI/ObjectUI.py:2177 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: appTools/ToolCutOut.py:2324 appTools/ToolFiducials.py:801 +#: appTools/ToolCutOut.py:2328 appTools/ToolFiducials.py:803 msgid "Manual" msgstr "Manual" #: appGUI/ObjectUI.py:2178 -#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:9736 +#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:7312 msgid "Grid" msgstr "Grilă" @@ -7882,7 +7881,7 @@ msgstr "Aliniere" msgid "Align Left" msgstr "Aliniați la stânga" -#: appGUI/ObjectUI.py:2860 app_Main.py:4999 +#: appGUI/ObjectUI.py:2860 app_Main.py:4922 msgid "Center" msgstr "Centru" @@ -7972,7 +7971,7 @@ msgid "Preferences default values are restored." msgstr "Valorile implicite pt preferințe sunt restabilite." #: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 -#: app_Main.py:2696 +#: app_Main.py:9396 msgid "Failed to write defaults to file." msgstr "Salvarea valorilor default intr-un fişier a eșuat." @@ -8022,10 +8021,10 @@ msgstr "Opțiuni Avans. CNCJob" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1188 -#: appTools/ToolCorners.py:377 appTools/ToolEtchCompensation.py:356 -#: appTools/ToolFiducials.py:763 appTools/ToolInvertGerber.py:228 -#: appTools/ToolQRCode.py:695 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1184 +#: appTools/ToolCorners.py:378 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolFiducials.py:765 appTools/ToolInvertGerber.py:228 +#: appTools/ToolQRCode.py:696 msgid "Parameters" msgstr "Parametri" @@ -8139,7 +8138,7 @@ msgid "G-code Decimals" msgstr "Zecimale G-Code" #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:682 +#: appTools/ToolFiducials.py:684 msgid "Coordinates" msgstr "Coordinate" @@ -8906,7 +8905,7 @@ msgstr "Setări Aplicație" msgid "Grid Settings" msgstr "Setări Grilă" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:9744 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:7320 msgid "X value" msgstr "Val X" @@ -8914,7 +8913,7 @@ msgstr "Val X" msgid "This is the Grid snap value on X axis." msgstr "Aceasta este valoare pentru lipire pe Grid pe axa X." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:9747 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:7323 msgid "Y value" msgstr "Val Y" @@ -8961,14 +8960,14 @@ msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: appTools/ToolFilm.py:1274 app_Main.py:9764 +#: appTools/ToolFilm.py:1274 app_Main.py:7340 msgid "Portrait" msgstr "Portret" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: appTools/ToolFilm.py:1275 app_Main.py:9766 +#: appTools/ToolFilm.py:1275 app_Main.py:7342 msgid "Landscape" msgstr "Peisaj" @@ -8988,7 +8987,7 @@ msgstr "" "și include filele Proiect, Selectat și Unelte." #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -#: appTools/ToolDblSided.py:666 appTools/ToolDblSided.py:838 app_Main.py:9752 +#: appTools/ToolDblSided.py:668 appTools/ToolDblSided.py:840 app_Main.py:7328 msgid "Axis" msgstr "Axă" @@ -9008,7 +9007,7 @@ msgstr "" "Aceasta setează dimensiunea fontului pentru elementele \n" "din interfața GUI care sunt utilizate în aplicație." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:9769 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:7345 msgid "HUD" msgstr "HUD" @@ -10073,8 +10072,8 @@ msgid "\"Follow\"" msgstr "\"Urmareste\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:579 -#: appTools/ToolCopperThieving.py:776 appTools/ToolCopperThieving.py:788 +#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:578 +#: appTools/ToolCopperThieving.py:775 appTools/ToolCopperThieving.py:787 #: appTools/ToolIsolation.py:1353 appTools/ToolNCC.py:1793 #: appTools/ToolNCC.py:1820 appTools/ToolNCC.py:1928 appTools/ToolNCC.py:1941 #: appTools/ToolNCC.py:2845 appTools/ToolNCC.py:2950 appTools/ToolNCC.py:2965 @@ -10103,7 +10102,7 @@ msgstr "" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102 +#: appTools/ToolFiducials.py:817 appTools/ToolFilm.py:1102 #: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -10387,7 +10386,7 @@ msgstr "Numărul de pași (linii) utilizate pentru interpolarea cercurilor." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1195 appTools/ToolCopperThieving.py:1530 +#: appTools/ToolCopperThieving.py:1191 appTools/ToolCopperThieving.py:1526 msgid "Clearance" msgstr "Degajare" @@ -10403,7 +10402,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1224 appTools/ToolNCC.py:1351 +#: appTools/ToolCopperThieving.py:1220 appTools/ToolNCC.py:1351 #: appTools/ToolNCC.py:1667 appTools/ToolNCC.py:1731 appTools/ToolNCC.py:2709 #: appTools/ToolNCC.py:2718 appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4436 #: defaults.py:478 tclCommands/TclCommandCopperClear.py:190 @@ -10414,7 +10413,7 @@ msgstr "Însuşi" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1225 appTools/ToolIsolation.py:819 +#: appTools/ToolCopperThieving.py:1221 appTools/ToolIsolation.py:819 #: appTools/ToolIsolation.py:1435 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1365 appTools/ToolNCC.py:1683 appTools/ToolNCC.py:1738 #: appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4446 appTools/ToolPaint.py:1061 @@ -10426,7 +10425,7 @@ msgstr "Selecţie zonă" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolDblSided.py:757 +#: appTools/ToolCopperThieving.py:1222 appTools/ToolDblSided.py:759 #: appTools/ToolIsolation.py:1475 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1384 appTools/ToolNCC.py:1689 appTools/ToolNCC.py:1746 #: appTools/ToolNCC.py:2124 appTools/ToolNCC.py:2358 appTools/ToolNCC.py:2754 @@ -10437,7 +10436,7 @@ msgid "Reference Object" msgstr "Obiect Ref" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1224 msgid "Reference:" msgstr "Referinţă:" @@ -10461,24 +10460,24 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1270 appTools/ToolExtractDrills.py:494 -#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:770 +#: appTools/ToolCopperThieving.py:1266 appTools/ToolExtractDrills.py:495 +#: appTools/ToolExtractDrills.py:633 appTools/ToolPunchGerber.py:770 #: appTools/ToolPunchGerber.py:925 msgid "Rectangular" msgstr "Patrulater" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1271 +#: appTools/ToolCopperThieving.py:1267 msgid "Minimal" msgstr "Minimal" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1273 appTools/ToolFilm.py:954 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolFilm.py:954 msgid "Box Type:" msgstr "Tip container:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1275 +#: appTools/ToolCopperThieving.py:1271 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10487,27 +10486,27 @@ msgstr "" "- „Minimal” - caseta de delimitare va fi forma arie convexă." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1291 +#: appTools/ToolCopperThieving.py:1287 msgid "Dots Grid" msgstr "Grilă de puncte" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1292 +#: appTools/ToolCopperThieving.py:1288 msgid "Squares Grid" msgstr "Grilă de pătrate" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1293 +#: appTools/ToolCopperThieving.py:1289 msgid "Lines Grid" msgstr "Grilă de linii" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1295 +#: appTools/ToolCopperThieving.py:1291 msgid "Fill Type:" msgstr "Tip de umplere:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1297 +#: appTools/ToolCopperThieving.py:1293 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10520,57 +10519,57 @@ msgstr "" "- „Grilă de linii” - zona goală va fi umplută cu un model de linii." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1316 +#: appTools/ToolCopperThieving.py:1312 msgid "Dots Grid Parameters" msgstr "Parametri grilă puncte" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1322 +#: appTools/ToolCopperThieving.py:1318 msgid "Dot diameter in Dots Grid." msgstr "Diametrul punctului în Grila de Puncte." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1335 +#: appTools/ToolCopperThieving.py:1331 msgid "Distance between each two dots in Dots Grid." msgstr "Distanța dintre fiecare două puncte din Grila de Puncte." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1356 +#: appTools/ToolCopperThieving.py:1352 msgid "Squares Grid Parameters" msgstr "Parametri grilă de patrate" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1362 +#: appTools/ToolCopperThieving.py:1358 msgid "Square side size in Squares Grid." msgstr "Dimensiunea pătratului în Grila de Pătrate." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1375 +#: appTools/ToolCopperThieving.py:1371 msgid "Distance between each two squares in Squares Grid." msgstr "Distanța dintre fiecare două pătrate din Grila Pătrate." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1396 +#: appTools/ToolCopperThieving.py:1392 msgid "Lines Grid Parameters" msgstr "Parametri grilă de linii" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1402 +#: appTools/ToolCopperThieving.py:1398 msgid "Line thickness size in Lines Grid." msgstr "Mărimea grosimii liniei în Grila de linii." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1415 +#: appTools/ToolCopperThieving.py:1411 msgid "Distance between each two lines in Lines Grid." msgstr "Distanța dintre fiecare două linii în Grial de linii." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1453 +#: appTools/ToolCopperThieving.py:1449 msgid "Robber Bar Parameters" msgstr "Parametri pentru Robber Bar" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1455 +#: appTools/ToolCopperThieving.py:1451 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10579,7 +10578,7 @@ msgstr "" "Robber Bar = bordura de cupru pentru a ajuta la placarea de găuri, cu model." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1463 +#: appTools/ToolCopperThieving.py:1459 msgid "Bounding box margin for robber bar." msgstr "" "Marginea pentru forma înconjurătoare\n" @@ -10587,28 +10586,28 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCopperThieving.py:1474 appTools/ToolCorners.py:384 +#: appTools/ToolCopperThieving.py:1470 appTools/ToolCorners.py:385 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Grosime" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1476 +#: appTools/ToolCopperThieving.py:1472 msgid "The robber bar thickness." msgstr "Grosimea Robber Bar." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1507 +#: appTools/ToolCopperThieving.py:1503 msgid "Pattern Plating Mask" msgstr "Masca de placare cu model" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1509 +#: appTools/ToolCopperThieving.py:1505 msgid "Generate a mask for pattern plating." msgstr "Generați o mască pentru placarea cu model." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1532 +#: appTools/ToolCopperThieving.py:1528 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10625,8 +10624,8 @@ msgstr "Opțiuni Unealta Calibrare" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1190 appTools/ToolCorners.py:379 -#: appTools/ToolFiducials.py:765 +#: appTools/ToolCopperThieving.py:1186 appTools/ToolCorners.py:380 +#: appTools/ToolFiducials.py:767 msgid "Parameters used for this tool." msgstr "Parametrii folosiți pentru aceasta unealta." @@ -10716,12 +10715,12 @@ msgstr "" "- în jos-dreapta -> utilizatorul va alinia PCB-ul pe orizontală" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: appTools/ToolCalibration.py:854 app_Main.py:4996 +#: appTools/ToolCalibration.py:854 app_Main.py:4919 msgid "Top-Left" msgstr "Stânga-sus" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: appTools/ToolCalibration.py:855 app_Main.py:4997 +#: appTools/ToolCalibration.py:855 app_Main.py:4920 msgid "Bottom-Right" msgstr "Dreapta-jos" @@ -10731,13 +10730,13 @@ msgstr "Opțiuni Extractie Găuri" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:732 +#: appTools/ToolExtractDrills.py:461 appTools/ToolPunchGerber.py:732 msgid "Processed Pads Type" msgstr "Tipul de pad-uri procesate" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:734 +#: appTools/ToolExtractDrills.py:463 appTools/ToolPunchGerber.py:734 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -10749,7 +10748,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:748 +#: appTools/ToolExtractDrills.py:473 appTools/ToolPunchGerber.py:748 msgid "Process Circular Pads." msgstr "Procesează paduri Circulare." @@ -10757,26 +10756,26 @@ msgstr "Procesează paduri Circulare." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606 +#: appTools/ToolExtractDrills.py:479 appTools/ToolExtractDrills.py:607 #: appTools/ToolPunchGerber.py:754 appTools/ToolPunchGerber.py:899 msgid "Oblong" msgstr "Oval" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:756 +#: appTools/ToolExtractDrills.py:481 appTools/ToolPunchGerber.py:756 msgid "Process Oblong Pads." msgstr "Procesează paduri Ovale." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:764 +#: appTools/ToolExtractDrills.py:489 appTools/ToolPunchGerber.py:764 msgid "Process Square Pads." msgstr "Procesează paduri Pătratice." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:772 +#: appTools/ToolExtractDrills.py:497 appTools/ToolPunchGerber.py:772 msgid "Process Rectangular Pads." msgstr "Procesează paduri Rectangulare." @@ -10784,15 +10783,15 @@ msgstr "Procesează paduri Rectangulare." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502 -#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:171 +#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:503 +#: appTools/ToolExtractDrills.py:646 appTools/ToolProperties.py:171 #: appTools/ToolPunchGerber.py:778 appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "Altele" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:780 +#: appTools/ToolExtractDrills.py:505 appTools/ToolPunchGerber.py:780 msgid "Process pads not in the categories above." msgstr "Procesează paduri care nu se regăsesc in alte categorii." @@ -10800,7 +10799,7 @@ msgstr "Procesează paduri care nu se regăsesc in alte categorii." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548 +#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:549 #: appTools/ToolPunchGerber.py:807 appTools/ToolPunchGerber.py:841 msgid "Fixed Diameter" msgstr "Dia fix" @@ -10809,19 +10808,19 @@ msgstr "Dia fix" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584 +#: appTools/ToolExtractDrills.py:533 appTools/ToolExtractDrills.py:585 #: appTools/ToolPunchGerber.py:808 appTools/ToolPunchGerber.py:871 msgid "Fixed Annular Ring" msgstr "Inel anular Fix" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:809 +#: appTools/ToolExtractDrills.py:534 appTools/ToolPunchGerber.py:809 msgid "Proportional" msgstr "Proportional" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: appTools/ToolExtractDrills.py:522 +#: appTools/ToolExtractDrills.py:523 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -10837,13 +10836,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:851 +#: appTools/ToolExtractDrills.py:559 appTools/ToolPunchGerber.py:851 msgid "Fixed hole diameter." msgstr "Dia gaură fix." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: appTools/ToolExtractDrills.py:586 appTools/ToolPunchGerber.py:873 +#: appTools/ToolExtractDrills.py:587 appTools/ToolPunchGerber.py:873 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -10855,31 +10854,31 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:888 +#: appTools/ToolExtractDrills.py:596 appTools/ToolPunchGerber.py:888 msgid "The size of annular ring for circular pads." msgstr "Dimensiunea inelului anular pentru paduri Circulare." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: appTools/ToolExtractDrills.py:608 appTools/ToolPunchGerber.py:901 +#: appTools/ToolExtractDrills.py:609 appTools/ToolPunchGerber.py:901 msgid "The size of annular ring for oblong pads." msgstr "Dimensiunea inelului anular pentru paduri Ovale." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: appTools/ToolExtractDrills.py:621 appTools/ToolPunchGerber.py:914 +#: appTools/ToolExtractDrills.py:622 appTools/ToolPunchGerber.py:914 msgid "The size of annular ring for square pads." msgstr "Dimensiunea inelului anular pentru paduri Pătratice." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: appTools/ToolExtractDrills.py:634 appTools/ToolPunchGerber.py:927 +#: appTools/ToolExtractDrills.py:635 appTools/ToolPunchGerber.py:927 msgid "The size of annular ring for rectangular pads." msgstr "Dimnensiunea inelului anular pentru paduri Rectangulare." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: appTools/ToolExtractDrills.py:647 appTools/ToolPunchGerber.py:940 +#: appTools/ToolExtractDrills.py:648 appTools/ToolPunchGerber.py:940 msgid "The size of annular ring for other pads." msgstr "" "Dimensiunea inelului anular pentru alte tipuri de paduri decat cele de mai " @@ -10887,7 +10886,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: appTools/ToolExtractDrills.py:668 appTools/ToolPunchGerber.py:956 +#: appTools/ToolExtractDrills.py:669 appTools/ToolPunchGerber.py:956 msgid "Proportional Diameter" msgstr "Diametru Proportional" @@ -10898,7 +10897,7 @@ msgstr "Factor" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:967 +#: appTools/ToolExtractDrills.py:680 appTools/ToolPunchGerber.py:967 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -10911,7 +10910,7 @@ msgid "Fiducials Tool Options" msgstr "Opțiuni Unealta Fiducials" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: appTools/ToolFiducials.py:772 +#: appTools/ToolFiducials.py:774 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -10922,12 +10921,12 @@ msgstr "" "Deschiderea soldermask este dublă." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: appTools/ToolFiducials.py:800 +#: appTools/ToolFiducials.py:802 msgid "Auto" msgstr "Auto" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:803 +#: appTools/ToolFiducials.py:805 msgid "Mode:" msgstr "Mod:" @@ -10941,22 +10940,22 @@ msgstr "" "- „Manual” - plasarea manuală a fiducial." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: appTools/ToolFiducials.py:813 +#: appTools/ToolFiducials.py:815 msgid "Up" msgstr "Sus" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: appTools/ToolFiducials.py:814 +#: appTools/ToolFiducials.py:816 msgid "Down" msgstr "Jos" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: appTools/ToolFiducials.py:817 +#: appTools/ToolFiducials.py:819 msgid "Second fiducial" msgstr "Al 2-lea Fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: appTools/ToolFiducials.py:819 +#: appTools/ToolFiducials.py:821 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -10970,22 +10969,22 @@ msgstr "" "dreapta." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: appTools/ToolFiducials.py:835 +#: appTools/ToolFiducials.py:837 msgid "Cross" msgstr "Cruce" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: appTools/ToolFiducials.py:836 +#: appTools/ToolFiducials.py:838 msgid "Chess" msgstr "Şah" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: appTools/ToolFiducials.py:838 +#: appTools/ToolFiducials.py:840 msgid "Fiducial Type" msgstr "Tip Fiducial" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: appTools/ToolFiducials.py:840 +#: appTools/ToolFiducials.py:842 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -10998,7 +10997,7 @@ msgstr "" "- „Șah” - model de șah fiduciar." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: appTools/ToolFiducials.py:849 +#: appTools/ToolFiducials.py:851 msgid "Line thickness" msgstr "Grosimea liniei" @@ -11110,12 +11109,12 @@ msgstr "" "într-un fișier Gerber selectat sau care poate fi exportat ca fișier." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: appTools/ToolQRCode.py:702 app_Main.py:9732 +#: appTools/ToolQRCode.py:703 app_Main.py:7308 msgid "Version" msgstr "Versiune" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: appTools/ToolQRCode.py:704 +#: appTools/ToolQRCode.py:705 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11124,13 +11123,13 @@ msgstr "" "la 40 (177x177 elemente)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: appTools/ToolQRCode.py:715 +#: appTools/ToolQRCode.py:716 msgid "Error correction" msgstr "Corectarea erorii" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: appTools/ToolQRCode.py:717 appTools/ToolQRCode.py:728 +#: appTools/ToolQRCode.py:718 appTools/ToolQRCode.py:729 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -11146,12 +11145,12 @@ msgstr "" "H = maxim 30%% erorile pot fi corectate." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: appTools/ToolQRCode.py:738 +#: appTools/ToolQRCode.py:739 msgid "Box Size" msgstr "Dim. Element" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: appTools/ToolQRCode.py:740 +#: appTools/ToolQRCode.py:741 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11160,12 +11159,12 @@ msgstr "" "prin ajustarea dimensiunii fiecărui element din cod." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: appTools/ToolQRCode.py:751 +#: appTools/ToolQRCode.py:752 msgid "Border Size" msgstr "Dim Bordură" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: appTools/ToolQRCode.py:753 +#: appTools/ToolQRCode.py:754 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." @@ -11174,27 +11173,27 @@ msgstr "" "Valoarea implicită este 4. Lățimea spatiului liber în jurul codului QRC." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: appTools/ToolQRCode.py:673 +#: appTools/ToolQRCode.py:674 msgid "QRCode Data" msgstr "Date QRCode" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: appTools/ToolQRCode.py:675 +#: appTools/ToolQRCode.py:676 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "Date QRCode. Text alfanumeric care va fi codat în codul QRC." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: appTools/ToolQRCode.py:679 +#: appTools/ToolQRCode.py:680 msgid "Add here the text to be included in the QRCode..." msgstr "Adăugați aici textul care va fi inclus în codul QR ..." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: appTools/ToolQRCode.py:764 +#: appTools/ToolQRCode.py:765 msgid "Polarity" msgstr "Polaritate" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: appTools/ToolQRCode.py:766 +#: appTools/ToolQRCode.py:767 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11205,17 +11204,17 @@ msgstr "" "sau într-un mod pozitiv (pătratele sunt opace)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:770 +#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:771 msgid "Negative" msgstr "Negativ" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:771 +#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:772 msgid "Positive" msgstr "Pozitiv" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: appTools/ToolQRCode.py:773 +#: appTools/ToolQRCode.py:774 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -11229,7 +11228,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: appTools/ToolQRCode.py:784 appTools/ToolQRCode.py:790 +#: appTools/ToolQRCode.py:785 appTools/ToolQRCode.py:791 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -11238,22 +11237,22 @@ msgstr "" "geometria QRCode, poate avea o formă rotunjită sau pătrată." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: appTools/ToolQRCode.py:818 +#: appTools/ToolQRCode.py:819 msgid "Fill Color" msgstr "Culoare Continut" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: appTools/ToolQRCode.py:820 +#: appTools/ToolQRCode.py:821 msgid "Set the QRCode fill color (squares color)." msgstr "Setați culoarea QRCode de umplere (culoarea elementelor)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: appTools/ToolQRCode.py:842 +#: appTools/ToolQRCode.py:843 msgid "Back Color" msgstr "Culoare de fundal" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: appTools/ToolQRCode.py:844 +#: appTools/ToolQRCode.py:845 msgid "Set the QRCode background color." msgstr "Setați culoarea de fundal QRCode." @@ -11480,7 +11479,7 @@ msgid "Drill dia" msgstr "Dia gaură" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: appTools/ToolDblSided.py:824 appTools/ToolDblSided.py:829 +#: appTools/ToolDblSided.py:826 appTools/ToolDblSided.py:831 msgid "Diameter of the drill for the alignment holes." msgstr "Diametrul găurii pentru găurile de aliniere." @@ -11490,7 +11489,7 @@ msgstr "Aliniați Axa" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: appTools/ToolDblSided.py:667 appTools/ToolDblSided.py:840 +#: appTools/ToolDblSided.py:669 appTools/ToolDblSided.py:842 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Oglindește vertical (X) sau orizontal (Y)." @@ -11499,12 +11498,12 @@ msgid "Mirror Axis:" msgstr "Axe oglindire:" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 -#: appTools/ToolDblSided.py:693 +#: appTools/ToolDblSided.py:695 msgid "Box" msgstr "Forma" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 -#: appTools/ToolDblSided.py:694 +#: appTools/ToolDblSided.py:696 msgid "Hole Snap" msgstr "Gaură de referinta" @@ -11659,12 +11658,12 @@ msgid "Corner Markers Options" msgstr "Opțiuni Marcaje Colțuri" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:386 +#: appTools/ToolCorners.py:387 msgid "The thickness of the line that makes the corner marker." msgstr "Grosimea liniei care face marcajul de colț." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:400 +#: appTools/ToolCorners.py:401 msgid "The length of the line that makes the corner marker." msgstr "Lungimea liniei care face marcajul de colț." @@ -11683,7 +11682,7 @@ msgstr "" "placa din care a fost taiat." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: appTools/ToolCutOut.py:2062 +#: appTools/ToolCutOut.py:2066 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -11696,7 +11695,7 @@ msgid "Object kind" msgstr "Tipul de obiect" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: appTools/ToolCutOut.py:1995 +#: appTools/ToolCutOut.py:1999 msgid "" "Choice of what kind the object we want to cutout is.
    - Single: " "contain a single PCB Gerber outline object.
    - Panel: a panel PCB " @@ -11709,12 +11708,12 @@ msgstr "" "din mai multe contururi PCB." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: appTools/ToolCutOut.py:2001 +#: appTools/ToolCutOut.py:2005 msgid "Single" msgstr "Unic" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: appTools/ToolCutOut.py:2002 +#: appTools/ToolCutOut.py:2006 msgid "Panel" msgstr "Panel" @@ -11743,12 +11742,12 @@ msgstr "" "- 8 = 2* stânga - 2* dreapta - 2* sus - 2* jos" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 -#: appTools/ToolCutOut.py:2333 +#: appTools/ToolCutOut.py:2337 msgid "Big cursor" msgstr "Cursor mare" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 -#: appTools/ToolCutOut.py:2335 +#: appTools/ToolCutOut.py:2339 msgid "Use a big cursor when adding manual gaps." msgstr "Utilizați un cursor mare atunci când adăugați Punti in mod manual." @@ -12013,18 +12012,18 @@ msgstr "" "geometriei." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:342 appTools/ToolFiducials.py:694 +#: appTools/ToolCorners.py:343 appTools/ToolFiducials.py:696 #: appTools/ToolFilm.py:1065 msgid "Bottom Left" msgstr "Stânga jos" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:350 appTools/ToolFilm.py:1066 +#: appTools/ToolCorners.py:351 appTools/ToolFilm.py:1066 msgid "Top Left" msgstr "Stânga sus" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:346 appTools/ToolFilm.py:1067 +#: appTools/ToolCorners.py:347 appTools/ToolFilm.py:1067 msgid "Bottom Right" msgstr "Dreapta-jos" @@ -12306,9 +12305,9 @@ msgstr "Progresiv" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:453 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1044 -#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530 -#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:463 app_Main.py:4682 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCorners.py:264 appTools/ToolFiducials.py:532 +#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:464 app_Main.py:4605 msgid "Plotting" msgstr "Se afișeaz" @@ -12504,9 +12503,9 @@ msgstr "Numărul de linii ale panel-ului dorit" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:891 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2009 appTools/ToolDblSided.py:525 -#: appTools/ToolDblSided.py:765 appTools/ToolFilm.py:928 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:527 +#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:928 #: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 #: appTools/ToolIsolation.py:3339 appTools/ToolIsolation.py:3391 @@ -13127,7 +13126,7 @@ msgid "Export cancelled ..." msgstr "Exportul anulat ..." #: appObjects/FlatCAMCNCJob.py:1678 appObjects/FlatCAMCNCJob.py:1965 -#: appObjects/FlatCAMScript.py:134 app_Main.py:7830 +#: appObjects/FlatCAMScript.py:134 app_Main.py:6925 msgid "Loading..." msgstr "Se incarcă..." @@ -13261,7 +13260,7 @@ msgstr "Adaugă Unealta din DB Unelte" #: appTools/ToolDrilling.py:1021 appTools/ToolIsolation.py:639 #: appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744 #: appTools/ToolMilling.py:779 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 -#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2194 +#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2203 msgid "No Tool Selected" msgstr "Nici-o Unealtă selectată" @@ -13568,7 +13567,7 @@ msgstr "Obiectul este redenumit din {old} in {new}" #: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939 #: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951 #: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 -#: app_Main.py:6707 app_Main.py:6713 app_Main.py:6719 app_Main.py:6725 +#: app_Main.py:6630 app_Main.py:6636 app_Main.py:6642 app_Main.py:6648 msgid "selected" msgstr "selectat" @@ -13738,7 +13737,7 @@ msgid "Click on the START point." msgstr "Click pe punctul START." #: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276 -#: appTools/ToolDblSided.py:285 +#: appTools/ToolDblSided.py:287 msgid "Cancelled by user request." msgstr "Anulat prin solicitarea utilizatorului." @@ -13752,7 +13751,7 @@ msgid "Or right click to cancel." msgstr "Sau fă click dreapta pentru anulare." #: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267 -#: appTools/ToolFiducials.py:718 +#: appTools/ToolFiducials.py:720 msgid "Second Point" msgstr "Al doilea punct" @@ -13839,32 +13838,32 @@ msgstr "" "rotatie." #: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1583 -#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394 -#: appTools/ToolDblSided.py:938 appTools/ToolDrilling.py:2649 -#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:702 -#: appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCorners.py:445 appTools/ToolCutOut.py:2398 +#: appTools/ToolDblSided.py:940 appTools/ToolDrilling.py:2649 +#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:703 +#: appTools/ToolFiducials.py:934 appTools/ToolFilm.py:1383 #: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477 #: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4388 #: appTools/ToolOptimal.py:593 appTools/ToolPaint.py:3194 #: appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:996 -#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1620 +#: appTools/ToolQRCode.py:905 appTools/ToolRulesCheck.py:1620 #: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:754 #: appTools/ToolTransform.py:920 msgid "Reset Tool" msgstr "Resetați Unealta" #: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1586 -#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397 -#: appTools/ToolDblSided.py:941 appTools/ToolDrilling.py:2652 -#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:705 -#: appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1582 +#: appTools/ToolCorners.py:448 appTools/ToolCutOut.py:2401 +#: appTools/ToolDblSided.py:943 appTools/ToolDrilling.py:2652 +#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:706 +#: appTools/ToolFiducials.py:937 appTools/ToolFilm.py:1386 #: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480 #: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4391 #: appTools/ToolOptimal.py:596 appTools/ToolPaint.py:3197 #: appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:999 -#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1623 +#: appTools/ToolQRCode.py:908 appTools/ToolRulesCheck.py:1623 #: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:757 #: appTools/ToolTransform.py:923 msgid "Will reset the tool parameters." @@ -14278,30 +14277,30 @@ msgstr "Umplere Grila de Puncte selectată." msgid "Squares grid fill selected." msgstr "Umplere Grila de Pătrate selectată." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308 -#: appTools/ToolCopperThieving.py:916 appTools/ToolCorners.py:120 -#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141 +#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:307 +#: appTools/ToolCopperThieving.py:914 appTools/ToolCorners.py:120 +#: appTools/ToolDblSided.py:306 appTools/ToolExtractDrills.py:141 #: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464 #: appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:188 #: appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Nu este nici-un obiect Gerber incărcat ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:844 +#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 msgid "Append geometry" msgstr "Adăugați geometria" -#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:877 -#: appTools/ToolCopperThieving.py:1022 +#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:876 +#: appTools/ToolCopperThieving.py:1020 msgid "Append source file" msgstr "Adăugați fișierul sursă" -#: appTools/ToolCopperThieving.py:291 appTools/ToolCopperThieving.py:885 +#: appTools/ToolCopperThieving.py:290 appTools/ToolCopperThieving.py:883 msgid "Copper Thieving Tool done." msgstr "Unealta Copper Thieving efectuata." -#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351 -#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917 +#: appTools/ToolCopperThieving.py:317 appTools/ToolCopperThieving.py:350 +#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:918 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 #: appTools/ToolIsolation.py:908 appTools/ToolIsolation.py:1345 @@ -14316,78 +14315,78 @@ msgstr "Unealta Copper Thieving efectuata." msgid "Could not retrieve object" msgstr "Nu s-a putut incărca obiectul" -#: appTools/ToolCopperThieving.py:379 +#: appTools/ToolCopperThieving.py:378 msgid "Click the end point of the filling area." msgstr "Faceți clic pe punctul final al zonei de umplere." -#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511 -#: appTools/ToolCopperThieving.py:570 +#: appTools/ToolCopperThieving.py:506 appTools/ToolCopperThieving.py:510 +#: appTools/ToolCopperThieving.py:569 msgid "Thieving" msgstr "Thieving" -#: appTools/ToolCopperThieving.py:518 +#: appTools/ToolCopperThieving.py:517 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Unealta Thieving Tool a pornit. Se citesc parametrii." -#: appTools/ToolCopperThieving.py:543 +#: appTools/ToolCopperThieving.py:542 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Unealta Thieving Tool. Se pregătesc poligoanele de isolare." -#: appTools/ToolCopperThieving.py:586 +#: appTools/ToolCopperThieving.py:585 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Unealta Thieving Tool. Se pregătesc zonele de umplut cu cupru." -#: appTools/ToolCopperThieving.py:597 appTools/ToolFilm.py:631 +#: appTools/ToolCopperThieving.py:596 appTools/ToolFilm.py:631 #: appTools/ToolFilm.py:879 appTools/ToolIsolation.py:916 #: appTools/ToolNCC.py:853 appTools/ToolOptimal.py:145 #: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:627 msgid "Working..." msgstr "Se lucrează..." -#: appTools/ToolCopperThieving.py:626 +#: appTools/ToolCopperThieving.py:625 msgid "Geometry not supported for bounding box" msgstr "Geometria nu este acceptată pentru caseta de delimitare" -#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1681 +#: appTools/ToolCopperThieving.py:631 appTools/ToolNCC.py:1681 #: appTools/ToolNCC.py:1736 appTools/ToolNCC.py:2734 appTools/ToolPaint.py:2457 msgid "No object available." msgstr "Nici-un obiect disponibil." -#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1706 +#: appTools/ToolCopperThieving.py:668 appTools/ToolNCC.py:1706 #: appTools/ToolNCC.py:1759 appTools/ToolNCC.py:2776 msgid "The reference object type is not supported." msgstr "Tipul de obiect de referintă nu este acceptat." -#: appTools/ToolCopperThieving.py:674 +#: appTools/ToolCopperThieving.py:673 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "" "Unealta Copper Thieving. Se adauga o noua geometrie si se fuzioneaza acestea." -#: appTools/ToolCopperThieving.py:690 +#: appTools/ToolCopperThieving.py:689 msgid "Create geometry" msgstr "Creați geometrie" -#: appTools/ToolCopperThieving.py:896 appTools/ToolCopperThieving.py:900 +#: appTools/ToolCopperThieving.py:894 appTools/ToolCopperThieving.py:898 msgid "P-Plating Mask" msgstr "Mască M-Placare" -#: appTools/ToolCopperThieving.py:922 +#: appTools/ToolCopperThieving.py:920 msgid "Append PP-M geometry" msgstr "Adaugă geometrie mască PM" -#: appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCopperThieving.py:1036 msgid "Generating Pattern Plating Mask done." msgstr "Generarea măștii de placare cu model efectuată." -#: appTools/ToolCopperThieving.py:1112 +#: appTools/ToolCopperThieving.py:1108 msgid "Copper Thieving Tool exit." msgstr "Unealta Copper Thieving terminata." -#: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 +#: appTools/ToolCopperThieving.py:1167 appTools/ToolFiducials.py:877 msgid "Gerber Object to which will be added a copper thieving." msgstr "Obiect Gerber căruia i se va adăuga Copper Thieving." -#: appTools/ToolCopperThieving.py:1197 +#: appTools/ToolCopperThieving.py:1193 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14397,7 +14396,7 @@ msgstr "" "(umplutura poligonului poate fi împărțită în mai multe poligoane)\n" "si traseele de cupru din fisierul Gerber." -#: appTools/ToolCopperThieving.py:1230 +#: appTools/ToolCopperThieving.py:1226 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 " @@ -14411,12 +14410,12 @@ msgstr "" "- „Obiect de referință” - va face Copper Thieving în zona specificată de un " "alt obiect." -#: appTools/ToolCopperThieving.py:1237 appTools/ToolIsolation.py:3385 +#: appTools/ToolCopperThieving.py:1233 appTools/ToolIsolation.py:3385 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3137 msgid "Ref. Type" msgstr "Tip Ref" -#: appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1235 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14425,22 +14424,22 @@ msgstr "" "Thieving.\n" "Poate fi Gerber, Excellon sau Geometrie." -#: appTools/ToolCopperThieving.py:1248 appTools/ToolIsolation.py:3396 +#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3396 #: appTools/ToolNCC.py:4327 appTools/ToolPaint.py:3147 msgid "Ref. Object" msgstr "Obiect Ref" -#: appTools/ToolCopperThieving.py:1250 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1246 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4329 appTools/ToolPaint.py:3149 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" "Obiectul FlatCAM pentru a fi utilizat ca referință pt. curățarea de cupru." -#: appTools/ToolCopperThieving.py:1426 +#: appTools/ToolCopperThieving.py:1422 msgid "Insert Copper thieving" msgstr "Inserați Copper Thieving" -#: appTools/ToolCopperThieving.py:1428 +#: appTools/ToolCopperThieving.py:1424 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14448,11 +14447,11 @@ msgstr "" "Se va adăuga un poligon (poate fi împărțit în mai multe părți)\n" "care va înconjura traseele Gerber la o anumită distanță." -#: appTools/ToolCopperThieving.py:1487 +#: appTools/ToolCopperThieving.py:1483 msgid "Insert Robber Bar" msgstr "Inserați Rober Bar" -#: appTools/ToolCopperThieving.py:1489 +#: appTools/ToolCopperThieving.py:1485 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14464,11 +14463,11 @@ msgstr "" "la o anumită distanță.\n" "Necesar atunci când faceți placare găuri cu model." -#: appTools/ToolCopperThieving.py:1513 +#: appTools/ToolCopperThieving.py:1509 msgid "Select Soldermask object" msgstr "Selectați obiectul Soldermask" -#: appTools/ToolCopperThieving.py:1515 +#: appTools/ToolCopperThieving.py:1511 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14478,11 +14477,11 @@ msgstr "" "Acesta va fi folosit ca bază pentru\n" "generarea de masca pentru placare cu model." -#: appTools/ToolCopperThieving.py:1544 +#: appTools/ToolCopperThieving.py:1540 msgid "Plated area" msgstr "Zona placată" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1542 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14500,19 +14499,19 @@ msgstr "" "un pic mai mari decât padurile de cupru, iar această zonă este\n" "calculată din deschiderile soldermask." -#: appTools/ToolCopperThieving.py:1557 +#: appTools/ToolCopperThieving.py:1553 msgid "mm" msgstr "mm" -#: appTools/ToolCopperThieving.py:1559 +#: appTools/ToolCopperThieving.py:1555 msgid "in" msgstr "in" -#: appTools/ToolCopperThieving.py:1566 +#: appTools/ToolCopperThieving.py:1562 msgid "Generate pattern plating mask" msgstr "Generați mască de placare cu model" -#: appTools/ToolCopperThieving.py:1568 +#: appTools/ToolCopperThieving.py:1564 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14526,39 +14525,39 @@ msgstr "" msgid "Corners Tool" msgstr "Unealta Marcaje Colt" -#: appTools/ToolCorners.py:157 +#: appTools/ToolCorners.py:158 msgid "Please select at least a location" msgstr "Vă rugăm să selectați cel puțin o locație" -#: appTools/ToolCorners.py:292 +#: appTools/ToolCorners.py:293 msgid "Corners Tool exit." msgstr "Unealta Marcaj Colturi a terminat." -#: appTools/ToolCorners.py:319 +#: appTools/ToolCorners.py:320 msgid "The Gerber object to which will be added corner markers." msgstr "Obiect Gerber căruia i se va adăuga marcaje de colt." -#: appTools/ToolCorners.py:335 +#: appTools/ToolCorners.py:336 msgid "Locations" msgstr "Locaţii" -#: appTools/ToolCorners.py:337 +#: appTools/ToolCorners.py:338 msgid "Locations where to place corner markers." msgstr "Locații unde să plasați markerele de colț." -#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706 +#: appTools/ToolCorners.py:355 appTools/ToolFiducials.py:708 msgid "Top Right" msgstr "Dreapta-sus" -#: appTools/ToolCorners.py:363 +#: appTools/ToolCorners.py:364 msgid "Toggle ALL" msgstr "Comută Toate" -#: appTools/ToolCorners.py:429 +#: appTools/ToolCorners.py:430 msgid "Add Marker" msgstr "Adaugă Marcaj" -#: appTools/ToolCorners.py:431 +#: appTools/ToolCorners.py:432 msgid "Will add corner markers to the selected Gerber file." msgstr "Va adăuga marcaje de colț în fișierul Gerber selectat." @@ -14567,7 +14566,7 @@ msgstr "Va adăuga marcaje de colț în fișierul Gerber selectat." #: appTools/ToolNCC.py:463 appTools/ToolNCC.py:992 appTools/ToolNCC.py:1130 #: appTools/ToolPaint.py:395 appTools/ToolPaint.py:686 #: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131 -#: appTools/ToolSolderPaste.py:464 app_Main.py:4496 +#: appTools/ToolSolderPaste.py:464 app_Main.py:4419 msgid "Please enter a tool diameter with non-zero value, in Float format." msgstr "" "Introduceti un diametru al uneltei valid: valoare ne-nula in format Real." @@ -14614,19 +14613,19 @@ msgstr "" "Nu este nici-un obiect selectat pentru decupaj.\n" "Selectează unul și încearcă din nou." -#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:926 -#: appTools/ToolCutOut.py:1300 appTools/ToolCutOut.py:1431 +#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:927 +#: appTools/ToolCutOut.py:1303 appTools/ToolCutOut.py:1434 #: tclCommands/TclCommandGeoCutout.py:184 msgid "Tool Diameter is zero value. Change it to a positive real number." msgstr "Diametrul uneltei este zero. Schimbă intr-o valoare pozitivă Reală." -#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:940 +#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:941 msgid "Number of gaps value is missing. Add it and retry." msgstr "" "Numărul de punţi lipseste sau este in format gresit. Adaugă din nou și " "reîncearcă." -#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:944 +#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:945 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " @@ -14634,16 +14633,16 @@ msgstr "" "Valoarea spatiilor poate fi doar una dintre: „Niciuna”, „lr”, „tb”, „2lr”, " "„2tb”, 4 sau 8. Completați o valoare corectă și încercați din nou. " -#: appTools/ToolCutOut.py:891 appTools/ToolCutOut.py:1260 -#: appTools/ToolCutOut.py:1615 +#: appTools/ToolCutOut.py:892 appTools/ToolCutOut.py:1263 +#: appTools/ToolCutOut.py:1619 msgid "Mouse bites failed." msgstr "Mouse Bites nu a reușit." -#: appTools/ToolCutOut.py:899 +#: appTools/ToolCutOut.py:900 msgid "Any form CutOut operation finished." msgstr "Operatia de decupaj cu formă liberă s-a terminat." -#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586 +#: appTools/ToolCutOut.py:922 appTools/ToolDrilling.py:1586 #: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349 #: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326 @@ -14653,45 +14652,45 @@ msgstr "Operatia de decupaj cu formă liberă s-a terminat." msgid "Object not found" msgstr "Obiectul nu a fost gasit" -#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187 +#: appTools/ToolCutOut.py:1115 appTools/ToolCutOut.py:1188 msgid "Rectangular cutout with negative margin is not possible." msgstr "Tăierea rectangulară cu marginea negativă nu este posibilă." -#: appTools/ToolCutOut.py:1268 +#: appTools/ToolCutOut.py:1271 msgid "Rectangular CutOut operation finished." msgstr "Operațiunea CutOut dreptunghiulară s-a încheiat." -#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316 +#: appTools/ToolCutOut.py:1287 appTools/ToolCutOut.py:1319 msgid "Could not retrieve Geometry object" msgstr "Nu s-a putut incărca obiectul Geometrie" -#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344 +#: appTools/ToolCutOut.py:1292 appTools/ToolCutOut.py:1347 msgid "Geometry object for manual cutout not found" msgstr "Obiectul Geometrie pentru decupaj manual nu este găsit" -#: appTools/ToolCutOut.py:1292 +#: appTools/ToolCutOut.py:1295 msgid "" "Click on the selected geometry object perimeter to create a bridge gap ..." msgstr "" "Click pe perimetrul obiectului tip Geometrie selectat\n" "pentru a crea o punte separatoare." -#: appTools/ToolCutOut.py:1380 +#: appTools/ToolCutOut.py:1383 msgid "No tool in the Geometry object." msgstr "Nicio unealta în obiectul Geometrie." -#: appTools/ToolCutOut.py:1401 +#: appTools/ToolCutOut.py:1404 msgid "" "Added manual Bridge Gap. Left click to add another or right click to finish." msgstr "" "S-a adăugat manual o punte. Faceți clic stânga pentru a adăuga alta sau " "faceți clic dreapta pentru a termina." -#: appTools/ToolCutOut.py:1413 +#: appTools/ToolCutOut.py:1416 msgid "Could not retrieve Gerber object" msgstr "Nu s-a putut incărca obiectul Gerber" -#: appTools/ToolCutOut.py:1418 +#: appTools/ToolCutOut.py:1421 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." @@ -14699,7 +14698,7 @@ msgstr "" "Nu există obiect selectat pt operatia de decupare.\n" "Selectează un obiect si incearcă din nou." -#: appTools/ToolCutOut.py:1424 +#: appTools/ToolCutOut.py:1427 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -14707,36 +14706,36 @@ msgstr "" "Obiectul selectat trebuie să fie de tip Gerber.\n" "Selectează un obiect Gerber si incearcă din nou." -#: appTools/ToolCutOut.py:1459 +#: appTools/ToolCutOut.py:1462 msgid "Geometry not supported for cutout" msgstr "Geometria nu este acceptată pentru decupaj" -#: appTools/ToolCutOut.py:1531 +#: appTools/ToolCutOut.py:1534 msgid "Making manual bridge gap..." msgstr "Se generează o punte separatoare in mod manual..." -#: appTools/ToolCutOut.py:1619 +#: appTools/ToolCutOut.py:1623 msgid "Finished manual adding of gaps." msgstr "S-a terminat adăugarea manuală a Puntilor." -#: appTools/ToolCutOut.py:1961 +#: appTools/ToolCutOut.py:1965 msgid "Cutout PCB" msgstr "Decupare PCB" -#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513 +#: appTools/ToolCutOut.py:1991 appTools/ToolDblSided.py:515 #: appTools/ToolPanelize.py:652 msgid "Source Object" msgstr "Obiect Sursă" -#: appTools/ToolCutOut.py:1988 +#: appTools/ToolCutOut.py:1992 msgid "Object to be cutout" msgstr "Obiect care trebuie decupat" -#: appTools/ToolCutOut.py:1993 +#: appTools/ToolCutOut.py:1997 msgid "Kind" msgstr "Fel" -#: appTools/ToolCutOut.py:2015 +#: appTools/ToolCutOut.py:2019 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -14749,7 +14748,7 @@ msgstr "" "obiecte care vor aparea in combobox-ul\n" "numit >Obiect<." -#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125 +#: appTools/ToolCutOut.py:2078 appTools/ToolIsolation.py:3125 #: appTools/ToolNCC.py:3999 appTools/ToolPaint.py:2901 msgid "" "Add a new tool to the Tool Table\n" @@ -14764,25 +14763,25 @@ msgstr "" "în baza de date Instrumente. Dacă nu se găsește nimic\n" "în DB Unelte se adaugă o unealtă implicită." -#: appTools/ToolCutOut.py:2100 +#: appTools/ToolCutOut.py:2104 msgid "Tool Parameters" msgstr "Parametrii Unealtă" -#: appTools/ToolCutOut.py:2249 +#: appTools/ToolCutOut.py:2253 msgid "Automatic" msgstr "Automat" -#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324 +#: appTools/ToolCutOut.py:2253 appTools/ToolCutOut.py:2328 msgid "Bridge Gaps" msgstr "Punţi" -#: appTools/ToolCutOut.py:2251 +#: appTools/ToolCutOut.py:2255 msgid "This section handle creation of automatic bridge gaps." msgstr "" "Aceasta sectiune va permite crearea in mod automat\n" "a pana la 8 punţi." -#: appTools/ToolCutOut.py:2290 +#: appTools/ToolCutOut.py:2294 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -14792,7 +14791,7 @@ msgstr "" "Forma decupajului poate avea orice forma.\n" "Folositor când PCB-ul are o forma neregulata." -#: appTools/ToolCutOut.py:2305 +#: appTools/ToolCutOut.py:2309 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -14802,7 +14801,7 @@ msgstr "" "Decupează obiectul selectat.\n" "Forma decupajului este tot timpul dreptunghiulara.." -#: appTools/ToolCutOut.py:2326 +#: appTools/ToolCutOut.py:2330 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -14814,11 +14813,11 @@ msgstr "" "apasarea tastei CTRL, operatia se va repeta automat pana când\n" "se va apasa tasta 'Escape'. " -#: appTools/ToolCutOut.py:2342 +#: appTools/ToolCutOut.py:2346 msgid "Generate Manual Geometry" msgstr "Generați geometrie manuală" -#: appTools/ToolCutOut.py:2345 +#: appTools/ToolCutOut.py:2349 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -14831,19 +14830,19 @@ msgstr "" "Selectează obiectul sursa Gerber in combobox-ul de mai sus,\n" "numit >Obiect<." -#: appTools/ToolCutOut.py:2365 +#: appTools/ToolCutOut.py:2369 msgid "Manual cutout Geometry" msgstr "Decupare manuală Geometrie" -#: appTools/ToolCutOut.py:2367 +#: appTools/ToolCutOut.py:2371 msgid "Geometry object used to create the manual cutout." msgstr "Obiect tip Geometrie folosit pentru crearea decupajului manual." -#: appTools/ToolCutOut.py:2374 +#: appTools/ToolCutOut.py:2378 msgid "Manual Add Bridge Gaps" msgstr "Adaugă punţi manual" -#: appTools/ToolCutOut.py:2377 +#: appTools/ToolCutOut.py:2381 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -14885,64 +14884,64 @@ msgid "There are no Alignment Drill Coordinates to use. Add them and retry." msgstr "" "Nu exista coord. pentru găurile de aliniere. Adaugă-le și încearcă din nou." -#: appTools/ToolDblSided.py:213 +#: appTools/ToolDblSided.py:215 msgid "Excellon object with alignment drills created..." msgstr "Obiectul Excellon conținând găurile de aliniere a fost creat ..." -#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209 +#: appTools/ToolDblSided.py:226 appTools/ToolPunchGerber.py:209 msgid "There is no Excellon object loaded ..." msgstr "Nici-un obiect tip Excellon nu este incărcat ..." -#: appTools/ToolDblSided.py:236 +#: appTools/ToolDblSided.py:238 msgid "Click on canvas within the desired Excellon drill hole" msgstr "Faceți clic pe ecran în gaura Excellon dorită" -#: appTools/ToolDblSided.py:280 +#: appTools/ToolDblSided.py:282 msgid "Mirror reference point set." msgstr "Punctul de referință oglindire a fost setat." -#: appTools/ToolDblSided.py:308 +#: appTools/ToolDblSided.py:310 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "Doar obiectele de tip Geometrie, Excellon și Gerber pot fi oglindite." -#: appTools/ToolDblSided.py:320 +#: appTools/ToolDblSided.py:322 msgid "There is no Box object loaded ..." msgstr "Nu este incărcat nici-un obiect container ..." -#: appTools/ToolDblSided.py:330 +#: appTools/ToolDblSided.py:332 msgid "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." msgstr "" "Nu există coord. in câmpul 'Punct'. Adaugă coord. și încearcă din nou..." -#: appTools/ToolDblSided.py:337 camlib.py:2401 +#: appTools/ToolDblSided.py:339 camlib.py:2401 msgid "Object was mirrored" msgstr "Obiectul a fost oglindit" -#: appTools/ToolDblSided.py:403 app_Main.py:4635 app_Main.py:4790 +#: appTools/ToolDblSided.py:405 app_Main.py:4558 app_Main.py:4713 msgid "Failed. No object(s) selected..." msgstr "Eșuat. Nici-un obiect nu este selectat." -#: appTools/ToolDblSided.py:487 +#: appTools/ToolDblSided.py:489 msgid "2-Sided PCB" msgstr "2-fețe PCB" -#: appTools/ToolDblSided.py:514 +#: appTools/ToolDblSided.py:516 msgid "Objects to be mirrored" msgstr "Obiecte care vor fi Oglindite" -#: appTools/ToolDblSided.py:521 +#: appTools/ToolDblSided.py:523 msgid "Select the type of application object to be processed in this tool." msgstr "" "Selectați tipul obiectului aplicației care urmează să fie procesat în acest " "instrument." -#: appTools/ToolDblSided.py:555 +#: appTools/ToolDblSided.py:557 msgid "Bounds Values" msgstr "Valorile Limitelor" -#: appTools/ToolDblSided.py:557 +#: appTools/ToolDblSided.py:559 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -14950,39 +14949,39 @@ msgstr "" "Selectati pe suprafata de afisare obiectul(e)\n" "pentru care se calculează valorile limitelor." -#: appTools/ToolDblSided.py:567 +#: appTools/ToolDblSided.py:569 msgid "X min" msgstr "X min" -#: appTools/ToolDblSided.py:569 appTools/ToolDblSided.py:583 +#: appTools/ToolDblSided.py:571 appTools/ToolDblSided.py:585 msgid "Minimum location." msgstr "Locație minimă." -#: appTools/ToolDblSided.py:581 +#: appTools/ToolDblSided.py:583 msgid "Y min" msgstr "Y min" -#: appTools/ToolDblSided.py:595 +#: appTools/ToolDblSided.py:597 msgid "X max" msgstr "X max" -#: appTools/ToolDblSided.py:597 appTools/ToolDblSided.py:611 +#: appTools/ToolDblSided.py:599 appTools/ToolDblSided.py:613 msgid "Maximum location." msgstr "Locație maximă." -#: appTools/ToolDblSided.py:609 +#: appTools/ToolDblSided.py:611 msgid "Y max" msgstr "Y max" -#: appTools/ToolDblSided.py:620 +#: appTools/ToolDblSided.py:622 msgid "Center point coordinates" msgstr "Coordonatele punctului central" -#: appTools/ToolDblSided.py:622 +#: appTools/ToolDblSided.py:624 msgid "Centroid" msgstr "Centroid" -#: appTools/ToolDblSided.py:624 +#: appTools/ToolDblSided.py:626 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -14990,11 +14989,11 @@ msgstr "" "Locația punctului central pentru dreptunghiul\n" "formă de delimitare. Centroid. Formatul este (x, y)." -#: appTools/ToolDblSided.py:633 +#: appTools/ToolDblSided.py:635 msgid "Calculate Bounds Values" msgstr "Calculați valorile limitelor" -#: appTools/ToolDblSided.py:635 +#: appTools/ToolDblSided.py:637 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" @@ -15004,15 +15003,15 @@ msgstr "" "pentru selectarea obiectelor.\n" "Forma este paralelă cu axele X, Y." -#: appTools/ToolDblSided.py:660 +#: appTools/ToolDblSided.py:662 msgid "Mirror Operation" msgstr "Operațiune Oglindire" -#: appTools/ToolDblSided.py:661 +#: appTools/ToolDblSided.py:663 msgid "Parameters for the mirror operation" msgstr "Parametri pt operația de Oglindire" -#: appTools/ToolDblSided.py:683 +#: appTools/ToolDblSided.py:685 msgid "" "The coordinates used as reference for the mirror operation.\n" "Can be:\n" @@ -15031,11 +15030,11 @@ msgstr "" "- Hole Snap -> un punct definit de centrul unei găuri dintr-un obiect " "Excellon" -#: appTools/ToolDblSided.py:703 +#: appTools/ToolDblSided.py:705 msgid "Point coordinates" msgstr "Coordonatele Punct" -#: appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:710 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -15050,16 +15049,16 @@ msgstr "" "pe\n" "suprafata de afisare sau le puteti introduce manual." -#: appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:728 msgid "Object that holds holes that can be picked as reference for mirroring." msgstr "" "Obiect care conține găuri care pot fi alese ca referință pentru oglindire." -#: appTools/ToolDblSided.py:741 +#: appTools/ToolDblSided.py:743 msgid "Pick hole" msgstr "Alege o gaură" -#: appTools/ToolDblSided.py:743 +#: appTools/ToolDblSided.py:745 msgid "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." @@ -15068,7 +15067,7 @@ msgstr "" "selectat,\n" "iar coordonatele centrului găurii vor fi copiate în câmpul Punct." -#: appTools/ToolDblSided.py:759 +#: appTools/ToolDblSided.py:761 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -15078,11 +15077,11 @@ msgstr "" "Coordonatele centrului formei inconjurătoare sunt folosite\n" "ca si referintă pentru operatiunea de Oglindire." -#: appTools/ToolDblSided.py:785 +#: appTools/ToolDblSided.py:787 msgid "Mirror" msgstr "Oglindește" -#: appTools/ToolDblSided.py:787 +#: appTools/ToolDblSided.py:789 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -15091,11 +15090,11 @@ msgstr "" "Oglindește obiectul specificat pe axa specificata.\n" "Nu crează un obiect nou ci il modifica." -#: appTools/ToolDblSided.py:813 +#: appTools/ToolDblSided.py:815 msgid "PCB Alignment" msgstr "Aliniere PCB" -#: appTools/ToolDblSided.py:815 appTools/ToolDblSided.py:923 +#: appTools/ToolDblSided.py:817 appTools/ToolDblSided.py:925 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -15104,11 +15103,11 @@ msgstr "" "Crează un obiect Excellon care contine găurile\n" "de aliniere specificate cat și cele in oglinda." -#: appTools/ToolDblSided.py:822 +#: appTools/ToolDblSided.py:824 msgid "Drill Diameter" msgstr "Dia Găurire" -#: appTools/ToolDblSided.py:857 appTools/ToolDblSided.py:864 +#: appTools/ToolDblSided.py:859 appTools/ToolDblSided.py:866 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -15118,11 +15117,11 @@ msgstr "" "din prima gaură de aliniere prin oglindire.\n" "Poate fi modificat in Parametri Oglindire -> Sectiunea Referintă" -#: appTools/ToolDblSided.py:877 +#: appTools/ToolDblSided.py:879 msgid "Alignment Drill Coordinates" msgstr "Dia. găuri de aliniere" -#: appTools/ToolDblSided.py:879 +#: appTools/ToolDblSided.py:881 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -15139,11 +15138,11 @@ msgstr "" "- o gaură cu coord. in poziţia oglindită pe axa selectată mai sus in 'Axa " "Aliniere'." -#: appTools/ToolDblSided.py:887 +#: appTools/ToolDblSided.py:889 msgid "Drill coordinates" msgstr "Coordonatele găuri" -#: appTools/ToolDblSided.py:894 +#: appTools/ToolDblSided.py:896 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -15168,15 +15167,15 @@ msgstr "" "in câmpul de edit.\n" "- se introduc manual in formatul (x1,y1), (x2,y2) ..." -#: appTools/ToolDblSided.py:909 +#: appTools/ToolDblSided.py:911 msgid "Delete Last" msgstr "Șterge Ultima" -#: appTools/ToolDblSided.py:911 +#: appTools/ToolDblSided.py:913 msgid "Delete the last coordinates tuple in the list." msgstr "Șterge ultimul set de coordinate din listă." -#: appTools/ToolDblSided.py:921 +#: appTools/ToolDblSided.py:923 msgid "Create Excellon Object" msgstr "Crează un obiect Excellon" @@ -15576,15 +15575,15 @@ msgstr "" msgid "No drills extracted. Try different parameters." msgstr "Nu s-au extras găuri. Incearcă alti parametri." -#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687 +#: appTools/ToolExtractDrills.py:421 appTools/ToolExtractDrills.py:688 msgid "Extract Drills" msgstr "Extrage Găuri" -#: appTools/ToolExtractDrills.py:454 +#: appTools/ToolExtractDrills.py:455 msgid "Gerber from which to extract drill holes" msgstr "Obiect Gerber din care se vor extrage găurile" -#: appTools/ToolExtractDrills.py:689 +#: appTools/ToolExtractDrills.py:690 msgid "Extract drills from a given Gerber file." msgstr "Extrage găuri dintr-un fisier Gerber." @@ -15592,29 +15591,29 @@ msgstr "Extrage găuri dintr-un fisier Gerber." msgid "Click to add first Fiducial. Bottom Left..." msgstr "Faceți clic pentru a adăuga primul Fiducial. Stânga jos..." -#: appTools/ToolFiducials.py:501 +#: appTools/ToolFiducials.py:503 msgid "Click to add the last fiducial. Top Right..." msgstr "Faceți clic pentru a adăuga ultimul Fiducial. Dreapta Sus..." -#: appTools/ToolFiducials.py:506 +#: appTools/ToolFiducials.py:508 msgid "Click to add the second fiducial. Top Left or Bottom Right..." msgstr "" "Faceți clic pentru a adăuga cel de-al doilea Fiducial. Stânga sus sau " "dreapta jos ..." -#: appTools/ToolFiducials.py:509 appTools/ToolFiducials.py:518 +#: appTools/ToolFiducials.py:511 appTools/ToolFiducials.py:520 msgid "Done. All fiducials have been added." msgstr "Terminat. Au fost adăugate toate Fiducials." -#: appTools/ToolFiducials.py:595 +#: appTools/ToolFiducials.py:597 msgid "Fiducials Tool exit." msgstr "Unealta Fiducials terminate." -#: appTools/ToolFiducials.py:667 +#: appTools/ToolFiducials.py:669 msgid "Fiducials Coordinates" msgstr "Coordonatele Fiducials" -#: appTools/ToolFiducials.py:669 +#: appTools/ToolFiducials.py:671 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -15622,7 +15621,7 @@ msgstr "" "Un tabel cu coordonatele punctelor fiduțiale,\n" "în format (x, y)." -#: appTools/ToolFiducials.py:805 +#: appTools/ToolFiducials.py:807 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -15632,32 +15631,32 @@ msgstr "" "delimitare.\n" "  - „Manual” - plasarea manuală a fiduciarelor." -#: appTools/ToolFiducials.py:851 +#: appTools/ToolFiducials.py:853 msgid "Thickness of the line that makes the fiducial." msgstr "Grosimea liniei din care este facuta fiduciala." -#: appTools/ToolFiducials.py:882 +#: appTools/ToolFiducials.py:884 msgid "Add Fiducial" msgstr "Adaugă Fiducial" -#: appTools/ToolFiducials.py:884 +#: appTools/ToolFiducials.py:886 msgid "Will add a polygon on the copper layer to serve as fiducial." msgstr "" "Va adăuga un poligon pe stratul de cupru pentru a servi drept fiduciar." -#: appTools/ToolFiducials.py:900 +#: appTools/ToolFiducials.py:902 msgid "Soldermask Gerber" msgstr "Gerber Soldermask" -#: appTools/ToolFiducials.py:902 +#: appTools/ToolFiducials.py:904 msgid "The Soldermask Gerber object." msgstr "Obiectul Soldermask Gerber." -#: appTools/ToolFiducials.py:914 +#: appTools/ToolFiducials.py:916 msgid "Add Soldermask Opening" msgstr "Adăugați deschidere Soldermask" -#: appTools/ToolFiducials.py:916 +#: appTools/ToolFiducials.py:918 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -15852,7 +15851,7 @@ msgstr "Unealta Imagine" msgid "Import IMAGE" msgstr "Importa Imagine" -#: appTools/ToolImage.py:142 app_Main.py:8893 app_Main.py:8943 +#: appTools/ToolImage.py:142 app_Main.py:9782 app_Main.py:9832 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -15864,9 +15863,9 @@ msgstr "" msgid "Importing Image" msgstr "Imaginea in curs de a fi importata" -#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8921 -#: app_Main.py:8976 app_Main.py:9040 app_Main.py:9103 app_Main.py:9169 -#: app_Main.py:9234 app_Main.py:9291 +#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:9810 +#: app_Main.py:9865 app_Main.py:9929 app_Main.py:9992 app_Main.py:10058 +#: app_Main.py:10123 app_Main.py:10180 msgid "Opened" msgstr "Încarcat" @@ -15996,7 +15995,7 @@ msgid "New Tool" msgstr "O Noua Unealtă" #: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:467 -#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4500 +#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4423 msgid "Adding Tool cancelled" msgstr "Adăugarea unei unelte anulată" @@ -16156,7 +16155,7 @@ msgid "Click the end point of the paint area." msgstr "Faceți clic pe punctul final al zonei de pictat." #: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3722 -#: appTools/ToolPaint.py:2633 app_Main.py:5779 app_Main.py:5789 +#: appTools/ToolPaint.py:2633 app_Main.py:5702 app_Main.py:5712 msgid "Tool from DB added in Tool Table." msgstr "Unealtă din Baza de date adăugată in Tabela de Unelte." @@ -16697,11 +16696,11 @@ msgstr "Deschidere PDF anulată" msgid "Parsing PDF file ..." msgstr "Se parsează fisierul PDF ..." -#: appTools/ToolPDF.py:138 app_Main.py:9134 +#: appTools/ToolPDF.py:138 app_Main.py:10023 msgid "Failed to open" msgstr "A eșuat incărcarea fişierului" -#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9083 +#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9972 msgid "No geometry found in file" msgstr "Nici-o informaţie de tip geometrie nu s-a gasit in fişierul" @@ -17121,7 +17120,7 @@ msgstr "Fisierul .INF tip PCBWizard a fost incărcat." msgid "Main PcbWizard Excellon file loaded." msgstr "Fişierul Excellon tip PCBWizard a fost incărcat." -#: appTools/ToolPcbWizard.py:310 app_Main.py:9063 +#: appTools/ToolPcbWizard.py:310 app_Main.py:9952 msgid "This is not Excellon file." msgstr "Acesta nu este un fişier Excellon." @@ -17257,9 +17256,9 @@ msgstr "" "ce celălalt are extensia .INF." #: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 -#: app_Main.py:4976 app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 -#: app_Main.py:7503 app_Main.py:7545 app_Main.py:7587 app_Main.py:7631 -#: app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 +#: app_Main.py:4899 app_Main.py:8253 app_Main.py:8351 app_Main.py:8391 +#: app_Main.py:8431 app_Main.py:8472 app_Main.py:8513 app_Main.py:8556 +#: app_Main.py:8599 app_Main.py:9058 app_Main.py:9062 msgid "No object selected." msgstr "Nici-un obiect nu este selectat." @@ -17353,8 +17352,8 @@ msgstr "" "Creează un obiect Gerber din obiectul selectat, in cadrul\n" "formei 'cutie' specificate." -#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485 -#: appTools/ToolQRCode.py:534 +#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:486 +#: appTools/ToolQRCode.py:535 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Anulat. Nu există date QRCode în caseta de text." @@ -17366,32 +17365,32 @@ msgstr "Generarea geometriei QRCode" msgid "Click on the Destination point ..." msgstr "Click pe punctul de Destinaţie ..." -#: appTools/ToolQRCode.py:321 +#: appTools/ToolQRCode.py:322 msgid "QRCode Tool done." msgstr "Unealta QRCode efectuata." -#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521 +#: appTools/ToolQRCode.py:518 appTools/ToolQRCode.py:522 msgid "Export PNG" msgstr "Exporta PNG" -#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7353 -#: app_Main.py:7357 +#: appTools/ToolQRCode.py:565 appTools/ToolQRCode.py:569 app_Main.py:8284 +#: app_Main.py:8288 msgid "Export SVG" msgstr "Exporta SVG" -#: appTools/ToolQRCode.py:661 +#: appTools/ToolQRCode.py:662 msgid "Gerber Object to which the QRCode will be added." msgstr "Obiect Gerber la care se va adăuga codul QR." -#: appTools/ToolQRCode.py:697 +#: appTools/ToolQRCode.py:698 msgid "The parameters used to shape the QRCode." msgstr "Parametrii utilizați pentru modelarea codului QR." -#: appTools/ToolQRCode.py:797 +#: appTools/ToolQRCode.py:798 msgid "Export QRCode" msgstr "Exportă Codul QR" -#: appTools/ToolQRCode.py:799 +#: appTools/ToolQRCode.py:800 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -17399,31 +17398,31 @@ msgstr "" "Afișați un set de controale care permit exportul codului QR\n" "într-un fișier SVG sau într-un fișier PNG." -#: appTools/ToolQRCode.py:838 +#: appTools/ToolQRCode.py:839 msgid "Transparent back color" msgstr "Culoare de fundal transparentă" -#: appTools/ToolQRCode.py:863 +#: appTools/ToolQRCode.py:864 msgid "Export QRCode SVG" msgstr "Exporta QRCode SVG" -#: appTools/ToolQRCode.py:865 +#: appTools/ToolQRCode.py:866 msgid "Export a SVG file with the QRCode content." msgstr "Exportați un fișier SVG cu conținutul QRCode." -#: appTools/ToolQRCode.py:876 +#: appTools/ToolQRCode.py:877 msgid "Export QRCode PNG" msgstr "Exportă QRCode PNG" -#: appTools/ToolQRCode.py:878 +#: appTools/ToolQRCode.py:879 msgid "Export a PNG image file with the QRCode content." msgstr "Exportați un fișier imagine PNG cu conținutul QRCode." -#: appTools/ToolQRCode.py:889 +#: appTools/ToolQRCode.py:890 msgid "Insert QRCode" msgstr "Inserați codul QR" -#: appTools/ToolQRCode.py:891 +#: appTools/ToolQRCode.py:892 msgid "Create the QRCode object." msgstr "Creați obiectul QRCode." @@ -18184,7 +18183,7 @@ msgstr "Esti sigur că dorești să schimbi din limba curentă in" msgid "Apply Language ..." msgstr "Aplică Traducere ..." -#: appTranslation.py:206 app_Main.py:3383 +#: appTranslation.py:206 app_Main.py:3306 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -18218,44 +18217,44 @@ msgstr "" "Initializarea spațiului de afisare a inceput.\n" "Initializarea spatiului de afisare s-a terminat in" -#: app_Main.py:1596 app_Main.py:7007 +#: app_Main.py:1292 app_Main.py:8831 msgid "New Project - Not saved" msgstr "Proiect nou - Nu a fost salvat" -#: app_Main.py:1702 +#: app_Main.py:1711 msgid "" "Found old default preferences files. Please reboot the application to update." msgstr "" "Au fost găsite fișiere de preferințe implicite vechi. Vă rugăm să reporniți " "aplicația pentru a le actualiza." -#: app_Main.py:1769 +#: app_Main.py:1778 msgid "Open Config file failed." msgstr "Deschiderea fişierului de configurare a eşuat." -#: app_Main.py:1784 +#: app_Main.py:1793 msgid "Open Script file failed." msgstr "Deschiderea fişierului Script eşuat." -#: app_Main.py:1810 +#: app_Main.py:1819 msgid "Open Excellon file failed." msgstr "Deschiderea fişierului Excellon a eşuat." -#: app_Main.py:1823 +#: app_Main.py:1832 msgid "Open GCode file failed." msgstr "Deschiderea fişierului GCode a eşuat." -#: app_Main.py:1836 +#: app_Main.py:1845 msgid "Open Gerber file failed." msgstr "Deschiderea fişierului Gerber a eşuat." -#: app_Main.py:2174 +#: app_Main.py:2183 msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." msgstr "" "Selectează un obiect tip Geometrie Gerber, CNCJob sau Excellon pentru " "editare." -#: app_Main.py:2189 +#: app_Main.py:2198 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -18265,104 +18264,88 @@ msgstr "" "MultiGeo nu este posibilă.\n" "Se poate edita numai o singură geometrie de fiecare dată." -#: app_Main.py:2267 +#: app_Main.py:2276 msgid "EDITOR Area" msgstr "Zona EDITOR" -#: app_Main.py:2269 +#: app_Main.py:2278 msgid "Editor is activated ..." msgstr "Editorul este activ ..." -#: app_Main.py:2290 +#: app_Main.py:2299 msgid "Do you want to save the edited object?" msgstr "Vrei sa salvezi obiectul editat?" -#: app_Main.py:2331 +#: app_Main.py:2340 msgid "Object empty after edit." msgstr "Obiectul nu are date dupa editare." -#: app_Main.py:2336 app_Main.py:2354 app_Main.py:2385 app_Main.py:2401 +#: app_Main.py:2345 app_Main.py:2363 app_Main.py:2394 app_Main.py:2410 msgid "Editor exited. Editor content saved." msgstr "Ieşire din Editor. Continuțul editorului este salvat." -#: app_Main.py:2405 app_Main.py:2446 +#: app_Main.py:2414 app_Main.py:2455 msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update." msgstr "" "Selectează un obiect tip Gerber, Geometrie, Excellon sau CNCJob pentru " "actualizare." -#: app_Main.py:2408 +#: app_Main.py:2417 msgid "is updated, returning to App..." msgstr "este actualizat, întoarcere la aplicaţie..." -#: app_Main.py:2421 +#: app_Main.py:2430 msgid "Editor exited. Editor content was not saved." msgstr "Ieşire din Editor. Continuțul editorului nu a fost salvat." -#: app_Main.py:2469 +#: app_Main.py:2478 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "" "Selectează un obiect tip Gerber, Geometrie sau Excellon pentru actualizare." -#: app_Main.py:2573 app_Main.py:2577 -msgid "Import FlatCAM Preferences" -msgstr "Importă Preferințele FlatCAM" - -#: app_Main.py:2588 -msgid "Imported Defaults from" -msgstr "Valorile default au fost importate din" - -#: app_Main.py:2608 app_Main.py:2614 -msgid "Export FlatCAM Preferences" -msgstr "Exportă Preferințele FlatCAM" - -#: app_Main.py:2634 -msgid "Exported preferences to" -msgstr "Exportă Preferințele in" - -#: app_Main.py:2654 app_Main.py:2659 +#: app_Main.py:2586 app_Main.py:2591 msgid "Save to file" msgstr "Salvat in" -#: app_Main.py:2683 +#: app_Main.py:2615 msgid "Could not load the file." msgstr "Nu am putut incărca fişierul." -#: app_Main.py:2699 +#: app_Main.py:2631 msgid "Exported file to" msgstr "S-a exportat fişierul in" -#: app_Main.py:2736 +#: app_Main.py:2668 msgid "Failed to open recent files file for writing." msgstr "" "Deschiderea fişierului cu >fişiere recente< pentru a fi salvat a eșuat." -#: app_Main.py:2747 +#: app_Main.py:2679 msgid "Failed to open recent projects file for writing." msgstr "" "Deschiderea fişierului cu >proiecte recente< pentru a fi salvat a eșuat." -#: app_Main.py:2802 +#: app_Main.py:2734 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "Productie Cablaje Imprimate asistate 2D de PC" -#: app_Main.py:2803 +#: app_Main.py:2735 msgid "Development" msgstr "Dezvoltare" -#: app_Main.py:2804 +#: app_Main.py:2736 msgid "DOWNLOAD" msgstr "DOWNLOAD" -#: app_Main.py:2805 +#: app_Main.py:2737 msgid "Issue tracker" msgstr "Raportare probleme" -#: app_Main.py:2824 +#: app_Main.py:2756 msgid "Licensed under the MIT license" msgstr "Licențiat sub licența MIT" -#: app_Main.py:2833 +#: app_Main.py:2765 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -18415,7 +18398,7 @@ msgstr "" "UTILIZAREA SA,\n" "SAU ORICE TRATĂRI ÎN ACEST SOFTWARE." -#: app_Main.py:2855 +#: app_Main.py:2787 msgid "" "Some of the icons used are from the following sources:
    " -#: app_Main.py:2891 +#: app_Main.py:2823 msgid "Splash" msgstr "Splash" -#: app_Main.py:2897 +#: app_Main.py:2829 msgid "Programmers" msgstr "Programatori" -#: app_Main.py:2903 +#: app_Main.py:2835 msgid "Translators" msgstr "Traducatori" -#: app_Main.py:2909 +#: app_Main.py:2841 msgid "License" msgstr "Licență" -#: app_Main.py:2915 +#: app_Main.py:2847 msgid "Attributions" msgstr "Atribuiri" -#: app_Main.py:2938 +#: app_Main.py:2870 msgid "Programmer" msgstr "Programator" -#: app_Main.py:2939 +#: app_Main.py:2871 msgid "Status" msgstr "Statut" -#: app_Main.py:2940 app_Main.py:3020 +#: app_Main.py:2872 app_Main.py:2952 msgid "E-mail" msgstr "E-mail" -#: app_Main.py:2943 +#: app_Main.py:2875 msgid "Program Author" msgstr "Autorul Programului" -#: app_Main.py:2948 +#: app_Main.py:2880 msgid "BETA Maintainer >= 2019" msgstr "Programator Beta >= 2019" -#: app_Main.py:3017 +#: app_Main.py:2949 msgid "Language" msgstr "Limba" -#: app_Main.py:3018 +#: app_Main.py:2950 msgid "Translator" msgstr "Traducător" -#: app_Main.py:3019 +#: app_Main.py:2951 msgid "Corrections" msgstr "Corecţii" -#: app_Main.py:3104 +#: app_Main.py:3036 msgid "Important Information's" msgstr "Informații importante" -#: app_Main.py:3152 +#: app_Main.py:3084 #, python-format msgid "This program is %s and free in a very wide meaning of the word." msgstr "" "Acest program este %s și gratuit într-un sens foarte larg al cuvântului." -#: app_Main.py:3153 +#: app_Main.py:3085 msgid "Yet it cannot evolve without contributions." msgstr "Cu toate acestea, nu poate evolua fără contribuții ." -#: app_Main.py:3154 +#: app_Main.py:3086 msgid "If you want to see this application grow and become better and better" msgstr "" "Dacă doriți ca această aplicație să crească și să devină din ce în ce mai " "bună" -#: app_Main.py:3155 +#: app_Main.py:3087 msgid "you can contribute to the development yourself by:" msgstr "puteți contribui la dezvoltare prin:" -#: app_Main.py:3156 +#: app_Main.py:3088 msgid "Pull Requests on the Bitbucket repository, if you are a developer" msgstr "Efectuand PR's in Bitbucket, dacă sunteți dezvoltator" -#: app_Main.py:3158 +#: app_Main.py:3090 msgid "Bug Reports by providing the steps required to reproduce the bug" msgstr "Rapoarte de Erori furnizând pașii necesari pentru reproducerea erorii" -#: app_Main.py:3189 +#: app_Main.py:3121 msgid "Contribute" msgstr "Contribuie" -#: app_Main.py:3212 +#: app_Main.py:3144 msgid "Links Exchange" msgstr "Schimb de Link-uri" -#: app_Main.py:3224 app_Main.py:3243 +#: app_Main.py:3156 app_Main.py:3175 msgid "Soon ..." msgstr "Curând ..." -#: app_Main.py:3231 +#: app_Main.py:3163 msgid "How To's" msgstr "How To's" -#: app_Main.py:3343 +#: app_Main.py:3275 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -18558,29 +18541,29 @@ msgstr "" "Dacă nu puteți obține informații despre FlatCAM beta\n" "utilizați linkul canalului YouTube din meniul Ajutor." -#: app_Main.py:3350 +#: app_Main.py:3282 msgid "Alternative website" msgstr "Site alternativ" -#: app_Main.py:3701 +#: app_Main.py:3624 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Extensiile de fișiere Excellon selectate înregistrate cu FlatCAM." -#: app_Main.py:3723 +#: app_Main.py:3646 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Extensii de fișiere GCode selectate înregistrate cu FlatCAM." -#: app_Main.py:3745 +#: app_Main.py:3668 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Extensii de fișiere Gerber selectate înregistrate cu FlatCAM." -#: app_Main.py:3933 app_Main.py:3994 app_Main.py:4024 +#: app_Main.py:3856 app_Main.py:3917 app_Main.py:3947 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "Cel puțin două obiecte sunt necesare pentru a fi unite. Obiectele selectate " "în prezent" -#: app_Main.py:3942 +#: app_Main.py:3865 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 " @@ -18597,48 +18580,48 @@ msgstr "" "informatii și rezultatul ar putea să nu fie cel dorit. \n" "Verifică codul G-Code generat." -#: app_Main.py:3956 app_Main.py:3966 +#: app_Main.py:3879 app_Main.py:3889 msgid "Geometry merging finished" msgstr "Fuziunea geometriei s-a terminat" -#: app_Main.py:3989 +#: app_Main.py:3912 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "" "Eșuat. Fuzionarea Excellon functionează doar cu obiecte de tip Excellon." -#: app_Main.py:4001 +#: app_Main.py:3924 msgid "Excellon merging finished" msgstr "Fuziunea Excellon a fost terminată" -#: app_Main.py:4019 +#: app_Main.py:3942 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Eșuat. Fuzionarea Gerber functionează doar cu obiecte de tip Gerber ." -#: app_Main.py:4029 +#: app_Main.py:3952 msgid "Gerber merging finished" msgstr "Fuziunea Gerber a fost terminată" -#: app_Main.py:4049 app_Main.py:4086 +#: app_Main.py:3972 app_Main.py:4009 msgid "Failed. Select a Geometry Object and try again." msgstr "Eșuat. Selectează un obiect Geometrie și încearcă din nou." -#: app_Main.py:4053 app_Main.py:4091 +#: app_Main.py:3976 app_Main.py:4014 msgid "Expected a GeometryObject, got" msgstr "Se astepta o Geometrie FlatCAM, s-a primit" -#: app_Main.py:4068 +#: app_Main.py:3991 msgid "A Geometry object was converted to MultiGeo type." msgstr "Un obiect Geometrie a fost convertit la tipul MultiGeo." -#: app_Main.py:4106 +#: app_Main.py:4029 msgid "A Geometry object was converted to SingleGeo type." msgstr "Un obiect Geometrie a fost convertit la tipul SingleGeo ." -#: app_Main.py:4339 +#: app_Main.py:4262 msgid "Toggle Units" msgstr "Comută Unitati" -#: app_Main.py:4343 +#: app_Main.py:4266 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -18650,24 +18633,24 @@ msgstr "" "\n" "Doriți să continuați?" -#: app_Main.py:4346 app_Main.py:4509 app_Main.py:4592 app_Main.py:7327 -#: app_Main.py:7343 app_Main.py:7681 app_Main.py:7693 +#: app_Main.py:4269 app_Main.py:4432 app_Main.py:4515 app_Main.py:8259 +#: app_Main.py:8274 app_Main.py:8605 app_Main.py:8617 msgid "Ok" msgstr "Ok" -#: app_Main.py:4396 +#: app_Main.py:4319 msgid "Converted units to" msgstr "Unitătile au fost convertite in" -#: app_Main.py:4436 +#: app_Main.py:4359 msgid "Workspace enabled." msgstr "Spațiul de lucru activat." -#: app_Main.py:4439 +#: app_Main.py:4362 msgid "Workspace disabled." msgstr "Spațiul de lucru este dezactivat." -#: app_Main.py:4503 +#: app_Main.py:4426 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -18675,11 +18658,11 @@ msgstr "" "Adăugarea de unelte noi functionează doar in modul Avansat.\n" "Pentru aceasta mergi in Preferințe -> General - Activează Modul Avansat." -#: app_Main.py:4585 +#: app_Main.py:4508 msgid "Delete objects" msgstr "Șterge obiectele" -#: app_Main.py:4590 +#: app_Main.py:4513 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -18687,86 +18670,86 @@ msgstr "" "Sigur doriți să ștergeți definitiv\n" "obiectele selectate?" -#: app_Main.py:4633 +#: app_Main.py:4556 msgid "Object(s) deleted" msgstr "Obiect(ele) șters(e)" -#: app_Main.py:4637 +#: app_Main.py:4560 msgid "Save the work in Editor and try again ..." msgstr "Salvează continutul din Editor și încearcă din nou." -#: app_Main.py:4666 +#: app_Main.py:4589 msgid "Object deleted" msgstr "Obiectul este șters" -#: app_Main.py:4693 +#: app_Main.py:4616 msgid "Click to set the origin ..." msgstr "Click pentru a seta originea..." -#: app_Main.py:4715 +#: app_Main.py:4638 msgid "Setting Origin..." msgstr "Setează Originea..." -#: app_Main.py:4728 app_Main.py:4830 +#: app_Main.py:4651 app_Main.py:4753 msgid "Origin set" msgstr "Originea a fost setată" -#: app_Main.py:4745 +#: app_Main.py:4668 msgid "Origin coordinates specified but incomplete." msgstr "Coordonate pentru origine specificate, dar incomplete." -#: app_Main.py:4786 +#: app_Main.py:4709 msgid "Moving to Origin..." msgstr "Deplasare către Origine..." -#: app_Main.py:4867 +#: app_Main.py:4790 msgid "Jump to ..." msgstr "Sari la ..." -#: app_Main.py:4868 +#: app_Main.py:4791 msgid "Enter the coordinates in format X,Y:" msgstr "Introduceți coordonatele in format X,Y:" -#: app_Main.py:4878 +#: app_Main.py:4801 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Coordonate gresite. Introduceți coordonatele in format X,Y" -#: app_Main.py:4995 +#: app_Main.py:4918 msgid "Bottom-Left" msgstr "Stânga jos" -#: app_Main.py:4998 +#: app_Main.py:4921 msgid "Top-Right" msgstr "Dreapta-sus" -#: app_Main.py:5019 +#: app_Main.py:4942 msgid "Locate ..." msgstr "Localizează ..." -#: app_Main.py:5292 app_Main.py:5367 app_Main.py:5530 +#: app_Main.py:5215 app_Main.py:5290 app_Main.py:5453 msgid "No object is selected. Select an object and try again." msgstr "" "Nici-un obiect nu este selectat. Selectează un obiect și incearcă din nou." -#: app_Main.py:5556 +#: app_Main.py:5479 msgid "" "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "Intrerup. Taskul curent va fi închis cât mai curând posibil ..." -#: app_Main.py:5562 +#: app_Main.py:5485 msgid "The current task was gracefully closed on user request..." msgstr "Taskul curent a fost închis la cererea utilizatorului ..." -#: app_Main.py:5752 +#: app_Main.py:5675 msgid "Tools in Tools Database edited but not saved." msgstr "Uneltele din Baza de date au fost editate dar nu au fost salvate." -#: app_Main.py:5791 +#: app_Main.py:5714 msgid "Adding tool from DB is not allowed for this object." msgstr "" "Adaugarea unei unelte din Baza de date nu este permisa pt acest obiect." -#: app_Main.py:5809 +#: app_Main.py:5732 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -18774,564 +18757,225 @@ msgstr "" "Unul sau mai multe Unelte sunt editate.\n" "Doriți să actualizați baza de date a Uneltelor?" -#: app_Main.py:5811 +#: app_Main.py:5734 msgid "Save Tools Database" msgstr "Salvează baza de date Unelte" -#: app_Main.py:5857 +#: app_Main.py:5780 msgid "No object selected to Flip on Y axis." msgstr "Nu sete nici-un obiect selectat pentru oglindire pe axa Y." -#: app_Main.py:5883 +#: app_Main.py:5806 msgid "Flip on Y axis done." msgstr "Oglindire pe axa Y executată." -#: app_Main.py:5905 +#: app_Main.py:5828 msgid "No object selected to Flip on X axis." msgstr "Nu este nici-un obiect selectat pentru oglindire pe axa X." -#: app_Main.py:5931 +#: app_Main.py:5854 msgid "Flip on X axis done." msgstr "Oglindirea pe axa X executată." -#: app_Main.py:5953 +#: app_Main.py:5876 msgid "No object selected to Rotate." msgstr "Nici-un obiect selectat pentru Rotaţie." -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Transform" msgstr "Transformare" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Enter the Angle value:" msgstr "Introduceți valoaea Unghiului:" -#: app_Main.py:5986 +#: app_Main.py:5909 msgid "Rotation done." msgstr "Rotaţie executată." -#: app_Main.py:5988 +#: app_Main.py:5911 msgid "Rotation movement was not executed." msgstr "Mișcarea de rotație nu a fost executată." -#: app_Main.py:6005 +#: app_Main.py:5928 msgid "No object selected to Skew/Shear on X axis." msgstr "Nici-un obiect nu este selectat pentru Deformare pe axa X." -#: app_Main.py:6026 +#: app_Main.py:5949 msgid "Skew on X axis done." msgstr "Deformare pe axa X terminată." -#: app_Main.py:6042 +#: app_Main.py:5965 msgid "No object selected to Skew/Shear on Y axis." msgstr "Nici-un obiect nu este selectat pentru Deformare pe axa Y." -#: app_Main.py:6063 +#: app_Main.py:5986 msgid "Skew on Y axis done." msgstr "Deformare pe axa Y terminată." -#: app_Main.py:6145 +#: app_Main.py:6068 msgid "New Grid ..." msgstr "Grid nou ..." -#: app_Main.py:6146 +#: app_Main.py:6069 msgid "Enter a Grid Value:" msgstr "Introduceti of valoare pt Grid:" -#: app_Main.py:6154 app_Main.py:6178 +#: app_Main.py:6077 app_Main.py:6101 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "Introduceți o valoare pentru Grila ne-nula și in format Real." -#: app_Main.py:6159 +#: app_Main.py:6082 msgid "New Grid added" msgstr "Grid nou" -#: app_Main.py:6161 +#: app_Main.py:6084 msgid "Grid already exists" msgstr "Grila există deja" -#: app_Main.py:6163 +#: app_Main.py:6086 msgid "Adding New Grid cancelled" msgstr "Adăugarea unei valori de Grilă a fost anulată" -#: app_Main.py:6184 +#: app_Main.py:6107 msgid " Grid Value does not exist" msgstr " Valoarea Grilei nu există" -#: app_Main.py:6186 +#: app_Main.py:6109 msgid "Grid Value deleted" msgstr "Valoarea Grila a fost stearsă" -#: app_Main.py:6188 +#: app_Main.py:6111 msgid "Delete Grid value cancelled" msgstr "Ștergerea unei valori de Grilă a fost anulată" -#: app_Main.py:6194 +#: app_Main.py:6117 msgid "Key Shortcut List" msgstr "Lista de shortcut-uri" -#: app_Main.py:6231 +#: app_Main.py:6154 msgid " No object selected to copy it's name" msgstr " Nici-un obiect nu este selectat pentru i se copia valoarea" -#: app_Main.py:6235 +#: app_Main.py:6158 msgid "Name copied on clipboard ..." msgstr "Numele a fost copiat pe Clipboard ..." -#: app_Main.py:6892 -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 "" -"Exista fişiere/obiecte deschide in FlatCAM.\n" -"Crearea unui nou Proiect le va șterge..\n" -"Doriti să Salvati proiectul curentt?" - -#: app_Main.py:6915 -msgid "New Project created" -msgstr "Un nou Proiect a fost creat" - -#: app_Main.py:7121 app_Main.py:7160 app_Main.py:7204 app_Main.py:7274 -#: app_Main.py:8060 app_Main.py:9304 app_Main.py:9366 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"FlatCAM se inițializează ...\n" -"Initializarea spațiului de afisare s-a terminat in" - -#: app_Main.py:7123 -msgid "Opening Gerber file." -msgstr "Se incarcă un fişier Gerber." - -#: app_Main.py:7162 -msgid "Opening Excellon file." -msgstr "Se incarcă un fişier Excellon." - -#: app_Main.py:7193 app_Main.py:7198 -msgid "Open G-Code" -msgstr "Încarcă G-Code" - -#: app_Main.py:7206 -msgid "Opening G-Code file." -msgstr "Se incarcă un fişier G-Code." - -#: app_Main.py:7265 app_Main.py:7269 -msgid "Open HPGL2" -msgstr "Încarcă HPGL2" - -#: app_Main.py:7276 -msgid "Opening HPGL2 file." -msgstr "Se incarcă un fişier HPGL2." - -#: app_Main.py:7299 app_Main.py:7302 -msgid "Open Configuration File" -msgstr "Încarcă un fişier de Configurare" - -#: app_Main.py:7322 app_Main.py:7676 -msgid "Please Select a Geometry object to export" -msgstr "Selectează un obiect Geometrie pentru export" - -#: app_Main.py:7338 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Doar obiectele Geometrie, Gerber și CNCJob pot fi folosite." - -#: app_Main.py:7383 -msgid "Data must be a 3D array with last dimension 3 or 4" -msgstr "" -"Datele trebuie să fie organizate intr-o arie 3D cu ultima dimensiune cu " -"valoarea 3 sau 4" - -#: app_Main.py:7389 app_Main.py:7393 -msgid "Export PNG Image" -msgstr "Exporta imagine PNG" - -#: app_Main.py:7426 app_Main.py:7636 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "Eșuat. Doar obiectele tip Gerber pot fi salvate ca fişiere Gerber..." - -#: app_Main.py:7438 -msgid "Save Gerber source file" -msgstr "Salvează codul sursa Gerber ca fişier" - -#: app_Main.py:7467 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "" -"Eșuat. Doar obiectele tip Script pot fi salvate ca fişiere TCL Script..." - -#: app_Main.py:7479 -msgid "Save Script source file" -msgstr "Salvează codul sursa Script ca fişier" - -#: app_Main.py:7508 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "" -"Eșuat. Doar obiectele tip Document pot fi salvate ca fişiere Document ..." - -#: app_Main.py:7520 -msgid "Save Document source file" -msgstr "Salvează codul sursa Document ca fişier" - -#: app_Main.py:7550 app_Main.py:7592 app_Main.py:8543 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" -"Eșuat. Doar obiectele tip Excellon pot fi salvate ca fişiere Excellon ..." - -#: app_Main.py:7558 app_Main.py:7563 -msgid "Save Excellon source file" -msgstr "Salvează codul sursa Excellon ca fişier" - -#: app_Main.py:7600 app_Main.py:7604 -msgid "Export Excellon" -msgstr "Exportă Excellon" - -#: app_Main.py:7644 app_Main.py:7648 -msgid "Export Gerber" -msgstr "Exportă Gerber" - -#: app_Main.py:7688 -msgid "Only Geometry objects can be used." -msgstr "Doar obiecte tip Geometrie pot fi folosite." - -#: app_Main.py:7704 app_Main.py:7708 -msgid "Export DXF" -msgstr "Exportă DXF" - -#: app_Main.py:7733 app_Main.py:7736 -msgid "Import SVG" -msgstr "Importă SVG" - -#: app_Main.py:7764 app_Main.py:7768 -msgid "Import DXF" -msgstr "Importa DXF" - -#: app_Main.py:7822 app_Main.py:7826 +#: app_Main.py:6917 app_Main.py:6921 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "Selectati un obiect Gerber sau Excellon pentru a-i vedea codul sursa." -#: app_Main.py:7829 +#: app_Main.py:6924 msgid "Viewing the source code of the selected object." msgstr "Vizualizarea codului sursă a obiectului selectat." -#: app_Main.py:7843 +#: app_Main.py:6938 msgid "Source Editor" msgstr "Editor Cod Sursă" -#: app_Main.py:7879 app_Main.py:7886 +#: app_Main.py:6974 app_Main.py:6981 msgid "There is no selected object for which to see it's source file code." msgstr "Nici-un obiect selectat pentru a-i vedea codul sursa." -#: app_Main.py:7894 +#: app_Main.py:6989 msgid "Failed to load the source code for the selected object" msgstr "Codul sursă pentru obiectul selectat nu a putut fi încărcat" -#: app_Main.py:7927 +#: app_Main.py:7022 msgid "Go to Line ..." msgstr "Mergi la Linia ..." -#: app_Main.py:7928 +#: app_Main.py:7023 msgid "Line:" msgstr "Linia:" -#: app_Main.py:7955 -msgid "New TCL script file created in Code Editor." -msgstr "Un nou script TCL a fost creat in Editorul de cod." - -#: app_Main.py:7994 app_Main.py:7996 app_Main.py:8032 app_Main.py:8034 -msgid "Open TCL script" -msgstr "Încarcă TCL script" - -#: app_Main.py:8062 -msgid "Executing ScriptObject file." -msgstr "Se executa un fisier script FlatCAM." - -#: app_Main.py:8070 app_Main.py:8073 -msgid "Run TCL script" -msgstr "Ruleaza TCL script" - -#: app_Main.py:8096 -msgid "TCL script file opened in Code Editor and executed." -msgstr "Un fisier script TCL a fost deschis in Editorul de cod si executat." - -#: app_Main.py:8147 app_Main.py:8153 -msgid "Save Project As ..." -msgstr "Salvează Proiectul ca ..." - -#: app_Main.py:8188 -msgid "FlatCAM objects print" -msgstr "Tipărirea obiectelor FlatCAM" - -#: app_Main.py:8201 app_Main.py:8208 -msgid "Save Object as PDF ..." -msgstr "Salvați obiectul în format PDF ..." - -#: app_Main.py:8217 -msgid "Printing PDF ... Please wait." -msgstr "Se tipărește PDF ... Vă rugăm să așteptați." - -#: app_Main.py:8396 -msgid "PDF file saved to" -msgstr "Fișierul PDF salvat în" - -#: app_Main.py:8421 -msgid "Exporting SVG" -msgstr "SVG in curs de export" - -#: app_Main.py:8464 -msgid "SVG file exported to" -msgstr "Fişier SVG exportat in" - -#: app_Main.py:8490 -msgid "Save cancelled because source file is empty. Try to export the file." -msgstr "" -"Salvare anulată deoarece fișierul sursă este gol. Încercați să exportați " -"fișierul." - -#: app_Main.py:8641 -msgid "Excellon file exported to" -msgstr "Fişierul Excellon exportat in" - -#: app_Main.py:8650 -msgid "Exporting Excellon" -msgstr "Excellon in curs de export" - -#: app_Main.py:8655 app_Main.py:8662 -msgid "Could not export Excellon file." -msgstr "Fişierul Excellon nu a fost posibil să fie exportat." - -#: app_Main.py:8778 -msgid "Gerber file exported to" -msgstr "Fişier Gerber exportat in" - -#: app_Main.py:8786 -msgid "Exporting Gerber" -msgstr "Gerber in curs de export" - -#: app_Main.py:8791 app_Main.py:8798 -msgid "Could not export file." -msgstr "Nu s-a putut exporta fișierul." - -#: app_Main.py:8846 -msgid "DXF file exported to" -msgstr "Fişierul DXF exportat in" - -#: app_Main.py:8855 -msgid "Exporting DXF" -msgstr "DXF in curs de export" - -#: app_Main.py:8860 app_Main.py:8867 -msgid "Could not export DXF file." -msgstr "Fişierul DXF nu a fost posibil să fie exportat." - -#: app_Main.py:8906 -msgid "Importing SVG" -msgstr "SVG in curs de ia fi importat" - -#: app_Main.py:8914 app_Main.py:8969 -msgid "Import failed." -msgstr "Importul a eșuat." - -#: app_Main.py:8961 -msgid "Importing DXF" -msgstr "DXF in curs de a fi importat" - -#: app_Main.py:9002 app_Main.py:9193 app_Main.py:9258 -msgid "Failed to open file" -msgstr "Eşec in incărcarea fişierului" - -#: app_Main.py:9005 app_Main.py:9196 app_Main.py:9261 -msgid "Failed to parse file" -msgstr "Parsarea fişierului a eșuat" - -#: app_Main.py:9017 -msgid "Object is not Gerber file or empty. Aborting object creation." -msgstr "" -"Obiectul nu estetip Gerber sau este gol. Se anulează crearea obiectului." - -#: app_Main.py:9022 -msgid "Opening Gerber" -msgstr "Gerber in curs de incărcare" - -#: app_Main.py:9033 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Incărcarea Gerber a eșuat. Probabil că nu este un fișier Gerber." - -#: app_Main.py:9066 -msgid "Cannot open file" -msgstr "Nu se poate incărca fişierul" - -#: app_Main.py:9086 -msgid "Opening Excellon." -msgstr "Excellon in curs de incărcare." - -#: app_Main.py:9096 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "Incărcarea Excellon a eșuat. Probabil nu este de tip Excellon." - -#: app_Main.py:9128 -msgid "Reading GCode file" -msgstr "Se citeşte un fişier G-Code" - -#: app_Main.py:9141 -msgid "This is not GCODE" -msgstr "Acest obiect nu este de tip GCode" - -#: app_Main.py:9146 -msgid "Opening G-Code." -msgstr "G-Code in curs de incărcare." - -#: app_Main.py:9159 -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 "" -"Eşec in crearea unui obiect CNCJob. Probabil nu este un fişier GCode. " -"Încercați să-l încărcați din meniul Fișier. \n" -"Incercarea de a crea un obiect CNCJob din G-Code a eșuat in timpul procesarii" - -#: app_Main.py:9215 -msgid "Object is not HPGL2 file or empty. Aborting object creation." -msgstr "" -"Obiectul nu este fișier HPGL2 sau este gol. Se renunta la crearea obiectului." - -#: app_Main.py:9220 -msgid "Opening HPGL2" -msgstr "HPGL2 in curs de incărcare" - -#: app_Main.py:9227 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " Incărcarea HPGL2 a eșuat. Probabil nu este de tip HPGL2 ." - -#: app_Main.py:9253 -msgid "TCL script file opened in Code Editor." -msgstr "S-a încărcat un script TCL în Editorul Cod." - -#: app_Main.py:9273 -msgid "Opening TCL Script..." -msgstr "Încarcă TCL script..." - -#: app_Main.py:9284 -msgid "Failed to open TCL Script." -msgstr "Eşec in incărcarea fişierului TCL." - -#: app_Main.py:9306 -msgid "Opening FlatCAM Config file." -msgstr "Se incarca un fişier FlatCAM de configurare." - -#: app_Main.py:9334 -msgid "Failed to open config file" -msgstr "Eşec in incărcarea fişierului de configurare" - -#: app_Main.py:9363 -msgid "Loading Project ... Please Wait ..." -msgstr "Se încarcă proiectul ... Vă rugăm să așteptați ..." - -#: app_Main.py:9368 -msgid "Opening FlatCAM Project file." -msgstr "Se incarca un fisier proiect FlatCAM." - -#: app_Main.py:9383 app_Main.py:9387 app_Main.py:9404 -msgid "Failed to open project file" -msgstr "Eşec in incărcarea fişierului proiect" - -#: app_Main.py:9443 -msgid "Loading Project ... restoring" -msgstr "Se încarcă proiectul ... se restabileste" - -#: app_Main.py:9451 -msgid "Project loaded from" -msgstr "Proiectul a fost incărcat din" - -#: app_Main.py:9477 +#: app_Main.py:7053 msgid "Redrawing all objects" msgstr "Toate obiectele sunt reafisate" -#: app_Main.py:9565 +#: app_Main.py:7141 msgid "Failed to load recent item list." msgstr "Eşec in incărcarea listei cu fişiere recente." -#: app_Main.py:9572 +#: app_Main.py:7148 msgid "Failed to parse recent item list." msgstr "Eşec in parsarea listei cu fişiere recente." -#: app_Main.py:9582 +#: app_Main.py:7158 msgid "Failed to load recent projects item list." msgstr "Eşec in incărcarea listei cu proiecte recente." -#: app_Main.py:9589 +#: app_Main.py:7165 msgid "Failed to parse recent project item list." msgstr "Eşec in parsarea listei cu proiecte recente." -#: app_Main.py:9650 +#: app_Main.py:7226 msgid "Clear Recent projects" msgstr "Sterge Proiectele recente" -#: app_Main.py:9674 +#: app_Main.py:7250 msgid "Clear Recent files" msgstr "Sterge fişierele recente" -#: app_Main.py:9730 +#: app_Main.py:7306 msgid "FlatCAM Evo" msgstr "FlatCAM Evo" -#: app_Main.py:9734 +#: app_Main.py:7310 msgid "Release date" msgstr "Data emiterii" -#: app_Main.py:9738 +#: app_Main.py:7314 msgid "Displayed" msgstr "Afișat" -#: app_Main.py:9741 +#: app_Main.py:7317 msgid "Snap" msgstr "Lipire" -#: app_Main.py:9750 +#: app_Main.py:7326 msgid "Canvas" msgstr "Canvas" -#: app_Main.py:9755 +#: app_Main.py:7331 msgid "Workspace active" msgstr "Spațiu de lucru activ" -#: app_Main.py:9759 +#: app_Main.py:7335 msgid "Workspace size" msgstr "Dimensiunea spațiului de lucru" -#: app_Main.py:9763 +#: app_Main.py:7339 msgid "Workspace orientation" msgstr "Orientarea spațiului de lucru" -#: app_Main.py:9826 +#: app_Main.py:7402 msgid "Failed checking for latest version. Could not connect." msgstr "" "Verificarea pentru ultima versiune a eșuat. Nu a fost posibilă conectarea la " "server." -#: app_Main.py:9833 +#: app_Main.py:7409 msgid "Could not parse information about latest version." msgstr "Informatia cu privire la ultima versiune nu s-a putut interpreta." -#: app_Main.py:9843 +#: app_Main.py:7419 msgid "FlatCAM is up to date!" msgstr "FlatCAM este la ultima versiune!" -#: app_Main.py:9848 +#: app_Main.py:7424 msgid "Newer Version Available" msgstr "O nouă versiune este disponibila" -#: app_Main.py:9850 +#: app_Main.py:7426 msgid "There is a newer version of FlatCAM available for download:" msgstr "O nouă versiune de FlatCAM este disponibilă pentru download:" -#: app_Main.py:9854 +#: app_Main.py:7430 msgid "info" msgstr "informaţie" -#: app_Main.py:9882 +#: app_Main.py:7458 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -19343,66 +18987,421 @@ msgstr "" "Preferinţe -> General\n" "\n" -#: app_Main.py:9960 +#: app_Main.py:7536 msgid "All plots disabled." msgstr "Toate afişările sunt dezactivate." -#: app_Main.py:9967 +#: app_Main.py:7543 msgid "All non selected plots disabled." msgstr "Toate afişările care nu sunt selectate sunt dezactivate." -#: app_Main.py:9974 +#: app_Main.py:7550 msgid "All plots enabled." msgstr "Toate afişările sunt activate." -#: app_Main.py:9980 +#: app_Main.py:7556 msgid "Selected plots enabled..." msgstr "Toate afişările selectate sunt activate..." -#: app_Main.py:9988 +#: app_Main.py:7564 msgid "Selected plots disabled..." msgstr "Toate afişările selectate sunt dezactivate..." -#: app_Main.py:10021 +#: app_Main.py:7597 msgid "Enabling plots ..." msgstr "Activează Afișare ..." -#: app_Main.py:10070 +#: app_Main.py:7646 msgid "Disabling plots ..." msgstr "Dezactivează Afișare ..." -#: app_Main.py:10093 +#: app_Main.py:7669 msgid "Working ..." msgstr "Se lucrează..." -#: app_Main.py:10205 +#: app_Main.py:7781 msgid "Set alpha level ..." msgstr "Setează transparenta ..." -#: app_Main.py:10271 +#: app_Main.py:8057 app_Main.py:8096 app_Main.py:8140 app_Main.py:8206 +#: app_Main.py:8932 app_Main.py:10193 app_Main.py:10255 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"FlatCAM se inițializează ...\n" +"Initializarea spațiului de afisare s-a terminat in" + +#: app_Main.py:8060 +msgid "Opening Gerber file." +msgstr "Se incarcă un fişier Gerber." + +#: app_Main.py:8099 +msgid "Opening Excellon file." +msgstr "Se incarcă un fişier Excellon." + +#: app_Main.py:8129 app_Main.py:8134 +msgid "Open G-Code" +msgstr "Încarcă G-Code" + +#: app_Main.py:8143 +msgid "Opening G-Code file." +msgstr "Se incarcă un fişier G-Code." + +#: app_Main.py:8197 app_Main.py:8201 +msgid "Open HPGL2" +msgstr "Încarcă HPGL2" + +#: app_Main.py:8209 +msgid "Opening HPGL2 file." +msgstr "Se incarcă un fişier HPGL2." + +#: app_Main.py:8232 app_Main.py:8235 +msgid "Open Configuration File" +msgstr "Încarcă un fişier de Configurare" + +#: app_Main.py:8254 app_Main.py:8600 +msgid "Please Select a Geometry object to export" +msgstr "Selectează un obiect Geometrie pentru export" + +#: app_Main.py:8269 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Doar obiectele Geometrie, Gerber și CNCJob pot fi folosite." + +#: app_Main.py:8314 +msgid "Data must be a 3D array with last dimension 3 or 4" +msgstr "" +"Datele trebuie să fie organizate intr-o arie 3D cu ultima dimensiune cu " +"valoarea 3 sau 4" + +#: app_Main.py:8320 app_Main.py:8324 +msgid "Export PNG Image" +msgstr "Exporta imagine PNG" + +#: app_Main.py:8356 app_Main.py:8561 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "Eșuat. Doar obiectele tip Gerber pot fi salvate ca fişiere Gerber..." + +#: app_Main.py:8368 +msgid "Save Gerber source file" +msgstr "Salvează codul sursa Gerber ca fişier" + +#: app_Main.py:8396 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "" +"Eșuat. Doar obiectele tip Script pot fi salvate ca fişiere TCL Script..." + +#: app_Main.py:8408 +msgid "Save Script source file" +msgstr "Salvează codul sursa Script ca fişier" + +#: app_Main.py:8436 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "" +"Eșuat. Doar obiectele tip Document pot fi salvate ca fişiere Document ..." + +#: app_Main.py:8448 +msgid "Save Document source file" +msgstr "Salvează codul sursa Document ca fişier" + +#: app_Main.py:8477 app_Main.py:8518 app_Main.py:9437 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" +"Eșuat. Doar obiectele tip Excellon pot fi salvate ca fişiere Excellon ..." + +#: app_Main.py:8485 app_Main.py:8490 +msgid "Save Excellon source file" +msgstr "Salvează codul sursa Excellon ca fişier" + +#: app_Main.py:8526 app_Main.py:8530 +msgid "Export Excellon" +msgstr "Exportă Excellon" + +#: app_Main.py:8569 app_Main.py:8573 +msgid "Export Gerber" +msgstr "Exportă Gerber" + +#: app_Main.py:8612 +msgid "Only Geometry objects can be used." +msgstr "Doar obiecte tip Geometrie pot fi folosite." + +#: app_Main.py:8628 app_Main.py:8632 +msgid "Export DXF" +msgstr "Exportă DXF" + +#: app_Main.py:8656 app_Main.py:8660 +msgid "Import SVG" +msgstr "Importă SVG" + +#: app_Main.py:8686 app_Main.py:8690 +msgid "Import DXF" +msgstr "Importa DXF" + +#: app_Main.py:8716 +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 "" +"Exista fişiere/obiecte deschide in FlatCAM.\n" +"Crearea unui nou Proiect le va șterge..\n" +"Doriti să Salvati proiectul curentt?" + +#: app_Main.py:8739 +msgid "New Project created" +msgstr "Un nou Proiect a fost creat" + +#: app_Main.py:8841 +msgid "New TCL script file created in Code Editor." +msgstr "Un nou script TCL a fost creat in Editorul de cod." + +#: app_Main.py:8868 app_Main.py:8870 app_Main.py:8905 app_Main.py:8907 +msgid "Open TCL script" +msgstr "Încarcă TCL script" + +#: app_Main.py:8934 +msgid "Executing ScriptObject file." +msgstr "Se executa un fisier script FlatCAM." + +#: app_Main.py:8942 app_Main.py:8946 +msgid "Run TCL script" +msgstr "Ruleaza TCL script" + +#: app_Main.py:8969 +msgid "TCL script file opened in Code Editor and executed." +msgstr "Un fisier script TCL a fost deschis in Editorul de cod si executat." + +#: app_Main.py:9015 app_Main.py:9021 +msgid "Save Project As ..." +msgstr "Salvează Proiectul ca ..." + +#: app_Main.py:9055 +msgid "FlatCAM objects print" +msgstr "Tipărirea obiectelor FlatCAM" + +#: app_Main.py:9068 app_Main.py:9075 +msgid "Save Object as PDF ..." +msgstr "Salvați obiectul în format PDF ..." + +#: app_Main.py:9084 +msgid "Printing PDF ... Please wait." +msgstr "Se tipărește PDF ... Vă rugăm să așteptați." + +#: app_Main.py:9262 +msgid "PDF file saved to" +msgstr "Fișierul PDF salvat în" + +#: app_Main.py:9284 +msgid "Exporting SVG" +msgstr "SVG in curs de export" + +#: app_Main.py:9327 +msgid "SVG file exported to" +msgstr "Fişier SVG exportat in" + +#: app_Main.py:9342 app_Main.py:9346 +msgid "Import FlatCAM Preferences" +msgstr "Importă Preferințele FlatCAM" + +#: app_Main.py:9357 +msgid "Imported Defaults from" +msgstr "Valorile default au fost importate din" + +#: app_Main.py:9376 app_Main.py:9382 +msgid "Export FlatCAM Preferences" +msgstr "Exportă Preferințele FlatCAM" + +#: app_Main.py:9402 +msgid "Exported preferences to" +msgstr "Exportă Preferințele in" + +#: app_Main.py:9535 +msgid "Excellon file exported to" +msgstr "Fişierul Excellon exportat in" + +#: app_Main.py:9544 +msgid "Exporting Excellon" +msgstr "Excellon in curs de export" + +#: app_Main.py:9549 app_Main.py:9556 +msgid "Could not export Excellon file." +msgstr "Fişierul Excellon nu a fost posibil să fie exportat." + +#: app_Main.py:9670 +msgid "Gerber file exported to" +msgstr "Fişier Gerber exportat in" + +#: app_Main.py:9678 +msgid "Exporting Gerber" +msgstr "Gerber in curs de export" + +#: app_Main.py:9683 app_Main.py:9690 +msgid "Could not export file." +msgstr "Nu s-a putut exporta fișierul." + +#: app_Main.py:9736 +msgid "DXF file exported to" +msgstr "Fişierul DXF exportat in" + +#: app_Main.py:9745 +msgid "Exporting DXF" +msgstr "DXF in curs de export" + +#: app_Main.py:9750 app_Main.py:9757 +msgid "Could not export DXF file." +msgstr "Fişierul DXF nu a fost posibil să fie exportat." + +#: app_Main.py:9795 +msgid "Importing SVG" +msgstr "SVG in curs de ia fi importat" + +#: app_Main.py:9803 app_Main.py:9858 +msgid "Import failed." +msgstr "Importul a eșuat." + +#: app_Main.py:9850 +msgid "Importing DXF" +msgstr "DXF in curs de a fi importat" + +#: app_Main.py:9891 app_Main.py:10082 app_Main.py:10147 +msgid "Failed to open file" +msgstr "Eşec in incărcarea fişierului" + +#: app_Main.py:9894 app_Main.py:10085 app_Main.py:10150 +msgid "Failed to parse file" +msgstr "Parsarea fişierului a eșuat" + +#: app_Main.py:9906 +msgid "Object is not Gerber file or empty. Aborting object creation." +msgstr "" +"Obiectul nu estetip Gerber sau este gol. Se anulează crearea obiectului." + +#: app_Main.py:9911 +msgid "Opening Gerber" +msgstr "Gerber in curs de incărcare" + +#: app_Main.py:9922 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Incărcarea Gerber a eșuat. Probabil că nu este un fișier Gerber." + +#: app_Main.py:9955 +msgid "Cannot open file" +msgstr "Nu se poate incărca fişierul" + +#: app_Main.py:9975 +msgid "Opening Excellon." +msgstr "Excellon in curs de incărcare." + +#: app_Main.py:9985 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "Incărcarea Excellon a eșuat. Probabil nu este de tip Excellon." + +#: app_Main.py:10017 +msgid "Reading GCode file" +msgstr "Se citeşte un fişier G-Code" + +#: app_Main.py:10030 +msgid "This is not GCODE" +msgstr "Acest obiect nu este de tip GCode" + +#: app_Main.py:10035 +msgid "Opening G-Code." +msgstr "G-Code in curs de incărcare." + +#: app_Main.py:10048 +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 "" +"Eşec in crearea unui obiect CNCJob. Probabil nu este un fişier GCode. " +"Încercați să-l încărcați din meniul Fișier. \n" +"Incercarea de a crea un obiect CNCJob din G-Code a eșuat in timpul procesarii" + +#: app_Main.py:10104 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "" +"Obiectul nu este fișier HPGL2 sau este gol. Se renunta la crearea obiectului." + +#: app_Main.py:10109 +msgid "Opening HPGL2" +msgstr "HPGL2 in curs de incărcare" + +#: app_Main.py:10116 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Incărcarea HPGL2 a eșuat. Probabil nu este de tip HPGL2 ." + +#: app_Main.py:10142 +msgid "TCL script file opened in Code Editor." +msgstr "S-a încărcat un script TCL în Editorul Cod." + +#: app_Main.py:10162 +msgid "Opening TCL Script..." +msgstr "Încarcă TCL script..." + +#: app_Main.py:10173 +msgid "Failed to open TCL Script." +msgstr "Eşec in incărcarea fişierului TCL." + +#: app_Main.py:10196 +msgid "Opening FlatCAM Config file." +msgstr "Se incarca un fişier FlatCAM de configurare." + +#: app_Main.py:10223 +msgid "Failed to open config file" +msgstr "Eşec in incărcarea fişierului de configurare" + +#: app_Main.py:10252 +msgid "Loading Project ... Please Wait ..." +msgstr "Se încarcă proiectul ... Vă rugăm să așteptați ..." + +#: app_Main.py:10258 +msgid "Opening FlatCAM Project file." +msgstr "Se incarca un fisier proiect FlatCAM." + +#: app_Main.py:10273 app_Main.py:10277 app_Main.py:10295 +msgid "Failed to open project file" +msgstr "Eşec in incărcarea fişierului proiect" + +#: app_Main.py:10335 +msgid "Loading Project ... restoring" +msgstr "Se încarcă proiectul ... se restabileste" + +#: app_Main.py:10339 +msgid "Project loaded from" +msgstr "Proiectul a fost incărcat din" + +#: app_Main.py:10368 msgid "Saving FlatCAM Project" msgstr "Proiectul FlatCAM este in curs de salvare" -#: app_Main.py:10294 app_Main.py:10330 +#: app_Main.py:10390 app_Main.py:10426 msgid "Project saved to" msgstr "Proiectul s-a salvat in" -#: app_Main.py:10301 +#: app_Main.py:10397 msgid "The object is used by another application." msgstr "Obiectul este folosit de o altă aplicație." -#: app_Main.py:10315 +#: app_Main.py:10411 msgid "Failed to verify project file" msgstr "Eşec in incărcarea fişierului proiect" -#: app_Main.py:10315 app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10411 app_Main.py:10419 app_Main.py:10429 msgid "Retry to save it." msgstr "Încercați din nou pentru a-l salva." -#: app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10419 app_Main.py:10429 msgid "Failed to parse saved project file" msgstr "Esec in analizarea fişierului Proiect" +#: app_Main.py:10466 +msgid "Save cancelled because source file is empty. Try to export the file." +msgstr "" +"Salvare anulată deoarece fișierul sursă este gol. Încercați să exportați " +"fișierul." + #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" diff --git a/locale/ru/LC_MESSAGES/strings.po b/locale/ru/LC_MESSAGES/strings.po index 9b4211d2..8fbe8b71 100644 --- a/locale/ru/LC_MESSAGES/strings.po +++ b/locale/ru/LC_MESSAGES/strings.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-10-24 15:55+0300\n" +"POT-Creation-Date: 2020-10-24 19:48+0300\n" "PO-Revision-Date: \n" "Last-Translator: Andrey Kultyapov \n" "Language-Team: \n" @@ -109,24 +109,24 @@ msgstr "Закладки" #: appObjects/FlatCAMCNCJob.py:1750 appObjects/ObjectCollection.py:126 #: appTools/ToolFilm.py:238 appTools/ToolFilm.py:384 appTools/ToolImage.py:112 #: appTools/ToolMove.py:269 appTools/ToolPcbWizard.py:189 -#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:526 -#: appTools/ToolQRCode.py:573 app_Main.py:1753 app_Main.py:2581 -#: app_Main.py:2617 app_Main.py:2664 app_Main.py:4410 app_Main.py:7128 -#: app_Main.py:7167 app_Main.py:7211 app_Main.py:7240 app_Main.py:7281 -#: app_Main.py:7306 app_Main.py:7362 app_Main.py:7398 app_Main.py:7443 -#: app_Main.py:7484 app_Main.py:7526 app_Main.py:7568 app_Main.py:7609 -#: app_Main.py:7653 app_Main.py:7713 app_Main.py:7745 app_Main.py:7777 -#: app_Main.py:8000 app_Main.py:8038 app_Main.py:8081 app_Main.py:8158 -#: app_Main.py:8213 +#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:527 +#: appTools/ToolQRCode.py:574 app_Main.py:1762 app_Main.py:2596 +#: app_Main.py:4333 app_Main.py:8065 app_Main.py:8104 app_Main.py:8148 +#: app_Main.py:8174 app_Main.py:8214 app_Main.py:8239 app_Main.py:8293 +#: app_Main.py:8329 app_Main.py:8373 app_Main.py:8413 app_Main.py:8454 +#: app_Main.py:8495 app_Main.py:8535 app_Main.py:8578 app_Main.py:8637 +#: app_Main.py:8669 app_Main.py:8699 app_Main.py:8874 app_Main.py:8911 +#: app_Main.py:8954 app_Main.py:9026 app_Main.py:9080 app_Main.py:9350 +#: app_Main.py:9385 msgid "Cancelled." msgstr "Отменено." #: Bookmark.py:308 appDatabase.py:2089 appEditors/AppTextEditor.py:312 #: appObjects/FlatCAMCNCJob.py:1672 appObjects/FlatCAMCNCJob.py:1862 #: appObjects/FlatCAMCNCJob.py:2311 appTools/ToolFilm.py:582 -#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2672 -#: app_Main.py:8457 app_Main.py:8505 app_Main.py:8634 app_Main.py:8771 -#: app_Main.py:8839 +#: appTools/ToolFilm.py:830 appTools/ToolSolderPaste.py:1097 app_Main.py:2604 +#: app_Main.py:9320 app_Main.py:9528 app_Main.py:9663 app_Main.py:9729 +#: app_Main.py:10481 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -158,7 +158,7 @@ msgstr "Закладки импортированы из" msgid "The user requested a graceful exit of the current task." msgstr "Пользователь запросил выход из текущего задания." -#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:328 +#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:327 #: appTools/ToolIsolation.py:1436 appTools/ToolNCC.py:1366 msgid "Click the start point of the area." msgstr "Нажмите на начальную точку области." @@ -168,7 +168,7 @@ msgid "Click the end point of the area." msgstr "Нажмите на конечную точку области." #: appCommon/Common.py:357 appCommon/Common.py:459 -#: appTools/ToolCopperThieving.py:385 appTools/ToolIsolation.py:2348 +#: appTools/ToolCopperThieving.py:384 appTools/ToolIsolation.py:2348 #: appTools/ToolIsolation.py:2400 appTools/ToolNCC.py:1431 #: appTools/ToolNCC.py:1483 appTools/ToolPaint.py:1216 #: appTools/ToolPaint.py:1267 @@ -263,8 +263,8 @@ msgstr "Параметры слота" #: appDatabase.py:207 appEditors/AppGeoEditor.py:3287 appGUI/ObjectUI.py:219 #: appGUI/ObjectUI.py:570 appGUI/ObjectUI.py:894 appGUI/ObjectUI.py:1876 #: appGUI/ObjectUI.py:2693 appGUI/ObjectUI.py:2760 -#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:681 -#: app_Main.py:9730 +#: appTools/ToolCalibration.py:929 appTools/ToolFiducials.py:683 +#: app_Main.py:7306 msgid "Name" msgstr "Имя" @@ -339,7 +339,7 @@ msgstr "" #: appDatabase.py:275 appDatabase.py:1778 appDatabase.py:1814 #: appDatabase.py:1877 appDatabase.py:2162 appGUI/MainGUI.py:1299 -#: app_Main.py:9728 +#: app_Main.py:7304 msgid "General" msgstr "Основные" @@ -492,7 +492,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 -#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2104 +#: appTools/ToolCalculators.py:240 appTools/ToolCutOut.py:2108 #: appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "Глубина резания" @@ -792,9 +792,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 -#: appTools/ToolCopperThieving.py:1210 appTools/ToolCopperThieving.py:1461 -#: appTools/ToolCorners.py:411 appTools/ToolCutOut.py:2157 -#: appTools/ToolFiducials.py:786 appTools/ToolInvertGerber.py:234 +#: appTools/ToolCopperThieving.py:1206 appTools/ToolCopperThieving.py:1457 +#: appTools/ToolCorners.py:412 appTools/ToolCutOut.py:2161 +#: appTools/ToolFiducials.py:788 appTools/ToolInvertGerber.py:234 #: appTools/ToolInvertGerber.py:242 appTools/ToolNCC.py:4135 #: appTools/ToolNCC.py:4238 msgid "Margin" @@ -805,8 +805,8 @@ msgstr "Отступ" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:125 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:68 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 -#: appTools/ToolCopperThieving.py:1212 appTools/ToolCorners.py:413 -#: appTools/ToolFiducials.py:788 appTools/ToolNCC.py:4137 +#: appTools/ToolCopperThieving.py:1208 appTools/ToolCorners.py:414 +#: appTools/ToolFiducials.py:790 appTools/ToolNCC.py:4137 #: appTools/ToolNCC.py:4240 msgid "Bounding box margin." msgstr "Граница рамки." @@ -818,7 +818,7 @@ msgstr "Граница рамки." #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 -#: appTools/ToolExtractDrills.py:520 appTools/ToolNCC.py:4112 +#: appTools/ToolExtractDrills.py:521 appTools/ToolNCC.py:4112 #: appTools/ToolPaint.py:2991 appTools/ToolPunchGerber.py:796 msgid "Method" msgstr "Метод" @@ -1111,7 +1111,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 -#: appTools/ToolCutOut.py:2128 appTools/ToolDrilling.py:2167 +#: appTools/ToolCutOut.py:2132 appTools/ToolDrilling.py:2167 #: appTools/ToolMilling.py:1817 msgid "" "Use multiple passes to limit\n" @@ -1127,7 +1127,7 @@ msgstr "" #: appDatabase.py:979 appGUI/ObjectUI.py:1251 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 -#: appTools/ToolCutOut.py:2142 appTools/ToolDrilling.py:2180 +#: appTools/ToolCutOut.py:2146 appTools/ToolDrilling.py:2180 #: appTools/ToolMilling.py:1830 msgid "Depth of each pass (positive)." msgstr "Глубина каждого прохода (положительный)." @@ -1228,7 +1228,7 @@ msgid "" msgstr "" #: appDatabase.py:1156 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: appTools/ToolCutOut.py:2159 +#: appTools/ToolCutOut.py:2163 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -1239,12 +1239,12 @@ msgstr "" "фактической границы печатной платы" #: appDatabase.py:1168 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:131 -#: appTools/ToolCutOut.py:2167 +#: appTools/ToolCutOut.py:2171 msgid "Gap size" msgstr "Размер перемычки" #: appDatabase.py:1170 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:133 -#: appTools/ToolCutOut.py:2169 +#: appTools/ToolCutOut.py:2173 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -1257,14 +1257,14 @@ msgstr "" "из которого вырезается печатная плата)." #: appDatabase.py:1179 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -#: appTools/ToolCutOut.py:2182 +#: appTools/ToolCutOut.py:2186 #, fuzzy #| msgid "Image type" msgid "Gap type" msgstr "Тип изображения" #: appDatabase.py:1181 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150 -#: appTools/ToolCutOut.py:2184 +#: appTools/ToolCutOut.py:2188 msgid "" "The type of gap:\n" "- Bridge -> the cutout will be interrupted by bridges\n" @@ -1274,24 +1274,24 @@ msgid "" msgstr "" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 -#: appTools/ToolCutOut.py:2192 +#: appTools/ToolCutOut.py:2196 msgid "Bridge" msgstr "" #: appDatabase.py:1190 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159 -#: appTools/ToolCutOut.py:2193 +#: appTools/ToolCutOut.py:2197 msgid "Thin" msgstr "" #: appDatabase.py:1201 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169 -#: appTools/ToolCutOut.py:2203 +#: appTools/ToolCutOut.py:2207 #, fuzzy #| msgid "MultiDepth" msgid "Depth" msgstr "Мультипроход" #: appDatabase.py:1203 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171 -#: appTools/ToolCutOut.py:2205 +#: appTools/ToolCutOut.py:2209 #, fuzzy #| msgid "" #| "The width of the travel lines to be\n" @@ -1305,12 +1305,12 @@ msgstr "" #: appDatabase.py:1220 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2220 +#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2224 msgid "Tool Diameter" msgstr "Диаметр инструмента" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 -#: appTools/ToolCutOut.py:2222 +#: appTools/ToolCutOut.py:2226 msgid "The drill hole diameter when doing mouse bites." msgstr "" @@ -1319,23 +1319,23 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1333 appTools/ToolCopperThieving.py:1373 -#: appTools/ToolCopperThieving.py:1413 appTools/ToolCutOut.py:2232 +#: appTools/ToolCopperThieving.py:1329 appTools/ToolCopperThieving.py:1369 +#: appTools/ToolCopperThieving.py:1409 appTools/ToolCutOut.py:2236 msgid "Spacing" msgstr "Промежуток" #: appDatabase.py:1235 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200 -#: appTools/ToolCutOut.py:2234 +#: appTools/ToolCutOut.py:2238 msgid "The spacing between drill holes when doing mouse bites." msgstr "" #: appDatabase.py:1254 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233 -#: appTools/ToolCutOut.py:2034 +#: appTools/ToolCutOut.py:2038 msgid "Convex Shape" msgstr "Выпуклая форма" #: appDatabase.py:1257 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235 -#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041 +#: appTools/ToolCutOut.py:2040 appTools/ToolCutOut.py:2045 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -1344,11 +1344,11 @@ msgstr "" "Используется только в том случае, если тип исходного объекта-Gerber." #: appDatabase.py:1265 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209 -#: appTools/ToolCutOut.py:2263 +#: appTools/ToolCutOut.py:2267 msgid "Gaps" msgstr "Вариант" -#: appDatabase.py:1267 appTools/ToolCutOut.py:2265 +#: appDatabase.py:1267 appTools/ToolCutOut.py:2269 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -1435,8 +1435,8 @@ msgstr "" "в базе данных." #: appDatabase.py:1364 appGUI/MainGUI.py:1438 -#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2297 -#: app_Main.py:3392 app_Main.py:4347 app_Main.py:4593 app_Main.py:6901 +#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2306 +#: app_Main.py:3315 app_Main.py:4270 app_Main.py:4516 app_Main.py:8725 msgid "Cancel" msgstr "Отмена" @@ -1447,16 +1447,16 @@ msgstr "Отмена" #: appTools/ToolAlignObjects.py:516 appTools/ToolAlignObjects.py:527 #: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1601 appTools/ToolCopperThieving.py:1612 -#: appTools/ToolCorners.py:462 appTools/ToolCorners.py:473 -#: appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448 -#: appTools/ToolDblSided.py:956 appTools/ToolDblSided.py:967 +#: appTools/ToolCopperThieving.py:1597 appTools/ToolCopperThieving.py:1608 +#: appTools/ToolCorners.py:463 appTools/ToolCorners.py:474 +#: appTools/ToolCutOut.py:2441 appTools/ToolCutOut.py:2452 +#: appTools/ToolDblSided.py:958 appTools/ToolDblSided.py:969 #: appTools/ToolDistance.py:659 appTools/ToolDistance.py:670 #: appTools/ToolDistanceMin.py:324 appTools/ToolDistanceMin.py:335 #: appTools/ToolDrilling.py:2666 appTools/ToolDrilling.py:2677 #: appTools/ToolEtchCompensation.py:476 appTools/ToolEtchCompensation.py:487 -#: appTools/ToolExtractDrills.py:732 appTools/ToolExtractDrills.py:743 -#: appTools/ToolFiducials.py:950 appTools/ToolFiducials.py:961 +#: appTools/ToolExtractDrills.py:733 appTools/ToolExtractDrills.py:744 +#: appTools/ToolFiducials.py:952 appTools/ToolFiducials.py:963 #: appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 #: appTools/ToolImage.py:322 appTools/ToolImage.py:333 #: appTools/ToolInvertGerber.py:304 appTools/ToolInvertGerber.py:315 @@ -1468,7 +1468,7 @@ msgstr "Отмена" #: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925 #: appTools/ToolPcbWizard.py:488 appTools/ToolPcbWizard.py:499 #: appTools/ToolPunchGerber.py:1025 appTools/ToolPunchGerber.py:1036 -#: appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933 +#: appTools/ToolQRCode.py:923 appTools/ToolQRCode.py:934 #: appTools/ToolRulesCheck.py:1657 appTools/ToolRulesCheck.py:1668 #: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586 #: appTools/ToolSub.py:772 appTools/ToolSub.py:783 @@ -1483,16 +1483,16 @@ msgstr "Отредактированное значение находится #: appTools/ToolAlignObjects.py:522 appTools/ToolAlignObjects.py:529 #: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1607 appTools/ToolCopperThieving.py:1614 -#: appTools/ToolCorners.py:468 appTools/ToolCorners.py:475 -#: appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450 -#: appTools/ToolDblSided.py:962 appTools/ToolDblSided.py:969 +#: appTools/ToolCopperThieving.py:1603 appTools/ToolCopperThieving.py:1610 +#: appTools/ToolCorners.py:469 appTools/ToolCorners.py:476 +#: appTools/ToolCutOut.py:2447 appTools/ToolCutOut.py:2454 +#: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:971 #: appTools/ToolDistance.py:665 appTools/ToolDistance.py:672 #: appTools/ToolDistanceMin.py:330 appTools/ToolDistanceMin.py:337 #: appTools/ToolDrilling.py:2672 appTools/ToolDrilling.py:2679 #: appTools/ToolEtchCompensation.py:482 appTools/ToolEtchCompensation.py:489 -#: appTools/ToolExtractDrills.py:738 appTools/ToolExtractDrills.py:745 -#: appTools/ToolFiducials.py:956 appTools/ToolFiducials.py:963 +#: appTools/ToolExtractDrills.py:739 appTools/ToolExtractDrills.py:746 +#: appTools/ToolFiducials.py:958 appTools/ToolFiducials.py:965 #: appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 #: appTools/ToolImage.py:328 appTools/ToolImage.py:335 #: appTools/ToolInvertGerber.py:310 appTools/ToolInvertGerber.py:317 @@ -1504,7 +1504,7 @@ msgstr "Отредактированное значение находится #: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927 #: appTools/ToolPcbWizard.py:494 appTools/ToolPcbWizard.py:501 #: appTools/ToolPunchGerber.py:1031 appTools/ToolPunchGerber.py:1038 -#: appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935 +#: appTools/ToolQRCode.py:929 appTools/ToolQRCode.py:936 #: appTools/ToolRulesCheck.py:1663 appTools/ToolRulesCheck.py:1670 #: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588 #: appTools/ToolSub.py:778 appTools/ToolSub.py:785 @@ -1524,7 +1524,7 @@ msgstr "Копировать из БД" msgid "Delete from DB" msgstr "Удалить из БД" -#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3386 app_Main.py:6895 +#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3309 app_Main.py:8719 msgid "Save changes" msgstr "Сохранить изменения" @@ -1581,8 +1581,8 @@ msgstr "Импорт FlatCAM БД" #: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525 #: appTools/ToolIsolation.py:2583 appTools/ToolIsolation.py:2667 #: appTools/ToolNCC.py:3715 appTools/ToolNCC.py:3795 appTools/ToolPaint.py:2626 -#: appTools/ToolPaint.py:2715 app_Main.py:5682 app_Main.py:5724 -#: app_Main.py:5755 app_Main.py:5775 app_Main.py:5785 +#: appTools/ToolPaint.py:2715 app_Main.py:5605 app_Main.py:5647 +#: app_Main.py:5678 app_Main.py:5698 app_Main.py:5708 msgid "Tools Database" msgstr "База данных" @@ -1801,7 +1801,7 @@ msgstr "Отмена. Инструмент/сверло не выбрано" #: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642 #: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871 #: appTools/ToolAlignObjects.py:253 appTools/ToolAlignObjects.py:275 -#: app_Main.py:4961 app_Main.py:5115 +#: app_Main.py:4884 app_Main.py:5038 msgid "Done." msgstr "Готово." @@ -1864,7 +1864,7 @@ msgstr "" #: appEditors/AppExcEditor.py:3765 appGUI/ObjectUI.py:1082 #: appGUI/ObjectUI.py:1650 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 -#: appTools/ToolCutOut.py:2060 appTools/ToolIsolation.py:3091 +#: appTools/ToolCutOut.py:2064 appTools/ToolIsolation.py:3091 #: appTools/ToolNCC.py:3966 appTools/ToolNCC.py:3977 appTools/ToolPaint.py:2882 msgid "Tool Dia" msgstr "Диаметр инструмента" @@ -1955,8 +1955,8 @@ msgstr "Линейный" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 -#: appTools/ToolExtractDrills.py:470 appTools/ToolExtractDrills.py:593 -#: appTools/ToolFiducials.py:834 appTools/ToolPunchGerber.py:746 +#: appTools/ToolExtractDrills.py:471 appTools/ToolExtractDrills.py:594 +#: appTools/ToolFiducials.py:836 appTools/ToolPunchGerber.py:746 #: appTools/ToolPunchGerber.py:886 msgid "Circular" msgstr "Круг" @@ -2123,7 +2123,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:398 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:399 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Длина" @@ -2242,12 +2242,12 @@ msgstr "Круглый" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:289 -#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:486 -#: appTools/ToolExtractDrills.py:619 appTools/ToolInvertGerber.py:257 +#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:487 +#: appTools/ToolExtractDrills.py:620 appTools/ToolInvertGerber.py:257 #: appTools/ToolIsolation.py:3430 appTools/ToolMilling.py:2264 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3168 #: appTools/ToolPunchGerber.py:762 appTools/ToolPunchGerber.py:912 -#: appTools/ToolQRCode.py:788 +#: appTools/ToolQRCode.py:789 msgid "Square" msgstr "Квадрат" @@ -2298,8 +2298,8 @@ msgstr "Шрифт" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1360 appTools/ToolCopperThieving.py:1400 -#: appTools/ToolFiducials.py:770 +#: appTools/ToolCopperThieving.py:1356 appTools/ToolCopperThieving.py:1396 +#: appTools/ToolFiducials.py:772 msgid "Size" msgstr "Размер" @@ -2323,8 +2323,8 @@ msgstr "Текст" #: appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 #: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:329 #: appTools/ToolNCC.py:2280 appTools/ToolNCC.py:4040 appTools/ToolPaint.py:304 -#: appTools/ToolPaint.py:2940 app_Main.py:2053 app_Main.py:2312 -#: app_Main.py:2419 +#: appTools/ToolPaint.py:2940 app_Main.py:2062 app_Main.py:2321 +#: app_Main.py:2428 msgid "Tool" msgstr "Инструменты" @@ -2414,7 +2414,7 @@ msgstr "Буфер" #: appGUI/GUIElements.py:3015 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 -#: appTools/ToolDblSided.py:681 appTools/ToolDblSided.py:855 +#: appTools/ToolDblSided.py:683 appTools/ToolDblSided.py:857 #: appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 msgid "Reference" msgstr "Ссылка" @@ -2459,7 +2459,7 @@ msgstr "Выбор" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 -#: appTools/ToolDblSided.py:692 appTools/ToolTransform.py:557 +#: appTools/ToolDblSided.py:694 appTools/ToolTransform.py:557 msgid "Point" msgstr "Точка" @@ -2472,10 +2472,9 @@ msgstr "Минимальное расстояние" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243 -#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677 +#: appTools/ToolExtractDrills.py:557 appTools/ToolExtractDrills.py:678 #: appTools/ToolPunchGerber.py:849 appTools/ToolPunchGerber.py:965 -#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 -#: app_Main.py:10205 +#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:7781 msgid "Value" msgstr "Значение" @@ -2487,10 +2486,10 @@ msgstr "Точка привязки в формате X,Y." #: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590 #: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 -#: appTools/ToolDblSided.py:706 appTools/ToolDblSided.py:892 +#: appTools/ToolDblSided.py:708 appTools/ToolDblSided.py:894 #: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203 -#: appTools/ToolTransform.py:572 app_Main.py:6127 +#: appTools/ToolTransform.py:572 app_Main.py:6050 msgid "Add" msgstr "Добавить" @@ -2701,7 +2700,7 @@ msgstr "Смещение Y" #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216 -#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:787 +#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:788 #: appTools/ToolTransform.py:854 msgid "Rounded" msgstr "Закругленный" @@ -3182,7 +3181,7 @@ msgstr "Редактор Geometry" #: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495 #: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 -#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519 +#: appTools/ToolCutOut.py:2017 appTools/ToolDblSided.py:521 #: appTools/ToolTransform.py:579 msgid "Type" msgstr "Тип" @@ -3566,7 +3565,7 @@ msgstr "Добавляет новое отверстие в список отв #: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 #: appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 #: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 -#: appTools/ToolSolderPaste.py:1209 app_Main.py:6129 +#: appTools/ToolSolderPaste.py:1209 app_Main.py:6052 msgid "Delete" msgstr "Удалить" @@ -3787,8 +3786,8 @@ msgstr "В файле нет отверстий. Прерывание созда #: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:164 #: appObjects/FlatCAMGeometry.py:1917 appParsers/ParseExcellon.py:972 -#: appTools/ToolPcbWizard.py:318 app_Main.py:9010 app_Main.py:9070 -#: app_Main.py:9201 app_Main.py:9266 app_Main.py:9881 +#: appTools/ToolPcbWizard.py:318 app_Main.py:7457 app_Main.py:9899 +#: app_Main.py:9959 app_Main.py:10090 app_Main.py:10155 msgid "An internal error has occurred. See shell.\n" msgstr "Произошла внутренняя ошибка. Смотрите командную строку.\n" @@ -3804,7 +3803,7 @@ msgstr "Редактирование Gerber завершено." msgid "Cancelled. No aperture is selected" msgstr "Отмена. Нет выбранных отверстий" -#: appEditors/AppGerberEditor.py:4555 app_Main.py:6462 +#: appEditors/AppGerberEditor.py:4555 app_Main.py:6385 msgid "Coordinates copied to clipboard." msgstr "Координаты скопированы в буфер обмена." @@ -3823,8 +3822,8 @@ msgstr "" "повторите попытку." #: appEditors/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 -#: appTools/ToolCutOut.py:895 appTools/ToolCutOut.py:1118 -#: appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663 +#: appTools/ToolCutOut.py:896 appTools/ToolCutOut.py:1119 +#: appTools/ToolCutOut.py:1267 camlib.py:4899 camlib.py:5663 msgid "Failed." msgstr "Неудачно." @@ -3856,7 +3855,7 @@ msgstr "Полигоны не были отмечены. Ни один не ук msgid "Rotation action was not executed." msgstr "Вращение не было выполнено." -#: appEditors/AppGerberEditor.py:6044 app_Main.py:5885 app_Main.py:5933 +#: appEditors/AppGerberEditor.py:6044 app_Main.py:5808 app_Main.py:5856 msgid "Flip action was not executed." msgstr "Операция переворота не была выполнена." @@ -3969,7 +3968,7 @@ msgstr "Открыть файл" #: appObjects/FlatCAMCNCJob.py:1646 appObjects/FlatCAMCNCJob.py:1651 #: appObjects/FlatCAMCNCJob.py:1836 appObjects/FlatCAMCNCJob.py:1841 #: appObjects/FlatCAMCNCJob.py:1914 appObjects/FlatCAMCNCJob.py:1919 -#: appTools/ToolSolderPaste.py:1063 app_Main.py:7044 app_Main.py:7049 +#: appTools/ToolSolderPaste.py:1063 app_Main.py:6839 app_Main.py:6844 msgid "Export Code ..." msgstr "Экспорт кода ..." @@ -3983,7 +3982,7 @@ msgstr "Нет такого файла или каталога" msgid "Saved to" msgstr "Сохранено в" -#: appEditors/appGCodeEditor.py:66 app_Main.py:7905 +#: appEditors/appGCodeEditor.py:66 app_Main.py:7000 msgid "Code Editor" msgstr "Редактор кода" @@ -4019,7 +4018,7 @@ msgstr "Редактор кода" #: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 appGUI/ObjectUI.py:2019 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1320 +#: appTools/ToolCopperThieving.py:1316 msgid "Dia" msgstr "Диаметр" @@ -4116,8 +4115,8 @@ msgstr "" msgid "Save Log" msgstr "Сохранить журнал" -#: appGUI/GUIElements.py:3085 app_Main.py:2809 app_Main.py:3181 -#: app_Main.py:3354 +#: appGUI/GUIElements.py:3085 app_Main.py:2741 app_Main.py:3113 +#: app_Main.py:3286 msgid "Close" msgstr "Закрыть" @@ -4761,7 +4760,7 @@ msgstr "Помощь" msgid "Online Help\tF1" msgstr "Онлайн справка\tF1" -#: appGUI/MainGUI.py:527 app_Main.py:3319 app_Main.py:3328 +#: appGUI/MainGUI.py:527 app_Main.py:3251 app_Main.py:3260 msgid "Bookmarks Manager" msgstr "Диспетчер закладок" @@ -4791,7 +4790,7 @@ msgstr "Канал YouTube\tF4" msgid "How To" msgstr "Как это" -#: appGUI/MainGUI.py:551 app_Main.py:2776 +#: appGUI/MainGUI.py:551 app_Main.py:2708 msgid "About FlatCAM" msgstr "О программе" @@ -4959,47 +4958,47 @@ msgstr "Отключить участок" msgid "Set Color" msgstr "Установить цвет" -#: appGUI/MainGUI.py:709 app_Main.py:10148 +#: appGUI/MainGUI.py:709 app_Main.py:7724 msgid "Red" msgstr "Красный" -#: appGUI/MainGUI.py:712 app_Main.py:10150 +#: appGUI/MainGUI.py:712 app_Main.py:7726 msgid "Blue" msgstr "Синий" -#: appGUI/MainGUI.py:715 app_Main.py:10153 +#: appGUI/MainGUI.py:715 app_Main.py:7729 msgid "Yellow" msgstr "Жёлтый" -#: appGUI/MainGUI.py:718 app_Main.py:10155 +#: appGUI/MainGUI.py:718 app_Main.py:7731 msgid "Green" msgstr "Зелёный" -#: appGUI/MainGUI.py:721 app_Main.py:10157 +#: appGUI/MainGUI.py:721 app_Main.py:7733 msgid "Purple" msgstr "Фиолетовый" -#: appGUI/MainGUI.py:724 app_Main.py:10159 +#: appGUI/MainGUI.py:724 app_Main.py:7735 msgid "Brown" msgstr "Коричневый" -#: appGUI/MainGUI.py:727 app_Main.py:10161 app_Main.py:10220 +#: appGUI/MainGUI.py:727 app_Main.py:7737 app_Main.py:7796 msgid "White" msgstr "Белый" -#: appGUI/MainGUI.py:730 app_Main.py:10163 +#: appGUI/MainGUI.py:730 app_Main.py:7739 msgid "Black" msgstr "Чёрный" -#: appGUI/MainGUI.py:735 app_Main.py:10166 +#: appGUI/MainGUI.py:735 app_Main.py:7742 msgid "Custom" msgstr "Своё" -#: appGUI/MainGUI.py:740 app_Main.py:10200 +#: appGUI/MainGUI.py:740 app_Main.py:7776 msgid "Opacity" msgstr "Непрозрачность" -#: appGUI/MainGUI.py:743 app_Main.py:10176 +#: appGUI/MainGUI.py:743 app_Main.py:7752 msgid "Default" msgstr "По умолчанию" @@ -5079,13 +5078,13 @@ msgstr "Панель сетки координат" msgid "Status Toolbar" msgstr "Панель редактирования" -#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7110 -#: app_Main.py:7115 +#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:8046 +#: app_Main.py:8051 msgid "Open Gerber" msgstr "Открыть Gerber" -#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7150 -#: app_Main.py:7155 +#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:8086 +#: app_Main.py:8091 msgid "Open Excellon" msgstr "Открыть Excellon" @@ -5172,7 +5171,7 @@ msgid "Extract Drills Tool" msgstr "Инструмент извлечения отверстий" #: appGUI/MainGUI.py:931 appGUI/MainGUI.py:2086 appGUI/ObjectUI.py:387 -#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2052 +#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2056 msgid "Cutout Tool" msgstr "Обрезка платы" @@ -5225,17 +5224,17 @@ msgid "Calculators Tool" msgstr "Калькулятор" #: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285 -#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628 +#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:629 msgid "QRCode Tool" msgstr "QR код" #: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1137 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1133 msgid "Copper Thieving Tool" msgstr "Copper Thieving" #: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281 -#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648 +#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:650 msgid "Fiducials Tool" msgstr "Контрольные точки" @@ -5254,7 +5253,7 @@ msgid "Invert Gerber Tool" msgstr "Инверсия Gerber" #: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284 -#: appTools/ToolCorners.py:297 +#: appTools/ToolCorners.py:298 msgid "Corner Markers Tool" msgstr "Угловые маркеры" @@ -5445,8 +5444,8 @@ msgstr "Переключает отображение оси на холсте" #: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:899 #: appGUI/preferences/PreferencesUIManager.py:992 #: appGUI/preferences/PreferencesUIManager.py:1020 -#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5585 -#: app_Main.py:5590 app_Main.py:5605 +#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5508 +#: app_Main.py:5513 app_Main.py:5528 msgid "Preferences" msgstr "Настройки" @@ -5484,21 +5483,21 @@ msgstr "" msgid "TCL Shell" msgstr "Показывать командную строку" -#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 +#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:9017 msgid "Project" msgstr "Проект" #: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:3791 -#: appGUI/MainGUI.py:3797 app_Main.py:2480 app_Main.py:7001 +#: appGUI/MainGUI.py:3797 app_Main.py:2489 app_Main.py:8825 msgid "Plot Area" msgstr "Рабочая область" -#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1169 -#: appTools/ToolCorners.py:317 appTools/ToolEtchCompensation.py:291 -#: appTools/ToolExtractDrills.py:453 appTools/ToolFiducials.py:873 +#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1165 +#: appTools/ToolCorners.py:318 appTools/ToolEtchCompensation.py:291 +#: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:875 #: appTools/ToolInvertGerber.py:215 appTools/ToolIsolation.py:2986 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:721 -#: appTools/ToolQRCode.py:659 appTools/ToolRulesCheck.py:1165 +#: appTools/ToolQRCode.py:660 appTools/ToolRulesCheck.py:1165 #: appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:643 msgid "GERBER" msgstr "GERBER" @@ -5586,9 +5585,9 @@ msgstr "Переключить видимость" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:526 -#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:929 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2014 appTools/ToolDblSided.py:528 +#: appTools/ToolDblSided.py:769 appTools/ToolFilm.py:929 #: appTools/ToolFilm.py:952 appTools/ToolImage.py:136 appTools/ToolImage.py:191 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 @@ -5606,9 +5605,9 @@ msgstr "Geometry" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:892 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolDblSided.py:527 appTools/ToolDblSided.py:724 -#: appTools/ToolDblSided.py:766 appTools/ToolFilm.py:1207 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:768 appTools/ToolFilm.py:1207 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:805 appTools/ToolNCC.py:4323 appTools/ToolPaint.py:167 #: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147 @@ -5686,7 +5685,7 @@ msgstr "Редактор Excellon" msgid "Add Drill" msgstr "Добавить сверло" -#: appGUI/MainGUI.py:1581 app_Main.py:2291 +#: appGUI/MainGUI.py:1581 app_Main.py:2300 msgid "Close Editor" msgstr "Закрыть редактор" @@ -5712,8 +5711,8 @@ msgstr "Вы уверены, что хотите сбросить настрой #: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:931 #: appGUI/preferences/PreferencesUIManager.py:1177 appTranslation.py:111 -#: appTranslation.py:213 app_Main.py:2295 app_Main.py:3390 app_Main.py:5815 -#: app_Main.py:6899 +#: appTranslation.py:213 app_Main.py:2304 app_Main.py:3313 app_Main.py:5738 +#: app_Main.py:8723 msgid "Yes" msgstr "Да" @@ -5725,7 +5724,7 @@ msgstr "Да" #: appTools/ToolDrilling.py:2090 appTools/ToolIsolation.py:3066 #: appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3935 #: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 -#: app_Main.py:2296 app_Main.py:3391 app_Main.py:5816 app_Main.py:6900 +#: app_Main.py:2305 app_Main.py:3314 app_Main.py:5739 app_Main.py:8724 msgid "No" msgstr "Нет" @@ -5815,7 +5814,7 @@ msgstr "Добавление инструмента отменено ..." msgid "Distance Tool exit..." msgstr "Измеритель закрыт ..." -#: appGUI/MainGUI.py:3725 app_Main.py:3378 +#: appGUI/MainGUI.py:3725 app_Main.py:3301 msgid "Application is saving the project. Please wait ..." msgstr "Приложение сохраняет проект. Пожалуйста, подождите ..." @@ -5859,7 +5858,7 @@ msgstr "Создать Gerber" msgid "Edit Object (if selected)" msgstr "Редактировать объект (если выбран)" -#: appGUI/MainGUI.py:4261 app_Main.py:6115 +#: appGUI/MainGUI.py:4261 app_Main.py:6038 msgid "Grid On/Off" msgstr "Сетка вкл/откл" @@ -5930,7 +5929,7 @@ msgstr "Открыть Gerber" msgid "New Project" msgstr "Новый проект" -#: appGUI/MainGUI.py:4270 app_Main.py:7229 app_Main.py:7232 +#: appGUI/MainGUI.py:4270 app_Main.py:8166 app_Main.py:8169 msgid "Open Project" msgstr "Открыть проект" @@ -6356,7 +6355,7 @@ msgstr "Отрисовка" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1290 +#: appTools/ToolCopperThieving.py:1286 msgid "Solid" msgstr "Сплошной" @@ -6531,15 +6530,15 @@ msgstr "" msgid "Resulting geometry will have rounded corners." msgstr "Полученная геометрия будет иметь закругленные углы." -#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2287 -#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444 +#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2291 +#: appTools/ToolCutOut.py:2306 appTools/ToolIsolation.py:3444 #: appTools/ToolNCC.py:4372 appTools/ToolPaint.py:3178 msgid "Generate Geometry" msgstr "Создать объект" #: appGUI/ObjectUI.py:478 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:782 +#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:783 msgid "Bounding Box" msgstr "Ограничительная рамка" @@ -6903,7 +6902,7 @@ msgstr "" msgid "Add from DB" msgstr "Добавить из БД" -#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2071 +#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2075 #: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3122 #: appTools/ToolNCC.py:3996 appTools/ToolPaint.py:2898 msgid "Search and Add" @@ -6917,7 +6916,7 @@ msgstr "" "Добавление нового инструмента в таблицу инструментов\n" "с диаметром, указанным выше." -#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2083 +#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2087 #: appTools/ToolIsolation.py:65 appTools/ToolIsolation.py:3133 #: appTools/ToolNCC.py:4007 appTools/ToolPaint.py:2909 #, fuzzy @@ -6925,7 +6924,7 @@ msgstr "" msgid "Pick from DB" msgstr "Добавить из БД" -#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2086 +#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2090 #: appTools/ToolIsolation.py:3136 appTools/ToolNCC.py:4010 #: appTools/ToolPaint.py:2912 #, fuzzy @@ -7023,7 +7022,7 @@ msgstr "" #: appGUI/ObjectUI.py:1216 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2107 +#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2111 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -7035,7 +7034,7 @@ msgstr "" #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 -#: appTools/ToolCutOut.py:2125 appTools/ToolDrilling.py:2164 +#: appTools/ToolCutOut.py:2129 appTools/ToolDrilling.py:2164 #: appTools/ToolMilling.py:1814 msgid "Multi-Depth" msgstr "Мультипроход" @@ -7738,12 +7737,12 @@ msgstr "" #: appGUI/ObjectUI.py:2177 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: appTools/ToolCutOut.py:2324 appTools/ToolFiducials.py:801 +#: appTools/ToolCutOut.py:2328 appTools/ToolFiducials.py:803 msgid "Manual" msgstr "Вручную" #: appGUI/ObjectUI.py:2178 -#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:9736 +#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:7312 #, fuzzy #| msgid "Grids" msgid "Grid" @@ -8089,7 +8088,7 @@ msgstr "Выравнивание" msgid "Align Left" msgstr "Выравнивание по левому краю" -#: appGUI/ObjectUI.py:2860 app_Main.py:4999 +#: appGUI/ObjectUI.py:2860 app_Main.py:4922 msgid "Center" msgstr "По центру" @@ -8180,7 +8179,7 @@ msgid "Preferences default values are restored." msgstr "Настройки по умолчанию восстановлены." #: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 -#: app_Main.py:2696 +#: app_Main.py:9396 msgid "Failed to write defaults to file." msgstr "Не удалось записать значения по умолчанию в файл." @@ -8230,10 +8229,10 @@ msgstr "CNC Job дополнительные" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1188 -#: appTools/ToolCorners.py:377 appTools/ToolEtchCompensation.py:356 -#: appTools/ToolFiducials.py:763 appTools/ToolInvertGerber.py:228 -#: appTools/ToolQRCode.py:695 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1184 +#: appTools/ToolCorners.py:378 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolFiducials.py:765 appTools/ToolInvertGerber.py:228 +#: appTools/ToolQRCode.py:696 msgid "Parameters" msgstr "Параметры" @@ -8356,7 +8355,7 @@ msgid "G-code Decimals" msgstr "G-code десятичные" #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:682 +#: appTools/ToolFiducials.py:684 msgid "Coordinates" msgstr "Координаты" @@ -9118,7 +9117,7 @@ msgstr "Настройки приложения" msgid "Grid Settings" msgstr "Настройки сетки" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:9744 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:7320 msgid "X value" msgstr "Значение X" @@ -9126,7 +9125,7 @@ msgstr "Значение X" msgid "This is the Grid snap value on X axis." msgstr "Это значение привязки сетки по оси X." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:9747 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:7323 msgid "Y value" msgstr "Значение Y" @@ -9173,14 +9172,14 @@ msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: appTools/ToolFilm.py:1274 app_Main.py:9764 +#: appTools/ToolFilm.py:1274 app_Main.py:7340 msgid "Portrait" msgstr "Портретная" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: appTools/ToolFilm.py:1275 app_Main.py:9766 +#: appTools/ToolFilm.py:1275 app_Main.py:7342 msgid "Landscape" msgstr "Альбомная" @@ -9199,7 +9198,7 @@ msgstr "" "которая включает вкладки Проект, Выбранное и Инструменты." #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -#: appTools/ToolDblSided.py:666 appTools/ToolDblSided.py:838 app_Main.py:9752 +#: appTools/ToolDblSided.py:668 appTools/ToolDblSided.py:840 app_Main.py:7328 msgid "Axis" msgstr "Оси" @@ -9219,7 +9218,7 @@ msgstr "" "Это устанавливает размер шрифта для полей ввода текста\n" "которые используются в приложении." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:9769 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:7345 msgid "HUD" msgstr "HUD" @@ -10286,8 +10285,8 @@ msgid "\"Follow\"" msgstr "\"Следовать\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:579 -#: appTools/ToolCopperThieving.py:776 appTools/ToolCopperThieving.py:788 +#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:578 +#: appTools/ToolCopperThieving.py:775 appTools/ToolCopperThieving.py:787 #: appTools/ToolIsolation.py:1353 appTools/ToolNCC.py:1793 #: appTools/ToolNCC.py:1820 appTools/ToolNCC.py:1928 appTools/ToolNCC.py:1941 #: appTools/ToolNCC.py:2845 appTools/ToolNCC.py:2950 appTools/ToolNCC.py:2965 @@ -10316,7 +10315,7 @@ msgstr "" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102 +#: appTools/ToolFiducials.py:817 appTools/ToolFilm.py:1102 #: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -10604,7 +10603,7 @@ msgstr "Количество шагов (линий), используемых #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1195 appTools/ToolCopperThieving.py:1530 +#: appTools/ToolCopperThieving.py:1191 appTools/ToolCopperThieving.py:1526 msgid "Clearance" msgstr "Зазор" @@ -10620,7 +10619,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1224 appTools/ToolNCC.py:1351 +#: appTools/ToolCopperThieving.py:1220 appTools/ToolNCC.py:1351 #: appTools/ToolNCC.py:1667 appTools/ToolNCC.py:1731 appTools/ToolNCC.py:2709 #: appTools/ToolNCC.py:2718 appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4436 #: defaults.py:478 tclCommands/TclCommandCopperClear.py:190 @@ -10631,7 +10630,7 @@ msgstr "Как есть" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1225 appTools/ToolIsolation.py:819 +#: appTools/ToolCopperThieving.py:1221 appTools/ToolIsolation.py:819 #: appTools/ToolIsolation.py:1435 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1365 appTools/ToolNCC.py:1683 appTools/ToolNCC.py:1738 #: appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4446 appTools/ToolPaint.py:1061 @@ -10643,7 +10642,7 @@ msgstr "Выбор области" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolDblSided.py:757 +#: appTools/ToolCopperThieving.py:1222 appTools/ToolDblSided.py:759 #: appTools/ToolIsolation.py:1475 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1384 appTools/ToolNCC.py:1689 appTools/ToolNCC.py:1746 #: appTools/ToolNCC.py:2124 appTools/ToolNCC.py:2358 appTools/ToolNCC.py:2754 @@ -10654,7 +10653,7 @@ msgid "Reference Object" msgstr "Ссылочный объект" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1224 msgid "Reference:" msgstr "Ссылка:" @@ -10678,24 +10677,24 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1270 appTools/ToolExtractDrills.py:494 -#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:770 +#: appTools/ToolCopperThieving.py:1266 appTools/ToolExtractDrills.py:495 +#: appTools/ToolExtractDrills.py:633 appTools/ToolPunchGerber.py:770 #: appTools/ToolPunchGerber.py:925 msgid "Rectangular" msgstr "Прямоугольник" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1271 +#: appTools/ToolCopperThieving.py:1267 msgid "Minimal" msgstr "Минимальная" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1273 appTools/ToolFilm.py:954 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolFilm.py:954 msgid "Box Type:" msgstr "Тип рамки:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1275 +#: appTools/ToolCopperThieving.py:1271 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10704,27 +10703,27 @@ msgstr "" "- 'Минимальная' - ограничительная рамка будет повторять форму корпуса." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1291 +#: appTools/ToolCopperThieving.py:1287 msgid "Dots Grid" msgstr "Сетка точек" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1292 +#: appTools/ToolCopperThieving.py:1288 msgid "Squares Grid" msgstr "Сетка квадратов" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1293 +#: appTools/ToolCopperThieving.py:1289 msgid "Lines Grid" msgstr "Сетка линий" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1295 +#: appTools/ToolCopperThieving.py:1291 msgid "Fill Type:" msgstr "Тип заполнения:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1297 +#: appTools/ToolCopperThieving.py:1293 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10737,57 +10736,57 @@ msgstr "" "- 'Сетка линий' - пустая область будет заполнена сеткой линий." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1316 +#: appTools/ToolCopperThieving.py:1312 msgid "Dots Grid Parameters" msgstr "Параметры точки сетки" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1322 +#: appTools/ToolCopperThieving.py:1318 msgid "Dot diameter in Dots Grid." msgstr "Диаметр точки в сетке точек." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1335 +#: appTools/ToolCopperThieving.py:1331 msgid "Distance between each two dots in Dots Grid." msgstr "Расстояние между каждыми двумя точками в сетке точек." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1356 +#: appTools/ToolCopperThieving.py:1352 msgid "Squares Grid Parameters" msgstr "Параметры квадратной сетки" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1362 +#: appTools/ToolCopperThieving.py:1358 msgid "Square side size in Squares Grid." msgstr "Размер стороны квадрата в сетке квадратов." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1375 +#: appTools/ToolCopperThieving.py:1371 msgid "Distance between each two squares in Squares Grid." msgstr "Расстояние между каждыми двумя квадратами в сетке квадратов ." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1396 +#: appTools/ToolCopperThieving.py:1392 msgid "Lines Grid Parameters" msgstr "Параметры линий сетки" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1402 +#: appTools/ToolCopperThieving.py:1398 msgid "Line thickness size in Lines Grid." msgstr "Размеры линий по толщине в сетке линий." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1415 +#: appTools/ToolCopperThieving.py:1411 msgid "Distance between each two lines in Lines Grid." msgstr "Расстояние между двумя линиями в сетке линий." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1453 +#: appTools/ToolCopperThieving.py:1449 msgid "Robber Bar Parameters" msgstr "Параметры Robber Bar" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1455 +#: appTools/ToolCopperThieving.py:1451 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10796,34 +10795,34 @@ msgstr "" "Robber ba = медная рамка для облегчения нанесения покрытия на отверстия." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1463 +#: appTools/ToolCopperThieving.py:1459 msgid "Bounding box margin for robber bar." msgstr "Граница рамки." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCopperThieving.py:1474 appTools/ToolCorners.py:384 +#: appTools/ToolCopperThieving.py:1470 appTools/ToolCorners.py:385 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Толщина" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1476 +#: appTools/ToolCopperThieving.py:1472 msgid "The robber bar thickness." msgstr "Толщина robber bar." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1507 +#: appTools/ToolCopperThieving.py:1503 msgid "Pattern Plating Mask" msgstr "Рисунок гальванической маски" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1509 +#: appTools/ToolCopperThieving.py:1505 msgid "Generate a mask for pattern plating." msgstr "Создание рисунка гальванической маски." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1532 +#: appTools/ToolCopperThieving.py:1528 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10840,8 +10839,8 @@ msgstr "Параметры калибровки" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1190 appTools/ToolCorners.py:379 -#: appTools/ToolFiducials.py:765 +#: appTools/ToolCopperThieving.py:1186 appTools/ToolCorners.py:380 +#: appTools/ToolFiducials.py:767 msgid "Parameters used for this tool." msgstr "Параметры, используемые для этого инструмента." @@ -10931,12 +10930,12 @@ msgstr "" "- внизу справа -> пользователь выровняет печатную плату по горизонтали" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: appTools/ToolCalibration.py:854 app_Main.py:4996 +#: appTools/ToolCalibration.py:854 app_Main.py:4919 msgid "Top-Left" msgstr "Слева вверху" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: appTools/ToolCalibration.py:855 app_Main.py:4997 +#: appTools/ToolCalibration.py:855 app_Main.py:4920 msgid "Bottom-Right" msgstr "Справа внизу" @@ -10946,13 +10945,13 @@ msgstr "Параметры извлечения отверстий" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:732 +#: appTools/ToolExtractDrills.py:461 appTools/ToolPunchGerber.py:732 msgid "Processed Pads Type" msgstr "Тип обработки площадок" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:734 +#: appTools/ToolExtractDrills.py:463 appTools/ToolPunchGerber.py:734 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -10964,7 +10963,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:748 +#: appTools/ToolExtractDrills.py:473 appTools/ToolPunchGerber.py:748 msgid "Process Circular Pads." msgstr "Обработка круглых площадок." @@ -10972,26 +10971,26 @@ msgstr "Обработка круглых площадок." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606 +#: appTools/ToolExtractDrills.py:479 appTools/ToolExtractDrills.py:607 #: appTools/ToolPunchGerber.py:754 appTools/ToolPunchGerber.py:899 msgid "Oblong" msgstr "Продолговатая форма" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:756 +#: appTools/ToolExtractDrills.py:481 appTools/ToolPunchGerber.py:756 msgid "Process Oblong Pads." msgstr "Продолговатые площадки." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:764 +#: appTools/ToolExtractDrills.py:489 appTools/ToolPunchGerber.py:764 msgid "Process Square Pads." msgstr "Квадратные площадки." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:772 +#: appTools/ToolExtractDrills.py:497 appTools/ToolPunchGerber.py:772 msgid "Process Rectangular Pads." msgstr "Обработка прямоугольных площадок." @@ -10999,15 +10998,15 @@ msgstr "Обработка прямоугольных площадок." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502 -#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:171 +#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:503 +#: appTools/ToolExtractDrills.py:646 appTools/ToolProperties.py:171 #: appTools/ToolPunchGerber.py:778 appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "Другие" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:780 +#: appTools/ToolExtractDrills.py:505 appTools/ToolPunchGerber.py:780 msgid "Process pads not in the categories above." msgstr "Площадки, не относящиеся к вышеперечисленным категориям." @@ -11015,7 +11014,7 @@ msgstr "Площадки, не относящиеся к вышеперечис #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548 +#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:549 #: appTools/ToolPunchGerber.py:807 appTools/ToolPunchGerber.py:841 msgid "Fixed Diameter" msgstr "Фиксированный диаметр" @@ -11024,19 +11023,19 @@ msgstr "Фиксированный диаметр" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584 +#: appTools/ToolExtractDrills.py:533 appTools/ToolExtractDrills.py:585 #: appTools/ToolPunchGerber.py:808 appTools/ToolPunchGerber.py:871 msgid "Fixed Annular Ring" msgstr "Фиксированное медное кольцо" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:809 +#: appTools/ToolExtractDrills.py:534 appTools/ToolPunchGerber.py:809 msgid "Proportional" msgstr "Пропорциональный" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: appTools/ToolExtractDrills.py:522 +#: appTools/ToolExtractDrills.py:523 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -11051,13 +11050,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:851 +#: appTools/ToolExtractDrills.py:559 appTools/ToolPunchGerber.py:851 msgid "Fixed hole diameter." msgstr "Фиксированный диаметр отверстия." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: appTools/ToolExtractDrills.py:586 appTools/ToolPunchGerber.py:873 +#: appTools/ToolExtractDrills.py:587 appTools/ToolPunchGerber.py:873 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -11069,37 +11068,37 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:888 +#: appTools/ToolExtractDrills.py:596 appTools/ToolPunchGerber.py:888 msgid "The size of annular ring for circular pads." msgstr "Размер кольца круглого сечения для кольцевых площадок." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: appTools/ToolExtractDrills.py:608 appTools/ToolPunchGerber.py:901 +#: appTools/ToolExtractDrills.py:609 appTools/ToolPunchGerber.py:901 msgid "The size of annular ring for oblong pads." msgstr "Размер кольца круглого сечения для продолговатых площадок." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: appTools/ToolExtractDrills.py:621 appTools/ToolPunchGerber.py:914 +#: appTools/ToolExtractDrills.py:622 appTools/ToolPunchGerber.py:914 msgid "The size of annular ring for square pads." msgstr "Размер кольца круглого сечения для квадратных площадок." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: appTools/ToolExtractDrills.py:634 appTools/ToolPunchGerber.py:927 +#: appTools/ToolExtractDrills.py:635 appTools/ToolPunchGerber.py:927 msgid "The size of annular ring for rectangular pads." msgstr "Размер кольца круглого сечения для прямоугольных площадок." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: appTools/ToolExtractDrills.py:647 appTools/ToolPunchGerber.py:940 +#: appTools/ToolExtractDrills.py:648 appTools/ToolPunchGerber.py:940 msgid "The size of annular ring for other pads." msgstr "Размер кольца круглого сечения для других площадок." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: appTools/ToolExtractDrills.py:668 appTools/ToolPunchGerber.py:956 +#: appTools/ToolExtractDrills.py:669 appTools/ToolPunchGerber.py:956 msgid "Proportional Diameter" msgstr "Пропорциональный диаметр" @@ -11110,7 +11109,7 @@ msgstr "Коэффициент" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:967 +#: appTools/ToolExtractDrills.py:680 appTools/ToolPunchGerber.py:967 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -11123,7 +11122,7 @@ msgid "Fiducials Tool Options" msgstr "Параметры контрольных точек" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: appTools/ToolFiducials.py:772 +#: appTools/ToolFiducials.py:774 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -11135,12 +11134,12 @@ msgstr "" "вдвое больше отверстия паяльной маски." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: appTools/ToolFiducials.py:800 +#: appTools/ToolFiducials.py:802 msgid "Auto" msgstr "Авто" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:803 +#: appTools/ToolFiducials.py:805 msgid "Mode:" msgstr "Режим:" @@ -11155,22 +11154,22 @@ msgstr "" "- 'Вручную' - ручное размещение контрольных точек." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: appTools/ToolFiducials.py:813 +#: appTools/ToolFiducials.py:815 msgid "Up" msgstr "Вверху" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: appTools/ToolFiducials.py:814 +#: appTools/ToolFiducials.py:816 msgid "Down" msgstr "Внизу" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: appTools/ToolFiducials.py:817 +#: appTools/ToolFiducials.py:819 msgid "Second fiducial" msgstr "Вторичные контрольные точки" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: appTools/ToolFiducials.py:819 +#: appTools/ToolFiducials.py:821 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -11184,22 +11183,22 @@ msgstr "" "сверху справа." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: appTools/ToolFiducials.py:835 +#: appTools/ToolFiducials.py:837 msgid "Cross" msgstr "Крест" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: appTools/ToolFiducials.py:836 +#: appTools/ToolFiducials.py:838 msgid "Chess" msgstr "Шахматный порядок" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: appTools/ToolFiducials.py:838 +#: appTools/ToolFiducials.py:840 msgid "Fiducial Type" msgstr "Тип контрольных точек" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: appTools/ToolFiducials.py:840 +#: appTools/ToolFiducials.py:842 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -11212,7 +11211,7 @@ msgstr "" "- 'Шахматный порядок' - точки в шахматном порядке." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: appTools/ToolFiducials.py:849 +#: appTools/ToolFiducials.py:851 msgid "Line thickness" msgstr "Толщина линии" @@ -11326,12 +11325,12 @@ msgstr "" "в выбранный файл Gerber, или его можно экспортировать в файл." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: appTools/ToolQRCode.py:702 app_Main.py:9732 +#: appTools/ToolQRCode.py:703 app_Main.py:7308 msgid "Version" msgstr "Версия" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: appTools/ToolQRCode.py:704 +#: appTools/ToolQRCode.py:705 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11340,13 +11339,13 @@ msgstr "" "до 40 (177x177)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: appTools/ToolQRCode.py:715 +#: appTools/ToolQRCode.py:716 msgid "Error correction" msgstr "Коррекция ошибок" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: appTools/ToolQRCode.py:717 appTools/ToolQRCode.py:728 +#: appTools/ToolQRCode.py:718 appTools/ToolQRCode.py:729 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -11362,12 +11361,12 @@ msgstr "" "H = макс. 30%% ошибок могут быть исправлены." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: appTools/ToolQRCode.py:738 +#: appTools/ToolQRCode.py:739 msgid "Box Size" msgstr "Размер поля" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: appTools/ToolQRCode.py:740 +#: appTools/ToolQRCode.py:741 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11376,12 +11375,12 @@ msgstr "" "откорректировав размер каждой рамки в коде." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: appTools/ToolQRCode.py:751 +#: appTools/ToolQRCode.py:752 msgid "Border Size" msgstr "Отступ" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: appTools/ToolQRCode.py:753 +#: appTools/ToolQRCode.py:754 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." @@ -11390,28 +11389,28 @@ msgstr "" "Значение по умолчанию 4. Ширина зазора вокруг QR-кода." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: appTools/ToolQRCode.py:673 +#: appTools/ToolQRCode.py:674 msgid "QRCode Data" msgstr "Данные QR-кода" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: appTools/ToolQRCode.py:675 +#: appTools/ToolQRCode.py:676 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "" "Данные QRCode. Буквенно-цифровой текст, подлежащий кодированию в QRCode." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: appTools/ToolQRCode.py:679 +#: appTools/ToolQRCode.py:680 msgid "Add here the text to be included in the QRCode..." msgstr "Добавьте сюда текст, который будет включен в QRCode..." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: appTools/ToolQRCode.py:764 +#: appTools/ToolQRCode.py:765 msgid "Polarity" msgstr "Полярность" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: appTools/ToolQRCode.py:766 +#: appTools/ToolQRCode.py:767 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11422,17 +11421,17 @@ msgstr "" "или позитив (квадраты непрозрачны)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:770 +#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:771 msgid "Negative" msgstr "Негатив" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:771 +#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:772 msgid "Positive" msgstr "Позитив" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: appTools/ToolQRCode.py:773 +#: appTools/ToolQRCode.py:774 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -11446,7 +11445,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: appTools/ToolQRCode.py:784 appTools/ToolQRCode.py:790 +#: appTools/ToolQRCode.py:785 appTools/ToolQRCode.py:791 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -11455,22 +11454,22 @@ msgstr "" "QRCode, может иметь округлую или квадратную форму." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: appTools/ToolQRCode.py:818 +#: appTools/ToolQRCode.py:819 msgid "Fill Color" msgstr "Цвет заливки" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: appTools/ToolQRCode.py:820 +#: appTools/ToolQRCode.py:821 msgid "Set the QRCode fill color (squares color)." msgstr "Задаёт цвет заливки QRCode (цвет квадратов)." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: appTools/ToolQRCode.py:842 +#: appTools/ToolQRCode.py:843 msgid "Back Color" msgstr "Цвет фона" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: appTools/ToolQRCode.py:844 +#: appTools/ToolQRCode.py:845 msgid "Set the QRCode background color." msgstr "Устанавливает цвет фона QRCode." @@ -11689,7 +11688,7 @@ msgid "Drill dia" msgstr "Диаметр сверла" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: appTools/ToolDblSided.py:824 appTools/ToolDblSided.py:829 +#: appTools/ToolDblSided.py:826 appTools/ToolDblSided.py:831 msgid "Diameter of the drill for the alignment holes." msgstr "Диаметр сверла для контрольных отверстий." @@ -11699,7 +11698,7 @@ msgstr "Выровнять ось" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: appTools/ToolDblSided.py:667 appTools/ToolDblSided.py:840 +#: appTools/ToolDblSided.py:669 appTools/ToolDblSided.py:842 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Отразить по вертикали (X) или горизонтали (Y)." @@ -11708,12 +11707,12 @@ msgid "Mirror Axis:" msgstr "Зеркальное отражение:" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 -#: appTools/ToolDblSided.py:693 +#: appTools/ToolDblSided.py:695 msgid "Box" msgstr "Рамка" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 -#: appTools/ToolDblSided.py:694 +#: appTools/ToolDblSided.py:696 #, fuzzy #| msgid "Hole Size" msgid "Hole Snap" @@ -11871,12 +11870,12 @@ msgid "Corner Markers Options" msgstr "Параметры угловых маркеров" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:386 +#: appTools/ToolCorners.py:387 msgid "The thickness of the line that makes the corner marker." msgstr "Толщина линии, обозначающей угол." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:400 +#: appTools/ToolCorners.py:401 msgid "The length of the line that makes the corner marker." msgstr "Длина линии, которая делает угловой маркер." @@ -11894,7 +11893,7 @@ msgstr "" "заготовки." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: appTools/ToolCutOut.py:2062 +#: appTools/ToolCutOut.py:2066 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -11907,7 +11906,7 @@ msgid "Object kind" msgstr "Вид объекта" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: appTools/ToolCutOut.py:1995 +#: appTools/ToolCutOut.py:1999 msgid "" "Choice of what kind the object we want to cutout is.
    - Single: " "contain a single PCB Gerber outline object.
    - Panel: a panel PCB " @@ -11920,12 +11919,12 @@ msgstr "" "из множества отдельных печатных плат очертания." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: appTools/ToolCutOut.py:2001 +#: appTools/ToolCutOut.py:2005 msgid "Single" msgstr "Одиночный" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: appTools/ToolCutOut.py:2002 +#: appTools/ToolCutOut.py:2006 msgid "Panel" msgstr "Панель" @@ -11954,12 +11953,12 @@ msgstr "" "- 8 - 2*слева + 2*справа + 2*сверху + 2*снизу" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 -#: appTools/ToolCutOut.py:2333 +#: appTools/ToolCutOut.py:2337 msgid "Big cursor" msgstr "" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 -#: appTools/ToolCutOut.py:2335 +#: appTools/ToolCutOut.py:2339 msgid "Use a big cursor when adding manual gaps." msgstr "" @@ -12237,18 +12236,18 @@ msgstr "" "Это может быть одна из четырех точек геометрии ограничительной рамки." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:342 appTools/ToolFiducials.py:694 +#: appTools/ToolCorners.py:343 appTools/ToolFiducials.py:696 #: appTools/ToolFilm.py:1065 msgid "Bottom Left" msgstr "Нижний левый" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:350 appTools/ToolFilm.py:1066 +#: appTools/ToolCorners.py:351 appTools/ToolFilm.py:1066 msgid "Top Left" msgstr "Верхний левый" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:346 appTools/ToolFilm.py:1067 +#: appTools/ToolCorners.py:347 appTools/ToolFilm.py:1067 msgid "Bottom Right" msgstr "Нижний правый" @@ -12528,9 +12527,9 @@ msgstr "Последовательный" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:453 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1044 -#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530 -#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:463 app_Main.py:4682 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCorners.py:264 appTools/ToolFiducials.py:532 +#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:464 app_Main.py:4605 msgid "Plotting" msgstr "Прорисовка" @@ -12731,9 +12730,9 @@ msgstr "Количество строк нужной панели" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:891 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2009 appTools/ToolDblSided.py:525 -#: appTools/ToolDblSided.py:765 appTools/ToolFilm.py:928 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:527 +#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:928 #: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 #: appTools/ToolIsolation.py:3339 appTools/ToolIsolation.py:3391 @@ -13360,7 +13359,7 @@ msgid "Export cancelled ..." msgstr "Экспорт отменён ..." #: appObjects/FlatCAMCNCJob.py:1678 appObjects/FlatCAMCNCJob.py:1965 -#: appObjects/FlatCAMScript.py:134 app_Main.py:7830 +#: appObjects/FlatCAMScript.py:134 app_Main.py:6925 msgid "Loading..." msgstr "Загрузка..." @@ -13505,7 +13504,7 @@ msgstr "Добавить инструмент из БД" #: appTools/ToolDrilling.py:1021 appTools/ToolIsolation.py:639 #: appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744 #: appTools/ToolMilling.py:779 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 -#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2194 +#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2203 msgid "No Tool Selected" msgstr "Инструмент не выбран" @@ -13816,7 +13815,7 @@ msgstr "Объект переименован из {old} в {new}" #: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939 #: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951 #: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 -#: app_Main.py:6707 app_Main.py:6713 app_Main.py:6719 app_Main.py:6725 +#: app_Main.py:6630 app_Main.py:6636 app_Main.py:6642 app_Main.py:6648 msgid "selected" msgstr "выбранный" @@ -13986,7 +13985,7 @@ msgid "Click on the START point." msgstr "Нажмите на начальную точку." #: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276 -#: appTools/ToolDblSided.py:285 +#: appTools/ToolDblSided.py:287 msgid "Cancelled by user request." msgstr "Отменено по запросу пользователя." @@ -14000,7 +13999,7 @@ msgid "Or right click to cancel." msgstr "Или щелкните правой кнопкой мыши, чтобы отменить." #: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267 -#: appTools/ToolFiducials.py:718 +#: appTools/ToolFiducials.py:720 msgid "Second Point" msgstr "Вторичная точка" @@ -14087,32 +14086,32 @@ msgstr "" "Если используются две точки, то предполагается их трансляция и вращение." #: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1583 -#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394 -#: appTools/ToolDblSided.py:938 appTools/ToolDrilling.py:2649 -#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:702 -#: appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCorners.py:445 appTools/ToolCutOut.py:2398 +#: appTools/ToolDblSided.py:940 appTools/ToolDrilling.py:2649 +#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:703 +#: appTools/ToolFiducials.py:934 appTools/ToolFilm.py:1383 #: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477 #: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4388 #: appTools/ToolOptimal.py:593 appTools/ToolPaint.py:3194 #: appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:996 -#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1620 +#: appTools/ToolQRCode.py:905 appTools/ToolRulesCheck.py:1620 #: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:754 #: appTools/ToolTransform.py:920 msgid "Reset Tool" msgstr "Сбросить настройки инструмента" #: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1586 -#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397 -#: appTools/ToolDblSided.py:941 appTools/ToolDrilling.py:2652 -#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:705 -#: appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1582 +#: appTools/ToolCorners.py:448 appTools/ToolCutOut.py:2401 +#: appTools/ToolDblSided.py:943 appTools/ToolDrilling.py:2652 +#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:706 +#: appTools/ToolFiducials.py:937 appTools/ToolFilm.py:1386 #: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480 #: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4391 #: appTools/ToolOptimal.py:596 appTools/ToolPaint.py:3197 #: appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:999 -#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1623 +#: appTools/ToolQRCode.py:908 appTools/ToolRulesCheck.py:1623 #: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:757 #: appTools/ToolTransform.py:923 msgid "Will reset the tool parameters." @@ -14525,30 +14524,30 @@ msgstr "Выбрана заливка сетки точек." msgid "Squares grid fill selected." msgstr "Выбрано заполнение сеткой квадратов." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308 -#: appTools/ToolCopperThieving.py:916 appTools/ToolCorners.py:120 -#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141 +#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:307 +#: appTools/ToolCopperThieving.py:914 appTools/ToolCorners.py:120 +#: appTools/ToolDblSided.py:306 appTools/ToolExtractDrills.py:141 #: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464 #: appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:188 #: appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Нет загруженного Gerber объекта ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:844 +#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 msgid "Append geometry" msgstr "Добавить геометрию" -#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:877 -#: appTools/ToolCopperThieving.py:1022 +#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:876 +#: appTools/ToolCopperThieving.py:1020 msgid "Append source file" msgstr "Добавить исходный файл" -#: appTools/ToolCopperThieving.py:291 appTools/ToolCopperThieving.py:885 +#: appTools/ToolCopperThieving.py:290 appTools/ToolCopperThieving.py:883 msgid "Copper Thieving Tool done." msgstr "Copper Thieving завершён." -#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351 -#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917 +#: appTools/ToolCopperThieving.py:317 appTools/ToolCopperThieving.py:350 +#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:918 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 #: appTools/ToolIsolation.py:908 appTools/ToolIsolation.py:1345 @@ -14563,77 +14562,77 @@ msgstr "Copper Thieving завершён." msgid "Could not retrieve object" msgstr "Не удалось получить объект" -#: appTools/ToolCopperThieving.py:379 +#: appTools/ToolCopperThieving.py:378 msgid "Click the end point of the filling area." msgstr "Нажмите на конечную точку области рисования." -#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511 -#: appTools/ToolCopperThieving.py:570 +#: appTools/ToolCopperThieving.py:506 appTools/ToolCopperThieving.py:510 +#: appTools/ToolCopperThieving.py:569 msgid "Thieving" msgstr "Thieving" -#: appTools/ToolCopperThieving.py:518 +#: appTools/ToolCopperThieving.py:517 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Copper Thieving. Чтение параметров." -#: appTools/ToolCopperThieving.py:543 +#: appTools/ToolCopperThieving.py:542 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Copper Thieving. Подготовка безмедных полигонов." -#: appTools/ToolCopperThieving.py:586 +#: appTools/ToolCopperThieving.py:585 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Copper Thieving. Подготовка участков для заполнения медью." -#: appTools/ToolCopperThieving.py:597 appTools/ToolFilm.py:631 +#: appTools/ToolCopperThieving.py:596 appTools/ToolFilm.py:631 #: appTools/ToolFilm.py:879 appTools/ToolIsolation.py:916 #: appTools/ToolNCC.py:853 appTools/ToolOptimal.py:145 #: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:627 msgid "Working..." msgstr "Обработка…" -#: appTools/ToolCopperThieving.py:626 +#: appTools/ToolCopperThieving.py:625 msgid "Geometry not supported for bounding box" msgstr "Геометрия не поддерживается для ограничивающих рамок" -#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1681 +#: appTools/ToolCopperThieving.py:631 appTools/ToolNCC.py:1681 #: appTools/ToolNCC.py:1736 appTools/ToolNCC.py:2734 appTools/ToolPaint.py:2457 msgid "No object available." msgstr "Нет доступных объектов." -#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1706 +#: appTools/ToolCopperThieving.py:668 appTools/ToolNCC.py:1706 #: appTools/ToolNCC.py:1759 appTools/ToolNCC.py:2776 msgid "The reference object type is not supported." msgstr "Тип указанного объекта не поддерживается." -#: appTools/ToolCopperThieving.py:674 +#: appTools/ToolCopperThieving.py:673 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Copper Thieving. Добавление новой геометрии и буферизации." -#: appTools/ToolCopperThieving.py:690 +#: appTools/ToolCopperThieving.py:689 msgid "Create geometry" msgstr "Создать геометрию" -#: appTools/ToolCopperThieving.py:896 appTools/ToolCopperThieving.py:900 +#: appTools/ToolCopperThieving.py:894 appTools/ToolCopperThieving.py:898 msgid "P-Plating Mask" msgstr "Рисунок гальванической маски" -#: appTools/ToolCopperThieving.py:922 +#: appTools/ToolCopperThieving.py:920 msgid "Append PP-M geometry" msgstr "Добавить PP-M геометрию" -#: appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCopperThieving.py:1036 msgid "Generating Pattern Plating Mask done." msgstr "Создание рисунка гальванической маски выполнено." -#: appTools/ToolCopperThieving.py:1112 +#: appTools/ToolCopperThieving.py:1108 msgid "Copper Thieving Tool exit." msgstr "Выход из Copper Thieving." -#: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 +#: appTools/ToolCopperThieving.py:1167 appTools/ToolFiducials.py:877 msgid "Gerber Object to which will be added a copper thieving." msgstr "Gerber объект, к которому будет добавлен copper thieving." -#: appTools/ToolCopperThieving.py:1197 +#: appTools/ToolCopperThieving.py:1193 msgid "" "This set the distance between the copper thieving components\n" "(the polygon fill may be split in multiple polygons)\n" @@ -14643,7 +14642,7 @@ msgstr "" "(заливка полигона может быть разделена на несколько полигонов)\n" "и медными трассами в Gerber файле." -#: appTools/ToolCopperThieving.py:1230 +#: appTools/ToolCopperThieving.py:1226 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 " @@ -14658,12 +14657,12 @@ msgstr "" "- 'Референсный объект' - будет выполнять Copper Thieving в области указанной " "другим объектом." -#: appTools/ToolCopperThieving.py:1237 appTools/ToolIsolation.py:3385 +#: appTools/ToolCopperThieving.py:1233 appTools/ToolIsolation.py:3385 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3137 msgid "Ref. Type" msgstr "Тип ссылки" -#: appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1235 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14672,22 +14671,22 @@ msgstr "" "Copper Thieving.\n" "Это может быть Gerber, Excellon или Geometry." -#: appTools/ToolCopperThieving.py:1248 appTools/ToolIsolation.py:3396 +#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3396 #: appTools/ToolNCC.py:4327 appTools/ToolPaint.py:3147 msgid "Ref. Object" msgstr "Указатель объекта" -#: appTools/ToolCopperThieving.py:1250 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1246 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4329 appTools/ToolPaint.py:3149 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" "Объект FlatCAM, который будет использоваться как ссылка на очистку от меди." -#: appTools/ToolCopperThieving.py:1426 +#: appTools/ToolCopperThieving.py:1422 msgid "Insert Copper thieving" msgstr "Вставить Copper thieving" -#: appTools/ToolCopperThieving.py:1428 +#: appTools/ToolCopperThieving.py:1424 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14695,11 +14694,11 @@ msgstr "" "Добавит полигон (может быть разбит на несколько частей)\n" "который будет окружать фактические трассы Gerber на определенном расстоянии." -#: appTools/ToolCopperThieving.py:1487 +#: appTools/ToolCopperThieving.py:1483 msgid "Insert Robber Bar" msgstr "Вставить Robber Bar" -#: appTools/ToolCopperThieving.py:1489 +#: appTools/ToolCopperThieving.py:1485 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14711,11 +14710,11 @@ msgstr "" "на определенном расстоянии.\n" "Требуется при нанесении рисунка отверстий." -#: appTools/ToolCopperThieving.py:1513 +#: appTools/ToolCopperThieving.py:1509 msgid "Select Soldermask object" msgstr "Выберите объект паяльной маски" -#: appTools/ToolCopperThieving.py:1515 +#: appTools/ToolCopperThieving.py:1511 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14725,11 +14724,11 @@ msgstr "" "Он будет использоваться в качестве базы для\n" "рисунка гальванической маски." -#: appTools/ToolCopperThieving.py:1544 +#: appTools/ToolCopperThieving.py:1540 msgid "Plated area" msgstr "Зоны покрытия" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1542 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14747,19 +14746,19 @@ msgstr "" "чуть больше, чем медные площадки, и эта область \n" "рассчитывается по отверстиям паяльной маски." -#: appTools/ToolCopperThieving.py:1557 +#: appTools/ToolCopperThieving.py:1553 msgid "mm" msgstr "мм" -#: appTools/ToolCopperThieving.py:1559 +#: appTools/ToolCopperThieving.py:1555 msgid "in" msgstr "дюймы" -#: appTools/ToolCopperThieving.py:1566 +#: appTools/ToolCopperThieving.py:1562 msgid "Generate pattern plating mask" msgstr "Создать рисунок гальванической маски" -#: appTools/ToolCopperThieving.py:1568 +#: appTools/ToolCopperThieving.py:1564 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14773,39 +14772,39 @@ msgstr "" msgid "Corners Tool" msgstr "Углы" -#: appTools/ToolCorners.py:157 +#: appTools/ToolCorners.py:158 msgid "Please select at least a location" msgstr "Пожалуйста, выберите хотя бы место" -#: appTools/ToolCorners.py:292 +#: appTools/ToolCorners.py:293 msgid "Corners Tool exit." msgstr "Выход из инструмента углов." -#: appTools/ToolCorners.py:319 +#: appTools/ToolCorners.py:320 msgid "The Gerber object to which will be added corner markers." msgstr "Объект Gerber, к которому будут добавлены угловые маркеры." -#: appTools/ToolCorners.py:335 +#: appTools/ToolCorners.py:336 msgid "Locations" msgstr "Местоположение" -#: appTools/ToolCorners.py:337 +#: appTools/ToolCorners.py:338 msgid "Locations where to place corner markers." msgstr "Места расположения угловых маркеров." -#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706 +#: appTools/ToolCorners.py:355 appTools/ToolFiducials.py:708 msgid "Top Right" msgstr "Верхний правый" -#: appTools/ToolCorners.py:363 +#: appTools/ToolCorners.py:364 msgid "Toggle ALL" msgstr "Переключить всё" -#: appTools/ToolCorners.py:429 +#: appTools/ToolCorners.py:430 msgid "Add Marker" msgstr "Добавить маркер" -#: appTools/ToolCorners.py:431 +#: appTools/ToolCorners.py:432 msgid "Will add corner markers to the selected Gerber file." msgstr "Добавит угловые маркеры к выбранному файлу Gerber." @@ -14814,7 +14813,7 @@ msgstr "Добавит угловые маркеры к выбранному ф #: appTools/ToolNCC.py:463 appTools/ToolNCC.py:992 appTools/ToolNCC.py:1130 #: appTools/ToolPaint.py:395 appTools/ToolPaint.py:686 #: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131 -#: appTools/ToolSolderPaste.py:464 app_Main.py:4496 +#: appTools/ToolSolderPaste.py:464 app_Main.py:4419 msgid "Please enter a tool diameter with non-zero value, in Float format." msgstr "" "Пожалуйста, введите диаметр инструмента с ненулевым значением в float " @@ -14866,20 +14865,20 @@ msgstr "" "Не выбран объект для обрезки.\n" "Выберите один и повторите попытку." -#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:926 -#: appTools/ToolCutOut.py:1300 appTools/ToolCutOut.py:1431 +#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:927 +#: appTools/ToolCutOut.py:1303 appTools/ToolCutOut.py:1434 #: tclCommands/TclCommandGeoCutout.py:184 msgid "Tool Diameter is zero value. Change it to a positive real number." msgstr "" "Диаметр инструмента имеет нулевое значение. Измените его на положительное " "целое число." -#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:940 +#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:941 msgid "Number of gaps value is missing. Add it and retry." msgstr "" "Значение количества перемычек отсутствует. Добавьте его и повторите попытку.." -#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:944 +#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:945 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " @@ -14887,18 +14886,18 @@ msgstr "" "Значение перемычки может быть только одним из: «None», «lr», «tb», «2lr», " "«2tb», 4 или 8. Введите правильное значение и повторите попытку. " -#: appTools/ToolCutOut.py:891 appTools/ToolCutOut.py:1260 -#: appTools/ToolCutOut.py:1615 +#: appTools/ToolCutOut.py:892 appTools/ToolCutOut.py:1263 +#: appTools/ToolCutOut.py:1619 #, fuzzy #| msgid "Open GCode file failed." msgid "Mouse bites failed." msgstr "Не удалось открыть файл GCode." -#: appTools/ToolCutOut.py:899 +#: appTools/ToolCutOut.py:900 msgid "Any form CutOut operation finished." msgstr "Операция обрезки закончена." -#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586 +#: appTools/ToolCutOut.py:922 appTools/ToolDrilling.py:1586 #: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349 #: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326 @@ -14908,38 +14907,38 @@ msgstr "Операция обрезки закончена." msgid "Object not found" msgstr "Объект не найден" -#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187 +#: appTools/ToolCutOut.py:1115 appTools/ToolCutOut.py:1188 msgid "Rectangular cutout with negative margin is not possible." msgstr "Прямоугольный вырез с отрицательным отступом невозможен." -#: appTools/ToolCutOut.py:1268 +#: appTools/ToolCutOut.py:1271 #, fuzzy #| msgid "Any form CutOut operation finished." msgid "Rectangular CutOut operation finished." msgstr "Операция обрезки закончена." -#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316 +#: appTools/ToolCutOut.py:1287 appTools/ToolCutOut.py:1319 msgid "Could not retrieve Geometry object" msgstr "Не удалось получить объект Geometry" -#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344 +#: appTools/ToolCutOut.py:1292 appTools/ToolCutOut.py:1347 msgid "Geometry object for manual cutout not found" msgstr "Объект геометрии для ручного выреза не найден" -#: appTools/ToolCutOut.py:1292 +#: appTools/ToolCutOut.py:1295 msgid "" "Click on the selected geometry object perimeter to create a bridge gap ..." msgstr "" "Щелкните по периметру выбранного объекта геометрии, чтобы создать " "перемычку ..." -#: appTools/ToolCutOut.py:1380 +#: appTools/ToolCutOut.py:1383 #, fuzzy #| msgid "Generate the Geometry object." msgid "No tool in the Geometry object." msgstr "Будет создан объект геометрии." -#: appTools/ToolCutOut.py:1401 +#: appTools/ToolCutOut.py:1404 #, fuzzy #| msgid "" #| "Zone added. Click to start adding next zone or right click to finish." @@ -14947,11 +14946,11 @@ msgid "" "Added manual Bridge Gap. Left click to add another or right click to finish." msgstr "Зона добавлена. Щелкните правой кнопкой мыши для завершения." -#: appTools/ToolCutOut.py:1413 +#: appTools/ToolCutOut.py:1416 msgid "Could not retrieve Gerber object" msgstr "Не удалось получить объект Gerber" -#: appTools/ToolCutOut.py:1418 +#: appTools/ToolCutOut.py:1421 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." @@ -14959,7 +14958,7 @@ msgstr "" "Для обрезки не выбран объект Gerber.\n" "Выберите один и повторите попытку." -#: appTools/ToolCutOut.py:1424 +#: appTools/ToolCutOut.py:1427 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -14967,36 +14966,36 @@ msgstr "" "Выбранный объект должен быть типа Gerber.\n" "Выберите файл Gerber и повторите попытку." -#: appTools/ToolCutOut.py:1459 +#: appTools/ToolCutOut.py:1462 msgid "Geometry not supported for cutout" msgstr "Геометрия не поддерживается для выреза" -#: appTools/ToolCutOut.py:1531 +#: appTools/ToolCutOut.py:1534 msgid "Making manual bridge gap..." msgstr "Создание перемычки вручную..." -#: appTools/ToolCutOut.py:1619 +#: appTools/ToolCutOut.py:1623 msgid "Finished manual adding of gaps." msgstr "" -#: appTools/ToolCutOut.py:1961 +#: appTools/ToolCutOut.py:1965 msgid "Cutout PCB" msgstr "Обрезка платы" -#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513 +#: appTools/ToolCutOut.py:1991 appTools/ToolDblSided.py:515 #: appTools/ToolPanelize.py:652 msgid "Source Object" msgstr "Исходный объект" -#: appTools/ToolCutOut.py:1988 +#: appTools/ToolCutOut.py:1992 msgid "Object to be cutout" msgstr "Объект вырезания" -#: appTools/ToolCutOut.py:1993 +#: appTools/ToolCutOut.py:1997 msgid "Kind" msgstr "Тип" -#: appTools/ToolCutOut.py:2015 +#: appTools/ToolCutOut.py:2019 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -15008,7 +15007,7 @@ msgstr "" "То, что выбрано здесь будет диктовать вид\n" "объектов, которые будут заполнять поле со списком \"объект\"." -#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125 +#: appTools/ToolCutOut.py:2078 appTools/ToolIsolation.py:3125 #: appTools/ToolNCC.py:3999 appTools/ToolPaint.py:2901 msgid "" "Add a new tool to the Tool Table\n" @@ -15018,27 +15017,27 @@ msgid "" "in the Tools DB then a default tool is added." msgstr "" -#: appTools/ToolCutOut.py:2100 +#: appTools/ToolCutOut.py:2104 msgid "Tool Parameters" msgstr "Параметры инструмента" -#: appTools/ToolCutOut.py:2249 +#: appTools/ToolCutOut.py:2253 #, fuzzy #| msgid "Auto" msgid "Automatic" msgstr "Авто" -#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324 +#: appTools/ToolCutOut.py:2253 appTools/ToolCutOut.py:2328 #, fuzzy #| msgid "B. Manual Bridge Gaps" msgid "Bridge Gaps" msgstr "Б. Ручное размещение перемычек" -#: appTools/ToolCutOut.py:2251 +#: appTools/ToolCutOut.py:2255 msgid "This section handle creation of automatic bridge gaps." msgstr "Этот раздел обрабатывает создание автоматических зазоров моста." -#: appTools/ToolCutOut.py:2290 +#: appTools/ToolCutOut.py:2294 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -15048,7 +15047,7 @@ msgstr "" "Форма выреза может быть любой формы.\n" "Полезно, когда печатная плата имеет непрямоугольную форму." -#: appTools/ToolCutOut.py:2305 +#: appTools/ToolCutOut.py:2309 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -15060,7 +15059,7 @@ msgstr "" "всегда прямоугольная форма, и это будет\n" "ограничивающий прямоугольник объекта." -#: appTools/ToolCutOut.py:2326 +#: appTools/ToolCutOut.py:2330 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -15071,11 +15070,11 @@ msgstr "" "объекта геометрии, который используется \n" "в качестве объекта выреза. " -#: appTools/ToolCutOut.py:2342 +#: appTools/ToolCutOut.py:2346 msgid "Generate Manual Geometry" msgstr "Создать ручную геометрию" -#: appTools/ToolCutOut.py:2345 +#: appTools/ToolCutOut.py:2349 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -15087,21 +15086,21 @@ msgstr "" "для использования в качестве выреза, если он еще не существует.\n" "Выберите исходный файл Gerber в верхнем поле со списком объектов." -#: appTools/ToolCutOut.py:2365 +#: appTools/ToolCutOut.py:2369 #, fuzzy #| msgid "Subtract Geometry" msgid "Manual cutout Geometry" msgstr "Вычесть Geometry" -#: appTools/ToolCutOut.py:2367 +#: appTools/ToolCutOut.py:2371 msgid "Geometry object used to create the manual cutout." msgstr "Геометрический объект, используемый для создания ручного выреза." -#: appTools/ToolCutOut.py:2374 +#: appTools/ToolCutOut.py:2378 msgid "Manual Add Bridge Gaps" msgstr "Ручное добавление перемычек" -#: appTools/ToolCutOut.py:2377 +#: appTools/ToolCutOut.py:2381 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -15141,66 +15140,66 @@ msgid "There are no Alignment Drill Coordinates to use. Add them and retry." msgstr "" "Нет координат выравнивающих отверстий. Добавьте их и повторите попытку." -#: appTools/ToolDblSided.py:213 +#: appTools/ToolDblSided.py:215 msgid "Excellon object with alignment drills created..." msgstr "Объект Excellon с выравнивающими отверстиями создан..." -#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209 +#: appTools/ToolDblSided.py:226 appTools/ToolPunchGerber.py:209 msgid "There is no Excellon object loaded ..." msgstr "Не загружен объект Excellon ..." -#: appTools/ToolDblSided.py:236 +#: appTools/ToolDblSided.py:238 msgid "Click on canvas within the desired Excellon drill hole" msgstr "" -#: appTools/ToolDblSided.py:280 +#: appTools/ToolDblSided.py:282 #, fuzzy #| msgid "Mirror Reference point" msgid "Mirror reference point set." msgstr "Точка зеркалтрования" -#: appTools/ToolDblSided.py:308 +#: appTools/ToolDblSided.py:310 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "" "Зеркальное отображение доступно только для объектов Gerber, Excellon и " "Geometry." -#: appTools/ToolDblSided.py:320 +#: appTools/ToolDblSided.py:322 msgid "There is no Box object loaded ..." msgstr "Там нет загруженного объекта Box ..." -#: appTools/ToolDblSided.py:330 +#: appTools/ToolDblSided.py:332 msgid "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." msgstr "" "В поле Точка нет координат точки. Добавьте координаты и попробуйте снова ..." -#: appTools/ToolDblSided.py:337 camlib.py:2401 +#: appTools/ToolDblSided.py:339 camlib.py:2401 msgid "Object was mirrored" msgstr "Объект отзеркалирован" -#: appTools/ToolDblSided.py:403 app_Main.py:4635 app_Main.py:4790 +#: appTools/ToolDblSided.py:405 app_Main.py:4558 app_Main.py:4713 msgid "Failed. No object(s) selected..." msgstr "Нудача. Объекты не выбраны ..." -#: appTools/ToolDblSided.py:487 +#: appTools/ToolDblSided.py:489 msgid "2-Sided PCB" msgstr "2-х сторонняя плата" -#: appTools/ToolDblSided.py:514 +#: appTools/ToolDblSided.py:516 msgid "Objects to be mirrored" msgstr "Объекты для зеркального отображения" -#: appTools/ToolDblSided.py:521 +#: appTools/ToolDblSided.py:523 msgid "Select the type of application object to be processed in this tool." msgstr "" -#: appTools/ToolDblSided.py:555 +#: appTools/ToolDblSided.py:557 msgid "Bounds Values" msgstr "Значения границ" -#: appTools/ToolDblSided.py:557 +#: appTools/ToolDblSided.py:559 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -15208,39 +15207,39 @@ msgstr "" "Выбор объектов\n" "для которых вычислять граничные значения." -#: appTools/ToolDblSided.py:567 +#: appTools/ToolDblSided.py:569 msgid "X min" msgstr "X min" -#: appTools/ToolDblSided.py:569 appTools/ToolDblSided.py:583 +#: appTools/ToolDblSided.py:571 appTools/ToolDblSided.py:585 msgid "Minimum location." msgstr "Минимальное местоположение." -#: appTools/ToolDblSided.py:581 +#: appTools/ToolDblSided.py:583 msgid "Y min" msgstr "Y min" -#: appTools/ToolDblSided.py:595 +#: appTools/ToolDblSided.py:597 msgid "X max" msgstr "X max" -#: appTools/ToolDblSided.py:597 appTools/ToolDblSided.py:611 +#: appTools/ToolDblSided.py:599 appTools/ToolDblSided.py:613 msgid "Maximum location." msgstr "Максимальное местоположение." -#: appTools/ToolDblSided.py:609 +#: appTools/ToolDblSided.py:611 msgid "Y max" msgstr "Y max" -#: appTools/ToolDblSided.py:620 +#: appTools/ToolDblSided.py:622 msgid "Center point coordinates" msgstr "Координаты центральной точки" -#: appTools/ToolDblSided.py:622 +#: appTools/ToolDblSided.py:624 msgid "Centroid" msgstr "Центр" -#: appTools/ToolDblSided.py:624 +#: appTools/ToolDblSided.py:626 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -15248,11 +15247,11 @@ msgstr "" "Расположение центральной точки для прямоугольной \n" "ограничивающей фигуры. Центроид. Формат (х, у)." -#: appTools/ToolDblSided.py:633 +#: appTools/ToolDblSided.py:635 msgid "Calculate Bounds Values" msgstr "Рассчитать значения границ" -#: appTools/ToolDblSided.py:635 +#: appTools/ToolDblSided.py:637 msgid "" "Calculate the enveloping rectangular shape coordinates,\n" "for the selection of objects.\n" @@ -15262,15 +15261,15 @@ msgstr "" "для выбранных объектов.\n" "Форма огибающей параллельна осям X, Y." -#: appTools/ToolDblSided.py:660 +#: appTools/ToolDblSided.py:662 msgid "Mirror Operation" msgstr "Операция зеркалирования" -#: appTools/ToolDblSided.py:661 +#: appTools/ToolDblSided.py:663 msgid "Parameters for the mirror operation" msgstr "Параметры для зеркальной операции" -#: appTools/ToolDblSided.py:683 +#: appTools/ToolDblSided.py:685 #, fuzzy #| msgid "" #| "The coordinates used as reference for the mirror operation.\n" @@ -15294,11 +15293,11 @@ msgstr "" "- Рамка-> набор координат (x, y), полученных из центра\n" "ограничительной рамки другого объекта, выбранного ниже" -#: appTools/ToolDblSided.py:703 +#: appTools/ToolDblSided.py:705 msgid "Point coordinates" msgstr "Координаты точек" -#: appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:710 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -15313,21 +15312,21 @@ msgstr "" "Координаты (x, y) фиксируются нажатием клавиши SHIFT\n" "и щелчком ЛКМ на холсте или вы можете ввести координаты вручную." -#: appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:728 msgid "Object that holds holes that can be picked as reference for mirroring." msgstr "" -#: appTools/ToolDblSided.py:741 +#: appTools/ToolDblSided.py:743 msgid "Pick hole" msgstr "" -#: appTools/ToolDblSided.py:743 +#: appTools/ToolDblSided.py:745 msgid "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." msgstr "" -#: appTools/ToolDblSided.py:759 +#: appTools/ToolDblSided.py:761 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -15337,11 +15336,11 @@ msgstr "" "Используются координаты центра ограничительной рамки.\n" "в качестве ориентира для работы с зеркалированием." -#: appTools/ToolDblSided.py:785 +#: appTools/ToolDblSided.py:787 msgid "Mirror" msgstr "Отразить" -#: appTools/ToolDblSided.py:787 +#: appTools/ToolDblSided.py:789 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -15351,11 +15350,11 @@ msgstr "" "вокруг заданной оси. Не создаёт новый объект,\n" "но изменяет его." -#: appTools/ToolDblSided.py:813 +#: appTools/ToolDblSided.py:815 msgid "PCB Alignment" msgstr "Выравнивание" -#: appTools/ToolDblSided.py:815 appTools/ToolDblSided.py:923 +#: appTools/ToolDblSided.py:817 appTools/ToolDblSided.py:925 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -15365,11 +15364,11 @@ msgstr "" "контрольные отверстия и их\n" "зеркальные изображения." -#: appTools/ToolDblSided.py:822 +#: appTools/ToolDblSided.py:824 msgid "Drill Diameter" msgstr "Диаметр сверла" -#: appTools/ToolDblSided.py:857 appTools/ToolDblSided.py:864 +#: appTools/ToolDblSided.py:859 appTools/ToolDblSided.py:866 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -15379,11 +15378,11 @@ msgstr "" "первого выравнивающего отверстия путем выполнения зеркалирования.\n" "Это можно изменить в разделе Параметры зеркалирования -> Опорная точка" -#: appTools/ToolDblSided.py:877 +#: appTools/ToolDblSided.py:879 msgid "Alignment Drill Coordinates" msgstr "Координаты выравнивающего отверстия" -#: appTools/ToolDblSided.py:879 +#: appTools/ToolDblSided.py:881 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -15401,11 +15400,11 @@ msgstr "" "- одно сверление в положении зеркала над осью, выбранной выше в «Оси " "зеркала»." -#: appTools/ToolDblSided.py:887 +#: appTools/ToolDblSided.py:889 msgid "Drill coordinates" msgstr "Координаты отверстия" -#: appTools/ToolDblSided.py:894 +#: appTools/ToolDblSided.py:896 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -15429,15 +15428,15 @@ msgstr "" "нажмите Вставить.\n" "- путем ввода координат вручную в формате: (x1, y1), (x2, y2), ..." -#: appTools/ToolDblSided.py:909 +#: appTools/ToolDblSided.py:911 msgid "Delete Last" msgstr "Удалить последний" -#: appTools/ToolDblSided.py:911 +#: appTools/ToolDblSided.py:913 msgid "Delete the last coordinates tuple in the list." msgstr "Удаляет последний кортеж координат в списке." -#: appTools/ToolDblSided.py:921 +#: appTools/ToolDblSided.py:923 msgid "Create Excellon Object" msgstr "Создать объект Excellon" @@ -15836,15 +15835,15 @@ msgstr "" msgid "No drills extracted. Try different parameters." msgstr "Отверстия не извлечены. Попробуйте разные параметры." -#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687 +#: appTools/ToolExtractDrills.py:421 appTools/ToolExtractDrills.py:688 msgid "Extract Drills" msgstr "Извлечь отверстия" -#: appTools/ToolExtractDrills.py:454 +#: appTools/ToolExtractDrills.py:455 msgid "Gerber from which to extract drill holes" msgstr "Гербер, из которого можно извлечь отверстия" -#: appTools/ToolExtractDrills.py:689 +#: appTools/ToolExtractDrills.py:690 msgid "Extract drills from a given Gerber file." msgstr "Извлечение отверстий из заданного Gerber файла." @@ -15852,29 +15851,29 @@ msgstr "Извлечение отверстий из заданного Gerber msgid "Click to add first Fiducial. Bottom Left..." msgstr "Нажмите, чтобы добавить первую контрольную точку. Внизу слева..." -#: appTools/ToolFiducials.py:501 +#: appTools/ToolFiducials.py:503 msgid "Click to add the last fiducial. Top Right..." msgstr "Нажмите, чтобы добавить следующую контрольную точку. Вверху справа..." -#: appTools/ToolFiducials.py:506 +#: appTools/ToolFiducials.py:508 msgid "Click to add the second fiducial. Top Left or Bottom Right..." msgstr "" "Нажмите, чтобы добавить вторичную контрольную точку. Вверху слева или внизу " "справа..." -#: appTools/ToolFiducials.py:509 appTools/ToolFiducials.py:518 +#: appTools/ToolFiducials.py:511 appTools/ToolFiducials.py:520 msgid "Done. All fiducials have been added." msgstr "Готово. Все контрольные точки были успешно добавлены." -#: appTools/ToolFiducials.py:595 +#: appTools/ToolFiducials.py:597 msgid "Fiducials Tool exit." msgstr "Выход из инструмента контрольных точек." -#: appTools/ToolFiducials.py:667 +#: appTools/ToolFiducials.py:669 msgid "Fiducials Coordinates" msgstr "Координаты контрольных точек" -#: appTools/ToolFiducials.py:669 +#: appTools/ToolFiducials.py:671 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -15882,7 +15881,7 @@ msgstr "" "Таблица с координатами контрольных точек,\n" "в формате (x, y)." -#: appTools/ToolFiducials.py:805 +#: appTools/ToolFiducials.py:807 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -15892,33 +15891,33 @@ msgstr "" "ограничительной рамки.\n" " - 'Вручную' - ручное размещение контрольных точек." -#: appTools/ToolFiducials.py:851 +#: appTools/ToolFiducials.py:853 msgid "Thickness of the line that makes the fiducial." msgstr "Толщина линии, которая делает опорную." -#: appTools/ToolFiducials.py:882 +#: appTools/ToolFiducials.py:884 msgid "Add Fiducial" msgstr "Добавить контрольные точки" -#: appTools/ToolFiducials.py:884 +#: appTools/ToolFiducials.py:886 msgid "Will add a polygon on the copper layer to serve as fiducial." msgstr "" "Добавляет на медный слой полигон, для того чтобы он служил контрольной " "точкой." -#: appTools/ToolFiducials.py:900 +#: appTools/ToolFiducials.py:902 msgid "Soldermask Gerber" msgstr "Gerber объект паяльной маски" -#: appTools/ToolFiducials.py:902 +#: appTools/ToolFiducials.py:904 msgid "The Soldermask Gerber object." msgstr "Gerber объект паяльной маски." -#: appTools/ToolFiducials.py:914 +#: appTools/ToolFiducials.py:916 msgid "Add Soldermask Opening" msgstr "Открытие добавления паяльной маски" -#: appTools/ToolFiducials.py:916 +#: appTools/ToolFiducials.py:918 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -16112,7 +16111,7 @@ msgstr "Изображение" msgid "Import IMAGE" msgstr "Импорт изображения" -#: appTools/ToolImage.py:142 app_Main.py:8893 app_Main.py:8943 +#: appTools/ToolImage.py:142 app_Main.py:9782 app_Main.py:9832 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -16124,9 +16123,9 @@ msgstr "" msgid "Importing Image" msgstr "Импорт изображения" -#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8921 -#: app_Main.py:8976 app_Main.py:9040 app_Main.py:9103 app_Main.py:9169 -#: app_Main.py:9234 app_Main.py:9291 +#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:9810 +#: app_Main.py:9865 app_Main.py:9929 app_Main.py:9992 app_Main.py:10058 +#: app_Main.py:10123 app_Main.py:10180 msgid "Opened" msgstr "Открыт" @@ -16256,7 +16255,7 @@ msgid "New Tool" msgstr "Новый инструмент" #: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:467 -#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4500 +#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4423 msgid "Adding Tool cancelled" msgstr "Добавление инструмента отменено" @@ -16425,7 +16424,7 @@ msgid "Click the end point of the paint area." msgstr "Нажмите на конечную точку области рисования." #: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3722 -#: appTools/ToolPaint.py:2633 app_Main.py:5779 app_Main.py:5789 +#: appTools/ToolPaint.py:2633 app_Main.py:5702 app_Main.py:5712 msgid "Tool from DB added in Tool Table." msgstr "Инструмент из БД добавлен в таблицу инструментов." @@ -16970,11 +16969,11 @@ msgstr "Открытие PDF отменено" msgid "Parsing PDF file ..." msgstr "Разбор PDF-файла ..." -#: appTools/ToolPDF.py:138 app_Main.py:9134 +#: appTools/ToolPDF.py:138 app_Main.py:10023 msgid "Failed to open" msgstr "Не удалось открыть" -#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9083 +#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9972 msgid "No geometry found in file" msgstr "Геометрия не найдена в файле" @@ -17413,7 +17412,7 @@ msgstr "Inf-файл PcbWizard загружен." msgid "Main PcbWizard Excellon file loaded." msgstr "Файл PcbWizard Excellon загружен." -#: appTools/ToolPcbWizard.py:310 app_Main.py:9063 +#: appTools/ToolPcbWizard.py:310 app_Main.py:9952 msgid "This is not Excellon file." msgstr "Это не Excellon файл." @@ -17544,9 +17543,9 @@ msgstr "" "другой имеет расширение .INF." #: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 -#: app_Main.py:4976 app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 -#: app_Main.py:7503 app_Main.py:7545 app_Main.py:7587 app_Main.py:7631 -#: app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 +#: app_Main.py:4899 app_Main.py:8253 app_Main.py:8351 app_Main.py:8391 +#: app_Main.py:8431 app_Main.py:8472 app_Main.py:8513 app_Main.py:8556 +#: app_Main.py:8599 app_Main.py:9058 app_Main.py:9062 msgid "No object selected." msgstr "Нет выбранных объектов." @@ -17638,8 +17637,8 @@ msgstr "" "Создание объекта Gerber из выделенного объекта, в пределах\n" "указанного квадрата." -#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485 -#: appTools/ToolQRCode.py:534 +#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:486 +#: appTools/ToolQRCode.py:535 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "Отмена. В текстовом поле нет данных QRCode." @@ -17651,32 +17650,32 @@ msgstr "Генерация QRCode геометрии" msgid "Click on the Destination point ..." msgstr "Нажмите на конечную точку ..." -#: appTools/ToolQRCode.py:321 +#: appTools/ToolQRCode.py:322 msgid "QRCode Tool done." msgstr "QRCode готов." -#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521 +#: appTools/ToolQRCode.py:518 appTools/ToolQRCode.py:522 msgid "Export PNG" msgstr "Экспорт PNG" -#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7353 -#: app_Main.py:7357 +#: appTools/ToolQRCode.py:565 appTools/ToolQRCode.py:569 app_Main.py:8284 +#: app_Main.py:8288 msgid "Export SVG" msgstr "Экспорт SVG" -#: appTools/ToolQRCode.py:661 +#: appTools/ToolQRCode.py:662 msgid "Gerber Object to which the QRCode will be added." msgstr "Объект Gerber к которому будет добавлен QRCode." -#: appTools/ToolQRCode.py:697 +#: appTools/ToolQRCode.py:698 msgid "The parameters used to shape the QRCode." msgstr "Параметры, используемые для формирования QRCode." -#: appTools/ToolQRCode.py:797 +#: appTools/ToolQRCode.py:798 msgid "Export QRCode" msgstr "Экспорт QRCode" -#: appTools/ToolQRCode.py:799 +#: appTools/ToolQRCode.py:800 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -17684,31 +17683,31 @@ msgstr "" "Отображает набор элементов управления, позволяющих экспортировать QRCode\n" "в файл SVG или PNG." -#: appTools/ToolQRCode.py:838 +#: appTools/ToolQRCode.py:839 msgid "Transparent back color" msgstr "Прозрачный фон" -#: appTools/ToolQRCode.py:863 +#: appTools/ToolQRCode.py:864 msgid "Export QRCode SVG" msgstr "Экспорт QRCode SVG" -#: appTools/ToolQRCode.py:865 +#: appTools/ToolQRCode.py:866 msgid "Export a SVG file with the QRCode content." msgstr "Экспортируйте файл изображения PNG с содержимым QRCode." -#: appTools/ToolQRCode.py:876 +#: appTools/ToolQRCode.py:877 msgid "Export QRCode PNG" msgstr "Экспорт QRCode PNG" -#: appTools/ToolQRCode.py:878 +#: appTools/ToolQRCode.py:879 msgid "Export a PNG image file with the QRCode content." msgstr "Экспорт файла SVG с содержимым QRCode." -#: appTools/ToolQRCode.py:889 +#: appTools/ToolQRCode.py:890 msgid "Insert QRCode" msgstr "Вставить QR-код" -#: appTools/ToolQRCode.py:891 +#: appTools/ToolQRCode.py:892 msgid "Create the QRCode object." msgstr "Будет создан объект QRCode." @@ -18451,7 +18450,7 @@ msgstr "Вы уверены, что хотите изменить текущий msgid "Apply Language ..." msgstr "Применить язык ..." -#: appTranslation.py:206 app_Main.py:3383 +#: appTranslation.py:206 app_Main.py:3306 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -18485,43 +18484,43 @@ msgstr "" "Инициализация рабочей области.\n" "Инициализация рабочей области завершена за" -#: app_Main.py:1596 app_Main.py:7007 +#: app_Main.py:1292 app_Main.py:8831 msgid "New Project - Not saved" msgstr "Новый проект - Не сохранён" -#: app_Main.py:1702 +#: app_Main.py:1711 msgid "" "Found old default preferences files. Please reboot the application to update." msgstr "" "Найдены старые файлы настроек по умолчанию. Пожалуйста, перезагрузите " "приложение для обновления." -#: app_Main.py:1769 +#: app_Main.py:1778 msgid "Open Config file failed." msgstr "Не удалось открыть файл конфигурации." -#: app_Main.py:1784 +#: app_Main.py:1793 msgid "Open Script file failed." msgstr "Ошибка открытия файла сценария." -#: app_Main.py:1810 +#: app_Main.py:1819 msgid "Open Excellon file failed." msgstr "Не удалось открыть файл Excellon." -#: app_Main.py:1823 +#: app_Main.py:1832 msgid "Open GCode file failed." msgstr "Не удалось открыть файл GCode." -#: app_Main.py:1836 +#: app_Main.py:1845 msgid "Open Gerber file failed." msgstr "Не удалось открыть файл Gerber." -#: app_Main.py:2174 +#: app_Main.py:2183 msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." msgstr "" "Выберите объект Geometry, Gerber , Excellon или CNCJob для редактирования." -#: app_Main.py:2189 +#: app_Main.py:2198 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -18530,101 +18529,85 @@ msgstr "" "Одновременное редактирование геометрии в MultiGeo Geometry невозможно.\n" "Редактируйте только одну геометрию за раз." -#: app_Main.py:2267 +#: app_Main.py:2276 msgid "EDITOR Area" msgstr "" -#: app_Main.py:2269 +#: app_Main.py:2278 msgid "Editor is activated ..." msgstr "Редактор активирован ..." -#: app_Main.py:2290 +#: app_Main.py:2299 msgid "Do you want to save the edited object?" msgstr "Вы хотите сохранить редактируемый объект?" -#: app_Main.py:2331 +#: app_Main.py:2340 msgid "Object empty after edit." msgstr "Объект пуст после редактирования." -#: app_Main.py:2336 app_Main.py:2354 app_Main.py:2385 app_Main.py:2401 +#: app_Main.py:2345 app_Main.py:2363 app_Main.py:2394 app_Main.py:2410 msgid "Editor exited. Editor content saved." msgstr "Редактор закрыт. Содержимое редактора сохранено." -#: app_Main.py:2405 app_Main.py:2446 +#: app_Main.py:2414 app_Main.py:2455 #, fuzzy #| msgid "Select a Gerber, Geometry or Excellon Object to update." msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update." msgstr "Выберите объект Gerber, Geometry или Excellon для обновления." -#: app_Main.py:2408 +#: app_Main.py:2417 msgid "is updated, returning to App..." msgstr "обновлён, возврат в приложение ..." -#: app_Main.py:2421 +#: app_Main.py:2430 msgid "Editor exited. Editor content was not saved." msgstr "Редактор закрыт. Содержимое редактора не сохранено." -#: app_Main.py:2469 +#: app_Main.py:2478 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Выберите объект Gerber, Geometry или Excellon для обновления." -#: app_Main.py:2573 app_Main.py:2577 -msgid "Import FlatCAM Preferences" -msgstr "Импорт настроек FlatCAM" - -#: app_Main.py:2588 -msgid "Imported Defaults from" -msgstr "Значения по умолчанию импортированы из" - -#: app_Main.py:2608 app_Main.py:2614 -msgid "Export FlatCAM Preferences" -msgstr "Экспорт настроек FlatCAM" - -#: app_Main.py:2634 -msgid "Exported preferences to" -msgstr "Экспорт настроек в" - -#: app_Main.py:2654 app_Main.py:2659 +#: app_Main.py:2586 app_Main.py:2591 msgid "Save to file" msgstr "Сохранить в файл" -#: app_Main.py:2683 +#: app_Main.py:2615 msgid "Could not load the file." msgstr "Не удалось загрузить файл." -#: app_Main.py:2699 +#: app_Main.py:2631 msgid "Exported file to" msgstr "Файл экспортируется в" -#: app_Main.py:2736 +#: app_Main.py:2668 msgid "Failed to open recent files file for writing." msgstr "Не удалось открыть файл истории для записи." -#: app_Main.py:2747 +#: app_Main.py:2679 msgid "Failed to open recent projects file for writing." msgstr "Не удалось открыть файл последних проектов для записи." -#: app_Main.py:2802 +#: app_Main.py:2734 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "2D Computer-Aided Printed Circuit Board Manufacturing" -#: app_Main.py:2803 +#: app_Main.py:2735 msgid "Development" msgstr "Исходный код" -#: app_Main.py:2804 +#: app_Main.py:2736 msgid "DOWNLOAD" msgstr "Страница загрузок" -#: app_Main.py:2805 +#: app_Main.py:2737 msgid "Issue tracker" msgstr "Issue-трекер" -#: app_Main.py:2824 +#: app_Main.py:2756 msgid "Licensed under the MIT license" msgstr "Под лицензией MIT" -#: app_Main.py:2833 +#: app_Main.py:2765 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -18672,7 +18655,7 @@ msgstr "" "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n" "THE SOFTWARE." -#: app_Main.py:2855 +#: app_Main.py:2787 msgid "" "Some of the icons used are from the following sources:
    " -#: app_Main.py:2891 +#: app_Main.py:2823 msgid "Splash" msgstr "Информация" -#: app_Main.py:2897 +#: app_Main.py:2829 msgid "Programmers" msgstr "Разработчики" -#: app_Main.py:2903 +#: app_Main.py:2835 msgid "Translators" msgstr "Переводчики" -#: app_Main.py:2909 +#: app_Main.py:2841 msgid "License" msgstr "Лицензия" -#: app_Main.py:2915 +#: app_Main.py:2847 msgid "Attributions" msgstr "Пояснения" -#: app_Main.py:2938 +#: app_Main.py:2870 msgid "Programmer" msgstr "Разработчик" -#: app_Main.py:2939 +#: app_Main.py:2871 msgid "Status" msgstr "Статус" -#: app_Main.py:2940 app_Main.py:3020 +#: app_Main.py:2872 app_Main.py:2952 msgid "E-mail" msgstr "E-mail" -#: app_Main.py:2943 +#: app_Main.py:2875 msgid "Program Author" msgstr "Автор программы" -#: app_Main.py:2948 +#: app_Main.py:2880 msgid "BETA Maintainer >= 2019" msgstr "Куратор >=2019" -#: app_Main.py:3017 +#: app_Main.py:2949 msgid "Language" msgstr "Язык" -#: app_Main.py:3018 +#: app_Main.py:2950 msgid "Translator" msgstr "Переводчик" -#: app_Main.py:3019 +#: app_Main.py:2951 msgid "Corrections" msgstr "Исправления" -#: app_Main.py:3104 +#: app_Main.py:3036 msgid "Important Information's" msgstr "Важная информация" -#: app_Main.py:3152 +#: app_Main.py:3084 #, python-format msgid "This program is %s and free in a very wide meaning of the word." msgstr "Эта программа %s и бесплатная в очень широком смысле этого слова." -#: app_Main.py:3153 +#: app_Main.py:3085 msgid "Yet it cannot evolve without contributions." msgstr "И все же он не может развиваться без вклада ." -#: app_Main.py:3154 +#: app_Main.py:3086 msgid "If you want to see this application grow and become better and better" msgstr "" "Если вы хотите, чтобы это приложение росло и становилось все лучше и лучше" -#: app_Main.py:3155 +#: app_Main.py:3087 msgid "you can contribute to the development yourself by:" msgstr "Вы можете внести свой вклад в разработку самостоятельно:" -#: app_Main.py:3156 +#: app_Main.py:3088 msgid "Pull Requests on the Bitbucket repository, if you are a developer" msgstr "Pull Requests в репозитории Bitbucket, если вы разработчик" -#: app_Main.py:3158 +#: app_Main.py:3090 msgid "Bug Reports by providing the steps required to reproduce the bug" msgstr "" "Отчеты об ошибках, предоставляя шаги, необходимые для воспроизведения ошибки" -#: app_Main.py:3189 +#: app_Main.py:3121 msgid "Contribute" msgstr "Делать вклад" -#: app_Main.py:3212 +#: app_Main.py:3144 msgid "Links Exchange" msgstr "Обмен ссылками" -#: app_Main.py:3224 app_Main.py:3243 +#: app_Main.py:3156 app_Main.py:3175 msgid "Soon ..." msgstr "Скоро ..." -#: app_Main.py:3231 +#: app_Main.py:3163 msgid "How To's" msgstr "Как это" -#: app_Main.py:3343 +#: app_Main.py:3275 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -18813,29 +18796,29 @@ msgstr "" "Если вы не можете получить какую-либо информацию о бета-версии FlatCAM\n" "используйте ссылку на канал YouTube в меню «Справка»." -#: app_Main.py:3350 +#: app_Main.py:3282 msgid "Alternative website" msgstr "Альтернативный сайт" -#: app_Main.py:3701 +#: app_Main.py:3624 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "Выбранные расширения файлов Excellon, зарегистрированные в FlatCAM." -#: app_Main.py:3723 +#: app_Main.py:3646 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "Выбранные расширения файлов GCode, зарегистрированные в FlatCAM." -#: app_Main.py:3745 +#: app_Main.py:3668 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "Выбранные расширения файлов Gerber, зарегистрированные в FlatCAM." -#: app_Main.py:3933 app_Main.py:3994 app_Main.py:4024 +#: app_Main.py:3856 app_Main.py:3917 app_Main.py:3947 msgid "At least two objects are required for join. Objects currently selected" msgstr "" "Для объединения требуются как минимум два объекта. Объекты, выбранные в " "данный момент" -#: app_Main.py:3942 +#: app_Main.py:3865 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 " @@ -18851,47 +18834,47 @@ msgstr "" "потеряна, и результат может не соответствовать ожидаемому. \n" "Проверьте сгенерированный GCODE." -#: app_Main.py:3956 app_Main.py:3966 +#: app_Main.py:3879 app_Main.py:3889 msgid "Geometry merging finished" msgstr "Слияние Geometry завершено" -#: app_Main.py:3989 +#: app_Main.py:3912 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Неудача. Присоединение Excellon работает только на объектах Excellon." -#: app_Main.py:4001 +#: app_Main.py:3924 msgid "Excellon merging finished" msgstr "Слияние Excellon завершено" -#: app_Main.py:4019 +#: app_Main.py:3942 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Неудача. Объединение Gerber работает только на объектах Gerber." -#: app_Main.py:4029 +#: app_Main.py:3952 msgid "Gerber merging finished" msgstr "Слияние Gerber завершено" -#: app_Main.py:4049 app_Main.py:4086 +#: app_Main.py:3972 app_Main.py:4009 msgid "Failed. Select a Geometry Object and try again." msgstr "Неудалось. Выберите объект Geometry и попробуйте снова." -#: app_Main.py:4053 app_Main.py:4091 +#: app_Main.py:3976 app_Main.py:4014 msgid "Expected a GeometryObject, got" msgstr "Ожидается GeometryObject, получено" -#: app_Main.py:4068 +#: app_Main.py:3991 msgid "A Geometry object was converted to MultiGeo type." msgstr "Объект Geometry был преобразован в тип MultiGeo." -#: app_Main.py:4106 +#: app_Main.py:4029 msgid "A Geometry object was converted to SingleGeo type." msgstr "Объект Geometry был преобразован в тип SingleGeo." -#: app_Main.py:4339 +#: app_Main.py:4262 msgid "Toggle Units" msgstr "Единицы измерения" -#: app_Main.py:4343 +#: app_Main.py:4266 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -18902,24 +18885,24 @@ msgstr "" "масштабированию всех всех объектов.\n" "Продолжить?" -#: app_Main.py:4346 app_Main.py:4509 app_Main.py:4592 app_Main.py:7327 -#: app_Main.py:7343 app_Main.py:7681 app_Main.py:7693 +#: app_Main.py:4269 app_Main.py:4432 app_Main.py:4515 app_Main.py:8259 +#: app_Main.py:8274 app_Main.py:8605 app_Main.py:8617 msgid "Ok" msgstr "Да" -#: app_Main.py:4396 +#: app_Main.py:4319 msgid "Converted units to" msgstr "Конвертирование единиц в" -#: app_Main.py:4436 +#: app_Main.py:4359 msgid "Workspace enabled." msgstr "Рабочая область включена." -#: app_Main.py:4439 +#: app_Main.py:4362 msgid "Workspace disabled." msgstr "Рабочая область отключена." -#: app_Main.py:4503 +#: app_Main.py:4426 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -18928,11 +18911,11 @@ msgstr "" "«Дополнительно».\n" "Перейдите в Настройки -> Основные парам. - Показать дополнительные параметры." -#: app_Main.py:4585 +#: app_Main.py:4508 msgid "Delete objects" msgstr "Удалить объекты" -#: app_Main.py:4590 +#: app_Main.py:4513 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" @@ -18940,84 +18923,84 @@ msgstr "" "Вы уверены, что хотите удалить навсегда\n" "выделенные объекты?" -#: app_Main.py:4633 +#: app_Main.py:4556 msgid "Object(s) deleted" msgstr "Объект(ы) удалены" -#: app_Main.py:4637 +#: app_Main.py:4560 msgid "Save the work in Editor and try again ..." msgstr "Сохраните работу в редакторе и попробуйте снова ..." -#: app_Main.py:4666 +#: app_Main.py:4589 msgid "Object deleted" msgstr "Объект(ы) удален" -#: app_Main.py:4693 +#: app_Main.py:4616 msgid "Click to set the origin ..." msgstr "Кликните, чтобы указать начало координат ..." -#: app_Main.py:4715 +#: app_Main.py:4638 msgid "Setting Origin..." msgstr "Установка точки начала координат..." -#: app_Main.py:4728 app_Main.py:4830 +#: app_Main.py:4651 app_Main.py:4753 msgid "Origin set" msgstr "Начало координат установлено" -#: app_Main.py:4745 +#: app_Main.py:4668 msgid "Origin coordinates specified but incomplete." msgstr "Координаты начала указаны, но неполны." -#: app_Main.py:4786 +#: app_Main.py:4709 msgid "Moving to Origin..." msgstr "Переход к началу координат..." -#: app_Main.py:4867 +#: app_Main.py:4790 msgid "Jump to ..." msgstr "Перейти к ..." -#: app_Main.py:4868 +#: app_Main.py:4791 msgid "Enter the coordinates in format X,Y:" msgstr "Введите координаты в формате X, Y:" -#: app_Main.py:4878 +#: app_Main.py:4801 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Неверные координаты. Введите координаты в формате: X, Y" -#: app_Main.py:4995 +#: app_Main.py:4918 msgid "Bottom-Left" msgstr "Слева внизу" -#: app_Main.py:4998 +#: app_Main.py:4921 msgid "Top-Right" msgstr "Справа вверху" -#: app_Main.py:5019 +#: app_Main.py:4942 msgid "Locate ..." msgstr "Размещение ..." -#: app_Main.py:5292 app_Main.py:5367 app_Main.py:5530 +#: app_Main.py:5215 app_Main.py:5290 app_Main.py:5453 msgid "No object is selected. Select an object and try again." msgstr "Объект не выбран. Выберите объект и попробуйте снова." -#: app_Main.py:5556 +#: app_Main.py:5479 msgid "" "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "Прерывание. Текущая задача будет закрыта как можно скорее..." -#: app_Main.py:5562 +#: app_Main.py:5485 msgid "The current task was gracefully closed on user request..." msgstr "Текущая задача была закрыта по запросу пользователя ..." -#: app_Main.py:5752 +#: app_Main.py:5675 msgid "Tools in Tools Database edited but not saved." msgstr "Инструменты в базе данных отредактированы, но не сохранены." -#: app_Main.py:5791 +#: app_Main.py:5714 msgid "Adding tool from DB is not allowed for this object." msgstr "Добавление инструмента из БД для данного объекта запрещено." -#: app_Main.py:5809 +#: app_Main.py:5732 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -19025,580 +19008,235 @@ msgstr "" "Один или несколько инструментов изменены.\n" "Вы хотите обновить базу данных инструментов?" -#: app_Main.py:5811 +#: app_Main.py:5734 msgid "Save Tools Database" msgstr "Сохранить БД" -#: app_Main.py:5857 +#: app_Main.py:5780 msgid "No object selected to Flip on Y axis." msgstr "Не выбран объект для отражения по оси Y." -#: app_Main.py:5883 +#: app_Main.py:5806 msgid "Flip on Y axis done." msgstr "Отражение по оси Y завершено." -#: app_Main.py:5905 +#: app_Main.py:5828 msgid "No object selected to Flip on X axis." msgstr "Не выбран объект для отражения по оси Х." -#: app_Main.py:5931 +#: app_Main.py:5854 msgid "Flip on X axis done." msgstr "Отражение по оси Х завершено." -#: app_Main.py:5953 +#: app_Main.py:5876 msgid "No object selected to Rotate." msgstr "Не выбран ни один объект для вращения." -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Transform" msgstr "Трансформация" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Enter the Angle value:" msgstr "Введите значение угла:" -#: app_Main.py:5986 +#: app_Main.py:5909 msgid "Rotation done." msgstr "Вращение завершено." -#: app_Main.py:5988 +#: app_Main.py:5911 msgid "Rotation movement was not executed." msgstr "Вращение не было выполнено." -#: app_Main.py:6005 +#: app_Main.py:5928 msgid "No object selected to Skew/Shear on X axis." msgstr "Не выбран ни один объект для наклона/сдвига по оси X." -#: app_Main.py:6026 +#: app_Main.py:5949 msgid "Skew on X axis done." msgstr "Наклон по оси X выполнен." -#: app_Main.py:6042 +#: app_Main.py:5965 msgid "No object selected to Skew/Shear on Y axis." msgstr "Нет объекта, выбранного для наклона/сдвига по оси Y." -#: app_Main.py:6063 +#: app_Main.py:5986 msgid "Skew on Y axis done." msgstr "Наклон по оси Y выполнен." -#: app_Main.py:6145 +#: app_Main.py:6068 msgid "New Grid ..." msgstr "Новая сетка ..." -#: app_Main.py:6146 +#: app_Main.py:6069 msgid "Enter a Grid Value:" msgstr "Введите размер сетки:" -#: app_Main.py:6154 app_Main.py:6178 +#: app_Main.py:6077 app_Main.py:6101 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "" "Пожалуйста, введите значение сетки с ненулевым значением в формате float." -#: app_Main.py:6159 +#: app_Main.py:6082 msgid "New Grid added" msgstr "Новая сетка добавлена" -#: app_Main.py:6161 +#: app_Main.py:6084 msgid "Grid already exists" msgstr "Сетка уже существует" -#: app_Main.py:6163 +#: app_Main.py:6086 msgid "Adding New Grid cancelled" msgstr "Добавление новой сетки отменено" -#: app_Main.py:6184 +#: app_Main.py:6107 msgid " Grid Value does not exist" msgstr " Значение сетки не существует" -#: app_Main.py:6186 +#: app_Main.py:6109 msgid "Grid Value deleted" msgstr "Значение сетки удалено" -#: app_Main.py:6188 +#: app_Main.py:6111 msgid "Delete Grid value cancelled" msgstr "Удаление значения сетки отменено" -#: app_Main.py:6194 +#: app_Main.py:6117 msgid "Key Shortcut List" msgstr "Список комбинаций клавиш" -#: app_Main.py:6231 +#: app_Main.py:6154 msgid " No object selected to copy it's name" msgstr " Нет объекта, выбранного для копирования его имени" -#: app_Main.py:6235 +#: app_Main.py:6158 msgid "Name copied on clipboard ..." msgstr "Имя скопировано в буфер обмена ..." -#: app_Main.py:6892 -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 "" -"В FlatCAM открыты файлы/объекты.\n" -"Создание нового проекта удалит их.\n" -"Вы хотите сохранить проект?" - -#: app_Main.py:6915 -msgid "New Project created" -msgstr "Новый проект создан" - -#: app_Main.py:7121 app_Main.py:7160 app_Main.py:7204 app_Main.py:7274 -#: app_Main.py:8060 app_Main.py:9304 app_Main.py:9366 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Инициализация холста.\n" -"Инициализация холста завершена за" - -#: app_Main.py:7123 -msgid "Opening Gerber file." -msgstr "Открытие файла Gerber." - -#: app_Main.py:7162 -msgid "Opening Excellon file." -msgstr "Открытие файла Excellon." - -#: app_Main.py:7193 app_Main.py:7198 -msgid "Open G-Code" -msgstr "Открыть G-Code" - -#: app_Main.py:7206 -msgid "Opening G-Code file." -msgstr "Открытие файла G-Code." - -#: app_Main.py:7265 app_Main.py:7269 -msgid "Open HPGL2" -msgstr "Открыть HPGL2" - -#: app_Main.py:7276 -msgid "Opening HPGL2 file." -msgstr "Открытие файла HPGL2." - -#: app_Main.py:7299 app_Main.py:7302 -msgid "Open Configuration File" -msgstr "Открыть файл конфигурации" - -#: app_Main.py:7322 app_Main.py:7676 -msgid "Please Select a Geometry object to export" -msgstr "Выберите объект Geometry для экспорта" - -#: app_Main.py:7338 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Можно использовать только объекты Geometry, Gerber и CNCJob." - -#: app_Main.py:7383 -msgid "Data must be a 3D array with last dimension 3 or 4" -msgstr "Данные должны быть 3D массивом с последним размером 3 или 4" - -#: app_Main.py:7389 app_Main.py:7393 -msgid "Export PNG Image" -msgstr "Экспорт PNG изображения" - -#: app_Main.py:7426 app_Main.py:7636 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "Ошибка. Только объекты Gerber могут быть сохранены как файлы Gerber..." - -#: app_Main.py:7438 -msgid "Save Gerber source file" -msgstr "Сохранить исходный файл Gerber" - -#: app_Main.py:7467 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "" -"Ошибка. Только объекты сценария могут быть сохранены как файлы TCL-" -"сценария..." - -#: app_Main.py:7479 -msgid "Save Script source file" -msgstr "Сохранить исходный файл сценария" - -#: app_Main.py:7508 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "" -"Ошибка. Только объекты Document могут быть сохранены как файлы Document..." - -#: app_Main.py:7520 -msgid "Save Document source file" -msgstr "Сохранить исходный файл Document" - -#: app_Main.py:7550 app_Main.py:7592 app_Main.py:8543 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" -"Ошибка. Только объекты Excellon могут быть сохранены как файлы Excellon..." - -#: app_Main.py:7558 app_Main.py:7563 -msgid "Save Excellon source file" -msgstr "Сохранить исходный файл Excellon" - -#: app_Main.py:7600 app_Main.py:7604 -msgid "Export Excellon" -msgstr "Экспорт Excellon" - -#: app_Main.py:7644 app_Main.py:7648 -msgid "Export Gerber" -msgstr "Экспорт Gerber" - -#: app_Main.py:7688 -msgid "Only Geometry objects can be used." -msgstr "Можно использовать только объекты Geometry." - -#: app_Main.py:7704 app_Main.py:7708 -msgid "Export DXF" -msgstr "Экспорт DXF" - -#: app_Main.py:7733 app_Main.py:7736 -msgid "Import SVG" -msgstr "Импорт SVG" - -#: app_Main.py:7764 app_Main.py:7768 -msgid "Import DXF" -msgstr "Импорт DXF" - -#: app_Main.py:7822 app_Main.py:7826 +#: app_Main.py:6917 app_Main.py:6921 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "Выберите файл Gerber или Excellon для просмотра исходного кода." -#: app_Main.py:7829 +#: app_Main.py:6924 msgid "Viewing the source code of the selected object." msgstr "Просмотр исходного кода выбранного объекта." -#: app_Main.py:7843 +#: app_Main.py:6938 msgid "Source Editor" msgstr "Редактор исходного кода" -#: app_Main.py:7879 app_Main.py:7886 +#: app_Main.py:6974 app_Main.py:6981 msgid "There is no selected object for which to see it's source file code." msgstr "Нет выбранного объекта, для просмотра исходного кода файла." -#: app_Main.py:7894 +#: app_Main.py:6989 msgid "Failed to load the source code for the selected object" msgstr "Не удалось загрузить исходный код выбранного объекта" -#: app_Main.py:7927 +#: app_Main.py:7022 msgid "Go to Line ..." msgstr "Перейти к строке ..." -#: app_Main.py:7928 +#: app_Main.py:7023 msgid "Line:" msgstr "Строка:" -#: app_Main.py:7955 -msgid "New TCL script file created in Code Editor." -msgstr "Новый файл сценария создан в редакторе кода." - -#: app_Main.py:7994 app_Main.py:7996 app_Main.py:8032 app_Main.py:8034 -msgid "Open TCL script" -msgstr "Открыть сценарий TCL" - -#: app_Main.py:8062 -msgid "Executing ScriptObject file." -msgstr "Выполнение файла ScriptObject." - -#: app_Main.py:8070 app_Main.py:8073 -msgid "Run TCL script" -msgstr "Запустить сценарий TCL" - -#: app_Main.py:8096 -msgid "TCL script file opened in Code Editor and executed." -msgstr "Файл сценария открывается в редакторе кода и выполняется." - -#: app_Main.py:8147 app_Main.py:8153 -msgid "Save Project As ..." -msgstr "Сохранить проект как..." - -#: app_Main.py:8188 -msgid "FlatCAM objects print" -msgstr "Печать объектов FlatCAM" - -#: app_Main.py:8201 app_Main.py:8208 -msgid "Save Object as PDF ..." -msgstr "Сохранить объект как PDF ..." - -#: app_Main.py:8217 -msgid "Printing PDF ... Please wait." -msgstr "Печать PDF ... Пожалуйста, подождите." - -#: app_Main.py:8396 -msgid "PDF file saved to" -msgstr "Файл PDF сохранён в" - -#: app_Main.py:8421 -msgid "Exporting SVG" -msgstr "Экспортирование SVG" - -#: app_Main.py:8464 -msgid "SVG file exported to" -msgstr "Файл SVG экспортируется в" - -#: app_Main.py:8490 -#, fuzzy -#| msgid "" -#| "Save cancelled because source file is empty. Try to export the Gerber " -#| "file." -msgid "Save cancelled because source file is empty. Try to export the file." -msgstr "" -"Сохранение отменено, потому что исходный файл пуст. Попробуйте " -"экспортировать файл Gerber." - -#: app_Main.py:8641 -msgid "Excellon file exported to" -msgstr "Файл Excellon экспортируется в" - -#: app_Main.py:8650 -msgid "Exporting Excellon" -msgstr "Экспорт Excellon" - -#: app_Main.py:8655 app_Main.py:8662 -msgid "Could not export Excellon file." -msgstr "Не удалось экспортировать файл Excellon." - -#: app_Main.py:8778 -msgid "Gerber file exported to" -msgstr "Файл Gerber экспортируется в" - -#: app_Main.py:8786 -msgid "Exporting Gerber" -msgstr "Экспортирование Gerber" - -#: app_Main.py:8791 app_Main.py:8798 -#, fuzzy -#| msgid "Could not export DXF file." -msgid "Could not export file." -msgstr "Не удалось экспортировать файл DXF." - -#: app_Main.py:8846 -msgid "DXF file exported to" -msgstr "Файл DXF экспортируется в" - -#: app_Main.py:8855 -msgid "Exporting DXF" -msgstr "Экспорт DXF" - -#: app_Main.py:8860 app_Main.py:8867 -msgid "Could not export DXF file." -msgstr "Не удалось экспортировать файл DXF." - -#: app_Main.py:8906 -msgid "Importing SVG" -msgstr "Импортирование SVG" - -#: app_Main.py:8914 app_Main.py:8969 -msgid "Import failed." -msgstr "Не удалось импортировать." - -#: app_Main.py:8961 -msgid "Importing DXF" -msgstr "Импорт DXF" - -#: app_Main.py:9002 app_Main.py:9193 app_Main.py:9258 -msgid "Failed to open file" -msgstr "Не удалось открыть файл" - -#: app_Main.py:9005 app_Main.py:9196 app_Main.py:9261 -msgid "Failed to parse file" -msgstr "Не удаётся прочитать файл" - -#: app_Main.py:9017 -msgid "Object is not Gerber file or empty. Aborting object creation." -msgstr "" -"Объект не является файлом Gerber или пуст. Прерывание создания объекта." - -#: app_Main.py:9022 -msgid "Opening Gerber" -msgstr "Открытие Gerber" - -#: app_Main.py:9033 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "Открыть Гербер не удалось. Вероятно, не файл Гербера." - -#: app_Main.py:9066 -msgid "Cannot open file" -msgstr "Не удается открыть файл" - -#: app_Main.py:9086 -msgid "Opening Excellon." -msgstr "Открытие Excellon." - -#: app_Main.py:9096 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "Не удалось открыть файл Excellon. Вероятно это не файл Excellon." - -#: app_Main.py:9128 -msgid "Reading GCode file" -msgstr "Чтение файла GCode" - -#: app_Main.py:9141 -msgid "This is not GCODE" -msgstr "Это не GCODE" - -#: app_Main.py:9146 -msgid "Opening G-Code." -msgstr "Открытие G-Code." - -#: app_Main.py:9159 -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 "" -"Не удалось создать объект CNCJob. Вероятно это не файл GCode.Попробуйте " -"загрузить его из меню «Файл».\n" -" Попытка создать объект FlatCAM CNCJob из файла G-кода не удалась во время " -"обработки" - -#: app_Main.py:9215 -msgid "Object is not HPGL2 file or empty. Aborting object creation." -msgstr "" -"Объект не является файлом HPGL2 или пустым. Прерывание создания объекта." - -#: app_Main.py:9220 -msgid "Opening HPGL2" -msgstr "Открытие HPGL2" - -#: app_Main.py:9227 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr " Открыть HPGL2 не удалось. Вероятно, не файл HPGL2." - -#: app_Main.py:9253 -msgid "TCL script file opened in Code Editor." -msgstr "Файл сценария открыт в редакторе кода." - -#: app_Main.py:9273 -msgid "Opening TCL Script..." -msgstr "Открытие TCL-сценария..." - -#: app_Main.py:9284 -msgid "Failed to open TCL Script." -msgstr "Не удалось открыть TCL-сценарий." - -#: app_Main.py:9306 -msgid "Opening FlatCAM Config file." -msgstr "Открытие файла конфигурации." - -#: app_Main.py:9334 -msgid "Failed to open config file" -msgstr "Не удалось открыть файл конфигурации" - -#: app_Main.py:9363 -msgid "Loading Project ... Please Wait ..." -msgstr "Загрузка проекта ... Пожалуйста, подождите ..." - -#: app_Main.py:9368 -msgid "Opening FlatCAM Project file." -msgstr "Открытие файла проекта FlatCAM." - -#: app_Main.py:9383 app_Main.py:9387 app_Main.py:9404 -msgid "Failed to open project file" -msgstr "Не удалось открыть файл проекта" - -#: app_Main.py:9443 -msgid "Loading Project ... restoring" -msgstr "Загрузка проекта ... восстановление" - -#: app_Main.py:9451 -msgid "Project loaded from" -msgstr "Проект загружен из" - -#: app_Main.py:9477 +#: app_Main.py:7053 msgid "Redrawing all objects" msgstr "Перерисовка всех объектов" -#: app_Main.py:9565 +#: app_Main.py:7141 msgid "Failed to load recent item list." msgstr "Не удалось загрузить список недавних файлов." -#: app_Main.py:9572 +#: app_Main.py:7148 msgid "Failed to parse recent item list." msgstr "Не удалось прочитать список недавних файлов." -#: app_Main.py:9582 +#: app_Main.py:7158 msgid "Failed to load recent projects item list." msgstr "Не удалось загрузить список элементов последних проектов." -#: app_Main.py:9589 +#: app_Main.py:7165 msgid "Failed to parse recent project item list." msgstr "Не удалось проанализировать список последних элементов проекта." -#: app_Main.py:9650 +#: app_Main.py:7226 msgid "Clear Recent projects" msgstr "Очистить недавние проекты" -#: app_Main.py:9674 +#: app_Main.py:7250 msgid "Clear Recent files" msgstr "Очистить список" -#: app_Main.py:9730 +#: app_Main.py:7306 #, fuzzy #| msgid "FlatCAM.org" msgid "FlatCAM Evo" msgstr "FlatCAM.org" -#: app_Main.py:9734 +#: app_Main.py:7310 msgid "Release date" msgstr "" -#: app_Main.py:9738 +#: app_Main.py:7314 msgid "Displayed" msgstr "" -#: app_Main.py:9741 +#: app_Main.py:7317 #, fuzzy #| msgid "Snap Max" msgid "Snap" msgstr "Максимальный захват" -#: app_Main.py:9750 +#: app_Main.py:7326 msgid "Canvas" msgstr "" -#: app_Main.py:9755 +#: app_Main.py:7331 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace active" msgstr "Настройки рабочей области" -#: app_Main.py:9759 +#: app_Main.py:7335 #, fuzzy #| msgid "Workspace disabled." msgid "Workspace size" msgstr "Рабочая область отключена." -#: app_Main.py:9763 +#: app_Main.py:7339 #, fuzzy #| msgid "Workspace Settings" msgid "Workspace orientation" msgstr "Настройки рабочей области" -#: app_Main.py:9826 +#: app_Main.py:7402 msgid "Failed checking for latest version. Could not connect." msgstr "" "Не удалось проверить обновление программы. Отсутствует интернет подключение ." -#: app_Main.py:9833 +#: app_Main.py:7409 msgid "Could not parse information about latest version." msgstr "Не удается обработать информацию о последней версии." -#: app_Main.py:9843 +#: app_Main.py:7419 msgid "FlatCAM is up to date!" msgstr "FlatCAM в актуальном состоянии!" -#: app_Main.py:9848 +#: app_Main.py:7424 msgid "Newer Version Available" msgstr "Доступна новая версия" -#: app_Main.py:9850 +#: app_Main.py:7426 msgid "There is a newer version of FlatCAM available for download:" msgstr "Новая версия FlatCAM доступна для загрузки:" -#: app_Main.py:9854 +#: app_Main.py:7430 msgid "info" msgstr "инфо" -#: app_Main.py:9882 +#: app_Main.py:7458 msgid "" "OpenGL canvas initialization failed. HW or HW configuration not supported." "Change the graphic engine to Legacy(2D) in Edit -> Preferences -> General " @@ -19610,66 +19248,427 @@ msgstr "" "Настройки -> вкладка Основные.\n" "\n" -#: app_Main.py:9960 +#: app_Main.py:7536 msgid "All plots disabled." msgstr "Все участки отключены." -#: app_Main.py:9967 +#: app_Main.py:7543 msgid "All non selected plots disabled." msgstr "Все не выбранные участки отключены." -#: app_Main.py:9974 +#: app_Main.py:7550 msgid "All plots enabled." msgstr "Все участки включены." -#: app_Main.py:9980 +#: app_Main.py:7556 msgid "Selected plots enabled..." msgstr "Выбранные участки включены..." -#: app_Main.py:9988 +#: app_Main.py:7564 msgid "Selected plots disabled..." msgstr "Выбранные участки отключены..." -#: app_Main.py:10021 +#: app_Main.py:7597 msgid "Enabling plots ..." msgstr "Включение участков ..." -#: app_Main.py:10070 +#: app_Main.py:7646 msgid "Disabling plots ..." msgstr "Отключение участков ..." -#: app_Main.py:10093 +#: app_Main.py:7669 msgid "Working ..." msgstr "Обработка…" -#: app_Main.py:10205 +#: app_Main.py:7781 msgid "Set alpha level ..." msgstr "Установка уровня прозрачности ..." -#: app_Main.py:10271 +#: app_Main.py:8057 app_Main.py:8096 app_Main.py:8140 app_Main.py:8206 +#: app_Main.py:8932 app_Main.py:10193 app_Main.py:10255 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Инициализация холста.\n" +"Инициализация холста завершена за" + +#: app_Main.py:8060 +msgid "Opening Gerber file." +msgstr "Открытие файла Gerber." + +#: app_Main.py:8099 +msgid "Opening Excellon file." +msgstr "Открытие файла Excellon." + +#: app_Main.py:8129 app_Main.py:8134 +msgid "Open G-Code" +msgstr "Открыть G-Code" + +#: app_Main.py:8143 +msgid "Opening G-Code file." +msgstr "Открытие файла G-Code." + +#: app_Main.py:8197 app_Main.py:8201 +msgid "Open HPGL2" +msgstr "Открыть HPGL2" + +#: app_Main.py:8209 +msgid "Opening HPGL2 file." +msgstr "Открытие файла HPGL2." + +#: app_Main.py:8232 app_Main.py:8235 +msgid "Open Configuration File" +msgstr "Открыть файл конфигурации" + +#: app_Main.py:8254 app_Main.py:8600 +msgid "Please Select a Geometry object to export" +msgstr "Выберите объект Geometry для экспорта" + +#: app_Main.py:8269 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Можно использовать только объекты Geometry, Gerber и CNCJob." + +#: app_Main.py:8314 +msgid "Data must be a 3D array with last dimension 3 or 4" +msgstr "Данные должны быть 3D массивом с последним размером 3 или 4" + +#: app_Main.py:8320 app_Main.py:8324 +msgid "Export PNG Image" +msgstr "Экспорт PNG изображения" + +#: app_Main.py:8356 app_Main.py:8561 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "Ошибка. Только объекты Gerber могут быть сохранены как файлы Gerber..." + +#: app_Main.py:8368 +msgid "Save Gerber source file" +msgstr "Сохранить исходный файл Gerber" + +#: app_Main.py:8396 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "" +"Ошибка. Только объекты сценария могут быть сохранены как файлы TCL-" +"сценария..." + +#: app_Main.py:8408 +msgid "Save Script source file" +msgstr "Сохранить исходный файл сценария" + +#: app_Main.py:8436 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "" +"Ошибка. Только объекты Document могут быть сохранены как файлы Document..." + +#: app_Main.py:8448 +msgid "Save Document source file" +msgstr "Сохранить исходный файл Document" + +#: app_Main.py:8477 app_Main.py:8518 app_Main.py:9437 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" +"Ошибка. Только объекты Excellon могут быть сохранены как файлы Excellon..." + +#: app_Main.py:8485 app_Main.py:8490 +msgid "Save Excellon source file" +msgstr "Сохранить исходный файл Excellon" + +#: app_Main.py:8526 app_Main.py:8530 +msgid "Export Excellon" +msgstr "Экспорт Excellon" + +#: app_Main.py:8569 app_Main.py:8573 +msgid "Export Gerber" +msgstr "Экспорт Gerber" + +#: app_Main.py:8612 +msgid "Only Geometry objects can be used." +msgstr "Можно использовать только объекты Geometry." + +#: app_Main.py:8628 app_Main.py:8632 +msgid "Export DXF" +msgstr "Экспорт DXF" + +#: app_Main.py:8656 app_Main.py:8660 +msgid "Import SVG" +msgstr "Импорт SVG" + +#: app_Main.py:8686 app_Main.py:8690 +msgid "Import DXF" +msgstr "Импорт DXF" + +#: app_Main.py:8716 +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 "" +"В FlatCAM открыты файлы/объекты.\n" +"Создание нового проекта удалит их.\n" +"Вы хотите сохранить проект?" + +#: app_Main.py:8739 +msgid "New Project created" +msgstr "Новый проект создан" + +#: app_Main.py:8841 +msgid "New TCL script file created in Code Editor." +msgstr "Новый файл сценария создан в редакторе кода." + +#: app_Main.py:8868 app_Main.py:8870 app_Main.py:8905 app_Main.py:8907 +msgid "Open TCL script" +msgstr "Открыть сценарий TCL" + +#: app_Main.py:8934 +msgid "Executing ScriptObject file." +msgstr "Выполнение файла ScriptObject." + +#: app_Main.py:8942 app_Main.py:8946 +msgid "Run TCL script" +msgstr "Запустить сценарий TCL" + +#: app_Main.py:8969 +msgid "TCL script file opened in Code Editor and executed." +msgstr "Файл сценария открывается в редакторе кода и выполняется." + +#: app_Main.py:9015 app_Main.py:9021 +msgid "Save Project As ..." +msgstr "Сохранить проект как..." + +#: app_Main.py:9055 +msgid "FlatCAM objects print" +msgstr "Печать объектов FlatCAM" + +#: app_Main.py:9068 app_Main.py:9075 +msgid "Save Object as PDF ..." +msgstr "Сохранить объект как PDF ..." + +#: app_Main.py:9084 +msgid "Printing PDF ... Please wait." +msgstr "Печать PDF ... Пожалуйста, подождите." + +#: app_Main.py:9262 +msgid "PDF file saved to" +msgstr "Файл PDF сохранён в" + +#: app_Main.py:9284 +msgid "Exporting SVG" +msgstr "Экспортирование SVG" + +#: app_Main.py:9327 +msgid "SVG file exported to" +msgstr "Файл SVG экспортируется в" + +#: app_Main.py:9342 app_Main.py:9346 +msgid "Import FlatCAM Preferences" +msgstr "Импорт настроек FlatCAM" + +#: app_Main.py:9357 +msgid "Imported Defaults from" +msgstr "Значения по умолчанию импортированы из" + +#: app_Main.py:9376 app_Main.py:9382 +msgid "Export FlatCAM Preferences" +msgstr "Экспорт настроек FlatCAM" + +#: app_Main.py:9402 +msgid "Exported preferences to" +msgstr "Экспорт настроек в" + +#: app_Main.py:9535 +msgid "Excellon file exported to" +msgstr "Файл Excellon экспортируется в" + +#: app_Main.py:9544 +msgid "Exporting Excellon" +msgstr "Экспорт Excellon" + +#: app_Main.py:9549 app_Main.py:9556 +msgid "Could not export Excellon file." +msgstr "Не удалось экспортировать файл Excellon." + +#: app_Main.py:9670 +msgid "Gerber file exported to" +msgstr "Файл Gerber экспортируется в" + +#: app_Main.py:9678 +msgid "Exporting Gerber" +msgstr "Экспортирование Gerber" + +#: app_Main.py:9683 app_Main.py:9690 +#, fuzzy +#| msgid "Could not export DXF file." +msgid "Could not export file." +msgstr "Не удалось экспортировать файл DXF." + +#: app_Main.py:9736 +msgid "DXF file exported to" +msgstr "Файл DXF экспортируется в" + +#: app_Main.py:9745 +msgid "Exporting DXF" +msgstr "Экспорт DXF" + +#: app_Main.py:9750 app_Main.py:9757 +msgid "Could not export DXF file." +msgstr "Не удалось экспортировать файл DXF." + +#: app_Main.py:9795 +msgid "Importing SVG" +msgstr "Импортирование SVG" + +#: app_Main.py:9803 app_Main.py:9858 +msgid "Import failed." +msgstr "Не удалось импортировать." + +#: app_Main.py:9850 +msgid "Importing DXF" +msgstr "Импорт DXF" + +#: app_Main.py:9891 app_Main.py:10082 app_Main.py:10147 +msgid "Failed to open file" +msgstr "Не удалось открыть файл" + +#: app_Main.py:9894 app_Main.py:10085 app_Main.py:10150 +msgid "Failed to parse file" +msgstr "Не удаётся прочитать файл" + +#: app_Main.py:9906 +msgid "Object is not Gerber file or empty. Aborting object creation." +msgstr "" +"Объект не является файлом Gerber или пуст. Прерывание создания объекта." + +#: app_Main.py:9911 +msgid "Opening Gerber" +msgstr "Открытие Gerber" + +#: app_Main.py:9922 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "Открыть Гербер не удалось. Вероятно, не файл Гербера." + +#: app_Main.py:9955 +msgid "Cannot open file" +msgstr "Не удается открыть файл" + +#: app_Main.py:9975 +msgid "Opening Excellon." +msgstr "Открытие Excellon." + +#: app_Main.py:9985 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "Не удалось открыть файл Excellon. Вероятно это не файл Excellon." + +#: app_Main.py:10017 +msgid "Reading GCode file" +msgstr "Чтение файла GCode" + +#: app_Main.py:10030 +msgid "This is not GCODE" +msgstr "Это не GCODE" + +#: app_Main.py:10035 +msgid "Opening G-Code." +msgstr "Открытие G-Code." + +#: app_Main.py:10048 +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 "" +"Не удалось создать объект CNCJob. Вероятно это не файл GCode.Попробуйте " +"загрузить его из меню «Файл».\n" +" Попытка создать объект FlatCAM CNCJob из файла G-кода не удалась во время " +"обработки" + +#: app_Main.py:10104 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "" +"Объект не является файлом HPGL2 или пустым. Прерывание создания объекта." + +#: app_Main.py:10109 +msgid "Opening HPGL2" +msgstr "Открытие HPGL2" + +#: app_Main.py:10116 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr " Открыть HPGL2 не удалось. Вероятно, не файл HPGL2." + +#: app_Main.py:10142 +msgid "TCL script file opened in Code Editor." +msgstr "Файл сценария открыт в редакторе кода." + +#: app_Main.py:10162 +msgid "Opening TCL Script..." +msgstr "Открытие TCL-сценария..." + +#: app_Main.py:10173 +msgid "Failed to open TCL Script." +msgstr "Не удалось открыть TCL-сценарий." + +#: app_Main.py:10196 +msgid "Opening FlatCAM Config file." +msgstr "Открытие файла конфигурации." + +#: app_Main.py:10223 +msgid "Failed to open config file" +msgstr "Не удалось открыть файл конфигурации" + +#: app_Main.py:10252 +msgid "Loading Project ... Please Wait ..." +msgstr "Загрузка проекта ... Пожалуйста, подождите ..." + +#: app_Main.py:10258 +msgid "Opening FlatCAM Project file." +msgstr "Открытие файла проекта FlatCAM." + +#: app_Main.py:10273 app_Main.py:10277 app_Main.py:10295 +msgid "Failed to open project file" +msgstr "Не удалось открыть файл проекта" + +#: app_Main.py:10335 +msgid "Loading Project ... restoring" +msgstr "Загрузка проекта ... восстановление" + +#: app_Main.py:10339 +msgid "Project loaded from" +msgstr "Проект загружен из" + +#: app_Main.py:10368 msgid "Saving FlatCAM Project" msgstr "Сохранение проекта FlatCAM" -#: app_Main.py:10294 app_Main.py:10330 +#: app_Main.py:10390 app_Main.py:10426 msgid "Project saved to" msgstr "Проект сохранён в" -#: app_Main.py:10301 +#: app_Main.py:10397 msgid "The object is used by another application." msgstr "Объект используется другим приложением." -#: app_Main.py:10315 +#: app_Main.py:10411 msgid "Failed to verify project file" msgstr "Не удалось проверить файл проекта" -#: app_Main.py:10315 app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10411 app_Main.py:10419 app_Main.py:10429 msgid "Retry to save it." msgstr "Повторите попытку, чтобы сохранить его." -#: app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10419 app_Main.py:10429 msgid "Failed to parse saved project file" msgstr "Не удалось проанализировать сохраненный файл проекта" +#: app_Main.py:10466 +#, fuzzy +#| msgid "" +#| "Save cancelled because source file is empty. Try to export the Gerber " +#| "file." +msgid "Save cancelled because source file is empty. Try to export the file." +msgstr "" +"Сохранение отменено, потому что исходный файл пуст. Попробуйте " +"экспортировать файл Gerber." + #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" diff --git a/locale/tr/LC_MESSAGES/strings.mo b/locale/tr/LC_MESSAGES/strings.mo index e2561c35bb1751a7d2aa5c6818cff42c4c3acd27..2d822f5606141f7cd47d62153b70b743436bd6d7 100644 GIT binary patch delta 75470 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 delta 72243 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 }Nsx>L{y={{ts+6n5iHP>pJ!Fo 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 the cutout will be interrupted by bridges\n" @@ -1244,22 +1246,22 @@ msgstr "" "kaplanmıştır" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 -#: appTools/ToolCutOut.py:2192 +#: appTools/ToolCutOut.py:2196 msgid "Bridge" msgstr "Geçit" #: appDatabase.py:1190 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159 -#: appTools/ToolCutOut.py:2193 +#: appTools/ToolCutOut.py:2197 msgid "Thin" msgstr "İncelik" #: appDatabase.py:1201 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169 -#: appTools/ToolCutOut.py:2203 +#: appTools/ToolCutOut.py:2207 msgid "Depth" msgstr "Derinlik" #: appDatabase.py:1203 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171 -#: appTools/ToolCutOut.py:2205 +#: appTools/ToolCutOut.py:2209 msgid "" "The depth until the milling is done\n" "in order to thin the gaps." @@ -1269,12 +1271,12 @@ msgstr "" #: appDatabase.py:1220 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 -#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2220 +#: appTools/ToolCalculators.py:249 appTools/ToolCutOut.py:2224 msgid "Tool Diameter" msgstr "Uç Kalınlığı" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 -#: appTools/ToolCutOut.py:2222 +#: appTools/ToolCutOut.py:2226 msgid "The drill hole diameter when doing mouse bites." msgstr "Geçitlerde fare ısırığı şekli için delik genişliği." @@ -1283,25 +1285,25 @@ msgstr "Geçitlerde fare ısırığı şekli için delik genişliği." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1333 appTools/ToolCopperThieving.py:1373 -#: appTools/ToolCopperThieving.py:1413 appTools/ToolCutOut.py:2232 +#: appTools/ToolCopperThieving.py:1329 appTools/ToolCopperThieving.py:1369 +#: appTools/ToolCopperThieving.py:1409 appTools/ToolCutOut.py:2236 msgid "Spacing" msgstr "Aralık" #: appDatabase.py:1235 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200 -#: appTools/ToolCutOut.py:2234 +#: appTools/ToolCutOut.py:2238 msgid "The spacing between drill holes when doing mouse bites." msgstr "" "Geçitlerde fare ısırığı şekli oluştururken matkap\n" "delikleri arasındaki boşluk." #: appDatabase.py:1254 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233 -#: appTools/ToolCutOut.py:2034 +#: appTools/ToolCutOut.py:2038 msgid "Convex Shape" msgstr "Yuvarlak Köşe" #: appDatabase.py:1257 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235 -#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041 +#: appTools/ToolCutOut.py:2040 appTools/ToolCutOut.py:2045 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." @@ -1311,11 +1313,11 @@ msgstr "" "Yalnız, kaynak nesnenin türü Gerber ise kullanılabilir." #: appDatabase.py:1265 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209 -#: appTools/ToolCutOut.py:2263 +#: appTools/ToolCutOut.py:2267 msgid "Gaps" msgstr "Geçit Sayısı" -#: appDatabase.py:1267 appTools/ToolCutOut.py:2265 +#: appDatabase.py:1267 appTools/ToolCutOut.py:2269 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -1399,8 +1401,8 @@ msgstr "" "o sırada aktif olan Araçlar Tablosuna yeni bir uç ekler." #: appDatabase.py:1364 appGUI/MainGUI.py:1438 -#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2297 -#: app_Main.py:3392 app_Main.py:4347 app_Main.py:4593 app_Main.py:6901 +#: appGUI/preferences/PreferencesUIManager.py:932 app_Main.py:2306 +#: app_Main.py:3315 app_Main.py:4270 app_Main.py:4516 app_Main.py:8725 msgid "Cancel" msgstr "İptal" @@ -1411,16 +1413,16 @@ msgstr "İptal" #: appTools/ToolAlignObjects.py:516 appTools/ToolAlignObjects.py:527 #: appTools/ToolCalculators.py:390 appTools/ToolCalculators.py:401 #: appTools/ToolCalibration.py:1395 appTools/ToolCalibration.py:1406 -#: appTools/ToolCopperThieving.py:1601 appTools/ToolCopperThieving.py:1612 -#: appTools/ToolCorners.py:462 appTools/ToolCorners.py:473 -#: appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448 -#: appTools/ToolDblSided.py:956 appTools/ToolDblSided.py:967 +#: appTools/ToolCopperThieving.py:1597 appTools/ToolCopperThieving.py:1608 +#: appTools/ToolCorners.py:463 appTools/ToolCorners.py:474 +#: appTools/ToolCutOut.py:2441 appTools/ToolCutOut.py:2452 +#: appTools/ToolDblSided.py:958 appTools/ToolDblSided.py:969 #: appTools/ToolDistance.py:659 appTools/ToolDistance.py:670 #: appTools/ToolDistanceMin.py:324 appTools/ToolDistanceMin.py:335 #: appTools/ToolDrilling.py:2666 appTools/ToolDrilling.py:2677 #: appTools/ToolEtchCompensation.py:476 appTools/ToolEtchCompensation.py:487 -#: appTools/ToolExtractDrills.py:732 appTools/ToolExtractDrills.py:743 -#: appTools/ToolFiducials.py:950 appTools/ToolFiducials.py:961 +#: appTools/ToolExtractDrills.py:733 appTools/ToolExtractDrills.py:744 +#: appTools/ToolFiducials.py:952 appTools/ToolFiducials.py:963 #: appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 #: appTools/ToolImage.py:322 appTools/ToolImage.py:333 #: appTools/ToolInvertGerber.py:304 appTools/ToolInvertGerber.py:315 @@ -1432,7 +1434,7 @@ msgstr "İptal" #: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925 #: appTools/ToolPcbWizard.py:488 appTools/ToolPcbWizard.py:499 #: appTools/ToolPunchGerber.py:1025 appTools/ToolPunchGerber.py:1036 -#: appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933 +#: appTools/ToolQRCode.py:923 appTools/ToolQRCode.py:934 #: appTools/ToolRulesCheck.py:1657 appTools/ToolRulesCheck.py:1668 #: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586 #: appTools/ToolSub.py:772 appTools/ToolSub.py:783 @@ -1447,16 +1449,16 @@ msgstr "Düzenlenen değer aralık dışında" #: appTools/ToolAlignObjects.py:522 appTools/ToolAlignObjects.py:529 #: appTools/ToolCalculators.py:396 appTools/ToolCalculators.py:403 #: appTools/ToolCalibration.py:1401 appTools/ToolCalibration.py:1408 -#: appTools/ToolCopperThieving.py:1607 appTools/ToolCopperThieving.py:1614 -#: appTools/ToolCorners.py:468 appTools/ToolCorners.py:475 -#: appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450 -#: appTools/ToolDblSided.py:962 appTools/ToolDblSided.py:969 +#: appTools/ToolCopperThieving.py:1603 appTools/ToolCopperThieving.py:1610 +#: appTools/ToolCorners.py:469 appTools/ToolCorners.py:476 +#: appTools/ToolCutOut.py:2447 appTools/ToolCutOut.py:2454 +#: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:971 #: appTools/ToolDistance.py:665 appTools/ToolDistance.py:672 #: appTools/ToolDistanceMin.py:330 appTools/ToolDistanceMin.py:337 #: appTools/ToolDrilling.py:2672 appTools/ToolDrilling.py:2679 #: appTools/ToolEtchCompensation.py:482 appTools/ToolEtchCompensation.py:489 -#: appTools/ToolExtractDrills.py:738 appTools/ToolExtractDrills.py:745 -#: appTools/ToolFiducials.py:956 appTools/ToolFiducials.py:963 +#: appTools/ToolExtractDrills.py:739 appTools/ToolExtractDrills.py:746 +#: appTools/ToolFiducials.py:958 appTools/ToolFiducials.py:965 #: appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 #: appTools/ToolImage.py:328 appTools/ToolImage.py:335 #: appTools/ToolInvertGerber.py:310 appTools/ToolInvertGerber.py:317 @@ -1468,7 +1470,7 @@ msgstr "Düzenlenen değer aralık dışında" #: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927 #: appTools/ToolPcbWizard.py:494 appTools/ToolPcbWizard.py:501 #: appTools/ToolPunchGerber.py:1031 appTools/ToolPunchGerber.py:1038 -#: appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935 +#: appTools/ToolQRCode.py:929 appTools/ToolQRCode.py:936 #: appTools/ToolRulesCheck.py:1663 appTools/ToolRulesCheck.py:1670 #: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588 #: appTools/ToolSub.py:778 appTools/ToolSub.py:785 @@ -1488,7 +1490,7 @@ msgstr "Veri Tabanından Kopyala" msgid "Delete from DB" msgstr "Veri Tanından Sil" -#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3386 app_Main.py:6895 +#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3309 app_Main.py:8719 msgid "Save changes" msgstr "Değişiklikleri Kaydet" @@ -1545,8 +1547,8 @@ msgstr "FlatCAM Araçlar Veri Tabanını İçe Aktar" #: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525 #: appTools/ToolIsolation.py:2583 appTools/ToolIsolation.py:2667 #: appTools/ToolNCC.py:3715 appTools/ToolNCC.py:3795 appTools/ToolPaint.py:2626 -#: appTools/ToolPaint.py:2715 app_Main.py:5682 app_Main.py:5724 -#: app_Main.py:5755 app_Main.py:5775 app_Main.py:5785 +#: appTools/ToolPaint.py:2715 app_Main.py:5605 app_Main.py:5647 +#: app_Main.py:5678 app_Main.py:5698 app_Main.py:5708 msgid "Tools Database" msgstr "Araçlar Veri Tabanı" @@ -1755,7 +1757,7 @@ msgstr "İptal edildi. Hiçbir uç/delik seçilmedi" #: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642 #: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871 #: appTools/ToolAlignObjects.py:253 appTools/ToolAlignObjects.py:275 -#: app_Main.py:4961 app_Main.py:5115 +#: app_Main.py:4884 app_Main.py:5038 msgid "Done." msgstr "Bitti." @@ -1816,7 +1818,7 @@ msgstr "" #: appEditors/AppExcEditor.py:3765 appGUI/ObjectUI.py:1082 #: appGUI/ObjectUI.py:1650 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 -#: appTools/ToolCutOut.py:2060 appTools/ToolIsolation.py:3091 +#: appTools/ToolCutOut.py:2064 appTools/ToolIsolation.py:3091 #: appTools/ToolNCC.py:3966 appTools/ToolNCC.py:3977 appTools/ToolPaint.py:2882 msgid "Tool Dia" msgstr "Uç Kalınlığı" @@ -1907,8 +1909,8 @@ msgstr "Doğrusal" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 -#: appTools/ToolExtractDrills.py:470 appTools/ToolExtractDrills.py:593 -#: appTools/ToolFiducials.py:834 appTools/ToolPunchGerber.py:746 +#: appTools/ToolExtractDrills.py:471 appTools/ToolExtractDrills.py:594 +#: appTools/ToolFiducials.py:836 appTools/ToolPunchGerber.py:746 #: appTools/ToolPunchGerber.py:886 msgid "Circular" msgstr "Dairesel" @@ -2075,7 +2077,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 -#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:398 +#: appObjects/FlatCAMObj.py:877 appTools/ToolCorners.py:399 #: appTools/ToolProperties.py:571 msgid "Length" msgstr "Uzunluk" @@ -2188,12 +2190,12 @@ msgstr "Yuvarlak" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:289 -#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:486 -#: appTools/ToolExtractDrills.py:619 appTools/ToolInvertGerber.py:257 +#: appTools/ToolDrilling.py:2588 appTools/ToolExtractDrills.py:487 +#: appTools/ToolExtractDrills.py:620 appTools/ToolInvertGerber.py:257 #: appTools/ToolIsolation.py:3430 appTools/ToolMilling.py:2264 #: appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3168 #: appTools/ToolPunchGerber.py:762 appTools/ToolPunchGerber.py:912 -#: appTools/ToolQRCode.py:788 +#: appTools/ToolQRCode.py:789 msgid "Square" msgstr "Kare" @@ -2242,8 +2244,8 @@ msgstr "Yazı Tipi" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1360 appTools/ToolCopperThieving.py:1400 -#: appTools/ToolFiducials.py:770 +#: appTools/ToolCopperThieving.py:1356 appTools/ToolCopperThieving.py:1396 +#: appTools/ToolFiducials.py:772 msgid "Size" msgstr "Boyut" @@ -2267,8 +2269,8 @@ msgstr "Metin Aracı" #: appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 #: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:329 #: appTools/ToolNCC.py:2280 appTools/ToolNCC.py:4040 appTools/ToolPaint.py:304 -#: appTools/ToolPaint.py:2940 app_Main.py:2053 app_Main.py:2312 -#: app_Main.py:2419 +#: appTools/ToolPaint.py:2940 app_Main.py:2062 app_Main.py:2321 +#: app_Main.py:2428 msgid "Tool" msgstr "Araçlar" @@ -2358,7 +2360,7 @@ msgstr "Tampon" #: appGUI/GUIElements.py:3015 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 -#: appTools/ToolDblSided.py:681 appTools/ToolDblSided.py:855 +#: appTools/ToolDblSided.py:683 appTools/ToolDblSided.py:857 #: appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 msgid "Reference" msgstr "Referans Noktası" @@ -2403,7 +2405,7 @@ msgstr "Seçim" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 -#: appTools/ToolDblSided.py:692 appTools/ToolTransform.py:557 +#: appTools/ToolDblSided.py:694 appTools/ToolTransform.py:557 msgid "Point" msgstr "Nokta" @@ -2416,10 +2418,9 @@ msgstr "Minimum" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243 -#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677 +#: appTools/ToolExtractDrills.py:557 appTools/ToolExtractDrills.py:678 #: appTools/ToolPunchGerber.py:849 appTools/ToolPunchGerber.py:965 -#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 -#: app_Main.py:10205 +#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:7781 msgid "Value" msgstr "Değer" @@ -2431,10 +2432,10 @@ msgstr "X,Y biçiminde referans noktası." #: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590 #: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 -#: appTools/ToolDblSided.py:706 appTools/ToolDblSided.py:892 +#: appTools/ToolDblSided.py:708 appTools/ToolDblSided.py:894 #: appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203 -#: appTools/ToolTransform.py:572 app_Main.py:6127 +#: appTools/ToolTransform.py:572 app_Main.py:6050 msgid "Add" msgstr "Ekle" @@ -2645,7 +2646,7 @@ msgstr "Hizala" #: appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216 -#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:787 +#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:788 #: appTools/ToolTransform.py:854 msgid "Rounded" msgstr "Yuvarlak" @@ -3135,7 +3136,7 @@ msgstr "Şekil Düzenleyici" #: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495 #: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 -#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519 +#: appTools/ToolCutOut.py:2017 appTools/ToolDblSided.py:521 #: appTools/ToolTransform.py:579 msgid "Type" msgstr "Tür" @@ -3518,7 +3519,7 @@ msgstr "Şekil Tablosuna yeni bir şekil ekler." #: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 #: appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 #: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 -#: appTools/ToolSolderPaste.py:1209 app_Main.py:6129 +#: appTools/ToolSolderPaste.py:1209 app_Main.py:6052 msgid "Delete" msgstr "Sil" @@ -3733,8 +3734,8 @@ msgstr "Dosyada şekil tanımı yok. Gerber oluşturma işlemi iptal ediliyor." #: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:164 #: appObjects/FlatCAMGeometry.py:1917 appParsers/ParseExcellon.py:972 -#: appTools/ToolPcbWizard.py:318 app_Main.py:9010 app_Main.py:9070 -#: app_Main.py:9201 app_Main.py:9266 app_Main.py:9881 +#: appTools/ToolPcbWizard.py:318 app_Main.py:7457 app_Main.py:9899 +#: app_Main.py:9959 app_Main.py:10090 app_Main.py:10155 msgid "An internal error has occurred. See shell.\n" msgstr "Dahili bir hata oluştu. Komut satırına bakın.\n" @@ -3750,7 +3751,7 @@ msgstr "Bitti. Gerber düzenlemesi tamamlandı." msgid "Cancelled. No aperture is selected" msgstr "İptal edildi. Hiçbir şekil seçilmedi" -#: appEditors/AppGerberEditor.py:4555 app_Main.py:6462 +#: appEditors/AppGerberEditor.py:4555 app_Main.py:6385 msgid "Coordinates copied to clipboard." msgstr "Koordinatlar panoya kopyalandı." @@ -3769,8 +3770,8 @@ msgstr "" "deneyin." #: appEditors/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 -#: appTools/ToolCutOut.py:895 appTools/ToolCutOut.py:1118 -#: appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663 +#: appTools/ToolCutOut.py:896 appTools/ToolCutOut.py:1119 +#: appTools/ToolCutOut.py:1267 camlib.py:4899 camlib.py:5663 msgid "Failed." msgstr "Başarısız oldu." @@ -3799,7 +3800,7 @@ msgstr "Çokgenler işaretlenmedi. Hiçbiri sınırlara uymuyor." msgid "Rotation action was not executed." msgstr "Döndürme işlemi gerçekleştirilemedi." -#: appEditors/AppGerberEditor.py:6044 app_Main.py:5885 app_Main.py:5933 +#: appEditors/AppGerberEditor.py:6044 app_Main.py:5808 app_Main.py:5856 msgid "Flip action was not executed." msgstr "Çevirme işlemi gerçekleştirilemedi." @@ -3829,7 +3830,7 @@ msgstr "Y ekseni eğim işlemi iptal edildi" #: appEditors/AppTextEditor.py:84 msgid "Find" -msgstr "" +msgstr "Bul" #: appEditors/AppTextEditor.py:86 msgid "Will search and highlight in yellow the string in the Find box." @@ -3892,10 +3893,8 @@ msgid "Will save the text in the editor into a file." msgstr "Düzenleyicideki metni bir dosyaya kaydeder." #: appEditors/AppTextEditor.py:149 -#, fuzzy -#| msgid "Round" msgid "Run" -msgstr "Yuvarlak" +msgstr "Çalıştır" #: appEditors/AppTextEditor.py:150 msgid "Will run the TCL commands found in the text file, one by one." @@ -3909,7 +3908,7 @@ msgstr "Dosyayı Aç" #: appObjects/FlatCAMCNCJob.py:1646 appObjects/FlatCAMCNCJob.py:1651 #: appObjects/FlatCAMCNCJob.py:1836 appObjects/FlatCAMCNCJob.py:1841 #: appObjects/FlatCAMCNCJob.py:1914 appObjects/FlatCAMCNCJob.py:1919 -#: appTools/ToolSolderPaste.py:1063 app_Main.py:7044 app_Main.py:7049 +#: appTools/ToolSolderPaste.py:1063 app_Main.py:6839 app_Main.py:6844 msgid "Export Code ..." msgstr "Kodu Dışa Aktar ..." @@ -3923,7 +3922,7 @@ msgstr "Böyle bir dosya ya da dizin yok" msgid "Saved to" msgstr "Şuraya kaydedildi" -#: appEditors/appGCodeEditor.py:66 app_Main.py:7905 +#: appEditors/appGCodeEditor.py:66 app_Main.py:7000 msgid "Code Editor" msgstr "Kod Düzenleyici" @@ -3951,7 +3950,7 @@ msgstr "G Kod Düzenleyicisi" #: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703 #: appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 appGUI/ObjectUI.py:2019 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1320 +#: appTools/ToolCopperThieving.py:1316 msgid "Dia" msgstr "Boyut" @@ -4042,8 +4041,8 @@ msgstr "" msgid "Save Log" msgstr "Kayıt Dosyası" -#: appGUI/GUIElements.py:3085 app_Main.py:2809 app_Main.py:3181 -#: app_Main.py:3354 +#: appGUI/GUIElements.py:3085 app_Main.py:2741 app_Main.py:3113 +#: app_Main.py:3286 msgid "Close" msgstr "Kapat" @@ -4599,7 +4598,7 @@ msgstr "Yardım" msgid "Online Help\tF1" msgstr "Çevrimiçi Yardım\tF1" -#: appGUI/MainGUI.py:527 app_Main.py:3319 app_Main.py:3328 +#: appGUI/MainGUI.py:527 app_Main.py:3251 app_Main.py:3260 msgid "Bookmarks Manager" msgstr "Yer İşaretleri Yöneticisi" @@ -4627,7 +4626,7 @@ msgstr "YouTube Kanalı\tF4" msgid "How To" msgstr "Nasıl Yapılır" -#: appGUI/MainGUI.py:551 app_Main.py:2776 +#: appGUI/MainGUI.py:551 app_Main.py:2708 msgid "About FlatCAM" msgstr "FlatCAM Hakkında" @@ -4795,47 +4794,47 @@ msgstr "Çizimi Devre Dışı Bırak" msgid "Set Color" msgstr "Rengi Ayarla" -#: appGUI/MainGUI.py:709 app_Main.py:10148 +#: appGUI/MainGUI.py:709 app_Main.py:7724 msgid "Red" msgstr "Kırmızı" -#: appGUI/MainGUI.py:712 app_Main.py:10150 +#: appGUI/MainGUI.py:712 app_Main.py:7726 msgid "Blue" msgstr "Mavi" -#: appGUI/MainGUI.py:715 app_Main.py:10153 +#: appGUI/MainGUI.py:715 app_Main.py:7729 msgid "Yellow" msgstr "Sarı" -#: appGUI/MainGUI.py:718 app_Main.py:10155 +#: appGUI/MainGUI.py:718 app_Main.py:7731 msgid "Green" msgstr "Yeşil" -#: appGUI/MainGUI.py:721 app_Main.py:10157 +#: appGUI/MainGUI.py:721 app_Main.py:7733 msgid "Purple" msgstr "Mor" -#: appGUI/MainGUI.py:724 app_Main.py:10159 +#: appGUI/MainGUI.py:724 app_Main.py:7735 msgid "Brown" msgstr "Kahverengi" -#: appGUI/MainGUI.py:727 app_Main.py:10161 app_Main.py:10220 +#: appGUI/MainGUI.py:727 app_Main.py:7737 app_Main.py:7796 msgid "White" msgstr "Beyaz" -#: appGUI/MainGUI.py:730 app_Main.py:10163 +#: appGUI/MainGUI.py:730 app_Main.py:7739 msgid "Black" msgstr "Siyah" -#: appGUI/MainGUI.py:735 app_Main.py:10166 +#: appGUI/MainGUI.py:735 app_Main.py:7742 msgid "Custom" msgstr "Özel" -#: appGUI/MainGUI.py:740 app_Main.py:10200 +#: appGUI/MainGUI.py:740 app_Main.py:7776 msgid "Opacity" msgstr "Opaklık" -#: appGUI/MainGUI.py:743 app_Main.py:10176 +#: appGUI/MainGUI.py:743 app_Main.py:7752 msgid "Default" msgstr "Varsayılan" @@ -4909,13 +4908,13 @@ msgstr "Izgara Araç Çubuğu" msgid "Status Toolbar" msgstr "Durum Araç Çubuğu" -#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7110 -#: app_Main.py:7115 +#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:8046 +#: app_Main.py:8051 msgid "Open Gerber" msgstr "Gerber'i Aç" -#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7150 -#: app_Main.py:7155 +#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:8086 +#: app_Main.py:8091 msgid "Open Excellon" msgstr "Excellon'u Aç" @@ -5000,7 +4999,7 @@ msgid "Extract Drills Tool" msgstr "Delik Çıkarma" #: appGUI/MainGUI.py:931 appGUI/MainGUI.py:2086 appGUI/ObjectUI.py:387 -#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2052 +#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2056 msgid "Cutout Tool" msgstr "PCB Kesimi" @@ -5051,17 +5050,17 @@ msgid "Calculators Tool" msgstr "Hesap Makinesi" #: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285 -#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628 +#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:629 msgid "QRCode Tool" msgstr "QR Kod" #: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1137 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1133 msgid "Copper Thieving Tool" msgstr "Bakır Dolgu" #: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281 -#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648 +#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:650 msgid "Fiducials Tool" msgstr "Referans İşaretleri" @@ -5080,7 +5079,7 @@ msgid "Invert Gerber Tool" msgstr "Gerber Polaritesi" #: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284 -#: appTools/ToolCorners.py:297 +#: appTools/ToolCorners.py:298 msgid "Corner Markers Tool" msgstr "Köşe İşaretleyici" @@ -5271,8 +5270,8 @@ msgstr "Çalışma alanındaki eksen görüntüsünü değiştirir" #: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:899 #: appGUI/preferences/PreferencesUIManager.py:992 #: appGUI/preferences/PreferencesUIManager.py:1020 -#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5585 -#: app_Main.py:5590 app_Main.py:5605 +#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5508 +#: app_Main.py:5513 app_Main.py:5528 msgid "Preferences" msgstr "Ayarlar" @@ -5308,21 +5307,21 @@ msgstr "" msgid "TCL Shell" msgstr "Komut Satırı" -#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 +#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:9017 msgid "Project" msgstr "Proje" #: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:3791 -#: appGUI/MainGUI.py:3797 app_Main.py:2480 app_Main.py:7001 +#: appGUI/MainGUI.py:3797 app_Main.py:2489 app_Main.py:8825 msgid "Plot Area" msgstr "Çalışma Alanı" -#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1169 -#: appTools/ToolCorners.py:317 appTools/ToolEtchCompensation.py:291 -#: appTools/ToolExtractDrills.py:453 appTools/ToolFiducials.py:873 +#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1165 +#: appTools/ToolCorners.py:318 appTools/ToolEtchCompensation.py:291 +#: appTools/ToolExtractDrills.py:454 appTools/ToolFiducials.py:875 #: appTools/ToolInvertGerber.py:215 appTools/ToolIsolation.py:2986 #: appTools/ToolOptimal.py:421 appTools/ToolPunchGerber.py:721 -#: appTools/ToolQRCode.py:659 appTools/ToolRulesCheck.py:1165 +#: appTools/ToolQRCode.py:660 appTools/ToolRulesCheck.py:1165 #: appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:643 msgid "GERBER" msgstr "GERBER" @@ -5410,9 +5409,9 @@ msgstr "Görünürlüğü Değiştir" #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:526 -#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:929 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2014 appTools/ToolDblSided.py:528 +#: appTools/ToolDblSided.py:769 appTools/ToolFilm.py:929 #: appTools/ToolFilm.py:952 appTools/ToolImage.py:136 appTools/ToolImage.py:191 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 @@ -5430,9 +5429,9 @@ msgstr "Şekil" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:892 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolDblSided.py:527 appTools/ToolDblSided.py:724 -#: appTools/ToolDblSided.py:766 appTools/ToolFilm.py:1207 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolDblSided.py:529 appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:768 appTools/ToolFilm.py:1207 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391 #: appTools/ToolNCC.py:805 appTools/ToolNCC.py:4323 appTools/ToolPaint.py:167 #: appTools/ToolPaint.py:3143 appTools/ToolPanelize.py:147 @@ -5510,7 +5509,7 @@ msgstr "Excellon Düzenleyici" msgid "Add Drill" msgstr "Delik Ekle" -#: appGUI/MainGUI.py:1581 app_Main.py:2291 +#: appGUI/MainGUI.py:1581 app_Main.py:2300 msgid "Close Editor" msgstr "Düzenleyiciyi Kapat" @@ -5536,8 +5535,8 @@ msgstr "Arayüz sıfırlamak istediğinizden emin misiniz?\n" #: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:931 #: appGUI/preferences/PreferencesUIManager.py:1177 appTranslation.py:111 -#: appTranslation.py:213 app_Main.py:2295 app_Main.py:3390 app_Main.py:5815 -#: app_Main.py:6899 +#: appTranslation.py:213 app_Main.py:2304 app_Main.py:3313 app_Main.py:5738 +#: app_Main.py:8723 msgid "Yes" msgstr "Evet" @@ -5549,7 +5548,7 @@ msgstr "Evet" #: appTools/ToolDrilling.py:2090 appTools/ToolIsolation.py:3066 #: appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3935 #: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 -#: app_Main.py:2296 app_Main.py:3391 app_Main.py:5816 app_Main.py:6900 +#: app_Main.py:2305 app_Main.py:3314 app_Main.py:5739 app_Main.py:8724 msgid "No" msgstr "Hayır" @@ -5638,7 +5637,7 @@ msgstr "Uç ekleme işlemi iptal edildi ..." msgid "Distance Tool exit..." msgstr "Ölçümden Çık..." -#: appGUI/MainGUI.py:3725 app_Main.py:3378 +#: appGUI/MainGUI.py:3725 app_Main.py:3301 msgid "Application is saving the project. Please wait ..." msgstr "Uygulama, projeyi kaydediyor. Lütfen bekleyin ..." @@ -5682,7 +5681,7 @@ msgstr "Gerber Oluştur" msgid "Edit Object (if selected)" msgstr "Nesneyi Düzenle (seçiliyse)" -#: appGUI/MainGUI.py:4261 app_Main.py:6115 +#: appGUI/MainGUI.py:4261 app_Main.py:6038 msgid "Grid On/Off" msgstr "Izgara AÇIK/KAPALI" @@ -5753,7 +5752,7 @@ msgstr "Gerber'i Aç" msgid "New Project" msgstr "Yeni Proje" -#: appGUI/MainGUI.py:4270 app_Main.py:7229 app_Main.py:7232 +#: appGUI/MainGUI.py:4270 app_Main.py:8166 app_Main.py:8169 msgid "Open Project" msgstr "Proje Aç" @@ -6174,7 +6173,7 @@ msgstr "Çizim Seçenekleri" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1290 +#: appTools/ToolCopperThieving.py:1286 msgid "Solid" msgstr "Dolgulu" @@ -6332,15 +6331,15 @@ msgstr "" msgid "Resulting geometry will have rounded corners." msgstr "Ortaya çıkan şeklin köşeleri yuvarlatılmış olacaktır." -#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2287 -#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444 +#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2291 +#: appTools/ToolCutOut.py:2306 appTools/ToolIsolation.py:3444 #: appTools/ToolNCC.py:4372 appTools/ToolPaint.py:3178 msgid "Generate Geometry" msgstr "Şekil Oluştur" #: appGUI/ObjectUI.py:478 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 -#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:782 +#: appTools/ToolPanelize.py:698 appTools/ToolQRCode.py:783 msgid "Bounding Box" msgstr "Sınırlayıcı Çerçeve" @@ -6487,12 +6486,12 @@ msgstr "" #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:80 #: appTools/ToolMilling.py:1779 msgid "Milling Diameter" -msgstr "Freze Çapı" +msgstr "Freze Uç Kalınlığı" #: appGUI/ObjectUI.py:792 #: appGUI/preferences/excellon/ExcellonOptPrefGroupUI.py:101 msgid "Diameter of the cutting tool." -msgstr "Kesme ucunun çapı." +msgstr "Frezeleme ucunun kalınlığı." #: appGUI/ObjectUI.py:802 msgid "Mill Drills" @@ -6669,7 +6668,7 @@ msgstr "" msgid "Add from DB" msgstr "Veri Tabanından Ekle" -#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2071 +#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2075 #: appTools/ToolIsolation.py:61 appTools/ToolIsolation.py:3122 #: appTools/ToolNCC.py:3996 appTools/ToolPaint.py:2898 msgid "Search and Add" @@ -6683,13 +6682,13 @@ msgstr "" "Araçlar Tablosuna yukarıda belirtilen\n" "kalınlıkta yeni bir uç ekleyin." -#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2083 +#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2087 #: appTools/ToolIsolation.py:65 appTools/ToolIsolation.py:3133 #: appTools/ToolNCC.py:4007 appTools/ToolPaint.py:2909 msgid "Pick from DB" msgstr "Veri Tabanından Seç" -#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2086 +#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2090 #: appTools/ToolIsolation.py:3136 appTools/ToolNCC.py:4010 #: appTools/ToolPaint.py:2912 msgid "" @@ -6782,7 +6781,7 @@ msgstr "V ucu için uç kalınlığı. Derece olarak." #: appGUI/ObjectUI.py:1216 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 -#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2107 +#: appObjects/FlatCAMGeometry.py:1375 appTools/ToolCutOut.py:2111 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -6792,7 +6791,7 @@ msgstr "Bakır yüzeyinin altında kesme derinliği (negatif)." #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 #: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 -#: appTools/ToolCutOut.py:2125 appTools/ToolDrilling.py:2164 +#: appTools/ToolCutOut.py:2129 appTools/ToolDrilling.py:2164 #: appTools/ToolMilling.py:1814 msgid "Multi-Depth" msgstr "Çoklu Geçiş" @@ -7458,12 +7457,12 @@ msgstr "" #: appGUI/ObjectUI.py:2177 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 -#: appTools/ToolCutOut.py:2324 appTools/ToolFiducials.py:801 +#: appTools/ToolCutOut.py:2328 appTools/ToolFiducials.py:803 msgid "Manual" msgstr "El İle" #: appGUI/ObjectUI.py:2178 -#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:9736 +#: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 app_Main.py:7312 msgid "Grid" msgstr "Izgara" @@ -7510,8 +7509,6 @@ msgstr "Satırlar" #: appGUI/ObjectUI.py:2218 #: appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:113 -#, fuzzy -#| msgid "The number of gird rows." msgid "The number of grid rows." msgstr "Izgara satırlarının sayısı." @@ -7787,7 +7784,7 @@ msgstr "Hizala" msgid "Align Left" msgstr "Sola Hizala" -#: appGUI/ObjectUI.py:2860 app_Main.py:4999 +#: appGUI/ObjectUI.py:2860 app_Main.py:4922 msgid "Center" msgstr "Ortala" @@ -7880,7 +7877,7 @@ msgid "Preferences default values are restored." msgstr "Varsayılan ayarlar geri yüklendi." #: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 -#: app_Main.py:2696 +#: app_Main.py:9396 msgid "Failed to write defaults to file." msgstr "Varsayılan değerler dosyaya yazılamadı." @@ -7929,10 +7926,10 @@ msgstr "CNC İş Gelişmiş Seçenekleri" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 -#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1188 -#: appTools/ToolCorners.py:377 appTools/ToolEtchCompensation.py:356 -#: appTools/ToolFiducials.py:763 appTools/ToolInvertGerber.py:228 -#: appTools/ToolQRCode.py:695 +#: appTools/ToolCalibration.py:762 appTools/ToolCopperThieving.py:1184 +#: appTools/ToolCorners.py:378 appTools/ToolEtchCompensation.py:356 +#: appTools/ToolFiducials.py:765 appTools/ToolInvertGerber.py:228 +#: appTools/ToolQRCode.py:696 msgid "Parameters" msgstr "Seçenekler" @@ -8047,7 +8044,7 @@ msgid "G-code Decimals" msgstr "G-Kod'u Ondalık Sayıları" #: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:682 +#: appTools/ToolFiducials.py:684 msgid "Coordinates" msgstr "Koordinatlar" @@ -8613,16 +8610,6 @@ msgid "Algorithm:" msgstr "Algoritma:" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:215 -#, fuzzy -#| 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" -#| "Some options are disabled when FlatCAM works in 32bit mode." msgid "" "This sets the optimization type for the Excellon drill path.\n" "If <> is checked then Google OR-Tools algorithm with\n" @@ -8703,16 +8690,12 @@ msgstr "Birleştirme Aracı" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:260 #: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:143 -#, fuzzy -#| msgid "" -#| "When checked the joined (merged) object tools\n" -#| "will be merged also but only if they share some of their attributes." msgid "" "When checked, the tools will be merged\n" "but only if they share some of their attributes." msgstr "" -"İşaretlendiğinde, birleştirilmiş nesne araçları, \n" -"ancak bazı özelliklerini paylaşıyorlarsa birleştirilecektir." +"İşaretlendiğinde, araçlar birleştirilir, \n" +"ancak yalnızca bazı özelliklerini paylaşırlarsa." #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:277 #: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:160 @@ -8804,7 +8787,7 @@ msgstr "Uygulama Ayarları" msgid "Grid Settings" msgstr "Izgara Ayarları" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:9744 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:7320 msgid "X value" msgstr "X Değeri" @@ -8812,7 +8795,7 @@ msgstr "X Değeri" msgid "This is the Grid snap value on X axis." msgstr "Bu, X ekseni ızgarası ek değeridir." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:9747 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:7323 msgid "Y value" msgstr "Y Değeri" @@ -8859,14 +8842,14 @@ msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 -#: appTools/ToolFilm.py:1274 app_Main.py:9764 +#: appTools/ToolFilm.py:1274 app_Main.py:7340 msgid "Portrait" msgstr "Dikey" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 -#: appTools/ToolFilm.py:1275 app_Main.py:9766 +#: appTools/ToolFilm.py:1275 app_Main.py:7342 msgid "Landscape" msgstr "Yatay" @@ -8884,7 +8867,7 @@ msgstr "" "daraltılabilir alanın yazı tipi boyutunu ayarlar." #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 -#: appTools/ToolDblSided.py:666 appTools/ToolDblSided.py:838 app_Main.py:9752 +#: appTools/ToolDblSided.py:668 appTools/ToolDblSided.py:840 app_Main.py:7328 msgid "Axis" msgstr "Eksen" @@ -8907,7 +8890,7 @@ msgstr "" "metin giriş alanlarının (Uzantı, Dizin Listesi, vb.) \n" "yazı tipi boyutunu ayarlar." -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:9769 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:7345 msgid "HUD" msgstr "HUD (Koordinat Ekranı)" @@ -9033,18 +9016,13 @@ msgid "Allow Edit" msgstr "Düzenlemeye İzin Ver" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:389 -#, fuzzy -#| msgid "" -#| "When cheched, the user can edit the objects in the Project Tab\n" -#| "by using the left mouse button click on the object name.\n" -#| "Active after restart." msgid "" "When checked, the user can edit the object names in the Project Tab\n" "by clicking on the object name. Active after restart." msgstr "" -"Aktifleştirildiğinde, kullanıcı, nesne adına fare sol düğmesini \n" -"kullanarak Proje Sekmesindeki nesneleri düzenleyebilir. Değişiklik, \n" -"uygulama yeniden başlattıktan sonra aktif olacaktır." +"Aktifleştirildiğinde, kullanıcı, nesne adına sol tıklayarak\n" +"Proje Sekmesindeki nesneleri düzenleyebilir.\n" +"Değişiklik, uygulama yeniden başlattıktan sonra aktif olacaktır." #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:395 msgid "\"Open\" behavior" @@ -9296,7 +9274,7 @@ msgstr "" #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:181 msgid "Show Project" -msgstr "Proje Sekmesini Göster" +msgstr "Yan Paneli Göster" #: appGUI/preferences/general/GeneralAppPrefGroupUI.py:183 msgid "" @@ -9861,16 +9839,6 @@ msgstr "" "İzin verilen değerler: 0.3, 1.0" #: appGUI/preferences/geometry/GeometryGenPrefGroupUI.py:96 -#, fuzzy -#| msgid "" -#| "This sets the path optimization algorithm.\n" -#| "- Rtre -> Rtree algorithm\n" -#| "- MetaHeuristic -> Google OR-Tools algorithm with\n" -#| "MetaHeuristic Guided Local Path is used. Default search time is 3sec.\n" -#| "- Basic -> Using Google OR-Tools Basic algorithm\n" -#| "- TSA -> Using Travelling Salesman algorithm\n" -#| "\n" -#| "Some options are disabled when FlatCAM works in 32bit mode." msgid "" "This sets the path optimization algorithm.\n" "- Rtre -> Rtree algorithm\n" @@ -9962,8 +9930,8 @@ msgid "\"Follow\"" msgstr "\"Takip Et\"" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 -#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:579 -#: appTools/ToolCopperThieving.py:776 appTools/ToolCopperThieving.py:788 +#: appObjects/FlatCAMGerber.py:370 appTools/ToolCopperThieving.py:578 +#: appTools/ToolCopperThieving.py:775 appTools/ToolCopperThieving.py:787 #: appTools/ToolIsolation.py:1353 appTools/ToolNCC.py:1793 #: appTools/ToolNCC.py:1820 appTools/ToolNCC.py:1928 appTools/ToolNCC.py:1941 #: appTools/ToolNCC.py:2845 appTools/ToolNCC.py:2950 appTools/ToolNCC.py:2965 @@ -9992,7 +9960,7 @@ msgstr "" #: appObjects/FlatCAMObj.py:755 appObjects/FlatCAMObj.py:758 #: appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 #: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 -#: appTools/ToolFiducials.py:815 appTools/ToolFilm.py:1102 +#: appTools/ToolFiducials.py:817 appTools/ToolFilm.py:1102 #: appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -10272,7 +10240,7 @@ msgstr "Daireleri eklemek için kullanılan adım (satır) sayısı." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1195 appTools/ToolCopperThieving.py:1530 +#: appTools/ToolCopperThieving.py:1191 appTools/ToolCopperThieving.py:1526 msgid "Clearance" msgstr "Aralık" @@ -10285,7 +10253,7 @@ msgstr "Bu seçim bakır dolgu ile yollar arasındaki mesafeyi ayarlar." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appTools/ToolCopperThieving.py:1224 appTools/ToolNCC.py:1351 +#: appTools/ToolCopperThieving.py:1220 appTools/ToolNCC.py:1351 #: appTools/ToolNCC.py:1667 appTools/ToolNCC.py:1731 appTools/ToolNCC.py:2709 #: appTools/ToolNCC.py:2718 appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4436 #: defaults.py:478 tclCommands/TclCommandCopperClear.py:190 @@ -10296,7 +10264,7 @@ msgstr "Tamamı" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1225 appTools/ToolIsolation.py:819 +#: appTools/ToolCopperThieving.py:1221 appTools/ToolIsolation.py:819 #: appTools/ToolIsolation.py:1435 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1365 appTools/ToolNCC.py:1683 appTools/ToolNCC.py:1738 #: appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4446 appTools/ToolPaint.py:1061 @@ -10308,7 +10276,7 @@ msgstr "Alan" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 -#: appTools/ToolCopperThieving.py:1226 appTools/ToolDblSided.py:757 +#: appTools/ToolCopperThieving.py:1222 appTools/ToolDblSided.py:759 #: appTools/ToolIsolation.py:1475 appTools/ToolIsolation.py:3378 #: appTools/ToolNCC.py:1384 appTools/ToolNCC.py:1689 appTools/ToolNCC.py:1746 #: appTools/ToolNCC.py:2124 appTools/ToolNCC.py:2358 appTools/ToolNCC.py:2754 @@ -10319,7 +10287,7 @@ msgid "Reference Object" msgstr "Nesne" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1224 msgid "Reference:" msgstr "Seçim Şekli:" @@ -10341,24 +10309,24 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1270 appTools/ToolExtractDrills.py:494 -#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:770 +#: appTools/ToolCopperThieving.py:1266 appTools/ToolExtractDrills.py:495 +#: appTools/ToolExtractDrills.py:633 appTools/ToolPunchGerber.py:770 #: appTools/ToolPunchGerber.py:925 msgid "Rectangular" msgstr "Dikdörtgensel" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1271 +#: appTools/ToolCopperThieving.py:1267 msgid "Minimal" msgstr "Dairesel" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1273 appTools/ToolFilm.py:954 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolFilm.py:954 msgid "Box Type:" msgstr "Çerçeve Tipi:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1275 +#: appTools/ToolCopperThieving.py:1271 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." @@ -10367,27 +10335,27 @@ msgstr "" "- 'Dairesel' - Sınırlayıcı kutu dairesel şekilde olacaktır." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1291 +#: appTools/ToolCopperThieving.py:1287 msgid "Dots Grid" msgstr "Nokta Deseni" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1292 +#: appTools/ToolCopperThieving.py:1288 msgid "Squares Grid" msgstr "Kare Deseni" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1293 +#: appTools/ToolCopperThieving.py:1289 msgid "Lines Grid" msgstr "Çizgi Deseni" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1295 +#: appTools/ToolCopperThieving.py:1291 msgid "Fill Type:" msgstr "Dolgu Tipi:" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1297 +#: appTools/ToolCopperThieving.py:1293 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -10400,57 +10368,57 @@ msgstr "" "- 'Çizgi Deseni' - Boş alan çizgi deseni ile doldurulacaktır." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1316 +#: appTools/ToolCopperThieving.py:1312 msgid "Dots Grid Parameters" msgstr "Nokta Desenli Dolgu Seçenekleri" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1322 +#: appTools/ToolCopperThieving.py:1318 msgid "Dot diameter in Dots Grid." msgstr "Nokta desenli dolguda nokta boyutu." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1335 +#: appTools/ToolCopperThieving.py:1331 msgid "Distance between each two dots in Dots Grid." msgstr "Nokta desenli dolguda her iki nokta arasındaki mesafe." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1356 +#: appTools/ToolCopperThieving.py:1352 msgid "Squares Grid Parameters" msgstr "Kare Desenli Dolgu Seçenekleri" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1362 +#: appTools/ToolCopperThieving.py:1358 msgid "Square side size in Squares Grid." msgstr "Kare desenli dolguda kare boyutu." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1375 +#: appTools/ToolCopperThieving.py:1371 msgid "Distance between each two squares in Squares Grid." msgstr "Kare desenli dolguda her iki kare arasındaki mesafe." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1396 +#: appTools/ToolCopperThieving.py:1392 msgid "Lines Grid Parameters" msgstr "Çizgi Desenli Dolgu Seçenekleri" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1402 +#: appTools/ToolCopperThieving.py:1398 msgid "Line thickness size in Lines Grid." msgstr "Çizgi desenli ızgarada çizgi kalınlığı boyutu." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1415 +#: appTools/ToolCopperThieving.py:1411 msgid "Distance between each two lines in Lines Grid." msgstr "Çizgi desenli ızgarada her iki çizgi arasındaki mesafe." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1453 +#: appTools/ToolCopperThieving.py:1449 msgid "Robber Bar Parameters" msgstr "Soyguncu Çubuğu Seçenekleri" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1455 +#: appTools/ToolCopperThieving.py:1451 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." @@ -10460,7 +10428,7 @@ msgstr "" "için bakır kenarlık (çerçeve)" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1463 +#: appTools/ToolCopperThieving.py:1459 msgid "Bounding box margin for robber bar." msgstr "" "Soyguncu çubuğu çerçevesi ile PCB sınırı arasındaki boşluk.\n" @@ -10469,13 +10437,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCopperThieving.py:1474 appTools/ToolCorners.py:384 +#: appTools/ToolCopperThieving.py:1470 appTools/ToolCorners.py:385 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "Kalınlık" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1476 +#: appTools/ToolCopperThieving.py:1472 msgid "The robber bar thickness." msgstr "" "Soyguncu çubuğunun kalınlığı.\n" @@ -10483,17 +10451,17 @@ msgstr "" "kolaylaştırmak için bakır kenarlık (çerçeve))." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1507 +#: appTools/ToolCopperThieving.py:1503 msgid "Pattern Plating Mask" msgstr "Desen Kaplama Maskesi" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1509 +#: appTools/ToolCopperThieving.py:1505 msgid "Generate a mask for pattern plating." msgstr "Desen kaplama için bir maske oluşturun." #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1532 +#: appTools/ToolCopperThieving.py:1528 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -10512,8 +10480,8 @@ msgstr "Kalibrasyon Seçenekleri" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1190 appTools/ToolCorners.py:379 -#: appTools/ToolFiducials.py:765 +#: appTools/ToolCopperThieving.py:1186 appTools/ToolCorners.py:380 +#: appTools/ToolFiducials.py:767 msgid "Parameters used for this tool." msgstr "Referans işareti için kullanılan seçenekler." @@ -10604,12 +10572,12 @@ msgstr "" "- Sağ Alt -> Kullanıcı PCB'yi yatay olarak hizalayacaktır" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 -#: appTools/ToolCalibration.py:854 app_Main.py:4996 +#: appTools/ToolCalibration.py:854 app_Main.py:4919 msgid "Top-Left" msgstr "Sol Üst" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 -#: appTools/ToolCalibration.py:855 app_Main.py:4997 +#: appTools/ToolCalibration.py:855 app_Main.py:4920 msgid "Bottom-Right" msgstr "Sağ Alt" @@ -10619,13 +10587,13 @@ msgstr "Delik Çıkarma Seçenekleri" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:732 +#: appTools/ToolExtractDrills.py:461 appTools/ToolPunchGerber.py:732 msgid "Processed Pads Type" msgstr "Ped İşleme Tipi" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:734 +#: appTools/ToolExtractDrills.py:463 appTools/ToolPunchGerber.py:734 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -10637,7 +10605,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:748 +#: appTools/ToolExtractDrills.py:473 appTools/ToolPunchGerber.py:748 msgid "Process Circular Pads." msgstr "Dairesel pedlerin işlenmesi." @@ -10645,26 +10613,26 @@ msgstr "Dairesel pedlerin işlenmesi." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606 +#: appTools/ToolExtractDrills.py:479 appTools/ToolExtractDrills.py:607 #: appTools/ToolPunchGerber.py:754 appTools/ToolPunchGerber.py:899 msgid "Oblong" msgstr "Dikdörtgen" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:756 +#: appTools/ToolExtractDrills.py:481 appTools/ToolPunchGerber.py:756 msgid "Process Oblong Pads." msgstr "Dikdörtgen pedlerin işlenmesi." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:764 +#: appTools/ToolExtractDrills.py:489 appTools/ToolPunchGerber.py:764 msgid "Process Square Pads." msgstr "Kare pedlerin işlenmesi." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:772 +#: appTools/ToolExtractDrills.py:497 appTools/ToolPunchGerber.py:772 msgid "Process Rectangular Pads." msgstr "Dikdörtgensel pedlerin işlenmesi." @@ -10672,15 +10640,15 @@ msgstr "Dikdörtgensel pedlerin işlenmesi." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 -#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:502 -#: appTools/ToolExtractDrills.py:645 appTools/ToolProperties.py:171 +#: appObjects/FlatCAMObj.py:505 appTools/ToolExtractDrills.py:503 +#: appTools/ToolExtractDrills.py:646 appTools/ToolProperties.py:171 #: appTools/ToolPunchGerber.py:778 appTools/ToolPunchGerber.py:938 msgid "Others" msgstr "Diğerleri" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:780 +#: appTools/ToolExtractDrills.py:505 appTools/ToolPunchGerber.py:780 msgid "Process pads not in the categories above." msgstr "Yukarıdaki kategorilerle ilgili olmayan yerler." @@ -10688,7 +10656,7 @@ msgstr "Yukarıdaki kategorilerle ilgili olmayan yerler." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548 +#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:549 #: appTools/ToolPunchGerber.py:807 appTools/ToolPunchGerber.py:841 msgid "Fixed Diameter" msgstr "Sabit Boyut" @@ -10697,19 +10665,19 @@ msgstr "Sabit Boyut" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584 +#: appTools/ToolExtractDrills.py:533 appTools/ToolExtractDrills.py:585 #: appTools/ToolPunchGerber.py:808 appTools/ToolPunchGerber.py:871 msgid "Fixed Annular Ring" msgstr "Sabit Halka" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:809 +#: appTools/ToolExtractDrills.py:534 appTools/ToolPunchGerber.py:809 msgid "Proportional" msgstr "Orantılı" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: appTools/ToolExtractDrills.py:522 +#: appTools/ToolExtractDrills.py:523 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -10723,13 +10691,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:851 +#: appTools/ToolExtractDrills.py:559 appTools/ToolPunchGerber.py:851 msgid "Fixed hole diameter." msgstr "Sabit delik boyutu." #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: appTools/ToolExtractDrills.py:586 appTools/ToolPunchGerber.py:873 +#: appTools/ToolExtractDrills.py:587 appTools/ToolPunchGerber.py:873 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -10740,7 +10708,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:888 +#: appTools/ToolExtractDrills.py:596 appTools/ToolPunchGerber.py:888 msgid "The size of annular ring for circular pads." msgstr "" "Dairesel pedler için delik ile ped sınırı\n" @@ -10748,7 +10716,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: appTools/ToolExtractDrills.py:608 appTools/ToolPunchGerber.py:901 +#: appTools/ToolExtractDrills.py:609 appTools/ToolPunchGerber.py:901 msgid "The size of annular ring for oblong pads." msgstr "" "Dikdörtgen pedler için delik ile ped sınırı \n" @@ -10756,7 +10724,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: appTools/ToolExtractDrills.py:621 appTools/ToolPunchGerber.py:914 +#: appTools/ToolExtractDrills.py:622 appTools/ToolPunchGerber.py:914 msgid "The size of annular ring for square pads." msgstr "" "Kare pedler için delik ile ped sınırı\n" @@ -10764,7 +10732,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: appTools/ToolExtractDrills.py:634 appTools/ToolPunchGerber.py:927 +#: appTools/ToolExtractDrills.py:635 appTools/ToolPunchGerber.py:927 msgid "The size of annular ring for rectangular pads." msgstr "" "Dikdörtgensel pedler için delik ile ped sınırı\n" @@ -10772,7 +10740,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: appTools/ToolExtractDrills.py:647 appTools/ToolPunchGerber.py:940 +#: appTools/ToolExtractDrills.py:648 appTools/ToolPunchGerber.py:940 msgid "The size of annular ring for other pads." msgstr "" "Diğer pedler için delik ile ped sınırı\n" @@ -10780,7 +10748,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: appTools/ToolExtractDrills.py:668 appTools/ToolPunchGerber.py:956 +#: appTools/ToolExtractDrills.py:669 appTools/ToolPunchGerber.py:956 msgid "Proportional Diameter" msgstr "Oransal Boyut" @@ -10791,7 +10759,7 @@ msgstr "Değer" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:967 +#: appTools/ToolExtractDrills.py:680 appTools/ToolPunchGerber.py:967 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -10804,7 +10772,7 @@ msgid "Fiducials Tool Options" msgstr "Referans İşaretleri Seçenekleri" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 -#: appTools/ToolFiducials.py:772 +#: appTools/ToolFiducials.py:774 msgid "" "This set the fiducial diameter if fiducial type is circular,\n" "otherwise is the size of the fiducial.\n" @@ -10815,12 +10783,12 @@ msgstr "" "boyutu lehim maskesinin iki katıdır." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 -#: appTools/ToolFiducials.py:800 +#: appTools/ToolFiducials.py:802 msgid "Auto" msgstr "Otomatik" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 -#: appTools/ToolFiducials.py:803 +#: appTools/ToolFiducials.py:805 msgid "Mode:" msgstr "Yöntem:" @@ -10835,22 +10803,22 @@ msgstr "" "- 'El İle' - Referans işaretlerinin el ile yerleştirilmesi." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 -#: appTools/ToolFiducials.py:813 +#: appTools/ToolFiducials.py:815 msgid "Up" msgstr "Üst" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 -#: appTools/ToolFiducials.py:814 +#: appTools/ToolFiducials.py:816 msgid "Down" msgstr "Alt" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 -#: appTools/ToolFiducials.py:817 +#: appTools/ToolFiducials.py:819 msgid "Second fiducial" msgstr "İkinci Referans İşareti" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 -#: appTools/ToolFiducials.py:819 +#: appTools/ToolFiducials.py:821 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -10863,22 +10831,22 @@ msgstr "" "- 'Yok' - İkinci bir referans işareti yoktur. Sıra: sol-alt, sağ-üst." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 -#: appTools/ToolFiducials.py:835 +#: appTools/ToolFiducials.py:837 msgid "Cross" msgstr "Çapraz" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 -#: appTools/ToolFiducials.py:836 +#: appTools/ToolFiducials.py:838 msgid "Chess" msgstr "Satranç" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 -#: appTools/ToolFiducials.py:838 +#: appTools/ToolFiducials.py:840 msgid "Fiducial Type" msgstr "Referans İşareti Tipi" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 -#: appTools/ToolFiducials.py:840 +#: appTools/ToolFiducials.py:842 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -10891,7 +10859,7 @@ msgstr "" "- 'Satranç' - Satranç tahtası deseninde noktalar." #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 -#: appTools/ToolFiducials.py:849 +#: appTools/ToolFiducials.py:851 msgid "Line thickness" msgstr "Çizgi Kalınlığı" @@ -10998,12 +10966,12 @@ msgstr "" "aktarılabilen bir QR Kodu oluşturmak için bir araç." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 -#: appTools/ToolQRCode.py:702 app_Main.py:9732 +#: appTools/ToolQRCode.py:703 app_Main.py:7308 msgid "Version" msgstr "Versiyon" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 -#: appTools/ToolQRCode.py:704 +#: appTools/ToolQRCode.py:705 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." @@ -11012,13 +10980,13 @@ msgstr "" "40 (177x177 kare) arasında değerlere sahip olabilir." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 -#: appTools/ToolQRCode.py:715 +#: appTools/ToolQRCode.py:716 msgid "Error correction" msgstr "Hata Düzeltme" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 -#: appTools/ToolQRCode.py:717 appTools/ToolQRCode.py:728 +#: appTools/ToolQRCode.py:718 appTools/ToolQRCode.py:729 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -11034,12 +11002,12 @@ msgstr "" "H = En fazla %% 30 hataları düzeltilebilir." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 -#: appTools/ToolQRCode.py:738 +#: appTools/ToolQRCode.py:739 msgid "Box Size" msgstr "Kare Boyutu" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 -#: appTools/ToolQRCode.py:740 +#: appTools/ToolQRCode.py:741 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." @@ -11048,12 +11016,12 @@ msgstr "" "QR Kod'un genel boyutunu kontrol eder." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 -#: appTools/ToolQRCode.py:751 +#: appTools/ToolQRCode.py:752 msgid "Border Size" msgstr "Kenarlık boyutu" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 -#: appTools/ToolQRCode.py:753 +#: appTools/ToolQRCode.py:754 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." @@ -11062,27 +11030,27 @@ msgstr "" "QR Kodu etrafındaki boşluk genişliği. Varsayılan değer 4'tür." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 -#: appTools/ToolQRCode.py:673 +#: appTools/ToolQRCode.py:674 msgid "QRCode Data" msgstr "QR Kod Verileri" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 -#: appTools/ToolQRCode.py:675 +#: appTools/ToolQRCode.py:676 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "QR Kod verileri. QR Kod'a kodlanacak metin." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 -#: appTools/ToolQRCode.py:679 +#: appTools/ToolQRCode.py:680 msgid "Add here the text to be included in the QRCode..." msgstr "QR Kod'a eklenecek metni buraya girin ..." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 -#: appTools/ToolQRCode.py:764 +#: appTools/ToolQRCode.py:765 msgid "Polarity" msgstr "Polarite" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 -#: appTools/ToolQRCode.py:766 +#: appTools/ToolQRCode.py:767 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -11093,17 +11061,17 @@ msgstr "" "Pozitif seçildiğinde QR Kod'u oluşturan kareler opaktır." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 -#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:770 +#: appTools/ToolFilm.py:1144 appTools/ToolQRCode.py:771 msgid "Negative" msgstr "Negatif" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 -#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:771 +#: appTools/ToolFilm.py:1143 appTools/ToolQRCode.py:772 msgid "Positive" msgstr "Pozitif" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 -#: appTools/ToolQRCode.py:773 +#: appTools/ToolQRCode.py:774 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -11117,7 +11085,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 -#: appTools/ToolQRCode.py:784 appTools/ToolQRCode.py:790 +#: appTools/ToolQRCode.py:785 appTools/ToolQRCode.py:791 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." @@ -11126,22 +11094,22 @@ msgstr "" "yuvarlak veya kare şekle sahip olabilir." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 -#: appTools/ToolQRCode.py:818 +#: appTools/ToolQRCode.py:819 msgid "Fill Color" msgstr "Dolgu Rengi" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 -#: appTools/ToolQRCode.py:820 +#: appTools/ToolQRCode.py:821 msgid "Set the QRCode fill color (squares color)." msgstr "QR Kod dolgusunun rengini (karelerin rengi) ayarlar." #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 -#: appTools/ToolQRCode.py:842 +#: appTools/ToolQRCode.py:843 msgid "Back Color" msgstr "Arka Plan Rengi" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 -#: appTools/ToolQRCode.py:844 +#: appTools/ToolQRCode.py:845 msgid "Set the QRCode background color." msgstr "QR Kod'un arka plan rengini ayarlar." @@ -11372,7 +11340,7 @@ msgid "Drill dia" msgstr "Delik Genişliği" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 -#: appTools/ToolDblSided.py:824 appTools/ToolDblSided.py:829 +#: appTools/ToolDblSided.py:826 appTools/ToolDblSided.py:831 msgid "Diameter of the drill for the alignment holes." msgstr "Hizalama delikleri için delik genişliği." @@ -11382,7 +11350,7 @@ msgstr "Ekseni Hizala" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 -#: appTools/ToolDblSided.py:667 appTools/ToolDblSided.py:840 +#: appTools/ToolDblSided.py:669 appTools/ToolDblSided.py:842 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "Dikey (X) veya yatay (Y) tersleyin." @@ -11391,12 +11359,12 @@ msgid "Mirror Axis:" msgstr "Tersleme Ekseni:" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 -#: appTools/ToolDblSided.py:693 +#: appTools/ToolDblSided.py:695 msgid "Box" msgstr "Çerçeve" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 -#: appTools/ToolDblSided.py:694 +#: appTools/ToolDblSided.py:696 msgid "Hole Snap" msgstr "Deliğe Tuttur" @@ -11544,12 +11512,12 @@ msgid "Corner Markers Options" msgstr "Köşe İşaretleyici Seçenekleri" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 -#: appTools/ToolCorners.py:386 +#: appTools/ToolCorners.py:387 msgid "The thickness of the line that makes the corner marker." msgstr "Köşe işaretleyici çizgisinin kalınlığı." #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 -#: appTools/ToolCorners.py:400 +#: appTools/ToolCorners.py:401 msgid "The length of the line that makes the corner marker." msgstr "Köşe işaretleyici çizgisinin uzunluğu." @@ -11565,7 +11533,7 @@ msgid "" msgstr "PCB'yi kesmek ve iş parçasından ayırmak." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 -#: appTools/ToolCutOut.py:2062 +#: appTools/ToolCutOut.py:2066 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -11578,7 +11546,7 @@ msgid "Object kind" msgstr "Nesne Şekli" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 -#: appTools/ToolCutOut.py:1995 +#: appTools/ToolCutOut.py:1999 msgid "" "Choice of what kind the object we want to cutout is.
    - Single: " "contain a single PCB Gerber outline object.
    - Panel: a panel PCB " @@ -11590,12 +11558,12 @@ msgstr "" "dosyasında oluşturulan PCB’nin panelleştirilmesi." #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 -#: appTools/ToolCutOut.py:2001 +#: appTools/ToolCutOut.py:2005 msgid "Single" msgstr "Tekli" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 -#: appTools/ToolCutOut.py:2002 +#: appTools/ToolCutOut.py:2006 msgid "Panel" msgstr "Panel" @@ -11624,12 +11592,12 @@ msgstr "" "- 8-->2*sol + 2*sağ +2*üst + 2*alt" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 -#: appTools/ToolCutOut.py:2333 +#: appTools/ToolCutOut.py:2337 msgid "Big cursor" msgstr "Büyük İmleç" #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 -#: appTools/ToolCutOut.py:2335 +#: appTools/ToolCutOut.py:2339 msgid "Use a big cursor when adding manual gaps." msgstr "Geçitleri el ile eklerken büyük bir imleç kullanın." @@ -11891,18 +11859,18 @@ msgstr "" "Şekil sınırlama kutusunun dört noktasından biri olabilir." #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 -#: appTools/ToolCorners.py:342 appTools/ToolFiducials.py:694 +#: appTools/ToolCorners.py:343 appTools/ToolFiducials.py:696 #: appTools/ToolFilm.py:1065 msgid "Bottom Left" msgstr "Sol Alt" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 -#: appTools/ToolCorners.py:350 appTools/ToolFilm.py:1066 +#: appTools/ToolCorners.py:351 appTools/ToolFilm.py:1066 msgid "Top Left" msgstr "Sol Üst" #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 -#: appTools/ToolCorners.py:346 appTools/ToolFilm.py:1067 +#: appTools/ToolCorners.py:347 appTools/ToolFilm.py:1067 msgid "Bottom Right" msgstr "Sağ Alt" @@ -12183,9 +12151,9 @@ msgstr "Sıralı" #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 #: appObjects/AppObject.py:453 appObjects/FlatCAMObj.py:266 #: appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1044 -#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530 -#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:463 app_Main.py:4682 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCorners.py:264 appTools/ToolFiducials.py:532 +#: appTools/ToolMove.py:229 appTools/ToolQRCode.py:464 app_Main.py:4605 msgid "Plotting" msgstr "Çiziliyor" @@ -12377,9 +12345,9 @@ msgstr "İstenen panelin satır sayısı" #: appTools/ToolCalibration.py:163 appTools/ToolCalibration.py:171 #: appTools/ToolCalibration.py:891 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2009 appTools/ToolDblSided.py:525 -#: appTools/ToolDblSided.py:765 appTools/ToolFilm.py:928 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:527 +#: appTools/ToolDblSided.py:767 appTools/ToolFilm.py:928 #: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 #: appTools/ToolIsolation.py:3339 appTools/ToolIsolation.py:3391 @@ -12413,12 +12381,6 @@ msgstr "" #: appGUI/preferences/tools/ToolsPanelizePrefGroupUI.py:112 #: appTools/ToolPanelize.py:823 -#, fuzzy -#| msgid "" -#| "Active only for Geometry panel type.\n" -#| "When checked the application will find\n" -#| "any two overlapping Line elements in the panel\n" -#| "and remove the overlapping parts, keeping only one of them." msgid "" "Active only for Geometry panel type.\n" "When checked the application will find\n" @@ -13007,7 +12969,7 @@ msgid "Export cancelled ..." msgstr "Dışarı aktarma iptal edildi ..." #: appObjects/FlatCAMCNCJob.py:1678 appObjects/FlatCAMCNCJob.py:1965 -#: appObjects/FlatCAMScript.py:134 app_Main.py:7830 +#: appObjects/FlatCAMScript.py:134 app_Main.py:6925 msgid "Loading..." msgstr "Yükleniyor..." @@ -13140,7 +13102,7 @@ msgstr "Araç Veri Tabanından Ekle" #: appTools/ToolDrilling.py:1021 appTools/ToolIsolation.py:639 #: appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744 #: appTools/ToolMilling.py:779 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 -#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2194 +#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2203 msgid "No Tool Selected" msgstr "Hiçbir Araç Seçilmedi" @@ -13447,7 +13409,7 @@ msgstr "Nesne {old} 'den {new} olarak yeniden adlandırıldı" #: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939 #: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951 #: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 -#: app_Main.py:6707 app_Main.py:6713 app_Main.py:6719 app_Main.py:6725 +#: app_Main.py:6630 app_Main.py:6636 app_Main.py:6642 app_Main.py:6648 msgid "selected" msgstr "seçildi" @@ -13614,7 +13576,7 @@ msgid "Click on the START point." msgstr "BAŞLANGIÇ noktasına tıklayın." #: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276 -#: appTools/ToolDblSided.py:285 +#: appTools/ToolDblSided.py:287 msgid "Cancelled by user request." msgstr "Kullanıcı isteği ile iptal edildi." @@ -13628,7 +13590,7 @@ msgid "Or right click to cancel." msgstr "Veya iptal etmek için sağ tıklayın." #: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267 -#: appTools/ToolFiducials.py:718 +#: appTools/ToolFiducials.py:720 msgid "Second Point" msgstr "İkinci Nokta" @@ -13711,32 +13673,32 @@ msgstr "" "Eğer iki nokta seçilirse, iki noktaya göre hizalama yapar." #: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1583 -#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394 -#: appTools/ToolDblSided.py:938 appTools/ToolDrilling.py:2649 -#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:702 -#: appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCorners.py:445 appTools/ToolCutOut.py:2398 +#: appTools/ToolDblSided.py:940 appTools/ToolDrilling.py:2649 +#: appTools/ToolEtchCompensation.py:458 appTools/ToolExtractDrills.py:703 +#: appTools/ToolFiducials.py:934 appTools/ToolFilm.py:1383 #: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477 #: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4388 #: appTools/ToolOptimal.py:593 appTools/ToolPaint.py:3194 #: appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:996 -#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1620 +#: appTools/ToolQRCode.py:905 appTools/ToolRulesCheck.py:1620 #: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:754 #: appTools/ToolTransform.py:920 msgid "Reset Tool" msgstr "Verileri Sıfırla" #: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1586 -#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397 -#: appTools/ToolDblSided.py:941 appTools/ToolDrilling.py:2652 -#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:705 -#: appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1582 +#: appTools/ToolCorners.py:448 appTools/ToolCutOut.py:2401 +#: appTools/ToolDblSided.py:943 appTools/ToolDrilling.py:2652 +#: appTools/ToolEtchCompensation.py:461 appTools/ToolExtractDrills.py:706 +#: appTools/ToolFiducials.py:937 appTools/ToolFilm.py:1386 #: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480 #: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4391 #: appTools/ToolOptimal.py:596 appTools/ToolPaint.py:3197 #: appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:999 -#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1623 +#: appTools/ToolQRCode.py:908 appTools/ToolRulesCheck.py:1623 #: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:757 #: appTools/ToolTransform.py:923 msgid "Will reset the tool parameters." @@ -14144,30 +14106,30 @@ msgstr "Nokta Desenli dolgu seçildi." msgid "Squares grid fill selected." msgstr "Kare Desenli dolgu seçildi." -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308 -#: appTools/ToolCopperThieving.py:916 appTools/ToolCorners.py:120 -#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141 +#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:307 +#: appTools/ToolCopperThieving.py:914 appTools/ToolCorners.py:120 +#: appTools/ToolDblSided.py:306 appTools/ToolExtractDrills.py:141 #: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464 #: appTools/ToolOptimal.py:138 appTools/ToolPunchGerber.py:188 #: appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "Yüklü Gerber nesnesi yok ..." -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:844 +#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 msgid "Append geometry" msgstr "Şekil Ekle" -#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:877 -#: appTools/ToolCopperThieving.py:1022 +#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:876 +#: appTools/ToolCopperThieving.py:1020 msgid "Append source file" msgstr "Kaynak Dosya Ekle" -#: appTools/ToolCopperThieving.py:291 appTools/ToolCopperThieving.py:885 +#: appTools/ToolCopperThieving.py:290 appTools/ToolCopperThieving.py:883 msgid "Copper Thieving Tool done." msgstr "Bakır dolgu işlemi tamamlandı." -#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351 -#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917 +#: appTools/ToolCopperThieving.py:317 appTools/ToolCopperThieving.py:350 +#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:918 #: appTools/ToolDrilling.py:726 appTools/ToolDrilling.py:1582 #: appTools/ToolEtchCompensation.py:152 appTools/ToolInvertGerber.py:99 #: appTools/ToolIsolation.py:908 appTools/ToolIsolation.py:1345 @@ -14182,84 +14144,84 @@ msgstr "Bakır dolgu işlemi tamamlandı." msgid "Could not retrieve object" msgstr "Nesne alınamadı" -#: appTools/ToolCopperThieving.py:379 +#: appTools/ToolCopperThieving.py:378 msgid "Click the end point of the filling area." msgstr "Dolgu alanının bitiş noktasını tıklayın." -#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511 -#: appTools/ToolCopperThieving.py:570 +#: appTools/ToolCopperThieving.py:506 appTools/ToolCopperThieving.py:510 +#: appTools/ToolCopperThieving.py:569 msgid "Thieving" msgstr "Dolgu" -#: appTools/ToolCopperThieving.py:518 +#: appTools/ToolCopperThieving.py:517 msgid "Copper Thieving Tool started. Reading parameters." msgstr "Bakır dolgu işlemi başladı. Seçenekler uygulanıyor." -#: appTools/ToolCopperThieving.py:543 +#: appTools/ToolCopperThieving.py:542 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "Bakır dolgu. Dolgusuz alanlar hazırlanıyor." -#: appTools/ToolCopperThieving.py:586 +#: appTools/ToolCopperThieving.py:585 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "Bakır dolgu. Bakır ile doldurmak için kullanılan alanlar hazırlanıyor." -#: appTools/ToolCopperThieving.py:597 appTools/ToolFilm.py:631 +#: appTools/ToolCopperThieving.py:596 appTools/ToolFilm.py:631 #: appTools/ToolFilm.py:879 appTools/ToolIsolation.py:916 #: appTools/ToolNCC.py:853 appTools/ToolOptimal.py:145 #: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:627 msgid "Working..." msgstr "Çalışıyor..." -#: appTools/ToolCopperThieving.py:626 +#: appTools/ToolCopperThieving.py:625 msgid "Geometry not supported for bounding box" msgstr "Sınırlayıcı kutu için şekil desteklenmiyor" -#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1681 +#: appTools/ToolCopperThieving.py:631 appTools/ToolNCC.py:1681 #: appTools/ToolNCC.py:1736 appTools/ToolNCC.py:2734 appTools/ToolPaint.py:2457 msgid "No object available." msgstr "Kullanılabilir nesne yok." -#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1706 +#: appTools/ToolCopperThieving.py:668 appTools/ToolNCC.py:1706 #: appTools/ToolNCC.py:1759 appTools/ToolNCC.py:2776 msgid "The reference object type is not supported." msgstr "Belirtilen nesnenin türü desteklenmiyor." -#: appTools/ToolCopperThieving.py:674 +#: appTools/ToolCopperThieving.py:673 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "Bakır dolgu. Dolgu ekleniyor ve tamponlanıyor." -#: appTools/ToolCopperThieving.py:690 +#: appTools/ToolCopperThieving.py:689 msgid "Create geometry" msgstr "Şekil Oluştur" -#: appTools/ToolCopperThieving.py:896 appTools/ToolCopperThieving.py:900 +#: appTools/ToolCopperThieving.py:894 appTools/ToolCopperThieving.py:898 msgid "P-Plating Mask" msgstr "Desen Kaplama Maskesi" -#: appTools/ToolCopperThieving.py:922 +#: appTools/ToolCopperThieving.py:920 msgid "Append PP-M geometry" msgstr "Desen Kaplama Maskesi Ekle" -#: appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCopperThieving.py:1036 msgid "Generating Pattern Plating Mask done." msgstr "Desen kaplama maskesi oluşturma işlemi tamamlandı." -#: appTools/ToolCopperThieving.py:1112 +#: appTools/ToolCopperThieving.py:1108 msgid "Copper Thieving Tool exit." msgstr "Bakır dolgu aracından çıkış." -#: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 +#: appTools/ToolCopperThieving.py:1167 appTools/ToolFiducials.py:877 msgid "Gerber Object to which will be added a copper thieving." msgstr "Bakır dolgunun ekleneceği Gerber nesnesi." -#: appTools/ToolCopperThieving.py:1197 +#: appTools/ToolCopperThieving.py:1193 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 "Bakır dolgu ile yollar arasındaki mesafe." -#: appTools/ToolCopperThieving.py:1230 +#: appTools/ToolCopperThieving.py:1226 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 " @@ -14272,12 +14234,12 @@ msgstr "" "belirleyebilirsiniz.\n" "- 'Nesne' - Belirtilen nesne alanı içinde bakır dolgusu yapar." -#: appTools/ToolCopperThieving.py:1237 appTools/ToolIsolation.py:3385 +#: appTools/ToolCopperThieving.py:1233 appTools/ToolIsolation.py:3385 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3137 msgid "Ref. Type" msgstr "Seçilen Tür" -#: appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1235 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." @@ -14285,21 +14247,21 @@ msgstr "" "Bakır dolgusu için şablon olarak kullanılacak FlatCAM nesnesinin türü.\n" "Gerber, Excellon veya Şekil olabilir." -#: appTools/ToolCopperThieving.py:1248 appTools/ToolIsolation.py:3396 +#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3396 #: appTools/ToolNCC.py:4327 appTools/ToolPaint.py:3147 msgid "Ref. Object" msgstr "Nesne Türü" -#: appTools/ToolCopperThieving.py:1250 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1246 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4329 appTools/ToolPaint.py:3149 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "Bakır temizlemeye şablon olarak kullanılacak FlatCAM nesnesi." -#: appTools/ToolCopperThieving.py:1426 +#: appTools/ToolCopperThieving.py:1422 msgid "Insert Copper thieving" msgstr "Bakır Dolgu Ekle" -#: appTools/ToolCopperThieving.py:1428 +#: appTools/ToolCopperThieving.py:1424 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." @@ -14307,11 +14269,11 @@ msgstr "" "Gerçek Gerber yolları dışında kalan alanları \n" "kaplayan ve parçalardan oluşmuş dolgular ekler." -#: appTools/ToolCopperThieving.py:1487 +#: appTools/ToolCopperThieving.py:1483 msgid "Insert Robber Bar" msgstr "Soyguncu Çubuğu Ekle" -#: appTools/ToolCopperThieving.py:1489 +#: appTools/ToolCopperThieving.py:1485 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -14323,11 +14285,11 @@ msgstr "" "(Soyguncu çubuğu: Deliklerin kaplanmasını kolaylaştırmak\n" "için bakır kenarlık (çerçeve)." -#: appTools/ToolCopperThieving.py:1513 +#: appTools/ToolCopperThieving.py:1509 msgid "Select Soldermask object" msgstr "Lehim Maskesi Nesnesinin Seçimi" -#: appTools/ToolCopperThieving.py:1515 +#: appTools/ToolCopperThieving.py:1511 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" @@ -14337,11 +14299,11 @@ msgstr "" "Desen kaplama maskesi için bir \n" "taban olarak kullanılacaktır." -#: appTools/ToolCopperThieving.py:1544 +#: appTools/ToolCopperThieving.py:1540 msgid "Plated area" msgstr "Kaplama Alanı" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1542 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -14359,19 +14321,19 @@ msgstr "" "biraz daha büyüktür ve bu alan lehim maskesi açıklıklarından\n" "hesaplanır." -#: appTools/ToolCopperThieving.py:1557 +#: appTools/ToolCopperThieving.py:1553 msgid "mm" msgstr "mm" -#: appTools/ToolCopperThieving.py:1559 +#: appTools/ToolCopperThieving.py:1555 msgid "in" msgstr "in" -#: appTools/ToolCopperThieving.py:1566 +#: appTools/ToolCopperThieving.py:1562 msgid "Generate pattern plating mask" msgstr "Desen Kaplama Maskesi Oluştur" -#: appTools/ToolCopperThieving.py:1568 +#: appTools/ToolCopperThieving.py:1564 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -14386,39 +14348,39 @@ msgstr "" msgid "Corners Tool" msgstr "Köşe Aracı" -#: appTools/ToolCorners.py:157 +#: appTools/ToolCorners.py:158 msgid "Please select at least a location" msgstr "Lütfen en az bir konum seçin" -#: appTools/ToolCorners.py:292 +#: appTools/ToolCorners.py:293 msgid "Corners Tool exit." msgstr "Köşe işaretleyicisi çıkış." -#: appTools/ToolCorners.py:319 +#: appTools/ToolCorners.py:320 msgid "The Gerber object to which will be added corner markers." msgstr "Köşe işaretleyicileri eklenecek Gerber nesnesi." -#: appTools/ToolCorners.py:335 +#: appTools/ToolCorners.py:336 msgid "Locations" msgstr "Konumlar" -#: appTools/ToolCorners.py:337 +#: appTools/ToolCorners.py:338 msgid "Locations where to place corner markers." msgstr "Köşe işaretleyicilerinin yerleştirileceği yerler." -#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706 +#: appTools/ToolCorners.py:355 appTools/ToolFiducials.py:708 msgid "Top Right" msgstr "Sağ Üst" -#: appTools/ToolCorners.py:363 +#: appTools/ToolCorners.py:364 msgid "Toggle ALL" msgstr "TÜMÜNÜ Seç" -#: appTools/ToolCorners.py:429 +#: appTools/ToolCorners.py:430 msgid "Add Marker" msgstr "Köşe İşareti Ekle" -#: appTools/ToolCorners.py:431 +#: appTools/ToolCorners.py:432 msgid "Will add corner markers to the selected Gerber file." msgstr "Seçilen Gerber dosyasına köşe işaretleyicileri ekler." @@ -14427,7 +14389,7 @@ msgstr "Seçilen Gerber dosyasına köşe işaretleyicileri ekler." #: appTools/ToolNCC.py:463 appTools/ToolNCC.py:992 appTools/ToolNCC.py:1130 #: appTools/ToolPaint.py:395 appTools/ToolPaint.py:686 #: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131 -#: appTools/ToolSolderPaste.py:464 app_Main.py:4496 +#: appTools/ToolSolderPaste.py:464 app_Main.py:4419 msgid "Please enter a tool diameter with non-zero value, in Float format." msgstr "Lütfen ondalıklı formatta sıfır olmayan bir uç kalınlığı girin." @@ -14471,18 +14433,18 @@ msgstr "" "Kesilecek herhangi bir nesne yok.\n" "Lütfen bir nesne seçerek tekrar deneyiniz." -#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:926 -#: appTools/ToolCutOut.py:1300 appTools/ToolCutOut.py:1431 +#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:927 +#: appTools/ToolCutOut.py:1303 appTools/ToolCutOut.py:1434 #: tclCommands/TclCommandGeoCutout.py:184 msgid "Tool Diameter is zero value. Change it to a positive real number." msgstr "" "Ucun kalınlığı sıfırdır. Uç kalınlığını Pozitif bir tamsayı olarak değiştin." -#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:940 +#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:941 msgid "Number of gaps value is missing. Add it and retry." msgstr "Geçit sayı değeri eksik. Ekleyin ve tekrar deneyin." -#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:944 +#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:945 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. " @@ -14491,16 +14453,16 @@ msgstr "" " 'Yok', 'Sol Sağ', 'Üst Alt', '2 Sol Sağ', '2 Üst Alt', 4 veya 8. Doğru " "sayıyı girin ve tekrar deneyin. " -#: appTools/ToolCutOut.py:891 appTools/ToolCutOut.py:1260 -#: appTools/ToolCutOut.py:1615 +#: appTools/ToolCutOut.py:892 appTools/ToolCutOut.py:1263 +#: appTools/ToolCutOut.py:1619 msgid "Mouse bites failed." msgstr "Fare ısırığı şekli başarısız oldu." -#: appTools/ToolCutOut.py:899 +#: appTools/ToolCutOut.py:900 msgid "Any form CutOut operation finished." msgstr "Serbest şekilli PCB kesme işlemi başarıyla tamamlandı." -#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586 +#: appTools/ToolCutOut.py:922 appTools/ToolDrilling.py:1586 #: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349 #: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326 @@ -14510,49 +14472,49 @@ msgstr "Serbest şekilli PCB kesme işlemi başarıyla tamamlandı." msgid "Object not found" msgstr "Nesne bulunamadı" -#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187 +#: appTools/ToolCutOut.py:1115 appTools/ToolCutOut.py:1188 msgid "Rectangular cutout with negative margin is not possible." msgstr "Kenar payı negatif, dikdörtgensel kesim mümkün değildir." -#: appTools/ToolCutOut.py:1268 +#: appTools/ToolCutOut.py:1271 msgid "Rectangular CutOut operation finished." msgstr "Dikdörtgensel PCB kesim işlemi tamamlandı." -#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316 +#: appTools/ToolCutOut.py:1287 appTools/ToolCutOut.py:1319 msgid "Could not retrieve Geometry object" msgstr "Şekil nesnesi alınamadı" -#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344 +#: appTools/ToolCutOut.py:1292 appTools/ToolCutOut.py:1347 msgid "Geometry object for manual cutout not found" msgstr "Geçitleri el ile eklemek için kesim sınırı bulunamadı" -#: appTools/ToolCutOut.py:1292 +#: appTools/ToolCutOut.py:1295 msgid "" "Click on the selected geometry object perimeter to create a bridge gap ..." msgstr "Bir geçit oluşturmak için seçilen şeklin sınırları üzerine tıklayın." -#: appTools/ToolCutOut.py:1380 +#: appTools/ToolCutOut.py:1383 msgid "No tool in the Geometry object." msgstr "Şekil nesnesinde araç yok." -#: appTools/ToolCutOut.py:1401 +#: appTools/ToolCutOut.py:1404 msgid "" "Added manual Bridge Gap. Left click to add another or right click to finish." msgstr "" "Geçitler el ile eklendi. Başka eklemek için sol tıklayın veya bitirmek için " "sağ tıklayın." -#: appTools/ToolCutOut.py:1413 +#: appTools/ToolCutOut.py:1416 msgid "Could not retrieve Gerber object" msgstr "Gerber nesnesi alınamadı" -#: appTools/ToolCutOut.py:1418 +#: appTools/ToolCutOut.py:1421 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." msgstr "Kesmek için Gerber nesnesi seçilmedi. Birini seçip tekrar deneyin." -#: appTools/ToolCutOut.py:1424 +#: appTools/ToolCutOut.py:1427 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." @@ -14560,36 +14522,36 @@ msgstr "" "Seçilen nesne Gerber türünde olmalıdır. Bir Gerber dosyası seçin ve tekrar " "deneyin." -#: appTools/ToolCutOut.py:1459 +#: appTools/ToolCutOut.py:1462 msgid "Geometry not supported for cutout" msgstr "Kesmek için şekil desteklenmiyor" -#: appTools/ToolCutOut.py:1531 +#: appTools/ToolCutOut.py:1534 msgid "Making manual bridge gap..." msgstr "El ile geçit oluşturuluyor..." -#: appTools/ToolCutOut.py:1619 +#: appTools/ToolCutOut.py:1623 msgid "Finished manual adding of gaps." msgstr "Geçitlerin el ile eklenmesi başarı ile tamamlandı." -#: appTools/ToolCutOut.py:1961 +#: appTools/ToolCutOut.py:1965 msgid "Cutout PCB" msgstr "PCB Kesimi" -#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513 +#: appTools/ToolCutOut.py:1991 appTools/ToolDblSided.py:515 #: appTools/ToolPanelize.py:652 msgid "Source Object" msgstr "Kaynak Nesne" -#: appTools/ToolCutOut.py:1988 +#: appTools/ToolCutOut.py:1992 msgid "Object to be cutout" msgstr "Kesilecek nesne" -#: appTools/ToolCutOut.py:1993 +#: appTools/ToolCutOut.py:1997 msgid "Kind" msgstr "Şekil" -#: appTools/ToolCutOut.py:2015 +#: appTools/ToolCutOut.py:2019 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -14601,7 +14563,7 @@ msgstr "" "Burada seçilen, 'Nesne' açılır kutudaki \n" "nesne türlerini belirler." -#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125 +#: appTools/ToolCutOut.py:2078 appTools/ToolIsolation.py:3125 #: appTools/ToolNCC.py:3999 appTools/ToolPaint.py:2901 msgid "" "Add a new tool to the Tool Table\n" @@ -14614,25 +14576,25 @@ msgstr "" "Bu, Araçlar Veri Tabanında bir arka plan aramasıyla yapılır.\n" "Araçlar Veri Tabanında hiçbir şey bulunmazsa, varsayılan bir araç eklenir." -#: appTools/ToolCutOut.py:2100 +#: appTools/ToolCutOut.py:2104 msgid "Tool Parameters" msgstr "Uç Seçenekleri" -#: appTools/ToolCutOut.py:2249 +#: appTools/ToolCutOut.py:2253 msgid "Automatic" msgstr "Otomatik" -#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324 +#: appTools/ToolCutOut.py:2253 appTools/ToolCutOut.py:2328 msgid "Bridge Gaps" msgstr "Geçit Boşlukları" -#: appTools/ToolCutOut.py:2251 +#: appTools/ToolCutOut.py:2255 msgid "This section handle creation of automatic bridge gaps." msgstr "" "Bu bölüm geçit boşluklarının otomatik oluşturulmasını ele almaktadır.\n" "Geçit: PCB kesildiği zaman çevresinden kopmaması için kullanılan köprülerdir." -#: appTools/ToolCutOut.py:2290 +#: appTools/ToolCutOut.py:2294 msgid "" "Cutout the selected object.\n" "The cutout shape can be of any shape.\n" @@ -14643,7 +14605,7 @@ msgstr "" "PCB dikdörtgen olmayan bir şekle sahip\n" "olduğunda kullanışlıdır." -#: appTools/ToolCutOut.py:2305 +#: appTools/ToolCutOut.py:2309 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -14654,7 +14616,7 @@ msgstr "" "Ortaya çıkan kesme şekli her zaman bir dikdörtgen \n" "şekli ve nesnenin sınırlayıcı kutusu olacaktır." -#: appTools/ToolCutOut.py:2326 +#: appTools/ToolCutOut.py:2330 msgid "" "This section handle creation of manual bridge gaps.\n" "This is done by mouse clicking on the perimeter of the\n" @@ -14665,11 +14627,11 @@ msgstr "" "Geçit: PCB kesildiği zaman çevresinden kopmaması için kullanılan " "köprülerdir. " -#: appTools/ToolCutOut.py:2342 +#: appTools/ToolCutOut.py:2346 msgid "Generate Manual Geometry" msgstr "Kesim Şeklini El ile Oluştur" -#: appTools/ToolCutOut.py:2345 +#: appTools/ToolCutOut.py:2349 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -14681,19 +14643,19 @@ msgstr "" "Nesnelerin listesini içeren üstteki açılır kutudan kaynak \n" "Gerber dosyasını seçin." -#: appTools/ToolCutOut.py:2365 +#: appTools/ToolCutOut.py:2369 msgid "Manual cutout Geometry" msgstr "Geçitleri El ile Ekle" -#: appTools/ToolCutOut.py:2367 +#: appTools/ToolCutOut.py:2371 msgid "Geometry object used to create the manual cutout." msgstr "Geçitlerin el ile yerleştirileceği nesne." -#: appTools/ToolCutOut.py:2374 +#: appTools/ToolCutOut.py:2378 msgid "Manual Add Bridge Gaps" msgstr "Geçitleri El ile Ekle" -#: appTools/ToolCutOut.py:2377 +#: appTools/ToolCutOut.py:2381 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -14736,32 +14698,32 @@ msgstr "" "Kullanılacak hizalama deliği Koordinatı yoktur. Onları ekleyin ve tekrar " "deneyin." -#: appTools/ToolDblSided.py:213 +#: appTools/ToolDblSided.py:215 msgid "Excellon object with alignment drills created..." msgstr "Excellon nesnesi, hizalama delikleriyle oluşturuldu ..." -#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209 +#: appTools/ToolDblSided.py:226 appTools/ToolPunchGerber.py:209 msgid "There is no Excellon object loaded ..." msgstr "" "Yüklü Excellon nesnesi yok, Excellon nesnesi ekleyip tekrar deneyiniz ..." -#: appTools/ToolDblSided.py:236 +#: appTools/ToolDblSided.py:238 msgid "Click on canvas within the desired Excellon drill hole" msgstr "İstediğiniz Excellon deliği merkezine tıklayın" -#: appTools/ToolDblSided.py:280 +#: appTools/ToolDblSided.py:282 msgid "Mirror reference point set." msgstr "Tersleme referans noktası ayarla." -#: appTools/ToolDblSided.py:308 +#: appTools/ToolDblSided.py:310 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "Yalnızca Gerber, Excellon ve Şekil nesneleri terslenebilir." -#: appTools/ToolDblSided.py:320 +#: appTools/ToolDblSided.py:322 msgid "There is no Box object loaded ..." msgstr "Yüklü bir Çerçeve nesnesi yok ..." -#: appTools/ToolDblSided.py:330 +#: appTools/ToolDblSided.py:332 msgid "" "There are no Point coordinates in the Point field. Add coords and try " "again ..." @@ -14769,31 +14731,31 @@ msgstr "" "Nokta alanında Nokta koordinatları yoktur. Koordinatları ekleyin ve tekrar " "deneyin ..." -#: appTools/ToolDblSided.py:337 camlib.py:2401 +#: appTools/ToolDblSided.py:339 camlib.py:2401 msgid "Object was mirrored" msgstr "Nesne terslendi" -#: appTools/ToolDblSided.py:403 app_Main.py:4635 app_Main.py:4790 +#: appTools/ToolDblSided.py:405 app_Main.py:4558 app_Main.py:4713 msgid "Failed. No object(s) selected..." msgstr "Hata. Hiçbir nesne seçilmedi ..." -#: appTools/ToolDblSided.py:487 +#: appTools/ToolDblSided.py:489 msgid "2-Sided PCB" msgstr "2 Taraflı PCB" -#: appTools/ToolDblSided.py:514 +#: appTools/ToolDblSided.py:516 msgid "Objects to be mirrored" msgstr "Terslenecek nesneler" -#: appTools/ToolDblSided.py:521 +#: appTools/ToolDblSided.py:523 msgid "Select the type of application object to be processed in this tool." msgstr "Bu araçta işlenecek nesnesinin türünü seçin." -#: appTools/ToolDblSided.py:555 +#: appTools/ToolDblSided.py:557 msgid "Bounds Values" msgstr "Sınır Değerleri" -#: appTools/ToolDblSided.py:557 +#: appTools/ToolDblSided.py:559 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." @@ -14801,39 +14763,39 @@ msgstr "" "Sınır değerlerinin hesaplanacağı \n" "nesneleri çalışma alanı üzerinde seçin." -#: appTools/ToolDblSided.py:567 +#: appTools/ToolDblSided.py:569 msgid "X min" msgstr "X min" -#: appTools/ToolDblSided.py:569 appTools/ToolDblSided.py:583 +#: appTools/ToolDblSided.py:571 appTools/ToolDblSided.py:585 msgid "Minimum location." msgstr "Minimum konum." -#: appTools/ToolDblSided.py:581 +#: appTools/ToolDblSided.py:583 msgid "Y min" msgstr "Y min" -#: appTools/ToolDblSided.py:595 +#: appTools/ToolDblSided.py:597 msgid "X max" msgstr "X maks" -#: appTools/ToolDblSided.py:597 appTools/ToolDblSided.py:611 +#: appTools/ToolDblSided.py:599 appTools/ToolDblSided.py:613 msgid "Maximum location." msgstr "Maksimum konum." -#: appTools/ToolDblSided.py:609 +#: appTools/ToolDblSided.py:611 msgid "Y max" msgstr "Y maks" -#: appTools/ToolDblSided.py:620 +#: appTools/ToolDblSided.py:622 msgid "Center point coordinates" msgstr "Merkez noktası koordinatları" -#: appTools/ToolDblSided.py:622 +#: appTools/ToolDblSided.py:624 msgid "Centroid" msgstr "Merkez" -#: appTools/ToolDblSided.py:624 +#: appTools/ToolDblSided.py:626 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." @@ -14841,38 +14803,28 @@ msgstr "" "Dikdörtgenin merkez noktasının konumu, sınırlayıcı\n" "bir şekildir. Geometrik Merkez. Biçim (x, y)." -#: appTools/ToolDblSided.py:633 +#: appTools/ToolDblSided.py:635 msgid "Calculate Bounds Values" msgstr "Sınır Değerlerini Hesapla" -#: appTools/ToolDblSided.py:635 +#: appTools/ToolDblSided.py:637 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 "" -"Nesneleri seçmek için dikdörtgen bir şeklin koordinatlarını\n" +"Seçilen nesneleri çevreleyen dikdörtgen şeklin koordinatlarını\n" "hesaplayın. Dikdörtgen şekli X, Y eksenine paraleldir." -#: appTools/ToolDblSided.py:660 +#: appTools/ToolDblSided.py:662 msgid "Mirror Operation" msgstr "Tersleme İşlemi" -#: appTools/ToolDblSided.py:661 +#: appTools/ToolDblSided.py:663 msgid "Parameters for the mirror operation" msgstr "Tersleme işlemi için kullanılan seçenekler" -#: appTools/ToolDblSided.py:683 -#, fuzzy -#| 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\n" -#| "- Hole Snap -> a point defined by the center of a drill hone in a " -#| "Excellon object" +#: appTools/ToolDblSided.py:685 msgid "" "The coordinates used as reference for the mirror operation.\n" "Can be:\n" @@ -14890,11 +14842,11 @@ msgstr "" "Deliğe Tuttur-> Excellon nesnesindeki belirlenen bir deliğin merkezi\n" " tarafından tanımlanan bir nokta" -#: appTools/ToolDblSided.py:703 +#: appTools/ToolDblSided.py:705 msgid "Point coordinates" msgstr "Nokta Koordinatları" -#: appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:710 msgid "" "Add the coordinates in format (x, y) through which the mirroring " "axis\n" @@ -14903,23 +14855,21 @@ msgid "" "and left mouse button click on canvas or you can enter the coordinates " "manually." msgstr "" -"'TERSLEME EKSENİ'nin içine koordinatları (x, y) biçiminde ekleyin. \n" -"(x, y) koordinatlarını SHIFT tuşuna basılarak, çalışma alanı üzerine sol " +"'TERSLEME EKSENİ' alanında seçilen koordinatları (x, y) biçiminde " +"ekleyin. \n" +"(x, y) koordinatlarını SHIFT tuşuna basarak, çalışma alanı üzerine sol " "tıklayarak\n" -"yakalayabilir veya koordinatları elle girebilirsiniz." +"yakalayabilir veya elle girebilirsiniz." -#: appTools/ToolDblSided.py:726 -#, fuzzy -#| msgid "" -#| "Object that holds holes that can be picked as reference for mirroing." +#: appTools/ToolDblSided.py:728 msgid "Object that holds holes that can be picked as reference for mirroring." msgstr "Tersleme için referans olarak alınabilecek delikleri tutan nesne." -#: appTools/ToolDblSided.py:741 +#: appTools/ToolDblSided.py:743 msgid "Pick hole" msgstr "Delik Seç" -#: appTools/ToolDblSided.py:743 +#: appTools/ToolDblSided.py:745 msgid "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." @@ -14927,7 +14877,7 @@ msgstr "" "Seçili Excellon nesnesine ait bir matkap deliğinin içine tıkladığınızda \n" "delik merkezi koordinatları Nokta alanına kopyalanacaktır." -#: appTools/ToolDblSided.py:759 +#: appTools/ToolDblSided.py:761 msgid "" "It can be of type: Gerber or Excellon or Geometry.\n" "The coordinates of the center of the bounding box are used\n" @@ -14937,11 +14887,11 @@ msgstr "" "Sınırlayıcı kutunun merkezinin koordinatları \n" "tersleme işlemi için referans olarak kullanılır." -#: appTools/ToolDblSided.py:785 +#: appTools/ToolDblSided.py:787 msgid "Mirror" msgstr "Tersle" -#: appTools/ToolDblSided.py:787 +#: appTools/ToolDblSided.py:789 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" @@ -14951,11 +14901,11 @@ msgstr "" "tersler (döndürür). Yeni bir nesne oluşturmaz, \n" "onu değiştirir." -#: appTools/ToolDblSided.py:813 +#: appTools/ToolDblSided.py:815 msgid "PCB Alignment" msgstr "PCB Hizalama" -#: appTools/ToolDblSided.py:815 appTools/ToolDblSided.py:923 +#: appTools/ToolDblSided.py:817 appTools/ToolDblSided.py:925 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" @@ -14964,11 +14914,11 @@ msgstr "" "Belirtilen hizalama deliklerini ve tersleme \n" "görüntülerini içeren bir Excellon Nesnesi oluşturur." -#: appTools/ToolDblSided.py:822 +#: appTools/ToolDblSided.py:824 msgid "Drill Diameter" msgstr "Delik Genişliği" -#: appTools/ToolDblSided.py:857 appTools/ToolDblSided.py:864 +#: appTools/ToolDblSided.py:859 appTools/ToolDblSided.py:866 msgid "" "The reference point used to create the second alignment drill\n" "from the first alignment drill, by doing mirror.\n" @@ -14976,14 +14926,14 @@ msgid "" msgstr "" "Tersleme yaparak birinci hizalama deliğinden ikinci bir hizalama\n" "deliği oluşturmak için kullanılan bir referans noktası.\n" -"Bu, Yukarıdaki Tersleme Seçenekleri -> Referans Noktası\n" +"Bu, yukarıdaki Tersleme İşlemi -> Referans Noktası\n" "bölümünden değiştirilebilir" -#: appTools/ToolDblSided.py:877 +#: appTools/ToolDblSided.py:879 msgid "Alignment Drill Coordinates" msgstr "Hizalama Deliği Koordinatları" -#: appTools/ToolDblSided.py:879 +#: appTools/ToolDblSided.py:881 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " "each set of (x, y) coordinates\n" @@ -14993,18 +14943,20 @@ msgid "" "- one drill in mirror position over the axis selected above in the 'Align " "Axis'." msgstr "" -"Tersleme ekseninin bir tarafındaki hizalama delikleri (x1, y1), (x2, y2), … " -"Buraya girilen her (x, y) koordinat kümesi için bir çift delik oluşturulur:\n" +"Tersleme ekseninin bir tarafındaki hizalama delikleri (x1, y1), (x2, y2), " +"… \n" +"Buraya girilen her (x, y) koordinat kümesi için bir çift delik " +"oluşturulacaktır:\n" "\n" -"- Çalışma alanından koordinatlarla bir delik\n" -"- Yukarıdaki \"Ekseni Hizala\" bölümünde seçilen eksen üzerinde tersleme " +"- Çalışma alanından alınan koordinatlarla bir delik\n" +"- Yukarıdaki \"PCB Hizalama\" bölümünde seçilen eksen üzerinde tersleme " "konumunda bir delik." -#: appTools/ToolDblSided.py:887 +#: appTools/ToolDblSided.py:889 msgid "Drill coordinates" msgstr "Delik Koordinatları" -#: appTools/ToolDblSided.py:894 +#: appTools/ToolDblSided.py:896 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, " "y2), ... \n" @@ -15018,27 +14970,28 @@ msgid "" "field and click Paste.\n" "- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." msgstr "" -"Tersleme ekseninin bir tarafına (x1, y1), (x2, y2), ... formatında hizalama " -"delik delikleri ekleyin.\n" +"Hizalama ekseninin bir tarafına (x1, y1), (x2, y2), ... şeklinde hizalama " +"matkap delikleri koordinatları ekleyin.\n" "\n" -"Ayarlanan koordinatlar şu şekillerde elde edilebilir:\n" +"Koordinat noktaları şu şekillerde elde edilebilir:\n" "- SHIFT tuşuna basın ve çalışma alanını üzerine sol tıklayın. Ardından " "Ekle'yi tıklayın.\n" "- SHIFT tuşuna basın ve çalışma alanı üzerine sol tıklayın. Daha sonra " "alanda CTRL + V yapın.\n" "- SHIFT tuşuna basın ve alışma alanı üzerine sol tıklayın. Ardından sağ " "tıklayın ve Yapıştır'a tıklayın.\n" -"- Koordinatları manuel olarak şu biçimde girerek: (x1, y1), (x2, y2), ..." +"- Koordinatları el ile şu şekilde girerek: (x1, y1), (x2, y2), … elde " +"edebilirsiniz." -#: appTools/ToolDblSided.py:909 +#: appTools/ToolDblSided.py:911 msgid "Delete Last" msgstr "Sonuncuyu Sil" -#: appTools/ToolDblSided.py:911 +#: appTools/ToolDblSided.py:913 msgid "Delete the last coordinates tuple in the list." -msgstr "Listedeki son koordinat demetini siler." +msgstr "Listedeki son koordinat grubunu siler." -#: appTools/ToolDblSided.py:921 +#: appTools/ToolDblSided.py:923 msgid "Create Excellon Object" msgstr "Excellon Oluştur" @@ -15434,15 +15387,15 @@ msgstr "" msgid "No drills extracted. Try different parameters." msgstr "Delikler çıkarılmadı. Farklı seçenekler deneyin." -#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687 +#: appTools/ToolExtractDrills.py:421 appTools/ToolExtractDrills.py:688 msgid "Extract Drills" msgstr "Delik Çıkartma" -#: appTools/ToolExtractDrills.py:454 +#: appTools/ToolExtractDrills.py:455 msgid "Gerber from which to extract drill holes" msgstr "Delik çıkartmak için Gerber" -#: appTools/ToolExtractDrills.py:689 +#: appTools/ToolExtractDrills.py:690 msgid "Extract drills from a given Gerber file." msgstr "Belirli bir Gerber dosyasındaki delikleri çıkartın." @@ -15450,28 +15403,28 @@ msgstr "Belirli bir Gerber dosyasındaki delikleri çıkartın." msgid "Click to add first Fiducial. Bottom Left..." msgstr "İlk referans işaretini eklemek için tıklayın. Sol alt ..." -#: appTools/ToolFiducials.py:501 +#: appTools/ToolFiducials.py:503 msgid "Click to add the last fiducial. Top Right..." msgstr "Bir sonraki referans işaretini eklemek için tıklayın. Sağ üstte..." -#: appTools/ToolFiducials.py:506 +#: appTools/ToolFiducials.py:508 msgid "Click to add the second fiducial. Top Left or Bottom Right..." msgstr "" "İkinci bir referans işareti eklemek için tıklayın. Sol üst veya sağ alt..." -#: appTools/ToolFiducials.py:509 appTools/ToolFiducials.py:518 +#: appTools/ToolFiducials.py:511 appTools/ToolFiducials.py:520 msgid "Done. All fiducials have been added." msgstr "Bitti. Tüm referans işaretleri başarıyla eklendi." -#: appTools/ToolFiducials.py:595 +#: appTools/ToolFiducials.py:597 msgid "Fiducials Tool exit." msgstr "Referans işareti aracından çık." -#: appTools/ToolFiducials.py:667 +#: appTools/ToolFiducials.py:669 msgid "Fiducials Coordinates" msgstr "Referans İşareti Koordinatları" -#: appTools/ToolFiducials.py:669 +#: appTools/ToolFiducials.py:671 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." @@ -15479,7 +15432,7 @@ msgstr "" "Referans işaretlerinin koordinatlarını \n" "(x, y) biçiminde içeren bir tablo." -#: appTools/ToolFiducials.py:805 +#: appTools/ToolFiducials.py:807 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding " "box.\n" @@ -15489,31 +15442,31 @@ msgstr "" "kutunun köşelerine otomatik olarak yerleştirilmesi.\n" "- 'El İle' - Referans işaretlerinin elle yerleştirilmesi." -#: appTools/ToolFiducials.py:851 +#: appTools/ToolFiducials.py:853 msgid "Thickness of the line that makes the fiducial." msgstr "Referans işaretini oluşturan çizginin kalınlığı." -#: appTools/ToolFiducials.py:882 +#: appTools/ToolFiducials.py:884 msgid "Add Fiducial" msgstr "Referans İşareti Ekle" -#: appTools/ToolFiducials.py:884 +#: appTools/ToolFiducials.py:886 msgid "Will add a polygon on the copper layer to serve as fiducial." msgstr "Bakır katmanına bir referans işareti görevi görmesi için şekil ekler." -#: appTools/ToolFiducials.py:900 +#: appTools/ToolFiducials.py:902 msgid "Soldermask Gerber" msgstr "Gerber Lehim Maskesi" -#: appTools/ToolFiducials.py:902 +#: appTools/ToolFiducials.py:904 msgid "The Soldermask Gerber object." msgstr "Gerber lehim maskesi nesnesi." -#: appTools/ToolFiducials.py:914 +#: appTools/ToolFiducials.py:916 msgid "Add Soldermask Opening" msgstr "Lehim Maskesi Açıklığı Ekle" -#: appTools/ToolFiducials.py:916 +#: appTools/ToolFiducials.py:918 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -15705,7 +15658,7 @@ msgstr "Görüntü" msgid "Import IMAGE" msgstr "Görüntüyü İçe Aktar" -#: appTools/ToolImage.py:142 app_Main.py:8893 app_Main.py:8943 +#: appTools/ToolImage.py:142 app_Main.py:9782 app_Main.py:9832 msgid "" "Not supported type is picked as parameter. Only Geometry and Gerber are " "supported" @@ -15717,9 +15670,9 @@ msgstr "" msgid "Importing Image" msgstr "Görüntü içe aktarılıyor" -#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8921 -#: app_Main.py:8976 app_Main.py:9040 app_Main.py:9103 app_Main.py:9169 -#: app_Main.py:9234 app_Main.py:9291 +#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:9810 +#: app_Main.py:9865 app_Main.py:9929 app_Main.py:9992 app_Main.py:10058 +#: app_Main.py:10123 app_Main.py:10180 msgid "Opened" msgstr "Dosyanın yüklendiği yer" @@ -15847,7 +15800,7 @@ msgid "New Tool" msgstr "Yeni Uç" #: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:467 -#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4500 +#: appTools/ToolPaint.py:399 appTools/ToolSolderPaste.py:135 app_Main.py:4423 msgid "Adding Tool cancelled" msgstr "Uç ekleme işlemi iptal edildi" @@ -16004,7 +15957,7 @@ msgid "Click the end point of the paint area." msgstr "Çizim alanının bitiş noktasını tıklayın." #: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3722 -#: appTools/ToolPaint.py:2633 app_Main.py:5779 app_Main.py:5789 +#: appTools/ToolPaint.py:2633 app_Main.py:5702 app_Main.py:5712 msgid "Tool from DB added in Tool Table." msgstr "Araçlar Tablosuna Araçlar Veri Tabanından bir uç eklendi." @@ -16526,11 +16479,11 @@ msgstr "PDF'yi açma işlemi iptal edildi" msgid "Parsing PDF file ..." msgstr "PDF dosyası okunuyor ..." -#: appTools/ToolPDF.py:138 app_Main.py:9134 +#: appTools/ToolPDF.py:138 app_Main.py:10023 msgid "Failed to open" msgstr "Açılamadı" -#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9083 +#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9972 msgid "No geometry found in file" msgstr "Dosyada şekli bulunamadı" @@ -16939,7 +16892,7 @@ msgstr "PCB Sihirbazı .INF dosyası yüklendi." msgid "Main PcbWizard Excellon file loaded." msgstr "Pcb Sihirbazı Excellon dosyası yüklendi." -#: appTools/ToolPcbWizard.py:310 app_Main.py:9063 +#: appTools/ToolPcbWizard.py:310 app_Main.py:9952 msgid "This is not Excellon file." msgstr "Bu Excellon dosyası değil." @@ -17069,9 +17022,9 @@ msgstr "" "Birinde genellikle .DRL, diğerinde .INF uzantısı vardır." #: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 -#: app_Main.py:4976 app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 -#: app_Main.py:7503 app_Main.py:7545 app_Main.py:7587 app_Main.py:7631 -#: app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 +#: app_Main.py:4899 app_Main.py:8253 app_Main.py:8351 app_Main.py:8391 +#: app_Main.py:8431 app_Main.py:8472 app_Main.py:8513 app_Main.py:8556 +#: app_Main.py:8599 app_Main.py:9058 app_Main.py:9062 msgid "No object selected." msgstr "Hiçbir nesne seçilmedi." @@ -17161,8 +17114,8 @@ msgid "" "the specified box." msgstr "Belirtilen kutu içinde seçili nesneden bir Gerber nesnesi oluşturun." -#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485 -#: appTools/ToolQRCode.py:534 +#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:486 +#: appTools/ToolQRCode.py:535 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "İptal edildi. Metin kutusunda QR Kod verisi yoktur." @@ -17174,32 +17127,32 @@ msgstr "QR Kod şekli oluşturuluyor" msgid "Click on the Destination point ..." msgstr "QR Kod'un ekleneceği hedef noktasını tıklayın ..." -#: appTools/ToolQRCode.py:321 +#: appTools/ToolQRCode.py:322 msgid "QRCode Tool done." msgstr "QR Kod ekleme başarıyla tamamlandı." -#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521 +#: appTools/ToolQRCode.py:518 appTools/ToolQRCode.py:522 msgid "Export PNG" msgstr "PNG'yi Dışa Aktar" -#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7353 -#: app_Main.py:7357 +#: appTools/ToolQRCode.py:565 appTools/ToolQRCode.py:569 app_Main.py:8284 +#: app_Main.py:8288 msgid "Export SVG" msgstr "SVG'yi dışa aktar" -#: appTools/ToolQRCode.py:661 +#: appTools/ToolQRCode.py:662 msgid "Gerber Object to which the QRCode will be added." msgstr "QR Kod eklenecek Gerber nesnesi." -#: appTools/ToolQRCode.py:697 +#: appTools/ToolQRCode.py:698 msgid "The parameters used to shape the QRCode." msgstr "QR Kod'u oluşturmak için kullanılan seçenekler." -#: appTools/ToolQRCode.py:797 +#: appTools/ToolQRCode.py:798 msgid "Export QRCode" msgstr "QR Kod'u Dışa Aktar" -#: appTools/ToolQRCode.py:799 +#: appTools/ToolQRCode.py:800 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." @@ -17207,31 +17160,31 @@ msgstr "" "QR Kod'u SVG veya PNG dosyasına\n" " aktarmanıza izin veren kontrolleri gösterir." -#: appTools/ToolQRCode.py:838 +#: appTools/ToolQRCode.py:839 msgid "Transparent back color" msgstr "Şeffaf Arka Plan" -#: appTools/ToolQRCode.py:863 +#: appTools/ToolQRCode.py:864 msgid "Export QRCode SVG" msgstr "QR Kod İçeren SVG Dosyasını Dışa Aktar" -#: appTools/ToolQRCode.py:865 +#: appTools/ToolQRCode.py:866 msgid "Export a SVG file with the QRCode content." msgstr "QR Kod içeren bir SVG dosyasını dışa aktarın." -#: appTools/ToolQRCode.py:876 +#: appTools/ToolQRCode.py:877 msgid "Export QRCode PNG" msgstr "QR Kod İçeren PNG Dosyasını Dışa Aktar" -#: appTools/ToolQRCode.py:878 +#: appTools/ToolQRCode.py:879 msgid "Export a PNG image file with the QRCode content." msgstr "QR Kod içeren bir PNG resim dosyasını dışa aktarın." -#: appTools/ToolQRCode.py:889 +#: appTools/ToolQRCode.py:890 msgid "Insert QRCode" msgstr "QR Kod Ekle" -#: appTools/ToolQRCode.py:891 +#: appTools/ToolQRCode.py:892 msgid "Create the QRCode object." msgstr "QR Kod nesnesi oluştur." @@ -17456,7 +17409,7 @@ msgstr "...işleniyor..." #: appTools/ToolShell.py:293 msgid "FlatCAM Shell" -msgstr "" +msgstr "FlatCAM Shell" #: appTools/ToolSolderPaste.py:459 msgid "Please enter a tool diameter to add, in Float format." @@ -17964,7 +17917,7 @@ msgstr "Mevcut dili değiştirmek istediğinizden emin misiniz" msgid "Apply Language ..." msgstr "Seçili Dili Uygula ..." -#: appTranslation.py:206 app_Main.py:3383 +#: appTranslation.py:206 app_Main.py:3306 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -17998,42 +17951,42 @@ msgstr "" "Çalışma alanı başlatılıyor.\n" "Çalışma alanının başlatılması tamamlandı" -#: app_Main.py:1596 app_Main.py:7007 +#: app_Main.py:1292 app_Main.py:8831 msgid "New Project - Not saved" msgstr "Yeni Proje - Kaydedilmedi" -#: app_Main.py:1702 +#: app_Main.py:1711 msgid "" "Found old default preferences files. Please reboot the application to update." msgstr "" "Eski varsayılan yapılandırma dosyaları bulundu. Lütfen güncellemek için " "uygulamayı yeniden başlatın." -#: app_Main.py:1769 +#: app_Main.py:1778 msgid "Open Config file failed." msgstr "Yapılandırma dosyası açılamadı." -#: app_Main.py:1784 +#: app_Main.py:1793 msgid "Open Script file failed." msgstr "Komut dosyası açılamadı." -#: app_Main.py:1810 +#: app_Main.py:1819 msgid "Open Excellon file failed." msgstr "Excellon dosyası açılamadı." -#: app_Main.py:1823 +#: app_Main.py:1832 msgid "Open GCode file failed." msgstr "G-Kod dosyası açılamadı." -#: app_Main.py:1836 +#: app_Main.py:1845 msgid "Open Gerber file failed." msgstr "Gerber dosyası açılamadı." -#: app_Main.py:2174 +#: app_Main.py:2183 msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." msgstr "Düzenlemek için bir Şekil, Gerber veya Excellon nesnesi seçin." -#: app_Main.py:2189 +#: app_Main.py:2198 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not " "possible.\n" @@ -18042,100 +17995,84 @@ msgstr "" "Çoklu şekillerde, şekli aynı anda düzenlemek mümkün değildir.\n" "Bir kerede yalnızca bir şekli düzenleyin." -#: app_Main.py:2267 +#: app_Main.py:2276 msgid "EDITOR Area" msgstr "DÜZENLEYİCİ Alanı" -#: app_Main.py:2269 +#: app_Main.py:2278 msgid "Editor is activated ..." msgstr "Düzenleyici etkinleştirildi ..." -#: app_Main.py:2290 +#: app_Main.py:2299 msgid "Do you want to save the edited object?" msgstr "Düzenlenen nesneyi kaydetmek istiyor musunuz?" -#: app_Main.py:2331 +#: app_Main.py:2340 msgid "Object empty after edit." msgstr "Nesne düzenlendikten sonra boş." -#: app_Main.py:2336 app_Main.py:2354 app_Main.py:2385 app_Main.py:2401 +#: app_Main.py:2345 app_Main.py:2363 app_Main.py:2394 app_Main.py:2410 msgid "Editor exited. Editor content saved." msgstr "Düzenleyiciden çıkıldı. Düzenleyici içeriği kaydedildi." -#: app_Main.py:2405 app_Main.py:2446 +#: app_Main.py:2414 app_Main.py:2455 msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update." msgstr "" "Güncellemek için bir Gerber, Şekil, Excellon veya CNC İş nesnesi seçin." -#: app_Main.py:2408 +#: app_Main.py:2417 msgid "is updated, returning to App..." msgstr "güncellendi, Uygulamaya dönülüyor ..." -#: app_Main.py:2421 +#: app_Main.py:2430 msgid "Editor exited. Editor content was not saved." msgstr "Düzenleyiciden çıkıldı. Düzenleyici içeriği kaydedilmedi." -#: app_Main.py:2469 +#: app_Main.py:2478 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "Güncellenecek bir Gerber, Şekil veya Excellon nesnesi seçin." -#: app_Main.py:2573 app_Main.py:2577 -msgid "Import FlatCAM Preferences" -msgstr "FlatCAM Ayarlarını İçe Aktar" - -#: app_Main.py:2588 -msgid "Imported Defaults from" -msgstr "Varsayılan değerler şuradan alındı" - -#: app_Main.py:2608 app_Main.py:2614 -msgid "Export FlatCAM Preferences" -msgstr "FlatCAM Ayarlarını Dışa Aktar" - -#: app_Main.py:2634 -msgid "Exported preferences to" -msgstr "Ayarlar şuraya aktarıldı" - -#: app_Main.py:2654 app_Main.py:2659 +#: app_Main.py:2586 app_Main.py:2591 msgid "Save to file" msgstr "Dosyaya Kaydet" -#: app_Main.py:2683 +#: app_Main.py:2615 msgid "Could not load the file." msgstr "Dosya yüklenemedi." -#: app_Main.py:2699 +#: app_Main.py:2631 msgid "Exported file to" msgstr "Dosya şuraya aktarıldı" -#: app_Main.py:2736 +#: app_Main.py:2668 msgid "Failed to open recent files file for writing." msgstr "Son kullanılan dosya yazmak için açılamadı." -#: app_Main.py:2747 +#: app_Main.py:2679 msgid "Failed to open recent projects file for writing." msgstr "Son proje dosyası yazmak için açılamadı." -#: app_Main.py:2802 +#: app_Main.py:2734 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "2D Bilgisayar Destekli PCB (Baskı Devre Kartı) İmalatı" -#: app_Main.py:2803 +#: app_Main.py:2735 msgid "Development" msgstr "Geliştirme" -#: app_Main.py:2804 +#: app_Main.py:2736 msgid "DOWNLOAD" msgstr "İNDİR" -#: app_Main.py:2805 +#: app_Main.py:2737 msgid "Issue tracker" msgstr "Sorun izleyici" -#: app_Main.py:2824 +#: app_Main.py:2756 msgid "Licensed under the MIT license" msgstr "MIT lisansı altında lisanslanmıştır" -#: app_Main.py:2833 +#: app_Main.py:2765 msgid "" "Permission is hereby granted, free of charge, to any person obtaining a " "copy\n" @@ -18183,7 +18120,7 @@ msgstr "" "ALACAKLAR İÇİN\n" "SORUMLU OLMAYACAKTIR." -#: app_Main.py:2855 +#: app_Main.py:2787 msgid "" "Some of the icons used are from the following sources:
    Icons by FreepikIcons8
    Simgeleri " "oNline Web Fonts" -#: app_Main.py:2891 +#: app_Main.py:2823 msgid "Splash" msgstr "Karşılama Ekranı" -#: app_Main.py:2897 +#: app_Main.py:2829 msgid "Programmers" msgstr "Geliştiriciler" -#: app_Main.py:2903 +#: app_Main.py:2835 msgid "Translators" msgstr "Çevirmenler" -#: app_Main.py:2909 +#: app_Main.py:2841 msgid "License" msgstr "Lisans" -#: app_Main.py:2915 +#: app_Main.py:2847 msgid "Attributions" msgstr "Açıklamalar" -#: app_Main.py:2938 +#: app_Main.py:2870 msgid "Programmer" msgstr "Geliştirici" -#: app_Main.py:2939 +#: app_Main.py:2871 msgid "Status" msgstr "Durum" -#: app_Main.py:2940 app_Main.py:3020 +#: app_Main.py:2872 app_Main.py:2952 msgid "E-mail" msgstr "E-posta" -#: app_Main.py:2943 +#: app_Main.py:2875 msgid "Program Author" msgstr "Program Yazarı" -#: app_Main.py:2948 +#: app_Main.py:2880 msgid "BETA Maintainer >= 2019" msgstr "BETA Geliştiricisi >= 2019" -#: app_Main.py:3017 +#: app_Main.py:2949 msgid "Language" msgstr "Dil" -#: app_Main.py:3018 +#: app_Main.py:2950 msgid "Translator" msgstr "Çevirmen" -#: app_Main.py:3019 +#: app_Main.py:2951 msgid "Corrections" msgstr "Düzeltmeler" -#: app_Main.py:3104 +#: app_Main.py:3036 msgid "Important Information's" msgstr "Önemli Bilgiler" -#: app_Main.py:3152 +#: app_Main.py:3084 #, python-format msgid "This program is %s and free in a very wide meaning of the word." msgstr "Bu program % s ve kelimenin tam anlamıyla ücretsizdir." -#: app_Main.py:3153 +#: app_Main.py:3085 msgid "Yet it cannot evolve without contributions." msgstr "Yine de katkı olmadan gelişemez." -#: app_Main.py:3154 +#: app_Main.py:3086 msgid "If you want to see this application grow and become better and better" msgstr "" "Bu uygulamanın büyümesini ve daha iyi ve daha iyi olmasını istiyorsanız" -#: app_Main.py:3155 +#: app_Main.py:3087 msgid "you can contribute to the development yourself by:" msgstr "geliştirmeye katkıda bulunabilirsiniz :" -#: app_Main.py:3156 +#: app_Main.py:3088 msgid "Pull Requests on the Bitbucket repository, if you are a developer" msgstr "Bir geliştiriciyseniz, Bitbucket deposundaki istekleri çekin" -#: app_Main.py:3158 +#: app_Main.py:3090 msgid "Bug Reports by providing the steps required to reproduce the bug" msgstr "" "Hata raporlama, hatayı yeniden oluşturmak için gerekli adımları sağlamak için" -#: app_Main.py:3189 +#: app_Main.py:3121 msgid "Contribute" msgstr "Katkıda Bulun" -#: app_Main.py:3212 +#: app_Main.py:3144 msgid "Links Exchange" msgstr "Link Değişimi" -#: app_Main.py:3224 app_Main.py:3243 +#: app_Main.py:3156 app_Main.py:3175 msgid "Soon ..." msgstr "Yakında ..." -#: app_Main.py:3231 +#: app_Main.py:3163 msgid "How To's" msgstr "Nasıl Yapılır" -#: app_Main.py:3343 +#: app_Main.py:3275 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -18323,27 +18260,27 @@ msgstr "" "bir bilgi alamıyorsanız, Yardım menüsündeki\n" "YouTube kanalı bağlantısını kullanın." -#: app_Main.py:3350 +#: app_Main.py:3282 msgid "Alternative website" msgstr "Alternatif web sitesi" -#: app_Main.py:3701 +#: app_Main.py:3624 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "FlatCAM'e kayıtlı seçili Excellon dosya uzantıları." -#: app_Main.py:3723 +#: app_Main.py:3646 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "FlatCAM'e kayıtlı seçili G-Kod dosya uzantıları." -#: app_Main.py:3745 +#: app_Main.py:3668 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "FlatCAM'e kayıtlı seçilmiş Gerber dosya uzantıları." -#: app_Main.py:3933 app_Main.py:3994 app_Main.py:4024 +#: app_Main.py:3856 app_Main.py:3917 app_Main.py:3947 msgid "At least two objects are required for join. Objects currently selected" msgstr "Birleştirme için en az iki nesne gerekir. Şu anda seçili olan nesneler" -#: app_Main.py:3942 +#: app_Main.py:3865 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 " @@ -18359,47 +18296,47 @@ msgstr "" "sonuç beklendiği gibi olmayabilir.\n" "Oluşturulan G Kodunu kontrol edin." -#: app_Main.py:3956 app_Main.py:3966 +#: app_Main.py:3879 app_Main.py:3889 msgid "Geometry merging finished" msgstr "Şekil birleştirme başarıyla tamamlandı" -#: app_Main.py:3989 +#: app_Main.py:3912 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "Hata. Excellon birleştirme yalnızca Excellon nesnelerinde çalışır." -#: app_Main.py:4001 +#: app_Main.py:3924 msgid "Excellon merging finished" msgstr "Excellon birleştirmesi başarıyla tamamlandı" -#: app_Main.py:4019 +#: app_Main.py:3942 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "Hata. Gerber birleşimi sadece Gerber nesneleri üzerinde çalışır." -#: app_Main.py:4029 +#: app_Main.py:3952 msgid "Gerber merging finished" msgstr "Gerber birleşmesi başarıyla tamamlandı" -#: app_Main.py:4049 app_Main.py:4086 +#: app_Main.py:3972 app_Main.py:4009 msgid "Failed. Select a Geometry Object and try again." msgstr "Hata. Bir Şekil nesnesi seçin ve tekrar deneyin." -#: app_Main.py:4053 app_Main.py:4091 +#: app_Main.py:3976 app_Main.py:4014 msgid "Expected a GeometryObject, got" msgstr "Bir FlatCAM Şekil bekleniyordu, alınan" -#: app_Main.py:4068 +#: app_Main.py:3991 msgid "A Geometry object was converted to MultiGeo type." msgstr "Şekil nesnesi Çoklu Şekil türüne dönüştürüldü." -#: app_Main.py:4106 +#: app_Main.py:4029 msgid "A Geometry object was converted to SingleGeo type." msgstr "Şekil nesnesi bir Tekli Şekil türüne dönüştürüldü." -#: app_Main.py:4339 +#: app_Main.py:4262 msgid "Toggle Units" msgstr "Birimleri Değiştir" -#: app_Main.py:4343 +#: app_Main.py:4266 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -18411,24 +18348,24 @@ msgstr "" "\n" "Devam etmek istiyor musunuz?" -#: app_Main.py:4346 app_Main.py:4509 app_Main.py:4592 app_Main.py:7327 -#: app_Main.py:7343 app_Main.py:7681 app_Main.py:7693 +#: app_Main.py:4269 app_Main.py:4432 app_Main.py:4515 app_Main.py:8259 +#: app_Main.py:8274 app_Main.py:8605 app_Main.py:8617 msgid "Ok" msgstr "Evet" -#: app_Main.py:4396 +#: app_Main.py:4319 msgid "Converted units to" msgstr "Birimler şuna dönüştürüldü" -#: app_Main.py:4436 +#: app_Main.py:4359 msgid "Workspace enabled." msgstr "Çalışma alanı etkin." -#: app_Main.py:4439 +#: app_Main.py:4362 msgid "Workspace disabled." msgstr "Çalışma alanı devre dışı." -#: app_Main.py:4503 +#: app_Main.py:4426 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." @@ -18436,95 +18373,95 @@ msgstr "" "Uç ekleme yalnızca Gelişmiş işaretlendiğinde çalışır.\n" "Düzenle ->Ayarlar -> Genel - Uygulama Seviyesi ->Gelişmiş'i seçin." -#: app_Main.py:4585 +#: app_Main.py:4508 msgid "Delete objects" msgstr "Nesneleri Sil" -#: app_Main.py:4590 +#: app_Main.py:4513 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" msgstr "Seçilen nesneleri kalıcı olarak silmek istediğinizden emin misiniz?" -#: app_Main.py:4633 +#: app_Main.py:4556 msgid "Object(s) deleted" msgstr "Nesneler silindi" -#: app_Main.py:4637 +#: app_Main.py:4560 msgid "Save the work in Editor and try again ..." msgstr "Çalışmayı Düzenleyici'ye kaydedin ve tekrar deneyin ..." -#: app_Main.py:4666 +#: app_Main.py:4589 msgid "Object deleted" msgstr "Nesne silindi" -#: app_Main.py:4693 +#: app_Main.py:4616 msgid "Click to set the origin ..." msgstr "Orjini belirtmek için tıklayın ..." -#: app_Main.py:4715 +#: app_Main.py:4638 msgid "Setting Origin..." msgstr "Orijin noktası ayarlanıyor ..." -#: app_Main.py:4728 app_Main.py:4830 +#: app_Main.py:4651 app_Main.py:4753 msgid "Origin set" msgstr "Orijin Ayarı" -#: app_Main.py:4745 +#: app_Main.py:4668 msgid "Origin coordinates specified but incomplete." msgstr "Orijin koordinatları belirtildi, ancak eksik." -#: app_Main.py:4786 +#: app_Main.py:4709 msgid "Moving to Origin..." msgstr "Orijine taşınıyor ..." -#: app_Main.py:4867 +#: app_Main.py:4790 msgid "Jump to ..." msgstr "Konuma Atla..." -#: app_Main.py:4868 +#: app_Main.py:4791 msgid "Enter the coordinates in format X,Y:" msgstr "Koordinatları X, Y biçiminde girin:" -#: app_Main.py:4878 +#: app_Main.py:4801 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "Yanlış koordinat girildi. Koordinatları şu biçimde girin: X, Y" -#: app_Main.py:4995 +#: app_Main.py:4918 msgid "Bottom-Left" msgstr "Sol Alt" -#: app_Main.py:4998 +#: app_Main.py:4921 msgid "Top-Right" msgstr "Sağ Üst" -#: app_Main.py:5019 +#: app_Main.py:4942 msgid "Locate ..." msgstr "Bul ..." -#: app_Main.py:5292 app_Main.py:5367 app_Main.py:5530 +#: app_Main.py:5215 app_Main.py:5290 app_Main.py:5453 msgid "No object is selected. Select an object and try again." msgstr "Hiçbir nesne seçilmedi. Bir nesne seçin ve tekrar deneyin." -#: app_Main.py:5556 +#: app_Main.py:5479 msgid "" "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "" "Durduruluyor. Mevcut görev mümkün olan en kısa sürede kapatılacaktır ..." -#: app_Main.py:5562 +#: app_Main.py:5485 msgid "The current task was gracefully closed on user request..." msgstr "Geçerli görev kullanıcının isteği üzerine kapatıldı ..." -#: app_Main.py:5752 +#: app_Main.py:5675 msgid "Tools in Tools Database edited but not saved." msgstr "Ayarlar düzenlendi ancak kaydedilmedi." -#: app_Main.py:5791 +#: app_Main.py:5714 msgid "Adding tool from DB is not allowed for this object." msgstr "Bu nesne için Veri Tabanından bir araç eklenmesine izin verilmiyor." -#: app_Main.py:5809 +#: app_Main.py:5732 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" @@ -18532,115 +18469,390 @@ msgstr "" "Bir veya daha fazla araç değiştirildi. Araç Veri Tabanını güncellemek " "istiyor musunuz?" -#: app_Main.py:5811 +#: app_Main.py:5734 msgid "Save Tools Database" msgstr "Araçlar Veri Tabanını Kaydet" -#: app_Main.py:5857 +#: app_Main.py:5780 msgid "No object selected to Flip on Y axis." msgstr "Y ekseninde çevrilecek hiçbir nesne seçilmedi." -#: app_Main.py:5883 +#: app_Main.py:5806 msgid "Flip on Y axis done." msgstr "Y ekseni üzerinde çevirme işlemi tamamlandı." -#: app_Main.py:5905 +#: app_Main.py:5828 msgid "No object selected to Flip on X axis." msgstr "X ekseninde çevirmek için hiçbir nesne seçilmedi." -#: app_Main.py:5931 +#: app_Main.py:5854 msgid "Flip on X axis done." msgstr "X ekseni üzerinde çevirme işlemi tamamlandı." -#: app_Main.py:5953 +#: app_Main.py:5876 msgid "No object selected to Rotate." msgstr "Döndürmek için hiçbir nesne seçilmedi." -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Transform" msgstr "Döndür" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Enter the Angle value:" msgstr "Açı Değerini Girin:" -#: app_Main.py:5986 +#: app_Main.py:5909 msgid "Rotation done." msgstr "Döndürme işlemi tamamlandı." -#: app_Main.py:5988 +#: app_Main.py:5911 msgid "Rotation movement was not executed." msgstr "Döndürme işlemi gerçekleştirilemedi." -#: app_Main.py:6005 +#: app_Main.py:5928 msgid "No object selected to Skew/Shear on X axis." msgstr "X ekseni boyunca eğme/kaydırma için hiçbir nesne seçilmedi." -#: app_Main.py:6026 +#: app_Main.py:5949 msgid "Skew on X axis done." msgstr "X ekseninde eğme işlemi tamamlandı." -#: app_Main.py:6042 +#: app_Main.py:5965 msgid "No object selected to Skew/Shear on Y axis." msgstr "Y ekseni boyunca eğme/kaydırma için hiçbir nesne seçilmedi." -#: app_Main.py:6063 +#: app_Main.py:5986 msgid "Skew on Y axis done." msgstr "Y ekseninde eğme işlemi tamamlandı." -#: app_Main.py:6145 +#: app_Main.py:6068 msgid "New Grid ..." msgstr "Yeni Izgara ..." -#: app_Main.py:6146 +#: app_Main.py:6069 msgid "Enter a Grid Value:" msgstr "Izgara Boyutunu Girin:" -#: app_Main.py:6154 app_Main.py:6178 +#: app_Main.py:6077 app_Main.py:6101 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "" "Lütfen ondalıklı biçimde sıfır olmayan bir değer içeren bir ızgara değeri " "girin." -#: app_Main.py:6159 +#: app_Main.py:6082 msgid "New Grid added" msgstr "Yeni ızgara eklendi" -#: app_Main.py:6161 +#: app_Main.py:6084 msgid "Grid already exists" msgstr "Izgara zaten var" -#: app_Main.py:6163 +#: app_Main.py:6086 msgid "Adding New Grid cancelled" msgstr "Yeni ızgara ekleme işlemi iptal edildi" -#: app_Main.py:6184 +#: app_Main.py:6107 msgid " Grid Value does not exist" msgstr " Izgara değeri mevcut değil" -#: app_Main.py:6186 +#: app_Main.py:6109 msgid "Grid Value deleted" msgstr "Izgara değeri silindi" -#: app_Main.py:6188 +#: app_Main.py:6111 msgid "Delete Grid value cancelled" msgstr "Izgara değerini silme işlemi iptal edildi" -#: app_Main.py:6194 +#: app_Main.py:6117 msgid "Key Shortcut List" msgstr "Klavye Kısayol Listesi" -#: app_Main.py:6231 +#: app_Main.py:6154 msgid " No object selected to copy it's name" msgstr "" " Adını kopyalamak için hiçbir nesne seçilmedi HPGL2 açılamadı. Muhtemelen " "bir HPGL2 dosyası değil" -#: app_Main.py:6235 +#: app_Main.py:6158 msgid "Name copied on clipboard ..." msgstr "İsim panoya kopyalandı ..." -#: app_Main.py:6892 +#: app_Main.py:6917 app_Main.py:6921 +msgid "Select an Gerber or Excellon file to view it's source file." +msgstr "" +"Kaynak kodunu görüntülemek için bir Gerber veya Excellon dosyası seçin." + +#: app_Main.py:6924 +msgid "Viewing the source code of the selected object." +msgstr "Seçilen nesnenin kaynak kodunu görüntüle." + +#: app_Main.py:6938 +msgid "Source Editor" +msgstr "Kaynak kodu düzenleyicisi" + +#: app_Main.py:6974 app_Main.py:6981 +msgid "There is no selected object for which to see it's source file code." +msgstr "Kaynak dosyalarını görebileceğiniz seçili bir nesne yok." + +#: app_Main.py:6989 +msgid "Failed to load the source code for the selected object" +msgstr "Seçilen nesnenin kaynak kodu yüklenemedi" + +#: app_Main.py:7022 +msgid "Go to Line ..." +msgstr "Satıra Git ..." + +#: app_Main.py:7023 +msgid "Line:" +msgstr "Satır:" + +#: app_Main.py:7053 +msgid "Redrawing all objects" +msgstr "Tüm nesneler yeniden çiziliyor" + +#: app_Main.py:7141 +msgid "Failed to load recent item list." +msgstr "Son dosya listesi yüklenemedi." + +#: app_Main.py:7148 +msgid "Failed to parse recent item list." +msgstr "Son dosya listesi okunamadı." + +#: app_Main.py:7158 +msgid "Failed to load recent projects item list." +msgstr "Son projelerin öğe listesi yüklenemedi." + +#: app_Main.py:7165 +msgid "Failed to parse recent project item list." +msgstr "Son proje öğelerinin listesi okunamadı." + +#: app_Main.py:7226 +msgid "Clear Recent projects" +msgstr "Son Projeleri Temizle" + +#: app_Main.py:7250 +msgid "Clear Recent files" +msgstr "Listeyi Temizle" + +#: app_Main.py:7306 +msgid "FlatCAM Evo" +msgstr "FlatCAM Evo" + +#: app_Main.py:7310 +msgid "Release date" +msgstr "Yayın Tarihi" + +#: app_Main.py:7314 +msgid "Displayed" +msgstr "Görüntülendi" + +#: app_Main.py:7317 +msgid "Snap" +msgstr "Maksimum Yapışma" + +#: app_Main.py:7326 +msgid "Canvas" +msgstr "Çalışma Alanı" + +#: app_Main.py:7331 +msgid "Workspace active" +msgstr "Çalışma alanı etkin" + +#: app_Main.py:7335 +msgid "Workspace size" +msgstr "Çalışma alanı boyutu" + +#: app_Main.py:7339 +msgid "Workspace orientation" +msgstr "Çalışma alanı yönlendirmesi" + +#: app_Main.py:7402 +msgid "Failed checking for latest version. Could not connect." +msgstr "Program güncellemesi kontrol edilemedi. İnternet bağlantısı yok." + +#: app_Main.py:7409 +msgid "Could not parse information about latest version." +msgstr "En son sürüm bilgileri okunamıyor." + +#: app_Main.py:7419 +msgid "FlatCAM is up to date!" +msgstr "FlatCAM güncel!" + +#: app_Main.py:7424 +msgid "Newer Version Available" +msgstr "Daha yeni bir sürüm var" + +#: app_Main.py:7426 +msgid "There is a newer version of FlatCAM available for download:" +msgstr "İndirebileceğiniz daha yeni bir FlatCAM sürümü var:" + +#: app_Main.py:7430 +msgid "info" +msgstr "bilgi" + +#: app_Main.py:7458 +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 çalışma alanı başlatılamadı. HW veya HW yapılandırması " +"desteklenmiyor. Düzenle -> Ayarlar -> Genel sekmesinde Grafik Modu'nu Legacy " +"(2D) olarak değiştirin.\n" + +#: app_Main.py:7536 +msgid "All plots disabled." +msgstr "Tüm siteler devre dışı." + +#: app_Main.py:7543 +msgid "All non selected plots disabled." +msgstr "Seçili olmayan tüm siteler devre dışı bırakılır." + +#: app_Main.py:7550 +msgid "All plots enabled." +msgstr "Tüm siteler etkin." + +#: app_Main.py:7556 +msgid "Selected plots enabled..." +msgstr "Seçilen siteler etkin ..." + +#: app_Main.py:7564 +msgid "Selected plots disabled..." +msgstr "Seçilen siteler devre dışı ..." + +#: app_Main.py:7597 +msgid "Enabling plots ..." +msgstr "Siteler açılıyor ..." + +#: app_Main.py:7646 +msgid "Disabling plots ..." +msgstr "Sitelerin bağlantısı kesiliyor ..." + +#: app_Main.py:7669 +msgid "Working ..." +msgstr "Çalışıyor ..." + +#: app_Main.py:7781 +msgid "Set alpha level ..." +msgstr "Şeffaflık seviyesini ayarla ..." + +#: app_Main.py:8057 app_Main.py:8096 app_Main.py:8140 app_Main.py:8206 +#: app_Main.py:8932 app_Main.py:10193 app_Main.py:10255 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" +"Çalışma alanı başlatılıyor.\n" +"Çalışma alanını başlatılması tamamlandı" + +#: app_Main.py:8060 +msgid "Opening Gerber file." +msgstr "Gerber dosyası açılıyor." + +#: app_Main.py:8099 +msgid "Opening Excellon file." +msgstr "Excellon dosyası açılıyor." + +#: app_Main.py:8129 app_Main.py:8134 +msgid "Open G-Code" +msgstr "G-Kodunu Aç" + +#: app_Main.py:8143 +msgid "Opening G-Code file." +msgstr "G-Kodu dosyası açılıyor." + +#: app_Main.py:8197 app_Main.py:8201 +msgid "Open HPGL2" +msgstr "HPGL2'yi Açın" + +#: app_Main.py:8209 +msgid "Opening HPGL2 file." +msgstr "HPGL2 dosyası açılıyor." + +#: app_Main.py:8232 app_Main.py:8235 +msgid "Open Configuration File" +msgstr "Yapılandırma Dosyasını Aç" + +#: app_Main.py:8254 app_Main.py:8600 +msgid "Please Select a Geometry object to export" +msgstr "Lütfen dışa aktarılacak bir Şekil nesnesi seçin" + +#: app_Main.py:8269 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "Yalnızca Şekil, Gerber ve CNC İş nesneleri kullanılabilir." + +#: app_Main.py:8314 +msgid "Data must be a 3D array with last dimension 3 or 4" +msgstr "Verilerin son boyutu 3 veya 4 olan bir 3D dizi olması gerekir" + +#: app_Main.py:8320 app_Main.py:8324 +msgid "Export PNG Image" +msgstr "PNG Görüntüsünü Dışa Aktar" + +#: app_Main.py:8356 app_Main.py:8561 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "" +"Hata. Sadece Gerber nesneleri Gerber dosyaları olarak kaydedilebilir ..." + +#: app_Main.py:8368 +msgid "Save Gerber source file" +msgstr "Gerber kaynak dosyasını kaydet" + +#: app_Main.py:8396 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "" +"Hata. Yalnızca komut dosyası nesneleri TCL komut dosyaları olarak " +"kaydedilebilir ..." + +#: app_Main.py:8408 +msgid "Save Script source file" +msgstr "Komut dosyası kaynak dosyasını kaydet" + +#: app_Main.py:8436 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "" +"Hata. Yalnızca Belge nesneleri Belge dosyaları olarak kaydedilebilir ..." + +#: app_Main.py:8448 +msgid "Save Document source file" +msgstr "Belgenin kaynak dosyasını kaydet" + +#: app_Main.py:8477 app_Main.py:8518 app_Main.py:9437 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" +"Hata. Yalnızca Excellon nesneleri Excellon dosyaları olarak " +"kaydedilebilir ..." + +#: app_Main.py:8485 app_Main.py:8490 +msgid "Save Excellon source file" +msgstr "Excellon kaynak dosyasını kaydet" + +#: app_Main.py:8526 app_Main.py:8530 +msgid "Export Excellon" +msgstr "Excellon'u Dışa Aktar" + +#: app_Main.py:8569 app_Main.py:8573 +msgid "Export Gerber" +msgstr "Gerber'i Dışa Aktar" + +#: app_Main.py:8612 +msgid "Only Geometry objects can be used." +msgstr "Yalnızca Şekil nesneleri kullanılabilir." + +#: app_Main.py:8628 app_Main.py:8632 +msgid "Export DXF" +msgstr "DXF'i Dışa Aktar" + +#: app_Main.py:8656 app_Main.py:8660 +msgid "Import SVG" +msgstr "SVG'i İçe Aktar" + +#: app_Main.py:8686 app_Main.py:8690 +msgid "Import DXF" +msgstr "DXF'i İçe Aktar" + +#: app_Main.py:8716 msgid "" "There are files/objects opened in FlatCAM.\n" "Creating a New project will delete them.\n" @@ -18649,305 +18861,171 @@ msgstr "" "FlatCAM'de açık dosyalar / nesneler var. Yeni bir proje oluşturmak onları " "siler. Projeyi kaydetmek istiyor musunuz?" -#: app_Main.py:6915 +#: app_Main.py:8739 msgid "New Project created" msgstr "Yeni proje oluşturuldu" -#: app_Main.py:7121 app_Main.py:7160 app_Main.py:7204 app_Main.py:7274 -#: app_Main.py:8060 app_Main.py:9304 app_Main.py:9366 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" -"Çalışma alanı başlatılıyor.\n" -"Çalışma alanını başlatılması tamamlandı" - -#: app_Main.py:7123 -msgid "Opening Gerber file." -msgstr "Gerber dosyası açılıyor." - -#: app_Main.py:7162 -msgid "Opening Excellon file." -msgstr "Excellon dosyası açılıyor." - -#: app_Main.py:7193 app_Main.py:7198 -msgid "Open G-Code" -msgstr "G-Kodunu Aç" - -#: app_Main.py:7206 -msgid "Opening G-Code file." -msgstr "G-Kodu dosyası açılıyor." - -#: app_Main.py:7265 app_Main.py:7269 -msgid "Open HPGL2" -msgstr "HPGL2'yi Açın" - -#: app_Main.py:7276 -msgid "Opening HPGL2 file." -msgstr "HPGL2 dosyası açılıyor." - -#: app_Main.py:7299 app_Main.py:7302 -msgid "Open Configuration File" -msgstr "Yapılandırma Dosyasını Aç" - -#: app_Main.py:7322 app_Main.py:7676 -msgid "Please Select a Geometry object to export" -msgstr "Lütfen dışa aktarılacak bir Şekil nesnesi seçin" - -#: app_Main.py:7338 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "Yalnızca Şekil, Gerber ve CNC İş nesneleri kullanılabilir." - -#: app_Main.py:7383 -msgid "Data must be a 3D array with last dimension 3 or 4" -msgstr "Verilerin son boyutu 3 veya 4 olan bir 3D dizi olması gerekir" - -#: app_Main.py:7389 app_Main.py:7393 -msgid "Export PNG Image" -msgstr "PNG Görüntüsünü Dışa Aktar" - -#: app_Main.py:7426 app_Main.py:7636 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "" -"Hata. Sadece Gerber nesneleri Gerber dosyaları olarak kaydedilebilir ..." - -#: app_Main.py:7438 -msgid "Save Gerber source file" -msgstr "Gerber kaynak dosyasını kaydet" - -#: app_Main.py:7467 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "" -"Hata. Yalnızca komut dosyası nesneleri TCL komut dosyaları olarak " -"kaydedilebilir ..." - -#: app_Main.py:7479 -msgid "Save Script source file" -msgstr "Komut dosyası kaynak dosyasını kaydet" - -#: app_Main.py:7508 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "" -"Hata. Yalnızca Belge nesneleri Belge dosyaları olarak kaydedilebilir ..." - -#: app_Main.py:7520 -msgid "Save Document source file" -msgstr "Belgenin kaynak dosyasını kaydet" - -#: app_Main.py:7550 app_Main.py:7592 app_Main.py:8543 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" -"Hata. Yalnızca Excellon nesneleri Excellon dosyaları olarak " -"kaydedilebilir ..." - -#: app_Main.py:7558 app_Main.py:7563 -msgid "Save Excellon source file" -msgstr "Excellon kaynak dosyasını kaydet" - -#: app_Main.py:7600 app_Main.py:7604 -msgid "Export Excellon" -msgstr "Excellon'u Dışa Aktar" - -#: app_Main.py:7644 app_Main.py:7648 -msgid "Export Gerber" -msgstr "Gerber'i Dışa Aktar" - -#: app_Main.py:7688 -msgid "Only Geometry objects can be used." -msgstr "Yalnızca Şekil nesneleri kullanılabilir." - -#: app_Main.py:7704 app_Main.py:7708 -msgid "Export DXF" -msgstr "DXF'i Dışa Aktar" - -#: app_Main.py:7733 app_Main.py:7736 -msgid "Import SVG" -msgstr "SVG'i İçe Aktar" - -#: app_Main.py:7764 app_Main.py:7768 -msgid "Import DXF" -msgstr "DXF'i İçe Aktar" - -#: app_Main.py:7822 app_Main.py:7826 -msgid "Select an Gerber or Excellon file to view it's source file." -msgstr "" -"Kaynak kodunu görüntülemek için bir Gerber veya Excellon dosyası seçin." - -#: app_Main.py:7829 -msgid "Viewing the source code of the selected object." -msgstr "Seçilen nesnenin kaynak kodunu görüntüle." - -#: app_Main.py:7843 -msgid "Source Editor" -msgstr "Kaynak kodu düzenleyicisi" - -#: app_Main.py:7879 app_Main.py:7886 -msgid "There is no selected object for which to see it's source file code." -msgstr "Kaynak dosyalarını görebileceğiniz seçili bir nesne yok." - -#: app_Main.py:7894 -msgid "Failed to load the source code for the selected object" -msgstr "Seçilen nesnenin kaynak kodu yüklenemedi" - -#: app_Main.py:7927 -msgid "Go to Line ..." -msgstr "Satıra Git ..." - -#: app_Main.py:7928 -msgid "Line:" -msgstr "Satır:" - -#: app_Main.py:7955 +#: app_Main.py:8841 msgid "New TCL script file created in Code Editor." msgstr "Kod düzenleyicide yeni TLC komut dosyası oluşturuldu." -#: app_Main.py:7994 app_Main.py:7996 app_Main.py:8032 app_Main.py:8034 +#: app_Main.py:8868 app_Main.py:8870 app_Main.py:8905 app_Main.py:8907 msgid "Open TCL script" msgstr "TCL Komut Dosyasını Aç" -#: app_Main.py:8062 +#: app_Main.py:8934 msgid "Executing ScriptObject file." msgstr "FlatCAM komut dosyası çalışıyor." -#: app_Main.py:8070 app_Main.py:8073 +#: app_Main.py:8942 app_Main.py:8946 msgid "Run TCL script" msgstr "TCL komut dosyasını çalıştır" -#: app_Main.py:8096 +#: app_Main.py:8969 msgid "TCL script file opened in Code Editor and executed." msgstr "TCL komut dosyası kod düzenleyicisinde açıldı ve yürütüldü." -#: app_Main.py:8147 app_Main.py:8153 +#: app_Main.py:9015 app_Main.py:9021 msgid "Save Project As ..." msgstr "Projeyi Farklı Kaydet ..." -#: app_Main.py:8188 +#: app_Main.py:9055 msgid "FlatCAM objects print" msgstr "FlatCAM nesnelerini yazdır" -#: app_Main.py:8201 app_Main.py:8208 +#: app_Main.py:9068 app_Main.py:9075 msgid "Save Object as PDF ..." msgstr "Nesneyi PDF Olarak Kaydet ..." -#: app_Main.py:8217 +#: app_Main.py:9084 msgid "Printing PDF ... Please wait." msgstr "PDF Yazdırılıyor ... Lütfen Bekleyiniz." -#: app_Main.py:8396 +#: app_Main.py:9262 msgid "PDF file saved to" msgstr "PDF dosyası şuraya kaydedildi" -#: app_Main.py:8421 +#: app_Main.py:9284 msgid "Exporting SVG" msgstr "SVG'yi dışa aktarılıyor" -#: app_Main.py:8464 +#: app_Main.py:9327 msgid "SVG file exported to" msgstr "SVG dosyası şuraya aktarıldı" -#: app_Main.py:8490 -msgid "Save cancelled because source file is empty. Try to export the file." -msgstr "" -"Kaynak dosya boş olduğundan kaydetme işlemi iptal edildi. Gerber dosyasını " -"dışa aktarmayı deneyin." +#: app_Main.py:9342 app_Main.py:9346 +msgid "Import FlatCAM Preferences" +msgstr "FlatCAM Ayarlarını İçe Aktar" -#: app_Main.py:8641 +#: app_Main.py:9357 +msgid "Imported Defaults from" +msgstr "Varsayılan değerler şuradan alındı" + +#: app_Main.py:9376 app_Main.py:9382 +msgid "Export FlatCAM Preferences" +msgstr "FlatCAM Ayarlarını Dışa Aktar" + +#: app_Main.py:9402 +msgid "Exported preferences to" +msgstr "Ayarlar şuraya aktarıldı" + +#: app_Main.py:9535 msgid "Excellon file exported to" msgstr "Excellon dosyası şuraya aktarıldı" -#: app_Main.py:8650 +#: app_Main.py:9544 msgid "Exporting Excellon" msgstr "Excellon dışa aktarılıyor" -#: app_Main.py:8655 app_Main.py:8662 +#: app_Main.py:9549 app_Main.py:9556 msgid "Could not export Excellon file." msgstr "Excellon dosyası dışa aktarılamadı." -#: app_Main.py:8778 +#: app_Main.py:9670 msgid "Gerber file exported to" msgstr "Gerber dosyası şuraya aktarıldı" -#: app_Main.py:8786 +#: app_Main.py:9678 msgid "Exporting Gerber" msgstr "Gerber dosyası dışa aktarılıyor" -#: app_Main.py:8791 app_Main.py:8798 +#: app_Main.py:9683 app_Main.py:9690 msgid "Could not export file." msgstr "Dosya dışa aktarılamadı." -#: app_Main.py:8846 +#: app_Main.py:9736 msgid "DXF file exported to" msgstr "DXF dosyası şuraya aktarıldı" -#: app_Main.py:8855 +#: app_Main.py:9745 msgid "Exporting DXF" msgstr "DXF dosyası dışa aktarılıyor" -#: app_Main.py:8860 app_Main.py:8867 +#: app_Main.py:9750 app_Main.py:9757 msgid "Could not export DXF file." msgstr "DXF dosyası dışa aktarılamadı." -#: app_Main.py:8906 +#: app_Main.py:9795 msgid "Importing SVG" msgstr "SVG dosyası içe aktarılıyor" -#: app_Main.py:8914 app_Main.py:8969 +#: app_Main.py:9803 app_Main.py:9858 msgid "Import failed." msgstr "İçe aktarma başarısız oldu." -#: app_Main.py:8961 +#: app_Main.py:9850 msgid "Importing DXF" msgstr "DXF dosyası içe aktarılıyor" -#: app_Main.py:9002 app_Main.py:9193 app_Main.py:9258 +#: app_Main.py:9891 app_Main.py:10082 app_Main.py:10147 msgid "Failed to open file" msgstr "Dosya açılamadı" -#: app_Main.py:9005 app_Main.py:9196 app_Main.py:9261 +#: app_Main.py:9894 app_Main.py:10085 app_Main.py:10150 msgid "Failed to parse file" msgstr "Dosya okunamadı" -#: app_Main.py:9017 +#: app_Main.py:9906 msgid "Object is not Gerber file or empty. Aborting object creation." msgstr "" "Nesne bir Gerber dosyası değil veya boş. Nesne oluşturma işlemi iptal " "ediliyor." -#: app_Main.py:9022 +#: app_Main.py:9911 msgid "Opening Gerber" msgstr "Gerber açılıyor" -#: app_Main.py:9033 +#: app_Main.py:9922 msgid "Open Gerber failed. Probable not a Gerber file." msgstr "" "Gerber'i açma işlemi başarısız oldu. Bu bu muhtemelen bir Gerber dosyası " "değil." -#: app_Main.py:9066 +#: app_Main.py:9955 msgid "Cannot open file" msgstr "Dosya açılamıyor" -#: app_Main.py:9086 +#: app_Main.py:9975 msgid "Opening Excellon." msgstr "Excellon dosyası açılıyor." -#: app_Main.py:9096 +#: app_Main.py:9985 msgid "Open Excellon file failed. Probable not an Excellon file." msgstr "Excellon dosyası açılamadı. Bu muhtemelen bir Excellon dosyası değil." -#: app_Main.py:9128 +#: app_Main.py:10017 msgid "Reading GCode file" msgstr "G-Kod dosyası okunuyor" -#: app_Main.py:9141 +#: app_Main.py:10030 msgid "This is not GCODE" msgstr "Bu G KOD'u değil" -#: app_Main.py:9146 +#: app_Main.py:10035 msgid "Opening G-Code." msgstr "G-Kodu açılıyor." -#: app_Main.py:9159 +#: app_Main.py:10048 msgid "" "Failed to create CNCJob Object. Probable not a GCode file. Try to load it " "from File menu.\n" @@ -18959,215 +19037,90 @@ msgstr "" "G-Kod dosyasından FlatCAM CNC İş nesnesi oluşturma denemesi, işlem sırasında " "başarısız oldu" -#: app_Main.py:9215 +#: app_Main.py:10104 msgid "Object is not HPGL2 file or empty. Aborting object creation." msgstr "" "Nesne bir HPGL2 dosyası değil veya boş. Nesne oluşturma işlemini iptal " "ediliyor." -#: app_Main.py:9220 +#: app_Main.py:10109 msgid "Opening HPGL2" msgstr "HPGL2 açılıyor" -#: app_Main.py:9227 +#: app_Main.py:10116 msgid " Open HPGL2 failed. Probable not a HPGL2 file." msgstr " HPGL2 açılamadı. Muhtemelen bir HPGL2 dosyası değil." -#: app_Main.py:9253 +#: app_Main.py:10142 msgid "TCL script file opened in Code Editor." msgstr "TCL komut dosyası kod düzenleyicide açıldı." -#: app_Main.py:9273 +#: app_Main.py:10162 msgid "Opening TCL Script..." msgstr "TCL komut dosyası açılıyor..." -#: app_Main.py:9284 +#: app_Main.py:10173 msgid "Failed to open TCL Script." msgstr "TCL komut dosyası açılamadı." -#: app_Main.py:9306 +#: app_Main.py:10196 msgid "Opening FlatCAM Config file." msgstr "FlatCAM yapılandırma dosyası açılıyor." -#: app_Main.py:9334 +#: app_Main.py:10223 msgid "Failed to open config file" msgstr "Yapılandırma dosyası açılamadı" -#: app_Main.py:9363 +#: app_Main.py:10252 msgid "Loading Project ... Please Wait ..." msgstr "Proje Yükleniyor ... Lütfen Bekleyiniz ..." -#: app_Main.py:9368 +#: app_Main.py:10258 msgid "Opening FlatCAM Project file." msgstr "FlatCAM proje dosyası açılıyor." -#: app_Main.py:9383 app_Main.py:9387 app_Main.py:9404 +#: app_Main.py:10273 app_Main.py:10277 app_Main.py:10295 msgid "Failed to open project file" msgstr "Proje dosyası açılamadı" -#: app_Main.py:9443 +#: app_Main.py:10335 msgid "Loading Project ... restoring" msgstr "Proje yükleniyor ... onarılıyor" -#: app_Main.py:9451 +#: app_Main.py:10339 msgid "Project loaded from" msgstr "Şuradan yüklenen proje" -#: app_Main.py:9477 -msgid "Redrawing all objects" -msgstr "Tüm nesneler yeniden çiziliyor" - -#: app_Main.py:9565 -msgid "Failed to load recent item list." -msgstr "Son dosya listesi yüklenemedi." - -#: app_Main.py:9572 -msgid "Failed to parse recent item list." -msgstr "Son dosya listesi okunamadı." - -#: app_Main.py:9582 -msgid "Failed to load recent projects item list." -msgstr "Son projelerin öğe listesi yüklenemedi." - -#: app_Main.py:9589 -msgid "Failed to parse recent project item list." -msgstr "Son proje öğelerinin listesi okunamadı." - -#: app_Main.py:9650 -msgid "Clear Recent projects" -msgstr "Son Projeleri Temizle" - -#: app_Main.py:9674 -msgid "Clear Recent files" -msgstr "Listeyi Temizle" - -#: app_Main.py:9730 -msgid "FlatCAM Evo" -msgstr "" - -#: app_Main.py:9734 -msgid "Release date" -msgstr "Yayın Tarihi" - -#: app_Main.py:9738 -msgid "Displayed" -msgstr "Görüntülendi" - -#: app_Main.py:9741 -msgid "Snap" -msgstr "Maksimum Yapışma" - -#: app_Main.py:9750 -msgid "Canvas" -msgstr "Çalışma Alanı" - -#: app_Main.py:9755 -msgid "Workspace active" -msgstr "Çalışma alanı etkin" - -#: app_Main.py:9759 -msgid "Workspace size" -msgstr "Çalışma alanı boyutu" - -#: app_Main.py:9763 -msgid "Workspace orientation" -msgstr "Çalışma alanı yönlendirmesi" - -#: app_Main.py:9826 -msgid "Failed checking for latest version. Could not connect." -msgstr "Program güncellemesi kontrol edilemedi. İnternet bağlantısı yok." - -#: app_Main.py:9833 -msgid "Could not parse information about latest version." -msgstr "En son sürüm bilgileri okunamıyor." - -#: app_Main.py:9843 -msgid "FlatCAM is up to date!" -msgstr "FlatCAM güncel!" - -#: app_Main.py:9848 -msgid "Newer Version Available" -msgstr "Daha yeni bir sürüm var" - -#: app_Main.py:9850 -msgid "There is a newer version of FlatCAM available for download:" -msgstr "İndirebileceğiniz daha yeni bir FlatCAM sürümü var:" - -#: app_Main.py:9854 -msgid "info" -msgstr "bilgi" - -#: app_Main.py:9882 -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 çalışma alanı başlatılamadı. HW veya HW yapılandırması " -"desteklenmiyor. Düzenle -> Ayarlar -> Genel sekmesinde Grafik Modu'nu Legacy " -"(2D) olarak değiştirin.\n" - -#: app_Main.py:9960 -msgid "All plots disabled." -msgstr "Tüm siteler devre dışı." - -#: app_Main.py:9967 -msgid "All non selected plots disabled." -msgstr "Seçili olmayan tüm siteler devre dışı bırakılır." - -#: app_Main.py:9974 -msgid "All plots enabled." -msgstr "Tüm siteler etkin." - -#: app_Main.py:9980 -msgid "Selected plots enabled..." -msgstr "Seçilen siteler etkin ..." - -#: app_Main.py:9988 -msgid "Selected plots disabled..." -msgstr "Seçilen siteler devre dışı ..." - -#: app_Main.py:10021 -msgid "Enabling plots ..." -msgstr "Siteler açılıyor ..." - -#: app_Main.py:10070 -msgid "Disabling plots ..." -msgstr "Sitelerin bağlantısı kesiliyor ..." - -#: app_Main.py:10093 -msgid "Working ..." -msgstr "Çalışıyor ..." - -#: app_Main.py:10205 -msgid "Set alpha level ..." -msgstr "Şeffaflık seviyesini ayarla ..." - -#: app_Main.py:10271 +#: app_Main.py:10368 msgid "Saving FlatCAM Project" msgstr "FlatCAM Projesi Kaydediliyor" -#: app_Main.py:10294 app_Main.py:10330 +#: app_Main.py:10390 app_Main.py:10426 msgid "Project saved to" msgstr "Proje şuraya kaydedildi" -#: app_Main.py:10301 +#: app_Main.py:10397 msgid "The object is used by another application." msgstr "Nesne başka bir uygulama tarafından kullanılıyor." -#: app_Main.py:10315 +#: app_Main.py:10411 msgid "Failed to verify project file" msgstr "Proje dosyası kontrol edilemedi" -#: app_Main.py:10315 app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10411 app_Main.py:10419 app_Main.py:10429 msgid "Retry to save it." msgstr "Lütfen kaydetmek için tekrar deneyin." -#: app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10419 app_Main.py:10429 msgid "Failed to parse saved project file" msgstr "Kaydedilmiş proje dosyası okunamadı" +#: app_Main.py:10466 +msgid "Save cancelled because source file is empty. Try to export the file." +msgstr "" +"Kaynak dosya boş olduğundan kaydetme işlemi iptal edildi. Gerber dosyasını " +"dışa aktarmayı deneyin." + #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "FlatCAM Beta" @@ -19262,10 +19215,8 @@ msgid "G91 coordinates not implemented" msgstr "G91 koordinatları uygulanmadı" #: camlib.py:3447 -#, fuzzy -#| msgid "Finished G-Code generation for tool: %s" msgid "Finished G-Code generation for tool:" -msgstr "Uç için G-Kod'u oluşturma işlemi tamamlandı: %s" +msgstr "Uç için G-Kod'u oluşturma işlemi tamamlandı:" #: camlib.py:3497 msgid "" diff --git a/locale_template/strings.pot b/locale_template/strings.pot index 763a81f8..736d4edd 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-10-24 15:55+0300\n" +"POT-Creation-Date: 2020-10-24 19:48+0300\n" "PO-Revision-Date: 2019-03-25 15:08+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -106,21 +106,21 @@ msgstr "" #: appGUI/MainGUI.py:3315 appObjects/FlatCAMCNCJob.py:1750 #: appObjects/ObjectCollection.py:126 appTools/ToolFilm.py:238 appTools/ToolFilm.py:384 #: appTools/ToolImage.py:112 appTools/ToolMove.py:269 appTools/ToolPcbWizard.py:189 -#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:526 appTools/ToolQRCode.py:573 -#: app_Main.py:1753 app_Main.py:2581 app_Main.py:2617 app_Main.py:2664 app_Main.py:4410 -#: app_Main.py:7128 app_Main.py:7167 app_Main.py:7211 app_Main.py:7240 app_Main.py:7281 -#: app_Main.py:7306 app_Main.py:7362 app_Main.py:7398 app_Main.py:7443 app_Main.py:7484 -#: app_Main.py:7526 app_Main.py:7568 app_Main.py:7609 app_Main.py:7653 app_Main.py:7713 -#: app_Main.py:7745 app_Main.py:7777 app_Main.py:8000 app_Main.py:8038 app_Main.py:8081 -#: app_Main.py:8158 app_Main.py:8213 +#: appTools/ToolPcbWizard.py:212 appTools/ToolQRCode.py:527 appTools/ToolQRCode.py:574 +#: app_Main.py:1762 app_Main.py:2596 app_Main.py:4333 app_Main.py:8065 app_Main.py:8104 +#: app_Main.py:8148 app_Main.py:8174 app_Main.py:8214 app_Main.py:8239 app_Main.py:8293 +#: app_Main.py:8329 app_Main.py:8373 app_Main.py:8413 app_Main.py:8454 app_Main.py:8495 +#: app_Main.py:8535 app_Main.py:8578 app_Main.py:8637 app_Main.py:8669 app_Main.py:8699 +#: app_Main.py:8874 app_Main.py:8911 app_Main.py:8954 app_Main.py:9026 app_Main.py:9080 +#: app_Main.py:9350 app_Main.py:9385 msgid "Cancelled." msgstr "" #: Bookmark.py:308 appDatabase.py:2089 appEditors/AppTextEditor.py:312 #: appObjects/FlatCAMCNCJob.py:1672 appObjects/FlatCAMCNCJob.py:1862 #: appObjects/FlatCAMCNCJob.py:2311 appTools/ToolFilm.py:582 appTools/ToolFilm.py:830 -#: appTools/ToolSolderPaste.py:1097 app_Main.py:2672 app_Main.py:8457 app_Main.py:8505 -#: app_Main.py:8634 app_Main.py:8771 app_Main.py:8839 +#: appTools/ToolSolderPaste.py:1097 app_Main.py:2604 app_Main.py:9320 app_Main.py:9528 +#: app_Main.py:9663 app_Main.py:9729 app_Main.py:10481 msgid "" "Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -150,7 +150,7 @@ msgstr "" msgid "The user requested a graceful exit of the current task." msgstr "" -#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:328 appTools/ToolIsolation.py:1436 +#: appCommon/Common.py:292 appTools/ToolCopperThieving.py:327 appTools/ToolIsolation.py:1436 #: appTools/ToolNCC.py:1366 msgid "Click the start point of the area." msgstr "" @@ -159,7 +159,7 @@ msgstr "" msgid "Click the end point of the area." msgstr "" -#: appCommon/Common.py:357 appCommon/Common.py:459 appTools/ToolCopperThieving.py:385 +#: appCommon/Common.py:357 appCommon/Common.py:459 appTools/ToolCopperThieving.py:384 #: appTools/ToolIsolation.py:2348 appTools/ToolIsolation.py:2400 appTools/ToolNCC.py:1431 #: appTools/ToolNCC.py:1483 appTools/ToolPaint.py:1216 appTools/ToolPaint.py:1267 msgid "Zone added. Click to start adding next zone or right click to finish." @@ -241,7 +241,7 @@ msgstr "" #: appDatabase.py:207 appEditors/AppGeoEditor.py:3287 appGUI/ObjectUI.py:219 #: appGUI/ObjectUI.py:570 appGUI/ObjectUI.py:894 appGUI/ObjectUI.py:1876 #: appGUI/ObjectUI.py:2693 appGUI/ObjectUI.py:2760 appTools/ToolCalibration.py:929 -#: appTools/ToolFiducials.py:681 app_Main.py:9730 +#: appTools/ToolFiducials.py:683 app_Main.py:7306 msgid "Name" msgstr "" @@ -305,7 +305,7 @@ msgid "The kind of Application Tool where this tool is to be used." msgstr "" #: appDatabase.py:275 appDatabase.py:1778 appDatabase.py:1814 appDatabase.py:1877 -#: appDatabase.py:2162 appGUI/MainGUI.py:1299 app_Main.py:9728 +#: appDatabase.py:2162 appGUI/MainGUI.py:1299 app_Main.py:7304 msgid "General" msgstr "" @@ -427,7 +427,7 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:98 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:103 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:111 appTools/ToolCalculators.py:240 -#: appTools/ToolCutOut.py:2104 appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 +#: appTools/ToolCutOut.py:2108 appTools/ToolDrilling.py:2143 appTools/ToolMilling.py:1793 msgid "Cut Z" msgstr "" @@ -655,9 +655,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:66 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:115 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:202 -#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 appTools/ToolCopperThieving.py:1210 -#: appTools/ToolCopperThieving.py:1461 appTools/ToolCorners.py:411 -#: appTools/ToolCutOut.py:2157 appTools/ToolFiducials.py:786 +#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:181 appTools/ToolCopperThieving.py:1206 +#: appTools/ToolCopperThieving.py:1457 appTools/ToolCorners.py:412 +#: appTools/ToolCutOut.py:2161 appTools/ToolFiducials.py:788 #: appTools/ToolInvertGerber.py:234 appTools/ToolInvertGerber.py:242 #: appTools/ToolNCC.py:4135 appTools/ToolNCC.py:4238 msgid "Margin" @@ -667,8 +667,8 @@ msgstr "" #: 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:1212 -#: appTools/ToolCorners.py:413 appTools/ToolFiducials.py:788 appTools/ToolNCC.py:4137 +#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:204 appTools/ToolCopperThieving.py:1208 +#: appTools/ToolCorners.py:414 appTools/ToolFiducials.py:790 appTools/ToolNCC.py:4137 #: appTools/ToolNCC.py:4240 msgid "Bounding box margin." msgstr "" @@ -679,7 +679,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:105 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:106 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:215 -#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 appTools/ToolExtractDrills.py:520 +#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:196 appTools/ToolExtractDrills.py:521 #: appTools/ToolNCC.py:4112 appTools/ToolPaint.py:2991 appTools/ToolPunchGerber.py:796 msgid "Method" msgstr "" @@ -913,7 +913,7 @@ msgstr "" #: appDatabase.py:957 appGUI/ObjectUI.py:1237 #: appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:72 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:82 -#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 appTools/ToolCutOut.py:2128 +#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:80 appTools/ToolCutOut.py:2132 #: appTools/ToolDrilling.py:2167 appTools/ToolMilling.py:1817 msgid "" "Use multiple passes to limit\n" @@ -924,7 +924,7 @@ msgstr "" #: appDatabase.py:979 appGUI/ObjectUI.py:1251 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:94 -#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 appTools/ToolCutOut.py:2142 +#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:92 appTools/ToolCutOut.py:2146 #: appTools/ToolDrilling.py:2180 appTools/ToolMilling.py:1830 msgid "Depth of each pass (positive)." msgstr "" @@ -1004,7 +1004,7 @@ msgid "" msgstr "" #: appDatabase.py:1156 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:117 -#: appTools/ToolCutOut.py:2159 +#: appTools/ToolCutOut.py:2163 msgid "" "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" @@ -1012,12 +1012,12 @@ msgid "" msgstr "" #: appDatabase.py:1168 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:131 -#: appTools/ToolCutOut.py:2167 +#: appTools/ToolCutOut.py:2171 msgid "Gap size" msgstr "" #: appDatabase.py:1170 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:133 -#: appTools/ToolCutOut.py:2169 +#: appTools/ToolCutOut.py:2173 msgid "" "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" @@ -1026,12 +1026,12 @@ msgid "" msgstr "" #: appDatabase.py:1179 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:148 -#: appTools/ToolCutOut.py:2182 +#: appTools/ToolCutOut.py:2186 msgid "Gap type" msgstr "" #: appDatabase.py:1181 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:150 -#: appTools/ToolCutOut.py:2184 +#: appTools/ToolCutOut.py:2188 msgid "" "The type of gap:\n" "- Bridge -> the cutout will be interrupted by bridges\n" @@ -1040,22 +1040,22 @@ msgid "" msgstr "" #: appDatabase.py:1189 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:158 -#: appTools/ToolCutOut.py:2192 +#: appTools/ToolCutOut.py:2196 msgid "Bridge" msgstr "" #: appDatabase.py:1190 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:159 -#: appTools/ToolCutOut.py:2193 +#: appTools/ToolCutOut.py:2197 msgid "Thin" msgstr "" #: appDatabase.py:1201 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:169 -#: appTools/ToolCutOut.py:2203 +#: appTools/ToolCutOut.py:2207 msgid "Depth" msgstr "" #: appDatabase.py:1203 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:171 -#: appTools/ToolCutOut.py:2205 +#: appTools/ToolCutOut.py:2209 msgid "" "The depth until the milling is done\n" "in order to thin the gaps." @@ -1063,12 +1063,12 @@ msgstr "" #: appDatabase.py:1220 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:43 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:186 appTools/ToolCalculators.py:249 -#: appTools/ToolCutOut.py:2220 +#: appTools/ToolCutOut.py:2224 msgid "Tool Diameter" msgstr "" #: appDatabase.py:1222 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:188 -#: appTools/ToolCutOut.py:2222 +#: appTools/ToolCutOut.py:2226 msgid "The drill hole diameter when doing mouse bites." msgstr "" @@ -1076,34 +1076,34 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:180 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:209 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1333 appTools/ToolCopperThieving.py:1373 -#: appTools/ToolCopperThieving.py:1413 appTools/ToolCutOut.py:2232 +#: appTools/ToolCopperThieving.py:1329 appTools/ToolCopperThieving.py:1369 +#: appTools/ToolCopperThieving.py:1409 appTools/ToolCutOut.py:2236 msgid "Spacing" msgstr "" #: appDatabase.py:1235 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:200 -#: appTools/ToolCutOut.py:2234 +#: appTools/ToolCutOut.py:2238 msgid "The spacing between drill holes when doing mouse bites." msgstr "" #: appDatabase.py:1254 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:233 -#: appTools/ToolCutOut.py:2034 +#: appTools/ToolCutOut.py:2038 msgid "Convex Shape" msgstr "" #: appDatabase.py:1257 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:235 -#: appTools/ToolCutOut.py:2036 appTools/ToolCutOut.py:2041 +#: appTools/ToolCutOut.py:2040 appTools/ToolCutOut.py:2045 msgid "" "Create a convex shape surrounding the entire PCB.\n" "Used only if the source object type is Gerber." msgstr "" #: appDatabase.py:1265 appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:209 -#: appTools/ToolCutOut.py:2263 +#: appTools/ToolCutOut.py:2267 msgid "Gaps" msgstr "" -#: appDatabase.py:1267 appTools/ToolCutOut.py:2265 +#: appDatabase.py:1267 appTools/ToolCutOut.py:2269 msgid "" "Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" @@ -1172,7 +1172,7 @@ msgid "" msgstr "" #: appDatabase.py:1364 appGUI/MainGUI.py:1438 appGUI/preferences/PreferencesUIManager.py:932 -#: app_Main.py:2297 app_Main.py:3392 app_Main.py:4347 app_Main.py:4593 app_Main.py:6901 +#: app_Main.py:2306 app_Main.py:3315 app_Main.py:4270 app_Main.py:4516 app_Main.py:8725 msgid "Cancel" msgstr "" @@ -1182,16 +1182,16 @@ msgstr "" #: appTool.py:280 appTool.py:291 appTools/ToolAlignObjects.py:516 #: appTools/ToolAlignObjects.py:527 appTools/ToolCalculators.py:390 #: appTools/ToolCalculators.py:401 appTools/ToolCalibration.py:1395 -#: appTools/ToolCalibration.py:1406 appTools/ToolCopperThieving.py:1601 -#: appTools/ToolCopperThieving.py:1612 appTools/ToolCorners.py:462 -#: appTools/ToolCorners.py:473 appTools/ToolCutOut.py:2437 appTools/ToolCutOut.py:2448 -#: appTools/ToolDblSided.py:956 appTools/ToolDblSided.py:967 appTools/ToolDistance.py:659 +#: appTools/ToolCalibration.py:1406 appTools/ToolCopperThieving.py:1597 +#: appTools/ToolCopperThieving.py:1608 appTools/ToolCorners.py:463 +#: appTools/ToolCorners.py:474 appTools/ToolCutOut.py:2441 appTools/ToolCutOut.py:2452 +#: appTools/ToolDblSided.py:958 appTools/ToolDblSided.py:969 appTools/ToolDistance.py:659 #: appTools/ToolDistance.py:670 appTools/ToolDistanceMin.py:324 #: appTools/ToolDistanceMin.py:335 appTools/ToolDrilling.py:2666 #: appTools/ToolDrilling.py:2677 appTools/ToolEtchCompensation.py:476 -#: appTools/ToolEtchCompensation.py:487 appTools/ToolExtractDrills.py:732 -#: appTools/ToolExtractDrills.py:743 appTools/ToolFiducials.py:950 -#: appTools/ToolFiducials.py:961 appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 +#: appTools/ToolEtchCompensation.py:487 appTools/ToolExtractDrills.py:733 +#: appTools/ToolExtractDrills.py:744 appTools/ToolFiducials.py:952 +#: appTools/ToolFiducials.py:963 appTools/ToolFilm.py:1454 appTools/ToolFilm.py:1465 #: appTools/ToolImage.py:322 appTools/ToolImage.py:333 appTools/ToolInvertGerber.py:304 #: appTools/ToolInvertGerber.py:315 appTools/ToolIsolation.py:3494 #: appTools/ToolIsolation.py:3505 appTools/ToolMilling.py:2341 appTools/ToolMilling.py:2352 @@ -1199,7 +1199,7 @@ msgstr "" #: appTools/ToolOptimal.py:625 appTools/ToolPaint.py:3267 appTools/ToolPaint.py:3278 #: appTools/ToolPanelize.py:914 appTools/ToolPanelize.py:925 appTools/ToolPcbWizard.py:488 #: appTools/ToolPcbWizard.py:499 appTools/ToolPunchGerber.py:1025 -#: appTools/ToolPunchGerber.py:1036 appTools/ToolQRCode.py:922 appTools/ToolQRCode.py:933 +#: appTools/ToolPunchGerber.py:1036 appTools/ToolQRCode.py:923 appTools/ToolQRCode.py:934 #: appTools/ToolRulesCheck.py:1657 appTools/ToolRulesCheck.py:1668 #: appTools/ToolSolderPaste.py:1575 appTools/ToolSolderPaste.py:1586 appTools/ToolSub.py:772 #: appTools/ToolSub.py:783 appTools/ToolTransform.py:964 appTools/ToolTransform.py:975 @@ -1212,16 +1212,16 @@ msgstr "" #: appTool.py:286 appTool.py:293 appTools/ToolAlignObjects.py:522 #: appTools/ToolAlignObjects.py:529 appTools/ToolCalculators.py:396 #: appTools/ToolCalculators.py:403 appTools/ToolCalibration.py:1401 -#: appTools/ToolCalibration.py:1408 appTools/ToolCopperThieving.py:1607 -#: appTools/ToolCopperThieving.py:1614 appTools/ToolCorners.py:468 -#: appTools/ToolCorners.py:475 appTools/ToolCutOut.py:2443 appTools/ToolCutOut.py:2450 -#: appTools/ToolDblSided.py:962 appTools/ToolDblSided.py:969 appTools/ToolDistance.py:665 +#: appTools/ToolCalibration.py:1408 appTools/ToolCopperThieving.py:1603 +#: appTools/ToolCopperThieving.py:1610 appTools/ToolCorners.py:469 +#: appTools/ToolCorners.py:476 appTools/ToolCutOut.py:2447 appTools/ToolCutOut.py:2454 +#: appTools/ToolDblSided.py:964 appTools/ToolDblSided.py:971 appTools/ToolDistance.py:665 #: appTools/ToolDistance.py:672 appTools/ToolDistanceMin.py:330 #: appTools/ToolDistanceMin.py:337 appTools/ToolDrilling.py:2672 #: appTools/ToolDrilling.py:2679 appTools/ToolEtchCompensation.py:482 -#: appTools/ToolEtchCompensation.py:489 appTools/ToolExtractDrills.py:738 -#: appTools/ToolExtractDrills.py:745 appTools/ToolFiducials.py:956 -#: appTools/ToolFiducials.py:963 appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 +#: appTools/ToolEtchCompensation.py:489 appTools/ToolExtractDrills.py:739 +#: appTools/ToolExtractDrills.py:746 appTools/ToolFiducials.py:958 +#: appTools/ToolFiducials.py:965 appTools/ToolFilm.py:1460 appTools/ToolFilm.py:1467 #: appTools/ToolImage.py:328 appTools/ToolImage.py:335 appTools/ToolInvertGerber.py:310 #: appTools/ToolInvertGerber.py:317 appTools/ToolIsolation.py:3500 #: appTools/ToolIsolation.py:3507 appTools/ToolMilling.py:2347 appTools/ToolMilling.py:2354 @@ -1229,7 +1229,7 @@ msgstr "" #: appTools/ToolOptimal.py:627 appTools/ToolPaint.py:3273 appTools/ToolPaint.py:3280 #: appTools/ToolPanelize.py:920 appTools/ToolPanelize.py:927 appTools/ToolPcbWizard.py:494 #: appTools/ToolPcbWizard.py:501 appTools/ToolPunchGerber.py:1031 -#: appTools/ToolPunchGerber.py:1038 appTools/ToolQRCode.py:928 appTools/ToolQRCode.py:935 +#: appTools/ToolPunchGerber.py:1038 appTools/ToolQRCode.py:929 appTools/ToolQRCode.py:936 #: appTools/ToolRulesCheck.py:1663 appTools/ToolRulesCheck.py:1670 #: appTools/ToolSolderPaste.py:1581 appTools/ToolSolderPaste.py:1588 appTools/ToolSub.py:778 #: appTools/ToolSub.py:785 appTools/ToolTransform.py:970 appTools/ToolTransform.py:977 @@ -1248,7 +1248,7 @@ msgstr "" msgid "Delete from DB" msgstr "" -#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3386 app_Main.py:6895 +#: appDatabase.py:1656 appTranslation.py:209 app_Main.py:3309 app_Main.py:8719 msgid "Save changes" msgstr "" @@ -1303,8 +1303,8 @@ msgstr "" #: appDatabase.py:2156 appDatabase.py:2547 appObjects/FlatCAMGeometry.py:1090 #: appTools/ToolCutOut.py:484 appTools/ToolCutOut.py:525 appTools/ToolIsolation.py:2583 #: appTools/ToolIsolation.py:2667 appTools/ToolNCC.py:3715 appTools/ToolNCC.py:3795 -#: appTools/ToolPaint.py:2626 appTools/ToolPaint.py:2715 app_Main.py:5682 app_Main.py:5724 -#: app_Main.py:5755 app_Main.py:5775 app_Main.py:5785 +#: appTools/ToolPaint.py:2626 appTools/ToolPaint.py:2715 app_Main.py:5605 app_Main.py:5647 +#: app_Main.py:5678 app_Main.py:5698 app_Main.py:5708 msgid "Tools Database" msgstr "" @@ -1503,7 +1503,7 @@ msgstr "" #: appEditors/AppGerberEditor.py:1497 appEditors/AppGerberEditor.py:1766 #: appEditors/AppGerberEditor.py:4625 appEditors/AppGerberEditor.py:4642 #: appGUI/MainGUI.py:2859 appGUI/MainGUI.py:2871 appTools/ToolAlignObjects.py:253 -#: appTools/ToolAlignObjects.py:275 app_Main.py:4961 app_Main.py:5115 +#: appTools/ToolAlignObjects.py:275 app_Main.py:4884 app_Main.py:5038 msgid "Done." msgstr "" @@ -1557,7 +1557,7 @@ msgid "" msgstr "" #: appEditors/AppExcEditor.py:3765 appGUI/ObjectUI.py:1082 appGUI/ObjectUI.py:1650 -#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 appTools/ToolCutOut.py:2060 +#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:130 appTools/ToolCutOut.py:2064 #: appTools/ToolIsolation.py:3091 appTools/ToolNCC.py:3966 appTools/ToolNCC.py:3977 #: appTools/ToolPaint.py:2882 msgid "Tool Dia" @@ -1641,8 +1641,8 @@ msgstr "" #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:151 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:78 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:61 -#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 appTools/ToolExtractDrills.py:470 -#: appTools/ToolExtractDrills.py:593 appTools/ToolFiducials.py:834 +#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:68 appTools/ToolExtractDrills.py:471 +#: appTools/ToolExtractDrills.py:594 appTools/ToolFiducials.py:836 #: appTools/ToolPunchGerber.py:746 appTools/ToolPunchGerber.py:886 msgid "Circular" msgstr "" @@ -1790,7 +1790,7 @@ msgstr "" #: appEditors/AppExcEditor.py:4007 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:162 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:56 appObjects/FlatCAMObj.py:877 -#: appTools/ToolCorners.py:398 appTools/ToolProperties.py:571 +#: appTools/ToolCorners.py:399 appTools/ToolProperties.py:571 msgid "Length" msgstr "" @@ -1887,11 +1887,11 @@ msgstr "" #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:308 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:327 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:289 appTools/ToolDrilling.py:2588 -#: appTools/ToolExtractDrills.py:486 appTools/ToolExtractDrills.py:619 +#: appTools/ToolExtractDrills.py:487 appTools/ToolExtractDrills.py:620 #: appTools/ToolInvertGerber.py:257 appTools/ToolIsolation.py:3430 #: appTools/ToolMilling.py:2264 appTools/ToolNCC.py:4348 appTools/ToolPaint.py:3168 #: appTools/ToolPunchGerber.py:762 appTools/ToolPunchGerber.py:912 -#: appTools/ToolQRCode.py:788 +#: appTools/ToolQRCode.py:789 msgid "Square" msgstr "" @@ -1937,8 +1937,8 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:167 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:196 #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:43 -#: appTools/ToolCopperThieving.py:1360 appTools/ToolCopperThieving.py:1400 -#: appTools/ToolFiducials.py:770 +#: appTools/ToolCopperThieving.py:1356 appTools/ToolCopperThieving.py:1396 +#: appTools/ToolFiducials.py:772 msgid "Size" msgstr "" @@ -1961,7 +1961,7 @@ msgstr "" #: appTools/ToolIsolation.py:3166 appTools/ToolMilling.py:790 appTools/ToolMilling.py:1046 #: appTools/ToolMilling.py:1711 appTools/ToolNCC.py:329 appTools/ToolNCC.py:2280 #: appTools/ToolNCC.py:4040 appTools/ToolPaint.py:304 appTools/ToolPaint.py:2940 -#: app_Main.py:2053 app_Main.py:2312 app_Main.py:2419 +#: app_Main.py:2062 app_Main.py:2321 app_Main.py:2428 msgid "Tool" msgstr "" @@ -2040,8 +2040,8 @@ msgstr "" #: appEditors/AppGeoEditor.py:643 appEditors/AppGerberEditor.py:5353 #: appGUI/GUIElements.py:3015 appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 -#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 appTools/ToolDblSided.py:681 -#: appTools/ToolDblSided.py:855 appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 +#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 appTools/ToolDblSided.py:683 +#: appTools/ToolDblSided.py:857 appTools/ToolFilm.py:1060 appTools/ToolTransform.py:547 msgid "Reference" msgstr "" @@ -2076,7 +2076,7 @@ msgstr "" #: appEditors/AppGeoEditor.py:653 appEditors/AppGerberEditor.py:5363 #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:85 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:54 -#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 appTools/ToolDblSided.py:692 +#: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:60 appTools/ToolDblSided.py:694 #: appTools/ToolTransform.py:557 msgid "Point" msgstr "" @@ -2090,9 +2090,9 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:131 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:133 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:243 -#: appTools/ToolExtractDrills.py:556 appTools/ToolExtractDrills.py:677 +#: appTools/ToolExtractDrills.py:557 appTools/ToolExtractDrills.py:678 #: appTools/ToolPunchGerber.py:849 appTools/ToolPunchGerber.py:965 -#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:10205 +#: appTools/ToolTransform.py:563 appTools/ToolTransform.py:889 app_Main.py:7781 msgid "Value" msgstr "" @@ -2102,10 +2102,10 @@ msgid "A point of reference in format X,Y." msgstr "" #: appEditors/AppGeoEditor.py:668 appEditors/AppGerberEditor.py:2590 -#: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 appTools/ToolDblSided.py:706 -#: appTools/ToolDblSided.py:892 appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 +#: appEditors/AppGerberEditor.py:5378 appGUI/ObjectUI.py:2350 appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:894 appTools/ToolNCC.py:63 appTools/ToolPaint.py:137 #: appTools/ToolSolderPaste.py:160 appTools/ToolSolderPaste.py:1203 -#: appTools/ToolTransform.py:572 app_Main.py:6127 +#: appTools/ToolTransform.py:572 app_Main.py:6050 msgid "Add" msgstr "" @@ -2290,7 +2290,7 @@ msgstr "" #: appGUI/ObjectUI.py:499 appGUI/preferences/tools/Tools2InvertPrefGroupUI.py:67 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:142 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:216 -#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:787 appTools/ToolTransform.py:854 +#: appTools/ToolInvertGerber.py:256 appTools/ToolQRCode.py:788 appTools/ToolTransform.py:854 msgid "Rounded" msgstr "" @@ -2743,7 +2743,7 @@ msgstr "" #: appEditors/AppGeoEditor.py:3287 appEditors/AppGerberEditor.py:2495 #: appEditors/AppGerberEditor.py:3968 appEditors/appGCodeEditor.py:692 #: appGUI/ObjectUI.py:316 appGUI/ObjectUI.py:999 appGUI/ObjectUI.py:2009 -#: appTools/ToolCutOut.py:2013 appTools/ToolDblSided.py:519 appTools/ToolTransform.py:579 +#: appTools/ToolCutOut.py:2017 appTools/ToolDblSided.py:521 appTools/ToolTransform.py:579 msgid "Type" msgstr "" @@ -3091,7 +3091,7 @@ msgstr "" #: appGUI/ObjectUI.py:1132 appObjects/FlatCAMGeometry.py:561 appTools/ToolIsolation.py:70 #: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 appTools/ToolNCC.py:4024 #: appTools/ToolPaint.py:143 appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 -#: appTools/ToolSolderPaste.py:1209 app_Main.py:6129 +#: appTools/ToolSolderPaste.py:1209 app_Main.py:6052 msgid "Delete" msgstr "" @@ -3285,8 +3285,8 @@ msgstr "" #: appEditors/AppGerberEditor.py:4364 appObjects/AppObject.py:164 #: appObjects/FlatCAMGeometry.py:1917 appParsers/ParseExcellon.py:972 -#: appTools/ToolPcbWizard.py:318 app_Main.py:9010 app_Main.py:9070 app_Main.py:9201 -#: app_Main.py:9266 app_Main.py:9881 +#: appTools/ToolPcbWizard.py:318 app_Main.py:7457 app_Main.py:9899 app_Main.py:9959 +#: app_Main.py:10090 app_Main.py:10155 msgid "An internal error has occurred. See shell.\n" msgstr "" @@ -3302,7 +3302,7 @@ msgstr "" msgid "Cancelled. No aperture is selected" msgstr "" -#: appEditors/AppGerberEditor.py:4555 app_Main.py:6462 +#: appEditors/AppGerberEditor.py:4555 app_Main.py:6385 msgid "Coordinates copied to clipboard." msgstr "" @@ -3318,8 +3318,8 @@ msgstr "" msgid "No aperture to buffer. Select at least one aperture and try again." msgstr "" -#: appEditors/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 appTools/ToolCutOut.py:895 -#: appTools/ToolCutOut.py:1118 appTools/ToolCutOut.py:1264 camlib.py:4899 camlib.py:5663 +#: appEditors/AppGerberEditor.py:5166 appTools/ToolCutOut.py:772 appTools/ToolCutOut.py:896 +#: appTools/ToolCutOut.py:1119 appTools/ToolCutOut.py:1267 camlib.py:4899 camlib.py:5663 msgid "Failed." msgstr "" @@ -3347,7 +3347,7 @@ msgstr "" msgid "Rotation action was not executed." msgstr "" -#: appEditors/AppGerberEditor.py:6044 app_Main.py:5885 app_Main.py:5933 +#: appEditors/AppGerberEditor.py:6044 app_Main.py:5808 app_Main.py:5856 msgid "Flip action was not executed." msgstr "" @@ -3451,7 +3451,7 @@ msgstr "" #: appObjects/FlatCAMCNCJob.py:1646 appObjects/FlatCAMCNCJob.py:1651 #: appObjects/FlatCAMCNCJob.py:1836 appObjects/FlatCAMCNCJob.py:1841 #: appObjects/FlatCAMCNCJob.py:1914 appObjects/FlatCAMCNCJob.py:1919 -#: appTools/ToolSolderPaste.py:1063 app_Main.py:7044 app_Main.py:7049 +#: appTools/ToolSolderPaste.py:1063 app_Main.py:6839 app_Main.py:6844 msgid "Export Code ..." msgstr "" @@ -3465,7 +3465,7 @@ msgstr "" msgid "Saved to" msgstr "" -#: appEditors/appGCodeEditor.py:66 app_Main.py:7905 +#: appEditors/appGCodeEditor.py:66 app_Main.py:7000 msgid "Code Editor" msgstr "" @@ -3493,7 +3493,7 @@ msgstr "" #: appEditors/appGCodeEditor.py:692 appEditors/appGCodeEditor.py:703 appGUI/ObjectUI.py:999 #: appGUI/ObjectUI.py:2009 appGUI/ObjectUI.py:2019 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:138 -#: appTools/ToolCopperThieving.py:1320 +#: appTools/ToolCopperThieving.py:1316 msgid "Dia" msgstr "" @@ -3570,7 +3570,7 @@ msgstr "" msgid "Save Log" msgstr "" -#: appGUI/GUIElements.py:3085 app_Main.py:2809 app_Main.py:3181 app_Main.py:3354 +#: appGUI/GUIElements.py:3085 app_Main.py:2741 app_Main.py:3113 app_Main.py:3286 msgid "Close" msgstr "" @@ -4107,7 +4107,7 @@ msgstr "" msgid "Online Help\tF1" msgstr "" -#: appGUI/MainGUI.py:527 app_Main.py:3319 app_Main.py:3328 +#: appGUI/MainGUI.py:527 app_Main.py:3251 app_Main.py:3260 msgid "Bookmarks Manager" msgstr "" @@ -4135,7 +4135,7 @@ msgstr "" msgid "How To" msgstr "" -#: appGUI/MainGUI.py:551 app_Main.py:2776 +#: appGUI/MainGUI.py:551 app_Main.py:2708 msgid "About FlatCAM" msgstr "" @@ -4303,47 +4303,47 @@ msgstr "" msgid "Set Color" msgstr "" -#: appGUI/MainGUI.py:709 app_Main.py:10148 +#: appGUI/MainGUI.py:709 app_Main.py:7724 msgid "Red" msgstr "" -#: appGUI/MainGUI.py:712 app_Main.py:10150 +#: appGUI/MainGUI.py:712 app_Main.py:7726 msgid "Blue" msgstr "" -#: appGUI/MainGUI.py:715 app_Main.py:10153 +#: appGUI/MainGUI.py:715 app_Main.py:7729 msgid "Yellow" msgstr "" -#: appGUI/MainGUI.py:718 app_Main.py:10155 +#: appGUI/MainGUI.py:718 app_Main.py:7731 msgid "Green" msgstr "" -#: appGUI/MainGUI.py:721 app_Main.py:10157 +#: appGUI/MainGUI.py:721 app_Main.py:7733 msgid "Purple" msgstr "" -#: appGUI/MainGUI.py:724 app_Main.py:10159 +#: appGUI/MainGUI.py:724 app_Main.py:7735 msgid "Brown" msgstr "" -#: appGUI/MainGUI.py:727 app_Main.py:10161 app_Main.py:10220 +#: appGUI/MainGUI.py:727 app_Main.py:7737 app_Main.py:7796 msgid "White" msgstr "" -#: appGUI/MainGUI.py:730 app_Main.py:10163 +#: appGUI/MainGUI.py:730 app_Main.py:7739 msgid "Black" msgstr "" -#: appGUI/MainGUI.py:735 app_Main.py:10166 +#: appGUI/MainGUI.py:735 app_Main.py:7742 msgid "Custom" msgstr "" -#: appGUI/MainGUI.py:740 app_Main.py:10200 +#: appGUI/MainGUI.py:740 app_Main.py:7776 msgid "Opacity" msgstr "" -#: appGUI/MainGUI.py:743 app_Main.py:10176 +#: appGUI/MainGUI.py:743 app_Main.py:7752 msgid "Default" msgstr "" @@ -4416,11 +4416,11 @@ msgstr "" msgid "Status Toolbar" msgstr "" -#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:7110 app_Main.py:7115 +#: appGUI/MainGUI.py:854 appGUI/MainGUI.py:2011 app_Main.py:8046 app_Main.py:8051 msgid "Open Gerber" msgstr "" -#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:7150 app_Main.py:7155 +#: appGUI/MainGUI.py:856 appGUI/MainGUI.py:2013 app_Main.py:8086 app_Main.py:8091 msgid "Open Excellon" msgstr "" @@ -4504,7 +4504,7 @@ msgid "Extract Drills Tool" msgstr "" #: appGUI/MainGUI.py:931 appGUI/MainGUI.py:2086 appGUI/ObjectUI.py:387 -#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2052 +#: appTools/ToolCutOut.py:156 appTools/ToolCutOut.py:2056 msgid "Cutout Tool" msgstr "" @@ -4554,17 +4554,17 @@ msgid "Calculators Tool" msgstr "" #: appGUI/MainGUI.py:962 appGUI/MainGUI.py:2117 appGUI/MainGUI.py:4285 -#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:628 +#: appTools/ToolQRCode.py:114 appTools/ToolQRCode.py:629 msgid "QRCode Tool" msgstr "" #: appGUI/MainGUI.py:964 appGUI/MainGUI.py:2119 appGUI/MainGUI.py:4282 -#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1137 +#: appTools/ToolCopperThieving.py:126 appTools/ToolCopperThieving.py:1133 msgid "Copper Thieving Tool" msgstr "" #: appGUI/MainGUI.py:967 appGUI/MainGUI.py:2122 appGUI/MainGUI.py:4281 -#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:648 +#: appTools/ToolFiducials.py:114 appTools/ToolFiducials.py:650 msgid "Fiducials Tool" msgstr "" @@ -4582,7 +4582,7 @@ msgid "Invert Gerber Tool" msgstr "" #: appGUI/MainGUI.py:975 appGUI/MainGUI.py:2130 appGUI/MainGUI.py:4284 -#: appTools/ToolCorners.py:297 +#: appTools/ToolCorners.py:298 msgid "Corner Markers Tool" msgstr "" @@ -4771,8 +4771,8 @@ msgstr "" #: appGUI/MainGUI.py:1148 appGUI/preferences/PreferencesUIManager.py:899 #: appGUI/preferences/PreferencesUIManager.py:992 #: appGUI/preferences/PreferencesUIManager.py:1020 -#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5585 app_Main.py:5590 -#: app_Main.py:5605 +#: appGUI/preferences/PreferencesUIManager.py:1125 app_Main.py:5508 app_Main.py:5513 +#: app_Main.py:5528 msgid "Preferences" msgstr "" @@ -4802,20 +4802,20 @@ msgstr "" msgid "TCL Shell" msgstr "" -#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:8149 +#: appGUI/MainGUI.py:1221 appGUI/MainGUI.py:1470 app_Main.py:9017 msgid "Project" msgstr "" #: appGUI/MainGUI.py:1264 appGUI/MainGUI.py:1272 appGUI/MainGUI.py:3791 -#: appGUI/MainGUI.py:3797 app_Main.py:2480 app_Main.py:7001 +#: appGUI/MainGUI.py:3797 app_Main.py:2489 app_Main.py:8825 msgid "Plot Area" msgstr "" -#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1169 appTools/ToolCorners.py:317 -#: appTools/ToolEtchCompensation.py:291 appTools/ToolExtractDrills.py:453 -#: appTools/ToolFiducials.py:873 appTools/ToolInvertGerber.py:215 +#: appGUI/MainGUI.py:1314 appTools/ToolCopperThieving.py:1165 appTools/ToolCorners.py:318 +#: appTools/ToolEtchCompensation.py:291 appTools/ToolExtractDrills.py:454 +#: appTools/ToolFiducials.py:875 appTools/ToolInvertGerber.py:215 #: appTools/ToolIsolation.py:2986 appTools/ToolOptimal.py:421 -#: appTools/ToolPunchGerber.py:721 appTools/ToolQRCode.py:659 +#: appTools/ToolPunchGerber.py:721 appTools/ToolQRCode.py:660 #: appTools/ToolRulesCheck.py:1165 appTools/ToolSolderPaste.py:1143 appTools/ToolSub.py:643 msgid "GERBER" msgstr "" @@ -4895,8 +4895,8 @@ msgstr "" #: appGUI/MainGUI.py:1463 appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:78 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:1326 #: appTools/ToolCalibration.py:1343 appTools/ToolCopperThieving.py:163 -#: appTools/ToolCopperThieving.py:1243 appTools/ToolCopperThieving.py:1257 -#: appTools/ToolCutOut.py:2010 appTools/ToolDblSided.py:526 appTools/ToolDblSided.py:767 +#: appTools/ToolCopperThieving.py:1239 appTools/ToolCopperThieving.py:1253 +#: appTools/ToolCutOut.py:2014 appTools/ToolDblSided.py:528 appTools/ToolDblSided.py:769 #: appTools/ToolFilm.py:929 appTools/ToolFilm.py:952 appTools/ToolImage.py:136 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3338 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 appTools/ToolNCC.py:3848 @@ -4911,9 +4911,9 @@ msgstr "" #: appTools/ToolAlignObjects.py:435 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:892 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1243 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolDblSided.py:527 -#: appTools/ToolDblSided.py:724 appTools/ToolDblSided.py:766 appTools/ToolFilm.py:1207 +#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1253 appTools/ToolDblSided.py:529 +#: appTools/ToolDblSided.py:726 appTools/ToolDblSided.py:768 appTools/ToolFilm.py:1207 #: appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 #: appTools/ToolNCC.py:4323 appTools/ToolPaint.py:167 appTools/ToolPaint.py:3143 #: appTools/ToolPanelize.py:147 appTools/ToolPunchGerber.py:806 @@ -4991,7 +4991,7 @@ msgstr "" msgid "Add Drill" msgstr "" -#: appGUI/MainGUI.py:1581 app_Main.py:2291 +#: appGUI/MainGUI.py:1581 app_Main.py:2300 msgid "Close Editor" msgstr "" @@ -5017,7 +5017,7 @@ msgstr "" #: appGUI/MainGUI.py:1986 appGUI/preferences/PreferencesUIManager.py:931 #: appGUI/preferences/PreferencesUIManager.py:1177 appTranslation.py:111 -#: appTranslation.py:213 app_Main.py:2295 app_Main.py:3390 app_Main.py:5815 app_Main.py:6899 +#: appTranslation.py:213 app_Main.py:2304 app_Main.py:3313 app_Main.py:5738 app_Main.py:8723 msgid "Yes" msgstr "" @@ -5027,8 +5027,8 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:164 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:148 appTools/ToolDrilling.py:2090 #: appTools/ToolIsolation.py:3066 appTools/ToolMilling.py:1695 appTools/ToolNCC.py:3935 -#: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 app_Main.py:2296 -#: app_Main.py:3391 app_Main.py:5816 app_Main.py:6900 +#: appTools/ToolPaint.py:2851 appTranslation.py:112 appTranslation.py:214 app_Main.py:2305 +#: app_Main.py:3314 app_Main.py:5739 app_Main.py:8724 msgid "No" msgstr "" @@ -5108,7 +5108,7 @@ msgstr "" msgid "Distance Tool exit..." msgstr "" -#: appGUI/MainGUI.py:3725 app_Main.py:3378 +#: appGUI/MainGUI.py:3725 app_Main.py:3301 msgid "Application is saving the project. Please wait ..." msgstr "" @@ -5152,7 +5152,7 @@ msgstr "" msgid "Edit Object (if selected)" msgstr "" -#: appGUI/MainGUI.py:4261 app_Main.py:6115 +#: appGUI/MainGUI.py:4261 app_Main.py:6038 msgid "Grid On/Off" msgstr "" @@ -5220,7 +5220,7 @@ msgstr "" msgid "New Project" msgstr "" -#: appGUI/MainGUI.py:4270 app_Main.py:7229 app_Main.py:7232 +#: appGUI/MainGUI.py:4270 app_Main.py:8166 app_Main.py:8169 msgid "Open Project" msgstr "" @@ -5623,7 +5623,7 @@ msgstr "" #: appGUI/preferences/excellon/ExcellonGenPrefGroupUI.py:47 #: appGUI/preferences/gerber/GerberGenPrefGroupUI.py:45 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:119 -#: appTools/ToolCopperThieving.py:1290 +#: appTools/ToolCopperThieving.py:1286 msgid "Solid" msgstr "" @@ -5765,15 +5765,15 @@ msgstr "" msgid "Resulting geometry will have rounded corners." msgstr "" -#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2287 -#: appTools/ToolCutOut.py:2302 appTools/ToolIsolation.py:3444 appTools/ToolNCC.py:4372 +#: appGUI/ObjectUI.py:467 appGUI/ObjectUI.py:507 appTools/ToolCutOut.py:2291 +#: appTools/ToolCutOut.py:2306 appTools/ToolIsolation.py:3444 appTools/ToolNCC.py:4372 #: appTools/ToolPaint.py:3178 msgid "Generate Geometry" msgstr "" #: appGUI/ObjectUI.py:478 appGUI/preferences/gerber/GerberOptPrefGroupUI.py:73 #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:137 appTools/ToolPanelize.py:698 -#: appTools/ToolQRCode.py:782 +#: appTools/ToolQRCode.py:783 msgid "Bounding Box" msgstr "" @@ -6007,7 +6007,7 @@ msgstr "" msgid "Add from DB" msgstr "" -#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2071 appTools/ToolIsolation.py:61 +#: appGUI/ObjectUI.py:1096 appTools/ToolCutOut.py:2075 appTools/ToolIsolation.py:61 #: appTools/ToolIsolation.py:3122 appTools/ToolNCC.py:3996 appTools/ToolPaint.py:2898 msgid "Search and Add" msgstr "" @@ -6018,12 +6018,12 @@ msgid "" "with the diameter specified above." msgstr "" -#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2083 appTools/ToolIsolation.py:65 +#: appGUI/ObjectUI.py:1103 appTools/ToolCutOut.py:2087 appTools/ToolIsolation.py:65 #: appTools/ToolIsolation.py:3133 appTools/ToolNCC.py:4007 appTools/ToolPaint.py:2909 msgid "Pick from DB" msgstr "" -#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2086 appTools/ToolIsolation.py:3136 +#: appGUI/ObjectUI.py:1106 appTools/ToolCutOut.py:2090 appTools/ToolIsolation.py:3136 #: appTools/ToolNCC.py:4010 appTools/ToolPaint.py:2912 msgid "" "Add a new tool to the Tool Table\n" @@ -6100,7 +6100,7 @@ msgstr "" #: appGUI/ObjectUI.py:1216 appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:51 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:61 appObjects/FlatCAMGeometry.py:1375 -#: appTools/ToolCutOut.py:2107 +#: appTools/ToolCutOut.py:2111 msgid "" "Cutting depth (negative)\n" "below the copper surface." @@ -6108,7 +6108,7 @@ msgstr "" #: appGUI/ObjectUI.py:1234 appGUI/preferences/geometry/GeometryOptPrefGroupUI.py:69 #: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:79 -#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 appTools/ToolCutOut.py:2125 +#: appGUI/preferences/tools/ToolsDrillPrefGroupUI.py:77 appTools/ToolCutOut.py:2129 #: appTools/ToolDrilling.py:2164 appTools/ToolMilling.py:1814 msgid "Multi-Depth" msgstr "" @@ -6636,13 +6636,13 @@ msgid "" msgstr "" #: appGUI/ObjectUI.py:2177 appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:78 -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 appTools/ToolCutOut.py:2324 -#: appTools/ToolFiducials.py:801 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:74 appTools/ToolCutOut.py:2328 +#: appTools/ToolFiducials.py:803 msgid "Manual" msgstr "" #: appGUI/ObjectUI.py:2178 appGUI/preferences/cncjob/CNCJobAdvOptPrefGroupUI.py:79 -#: app_Main.py:9736 +#: app_Main.py:7312 msgid "Grid" msgstr "" @@ -6925,7 +6925,7 @@ msgstr "" msgid "Align Left" msgstr "" -#: appGUI/ObjectUI.py:2860 app_Main.py:4999 +#: appGUI/ObjectUI.py:2860 app_Main.py:4922 msgid "Center" msgstr "" @@ -7011,7 +7011,7 @@ msgstr "" msgid "Preferences default values are restored." msgstr "" -#: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 app_Main.py:2696 +#: appGUI/preferences/PreferencesUIManager.py:1068 app_Main.py:2628 app_Main.py:9396 msgid "Failed to write defaults to file." msgstr "" @@ -7059,9 +7059,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsSolderpastePrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsSubPrefGroupUI.py:31 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:31 appTools/ToolCalibration.py:762 -#: appTools/ToolCopperThieving.py:1188 appTools/ToolCorners.py:377 -#: appTools/ToolEtchCompensation.py:356 appTools/ToolFiducials.py:763 -#: appTools/ToolInvertGerber.py:228 appTools/ToolQRCode.py:695 +#: appTools/ToolCopperThieving.py:1184 appTools/ToolCorners.py:378 +#: appTools/ToolEtchCompensation.py:356 appTools/ToolFiducials.py:765 +#: appTools/ToolInvertGerber.py:228 appTools/ToolQRCode.py:696 msgid "Parameters" msgstr "" @@ -7161,7 +7161,7 @@ msgstr "" msgid "G-code Decimals" msgstr "" -#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 appTools/ToolFiducials.py:682 +#: appGUI/preferences/cncjob/CNCJobGenPrefGroupUI.py:76 appTools/ToolFiducials.py:684 msgid "Coordinates" msgstr "" @@ -7782,7 +7782,7 @@ msgstr "" msgid "Grid Settings" msgstr "" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:9744 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:53 app_Main.py:7320 msgid "X value" msgstr "" @@ -7790,7 +7790,7 @@ msgstr "" msgid "This is the Grid snap value on X axis." msgstr "" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:9747 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:65 app_Main.py:7323 msgid "Y value" msgstr "" @@ -7831,14 +7831,14 @@ msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:176 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:168 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:232 appTools/ToolFilm.py:1274 -#: app_Main.py:9764 +#: app_Main.py:7340 msgid "Portrait" msgstr "" #: appGUI/preferences/general/GeneralAPPSetGroupUI.py:177 #: appGUI/preferences/general/GeneralAppSettingsGroupUI.py:169 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:233 appTools/ToolFilm.py:1275 -#: app_Main.py:9766 +#: app_Main.py:7342 msgid "Landscape" msgstr "" @@ -7853,8 +7853,8 @@ msgid "" "and include the Project, Selected and Tool tabs." msgstr "" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 appTools/ToolDblSided.py:666 -#: appTools/ToolDblSided.py:838 app_Main.py:9752 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:214 appTools/ToolDblSided.py:668 +#: appTools/ToolDblSided.py:840 app_Main.py:7328 msgid "Axis" msgstr "" @@ -7872,7 +7872,7 @@ msgid "" "elements that are used in the application." msgstr "" -#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:9769 +#: appGUI/preferences/general/GeneralAPPSetGroupUI.py:253 app_Main.py:7345 msgid "HUD" msgstr "" @@ -8729,8 +8729,8 @@ msgid "\"Follow\"" msgstr "" #: appGUI/preferences/gerber/GerberAdvOptPrefGroupUI.py:64 appObjects/FlatCAMGerber.py:370 -#: appTools/ToolCopperThieving.py:579 appTools/ToolCopperThieving.py:776 -#: appTools/ToolCopperThieving.py:788 appTools/ToolIsolation.py:1353 +#: appTools/ToolCopperThieving.py:578 appTools/ToolCopperThieving.py:775 +#: appTools/ToolCopperThieving.py:787 appTools/ToolIsolation.py:1353 #: appTools/ToolNCC.py:1793 appTools/ToolNCC.py:1820 appTools/ToolNCC.py:1928 #: appTools/ToolNCC.py:1941 appTools/ToolNCC.py:2845 appTools/ToolNCC.py:2950 #: appTools/ToolNCC.py:2965 appTools/ToolNCC.py:3231 appTools/ToolNCC.py:3332 @@ -8750,7 +8750,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:196 appObjects/FlatCAMObj.py:755 #: appObjects/FlatCAMObj.py:758 appObjects/FlatCAMObj.py:761 appObjects/FlatCAMObj.py:789 -#: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 appTools/ToolFiducials.py:815 +#: appObjects/FlatCAMObj.py:796 appObjects/FlatCAMObj.py:799 appTools/ToolFiducials.py:817 #: appTools/ToolFilm.py:1102 appTools/ToolProperties.py:449 appTools/ToolProperties.py:452 #: appTools/ToolProperties.py:455 appTools/ToolProperties.py:483 #: appTools/ToolProperties.py:490 appTools/ToolProperties.py:493 @@ -8995,7 +8995,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:57 #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:261 -#: appTools/ToolCopperThieving.py:1195 appTools/ToolCopperThieving.py:1530 +#: appTools/ToolCopperThieving.py:1191 appTools/ToolCopperThieving.py:1526 msgid "Clearance" msgstr "" @@ -9007,7 +9007,7 @@ msgid "" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:86 -#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 appTools/ToolCopperThieving.py:1224 +#: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 appTools/ToolCopperThieving.py:1220 #: appTools/ToolNCC.py:1351 appTools/ToolNCC.py:1667 appTools/ToolNCC.py:1731 #: appTools/ToolNCC.py:2709 appTools/ToolNCC.py:2718 appTools/ToolNCC.py:4300 #: appTools/ToolNCC.py:4436 defaults.py:478 tclCommands/TclCommandCopperClear.py:190 @@ -9017,7 +9017,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:87 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 appTools/ToolCopperThieving.py:1225 +#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 appTools/ToolCopperThieving.py:1221 #: appTools/ToolIsolation.py:819 appTools/ToolIsolation.py:1435 #: appTools/ToolIsolation.py:3378 appTools/ToolNCC.py:1365 appTools/ToolNCC.py:1683 #: appTools/ToolNCC.py:1738 appTools/ToolNCC.py:4300 appTools/ToolNCC.py:4446 @@ -9028,8 +9028,8 @@ msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:88 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:309 -#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 appTools/ToolCopperThieving.py:1226 -#: appTools/ToolDblSided.py:757 appTools/ToolIsolation.py:1475 +#: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 appTools/ToolCopperThieving.py:1222 +#: appTools/ToolDblSided.py:759 appTools/ToolIsolation.py:1475 #: appTools/ToolIsolation.py:3378 appTools/ToolNCC.py:1384 appTools/ToolNCC.py:1689 #: appTools/ToolNCC.py:1746 appTools/ToolNCC.py:2124 appTools/ToolNCC.py:2358 #: appTools/ToolNCC.py:2754 appTools/ToolNCC.py:4300 appTools/ToolPaint.py:1080 @@ -9039,7 +9039,7 @@ msgid "Reference Object" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:90 -#: appTools/ToolCopperThieving.py:1228 +#: appTools/ToolCopperThieving.py:1224 msgid "Reference:" msgstr "" @@ -9056,51 +9056,51 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:188 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:76 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:190 -#: appTools/ToolCopperThieving.py:1270 appTools/ToolExtractDrills.py:494 -#: appTools/ToolExtractDrills.py:632 appTools/ToolPunchGerber.py:770 +#: appTools/ToolCopperThieving.py:1266 appTools/ToolExtractDrills.py:495 +#: appTools/ToolExtractDrills.py:633 appTools/ToolPunchGerber.py:770 #: appTools/ToolPunchGerber.py:925 msgid "Rectangular" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:102 -#: appTools/ToolCopperThieving.py:1271 +#: appTools/ToolCopperThieving.py:1267 msgid "Minimal" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:104 -#: appTools/ToolCopperThieving.py:1273 appTools/ToolFilm.py:954 +#: appTools/ToolCopperThieving.py:1269 appTools/ToolFilm.py:954 msgid "Box Type:" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:106 -#: appTools/ToolCopperThieving.py:1275 +#: appTools/ToolCopperThieving.py:1271 msgid "" "- 'Rectangular' - the bounding box will be of rectangular shape.\n" "- 'Minimal' - the bounding box will be the convex hull shape." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:120 -#: appTools/ToolCopperThieving.py:1291 +#: appTools/ToolCopperThieving.py:1287 msgid "Dots Grid" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:121 -#: appTools/ToolCopperThieving.py:1292 +#: appTools/ToolCopperThieving.py:1288 msgid "Squares Grid" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:122 -#: appTools/ToolCopperThieving.py:1293 +#: appTools/ToolCopperThieving.py:1289 msgid "Lines Grid" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:124 -#: appTools/ToolCopperThieving.py:1295 +#: appTools/ToolCopperThieving.py:1291 msgid "Fill Type:" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:126 -#: appTools/ToolCopperThieving.py:1297 +#: appTools/ToolCopperThieving.py:1293 msgid "" "- 'Solid' - copper thieving will be a solid polygon.\n" "- 'Dots Grid' - the empty area will be filled with a pattern of dots.\n" @@ -9109,91 +9109,91 @@ msgid "" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:134 -#: appTools/ToolCopperThieving.py:1316 +#: appTools/ToolCopperThieving.py:1312 msgid "Dots Grid Parameters" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:140 -#: appTools/ToolCopperThieving.py:1322 +#: appTools/ToolCopperThieving.py:1318 msgid "Dot diameter in Dots Grid." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:153 -#: appTools/ToolCopperThieving.py:1335 +#: appTools/ToolCopperThieving.py:1331 msgid "Distance between each two dots in Dots Grid." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:163 -#: appTools/ToolCopperThieving.py:1356 +#: appTools/ToolCopperThieving.py:1352 msgid "Squares Grid Parameters" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:169 -#: appTools/ToolCopperThieving.py:1362 +#: appTools/ToolCopperThieving.py:1358 msgid "Square side size in Squares Grid." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:182 -#: appTools/ToolCopperThieving.py:1375 +#: appTools/ToolCopperThieving.py:1371 msgid "Distance between each two squares in Squares Grid." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:192 -#: appTools/ToolCopperThieving.py:1396 +#: appTools/ToolCopperThieving.py:1392 msgid "Lines Grid Parameters" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:198 -#: appTools/ToolCopperThieving.py:1402 +#: appTools/ToolCopperThieving.py:1398 msgid "Line thickness size in Lines Grid." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:211 -#: appTools/ToolCopperThieving.py:1415 +#: appTools/ToolCopperThieving.py:1411 msgid "Distance between each two lines in Lines Grid." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:221 -#: appTools/ToolCopperThieving.py:1453 +#: appTools/ToolCopperThieving.py:1449 msgid "Robber Bar Parameters" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:223 -#: appTools/ToolCopperThieving.py:1455 +#: appTools/ToolCopperThieving.py:1451 msgid "" "Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:231 -#: appTools/ToolCopperThieving.py:1463 +#: appTools/ToolCopperThieving.py:1459 msgid "Bounding box margin for robber bar." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:242 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:42 -#: appTools/ToolCopperThieving.py:1474 appTools/ToolCorners.py:384 +#: appTools/ToolCopperThieving.py:1470 appTools/ToolCorners.py:385 #: appTools/ToolEtchCompensation.py:370 msgid "Thickness" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:244 -#: appTools/ToolCopperThieving.py:1476 +#: appTools/ToolCopperThieving.py:1472 msgid "The robber bar thickness." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:254 -#: appTools/ToolCopperThieving.py:1507 +#: appTools/ToolCopperThieving.py:1503 msgid "Pattern Plating Mask" msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:256 -#: appTools/ToolCopperThieving.py:1509 +#: appTools/ToolCopperThieving.py:1505 msgid "Generate a mask for pattern plating." msgstr "" #: appGUI/preferences/tools/Tools2CThievingPrefGroupUI.py:263 -#: appTools/ToolCopperThieving.py:1532 +#: appTools/ToolCopperThieving.py:1528 msgid "" "The distance between the possible copper thieving elements\n" "and/or robber bar and the actual openings in the mask." @@ -9208,8 +9208,8 @@ msgstr "" #: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:38 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:38 #: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:37 -#: appTools/ToolCopperThieving.py:1190 appTools/ToolCorners.py:379 -#: appTools/ToolFiducials.py:765 +#: appTools/ToolCopperThieving.py:1186 appTools/ToolCorners.py:380 +#: appTools/ToolFiducials.py:767 msgid "Parameters used for this tool." msgstr "" @@ -9274,12 +9274,12 @@ msgid "" msgstr "" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:131 appTools/ToolCalibration.py:854 -#: app_Main.py:4996 +#: app_Main.py:4919 msgid "Top-Left" msgstr "" #: appGUI/preferences/tools/Tools2CalPrefGroupUI.py:132 appTools/ToolCalibration.py:855 -#: app_Main.py:4997 +#: app_Main.py:4920 msgid "Bottom-Right" msgstr "" @@ -9289,13 +9289,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:42 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:42 -#: appTools/ToolExtractDrills.py:460 appTools/ToolPunchGerber.py:732 +#: appTools/ToolExtractDrills.py:461 appTools/ToolPunchGerber.py:732 msgid "Processed Pads Type" msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:44 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:44 -#: appTools/ToolExtractDrills.py:462 appTools/ToolPunchGerber.py:734 +#: appTools/ToolExtractDrills.py:463 appTools/ToolPunchGerber.py:734 msgid "" "The type of pads shape to be processed.\n" "If the PCB has many SMD pads with rectangular pads,\n" @@ -9304,7 +9304,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:54 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:54 -#: appTools/ToolExtractDrills.py:472 appTools/ToolPunchGerber.py:748 +#: appTools/ToolExtractDrills.py:473 appTools/ToolPunchGerber.py:748 msgid "Process Circular Pads." msgstr "" @@ -9312,26 +9312,26 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:162 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:60 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:164 -#: appTools/ToolExtractDrills.py:478 appTools/ToolExtractDrills.py:606 +#: appTools/ToolExtractDrills.py:479 appTools/ToolExtractDrills.py:607 #: appTools/ToolPunchGerber.py:754 appTools/ToolPunchGerber.py:899 msgid "Oblong" msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:62 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:62 -#: appTools/ToolExtractDrills.py:480 appTools/ToolPunchGerber.py:756 +#: appTools/ToolExtractDrills.py:481 appTools/ToolPunchGerber.py:756 msgid "Process Oblong Pads." msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:70 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:70 -#: appTools/ToolExtractDrills.py:488 appTools/ToolPunchGerber.py:764 +#: appTools/ToolExtractDrills.py:489 appTools/ToolPunchGerber.py:764 msgid "Process Square Pads." msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:78 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:78 -#: appTools/ToolExtractDrills.py:496 appTools/ToolPunchGerber.py:772 +#: appTools/ToolExtractDrills.py:497 appTools/ToolPunchGerber.py:772 msgid "Process Rectangular Pads." msgstr "" @@ -9339,7 +9339,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:201 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:84 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:203 appObjects/FlatCAMObj.py:505 -#: appTools/ToolExtractDrills.py:502 appTools/ToolExtractDrills.py:645 +#: appTools/ToolExtractDrills.py:503 appTools/ToolExtractDrills.py:646 #: appTools/ToolProperties.py:171 appTools/ToolPunchGerber.py:778 #: appTools/ToolPunchGerber.py:938 msgid "Others" @@ -9347,7 +9347,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:86 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:86 -#: appTools/ToolExtractDrills.py:504 appTools/ToolPunchGerber.py:780 +#: appTools/ToolExtractDrills.py:505 appTools/ToolPunchGerber.py:780 msgid "Process pads not in the categories above." msgstr "" @@ -9355,7 +9355,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:123 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:100 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:125 -#: appTools/ToolExtractDrills.py:531 appTools/ToolExtractDrills.py:548 +#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:549 #: appTools/ToolPunchGerber.py:807 appTools/ToolPunchGerber.py:841 msgid "Fixed Diameter" msgstr "" @@ -9364,19 +9364,19 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:140 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:142 -#: appTools/ToolExtractDrills.py:532 appTools/ToolExtractDrills.py:584 +#: appTools/ToolExtractDrills.py:533 appTools/ToolExtractDrills.py:585 #: appTools/ToolPunchGerber.py:808 appTools/ToolPunchGerber.py:871 msgid "Fixed Annular Ring" msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:101 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:102 -#: appTools/ToolExtractDrills.py:533 appTools/ToolPunchGerber.py:809 +#: appTools/ToolExtractDrills.py:534 appTools/ToolPunchGerber.py:809 msgid "Proportional" msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:107 -#: appTools/ToolExtractDrills.py:522 +#: appTools/ToolExtractDrills.py:523 msgid "" "The method for processing pads. Can be:\n" "- Fixed Diameter -> all holes will have a set size\n" @@ -9386,13 +9386,13 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:133 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:135 -#: appTools/ToolExtractDrills.py:558 appTools/ToolPunchGerber.py:851 +#: appTools/ToolExtractDrills.py:559 appTools/ToolPunchGerber.py:851 msgid "Fixed hole diameter." msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:142 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:144 -#: appTools/ToolExtractDrills.py:586 appTools/ToolPunchGerber.py:873 +#: appTools/ToolExtractDrills.py:587 appTools/ToolPunchGerber.py:873 msgid "" "The size of annular ring.\n" "The copper sliver between the hole exterior\n" @@ -9401,37 +9401,37 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:151 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:153 -#: appTools/ToolExtractDrills.py:595 appTools/ToolPunchGerber.py:888 +#: appTools/ToolExtractDrills.py:596 appTools/ToolPunchGerber.py:888 msgid "The size of annular ring for circular pads." msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:164 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:166 -#: appTools/ToolExtractDrills.py:608 appTools/ToolPunchGerber.py:901 +#: appTools/ToolExtractDrills.py:609 appTools/ToolPunchGerber.py:901 msgid "The size of annular ring for oblong pads." msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:177 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:179 -#: appTools/ToolExtractDrills.py:621 appTools/ToolPunchGerber.py:914 +#: appTools/ToolExtractDrills.py:622 appTools/ToolPunchGerber.py:914 msgid "The size of annular ring for square pads." msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:190 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:192 -#: appTools/ToolExtractDrills.py:634 appTools/ToolPunchGerber.py:927 +#: appTools/ToolExtractDrills.py:635 appTools/ToolPunchGerber.py:927 msgid "The size of annular ring for rectangular pads." msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:203 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:205 -#: appTools/ToolExtractDrills.py:647 appTools/ToolPunchGerber.py:940 +#: appTools/ToolExtractDrills.py:648 appTools/ToolPunchGerber.py:940 msgid "The size of annular ring for other pads." msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:213 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:215 -#: appTools/ToolExtractDrills.py:668 appTools/ToolPunchGerber.py:956 +#: appTools/ToolExtractDrills.py:669 appTools/ToolPunchGerber.py:956 msgid "Proportional Diameter" msgstr "" @@ -9442,7 +9442,7 @@ msgstr "" #: appGUI/preferences/tools/Tools2EDrillsPrefGroupUI.py:224 #: appGUI/preferences/tools/Tools2PunchGerberPrefGroupUI.py:226 -#: appTools/ToolExtractDrills.py:679 appTools/ToolPunchGerber.py:967 +#: appTools/ToolExtractDrills.py:680 appTools/ToolPunchGerber.py:967 msgid "" "Proportional Diameter.\n" "The hole diameter will be a fraction of the pad size." @@ -9452,18 +9452,18 @@ msgstr "" msgid "Fiducials Tool Options" msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 appTools/ToolFiducials.py:772 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:45 appTools/ToolFiducials.py:774 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 "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 appTools/ToolFiducials.py:800 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:73 appTools/ToolFiducials.py:802 msgid "Auto" msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 appTools/ToolFiducials.py:803 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:76 appTools/ToolFiducials.py:805 msgid "Mode:" msgstr "" @@ -9473,19 +9473,19 @@ msgid "" "- 'Manual' - manual placement of fiducials." msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 appTools/ToolFiducials.py:813 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:86 appTools/ToolFiducials.py:815 msgid "Up" msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 appTools/ToolFiducials.py:814 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:87 appTools/ToolFiducials.py:816 msgid "Down" msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 appTools/ToolFiducials.py:817 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:90 appTools/ToolFiducials.py:819 msgid "Second fiducial" msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 appTools/ToolFiducials.py:819 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:92 appTools/ToolFiducials.py:821 msgid "" "The position for the second fiducial.\n" "- 'Up' - the order is: bottom-left, top-left, top-right.\n" @@ -9493,19 +9493,19 @@ msgid "" "- 'None' - there is no second fiducial. The order is: bottom-left, top-right." msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 appTools/ToolFiducials.py:835 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:108 appTools/ToolFiducials.py:837 msgid "Cross" msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 appTools/ToolFiducials.py:836 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:109 appTools/ToolFiducials.py:838 msgid "Chess" msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 appTools/ToolFiducials.py:838 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:112 appTools/ToolFiducials.py:840 msgid "Fiducial Type" msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 appTools/ToolFiducials.py:840 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:114 appTools/ToolFiducials.py:842 msgid "" "The type of fiducial.\n" "- 'Circular' - this is the regular fiducial.\n" @@ -9513,7 +9513,7 @@ msgid "" "- 'Chess' - chess pattern fiducial." msgstr "" -#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 appTools/ToolFiducials.py:849 +#: appGUI/preferences/tools/Tools2FiducialsPrefGroupUI.py:123 appTools/ToolFiducials.py:851 msgid "Line thickness" msgstr "" @@ -9594,24 +9594,24 @@ msgid "" "into a selected Gerber file, or it can be exported as a file." msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 appTools/ToolQRCode.py:702 -#: app_Main.py:9732 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:45 appTools/ToolQRCode.py:703 +#: app_Main.py:7308 msgid "Version" msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 appTools/ToolQRCode.py:704 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:47 appTools/ToolQRCode.py:705 msgid "" "QRCode version can have values from 1 (21x21 boxes)\n" "to 40 (177x177 boxes)." msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 appTools/ToolQRCode.py:715 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:58 appTools/ToolQRCode.py:716 msgid "Error correction" msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:60 -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 appTools/ToolQRCode.py:717 -#: appTools/ToolQRCode.py:728 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:71 appTools/ToolQRCode.py:718 +#: appTools/ToolQRCode.py:729 #, python-format msgid "" "Parameter that controls the error correction used for the QR Code.\n" @@ -9621,43 +9621,43 @@ msgid "" "H = maximum 30%% errors can be corrected." msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 appTools/ToolQRCode.py:738 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:81 appTools/ToolQRCode.py:739 msgid "Box Size" msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 appTools/ToolQRCode.py:740 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:83 appTools/ToolQRCode.py:741 msgid "" "Box size control the overall size of the QRcode\n" "by adjusting the size of each box in the code." msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 appTools/ToolQRCode.py:751 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:94 appTools/ToolQRCode.py:752 msgid "Border Size" msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 appTools/ToolQRCode.py:753 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:96 appTools/ToolQRCode.py:754 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 "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 appTools/ToolQRCode.py:673 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:107 appTools/ToolQRCode.py:674 msgid "QRCode Data" msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 appTools/ToolQRCode.py:675 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:109 appTools/ToolQRCode.py:676 msgid "QRCode Data. Alphanumeric text to be encoded in the QRCode." msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 appTools/ToolQRCode.py:679 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:113 appTools/ToolQRCode.py:680 msgid "Add here the text to be included in the QRCode..." msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 appTools/ToolQRCode.py:764 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:119 appTools/ToolQRCode.py:765 msgid "Polarity" msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 appTools/ToolQRCode.py:766 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:121 appTools/ToolQRCode.py:767 msgid "" "Choose the polarity of the QRCode.\n" "It can be drawn in a negative way (squares are clear)\n" @@ -9665,16 +9665,16 @@ msgid "" msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:125 appTools/ToolFilm.py:1144 -#: appTools/ToolQRCode.py:770 +#: appTools/ToolQRCode.py:771 msgid "Negative" msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:126 appTools/ToolFilm.py:1143 -#: appTools/ToolQRCode.py:771 +#: appTools/ToolQRCode.py:772 msgid "Positive" msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 appTools/ToolQRCode.py:773 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:128 appTools/ToolQRCode.py:774 msgid "" "Choose the type of QRCode to be created.\n" "If added on a Silkscreen Gerber file the QRCode may\n" @@ -9683,26 +9683,26 @@ msgid "" msgstr "" #: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:139 -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 appTools/ToolQRCode.py:784 -#: appTools/ToolQRCode.py:790 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:145 appTools/ToolQRCode.py:785 +#: appTools/ToolQRCode.py:791 msgid "" "The bounding box, meaning the empty space that surrounds\n" "the QRCode geometry, can have a rounded or a square shape." msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 appTools/ToolQRCode.py:818 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:152 appTools/ToolQRCode.py:819 msgid "Fill Color" msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 appTools/ToolQRCode.py:820 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:154 appTools/ToolQRCode.py:821 msgid "Set the QRCode fill color (squares color)." msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 appTools/ToolQRCode.py:842 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:162 appTools/ToolQRCode.py:843 msgid "Back Color" msgstr "" -#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 appTools/ToolQRCode.py:844 +#: appGUI/preferences/tools/Tools2QRCodePrefGroupUI.py:164 appTools/ToolQRCode.py:845 msgid "Set the QRCode background color." msgstr "" @@ -9902,8 +9902,8 @@ msgstr "" msgid "Drill dia" msgstr "" -#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 appTools/ToolDblSided.py:824 -#: appTools/ToolDblSided.py:829 +#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:49 appTools/ToolDblSided.py:826 +#: appTools/ToolDblSided.py:831 msgid "Diameter of the drill for the alignment holes." msgstr "" @@ -9912,8 +9912,8 @@ msgid "Align Axis" msgstr "" #: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:58 -#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 appTools/ToolDblSided.py:667 -#: appTools/ToolDblSided.py:840 +#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:71 appTools/ToolDblSided.py:669 +#: appTools/ToolDblSided.py:842 msgid "Mirror vertically (X) or horizontally (Y)." msgstr "" @@ -9921,11 +9921,11 @@ msgstr "" msgid "Mirror Axis:" msgstr "" -#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 appTools/ToolDblSided.py:693 +#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:86 appTools/ToolDblSided.py:695 msgid "Box" msgstr "" -#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 appTools/ToolDblSided.py:694 +#: appGUI/preferences/tools/Tools2sidedPrefGroupUI.py:87 appTools/ToolDblSided.py:696 msgid "Hole Snap" msgstr "" @@ -10048,11 +10048,11 @@ msgstr "" msgid "Corner Markers Options" msgstr "" -#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 appTools/ToolCorners.py:386 +#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:44 appTools/ToolCorners.py:387 msgid "The thickness of the line that makes the corner marker." msgstr "" -#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 appTools/ToolCorners.py:400 +#: appGUI/preferences/tools/ToolsCornersPrefGroupUI.py:58 appTools/ToolCorners.py:401 msgid "The length of the line that makes the corner marker." msgstr "" @@ -10067,7 +10067,7 @@ msgid "" "the original board." msgstr "" -#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 appTools/ToolCutOut.py:2062 +#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:45 appTools/ToolCutOut.py:2066 msgid "" "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material." @@ -10077,18 +10077,18 @@ msgstr "" msgid "Object kind" msgstr "" -#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 appTools/ToolCutOut.py:1995 +#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:102 appTools/ToolCutOut.py:1999 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 "" -#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 appTools/ToolCutOut.py:2001 +#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:109 appTools/ToolCutOut.py:2005 msgid "Single" msgstr "" -#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 appTools/ToolCutOut.py:2002 +#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:110 appTools/ToolCutOut.py:2006 msgid "Panel" msgstr "" @@ -10106,11 +10106,11 @@ msgid "" "- 8 - 2*left + 2*right +2*top + 2*bottom" msgstr "" -#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 appTools/ToolCutOut.py:2333 +#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:240 appTools/ToolCutOut.py:2337 msgid "Big cursor" msgstr "" -#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 appTools/ToolCutOut.py:2335 +#: appGUI/preferences/tools/ToolsCutoutPrefGroupUI.py:242 appTools/ToolCutOut.py:2339 msgid "Use a big cursor when adding manual gaps." msgstr "" @@ -10308,17 +10308,17 @@ msgid "" "It can be one of the four points of the geometry bounding box." msgstr "" -#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 appTools/ToolCorners.py:342 -#: appTools/ToolFiducials.py:694 appTools/ToolFilm.py:1065 +#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:174 appTools/ToolCorners.py:343 +#: appTools/ToolFiducials.py:696 appTools/ToolFilm.py:1065 msgid "Bottom Left" msgstr "" -#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 appTools/ToolCorners.py:350 +#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:175 appTools/ToolCorners.py:351 #: appTools/ToolFilm.py:1066 msgid "Top Left" msgstr "" -#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 appTools/ToolCorners.py:346 +#: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:176 appTools/ToolCorners.py:347 #: appTools/ToolFilm.py:1067 msgid "Bottom Right" msgstr "" @@ -10536,9 +10536,9 @@ msgstr "" #: appGUI/preferences/tools/ToolsNCCPrefGroupUI.py:341 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:303 appObjects/AppObject.py:453 #: appObjects/FlatCAMObj.py:266 appObjects/FlatCAMObj.py:297 appObjects/FlatCAMObj.py:313 -#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1044 -#: appTools/ToolCorners.py:263 appTools/ToolFiducials.py:530 appTools/ToolMove.py:229 -#: appTools/ToolQRCode.py:463 app_Main.py:4682 +#: appObjects/FlatCAMObj.py:393 appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCorners.py:264 appTools/ToolFiducials.py:532 appTools/ToolMove.py:229 +#: appTools/ToolQRCode.py:464 app_Main.py:4605 msgid "Plotting" msgstr "" @@ -10672,9 +10672,9 @@ msgstr "" #: appTools/ToolAlignObjects.py:434 appTools/ToolCalibration.py:163 #: appTools/ToolCalibration.py:171 appTools/ToolCalibration.py:891 #: appTools/ToolCalibration.py:1326 appTools/ToolCalibration.py:1343 -#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1243 -#: appTools/ToolCopperThieving.py:1257 appTools/ToolCutOut.py:2009 -#: appTools/ToolDblSided.py:525 appTools/ToolDblSided.py:765 appTools/ToolFilm.py:928 +#: appTools/ToolCopperThieving.py:163 appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1253 appTools/ToolCutOut.py:2013 +#: appTools/ToolDblSided.py:527 appTools/ToolDblSided.py:767 appTools/ToolFilm.py:928 #: appTools/ToolFilm.py:951 appTools/ToolImage.py:117 appTools/ToolImage.py:138 #: appTools/ToolImage.py:191 appTools/ToolIsolation.py:802 appTools/ToolIsolation.py:3339 #: appTools/ToolIsolation.py:3391 appTools/ToolNCC.py:805 appTools/ToolNCC.py:3849 @@ -11213,7 +11213,7 @@ msgid "Export cancelled ..." msgstr "" #: appObjects/FlatCAMCNCJob.py:1678 appObjects/FlatCAMCNCJob.py:1965 -#: appObjects/FlatCAMScript.py:134 app_Main.py:7830 +#: appObjects/FlatCAMScript.py:134 app_Main.py:6925 msgid "Loading..." msgstr "" @@ -11341,7 +11341,7 @@ msgstr "" #: appTools/ToolDrilling.py:754 appTools/ToolDrilling.py:983 appTools/ToolDrilling.py:1021 #: appTools/ToolIsolation.py:639 appTools/ToolIsolation.py:674 appTools/ToolMilling.py:744 #: appTools/ToolMilling.py:779 appTools/ToolNCC.py:271 appTools/ToolNCC.py:306 -#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2194 +#: appTools/ToolPaint.py:247 appTools/ToolPaint.py:282 app_Main.py:2203 msgid "No Tool Selected" msgstr "" @@ -11630,8 +11630,8 @@ msgstr "" #: appObjects/ObjectCollection.py:933 appObjects/ObjectCollection.py:939 #: appObjects/ObjectCollection.py:945 appObjects/ObjectCollection.py:951 -#: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 app_Main.py:6707 -#: app_Main.py:6713 app_Main.py:6719 app_Main.py:6725 +#: appObjects/ObjectCollection.py:957 appObjects/ObjectCollection.py:963 app_Main.py:6630 +#: app_Main.py:6636 app_Main.py:6642 app_Main.py:6648 msgid "selected" msgstr "" @@ -11788,7 +11788,7 @@ msgid "Click on the START point." msgstr "" #: appTools/ToolAlignObjects.py:240 appTools/ToolCalibration.py:276 -#: appTools/ToolDblSided.py:285 +#: appTools/ToolDblSided.py:287 msgid "Cancelled by user request." msgstr "" @@ -11802,7 +11802,7 @@ msgid "Or right click to cancel." msgstr "" #: appTools/ToolAlignObjects.py:260 appTools/ToolAlignObjects.py:267 -#: appTools/ToolFiducials.py:718 +#: appTools/ToolFiducials.py:720 msgid "Second Point" msgstr "" @@ -11870,27 +11870,27 @@ msgid "" msgstr "" #: appTools/ToolAlignObjects.py:498 appTools/ToolCalculators.py:372 -#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1583 -#: appTools/ToolCorners.py:444 appTools/ToolCutOut.py:2394 appTools/ToolDblSided.py:938 +#: appTools/ToolCalibration.py:1378 appTools/ToolCopperThieving.py:1579 +#: appTools/ToolCorners.py:445 appTools/ToolCutOut.py:2398 appTools/ToolDblSided.py:940 #: appTools/ToolDrilling.py:2649 appTools/ToolEtchCompensation.py:458 -#: appTools/ToolExtractDrills.py:702 appTools/ToolFiducials.py:932 appTools/ToolFilm.py:1383 +#: appTools/ToolExtractDrills.py:703 appTools/ToolFiducials.py:934 appTools/ToolFilm.py:1383 #: appTools/ToolInvertGerber.py:286 appTools/ToolIsolation.py:3477 #: appTools/ToolMilling.py:2324 appTools/ToolNCC.py:4388 appTools/ToolOptimal.py:593 #: appTools/ToolPaint.py:3194 appTools/ToolPanelize.py:889 appTools/ToolPunchGerber.py:996 -#: appTools/ToolQRCode.py:904 appTools/ToolRulesCheck.py:1620 +#: appTools/ToolQRCode.py:905 appTools/ToolRulesCheck.py:1620 #: appTools/ToolSolderPaste.py:1557 appTools/ToolSub.py:754 appTools/ToolTransform.py:920 msgid "Reset Tool" msgstr "" #: appTools/ToolAlignObjects.py:501 appTools/ToolCalculators.py:375 -#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1586 -#: appTools/ToolCorners.py:447 appTools/ToolCutOut.py:2397 appTools/ToolDblSided.py:941 +#: appTools/ToolCalibration.py:1381 appTools/ToolCopperThieving.py:1582 +#: appTools/ToolCorners.py:448 appTools/ToolCutOut.py:2401 appTools/ToolDblSided.py:943 #: appTools/ToolDrilling.py:2652 appTools/ToolEtchCompensation.py:461 -#: appTools/ToolExtractDrills.py:705 appTools/ToolFiducials.py:935 appTools/ToolFilm.py:1386 +#: appTools/ToolExtractDrills.py:706 appTools/ToolFiducials.py:937 appTools/ToolFilm.py:1386 #: appTools/ToolInvertGerber.py:289 appTools/ToolIsolation.py:3480 #: appTools/ToolMilling.py:2327 appTools/ToolNCC.py:4391 appTools/ToolOptimal.py:596 #: appTools/ToolPaint.py:3197 appTools/ToolPanelize.py:892 appTools/ToolPunchGerber.py:999 -#: appTools/ToolQRCode.py:907 appTools/ToolRulesCheck.py:1623 +#: appTools/ToolQRCode.py:908 appTools/ToolRulesCheck.py:1623 #: appTools/ToolSolderPaste.py:1560 appTools/ToolSub.py:757 appTools/ToolTransform.py:923 msgid "Will reset the tool parameters." msgstr "" @@ -12252,29 +12252,29 @@ msgstr "" msgid "Squares grid fill selected." msgstr "" -#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:308 -#: appTools/ToolCopperThieving.py:916 appTools/ToolCorners.py:120 -#: appTools/ToolDblSided.py:304 appTools/ToolExtractDrills.py:141 +#: appTools/ToolCopperThieving.py:226 appTools/ToolCopperThieving.py:307 +#: appTools/ToolCopperThieving.py:914 appTools/ToolCorners.py:120 +#: appTools/ToolDblSided.py:306 appTools/ToolExtractDrills.py:141 #: appTools/ToolFiducials.py:187 appTools/ToolFiducials.py:464 appTools/ToolOptimal.py:138 #: appTools/ToolPunchGerber.py:188 appTools/ToolQRCode.py:158 msgid "There is no Gerber object loaded ..." msgstr "" -#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:844 +#: appTools/ToolCopperThieving.py:239 appTools/ToolCopperThieving.py:843 msgid "Append geometry" msgstr "" -#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:877 -#: appTools/ToolCopperThieving.py:1022 +#: appTools/ToolCopperThieving.py:283 appTools/ToolCopperThieving.py:876 +#: appTools/ToolCopperThieving.py:1020 msgid "Append source file" msgstr "" -#: appTools/ToolCopperThieving.py:291 appTools/ToolCopperThieving.py:885 +#: appTools/ToolCopperThieving.py:290 appTools/ToolCopperThieving.py:883 msgid "Copper Thieving Tool done." msgstr "" -#: appTools/ToolCopperThieving.py:318 appTools/ToolCopperThieving.py:351 -#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:917 appTools/ToolDrilling.py:726 +#: appTools/ToolCopperThieving.py:317 appTools/ToolCopperThieving.py:350 +#: appTools/ToolCutOut.py:544 appTools/ToolCutOut.py:918 appTools/ToolDrilling.py:726 #: appTools/ToolDrilling.py:1582 appTools/ToolEtchCompensation.py:152 #: appTools/ToolInvertGerber.py:99 appTools/ToolIsolation.py:908 #: appTools/ToolIsolation.py:1345 appTools/ToolIsolation.py:1372 appTools/ToolMilling.py:424 @@ -12287,83 +12287,83 @@ msgstr "" msgid "Could not retrieve object" msgstr "" -#: appTools/ToolCopperThieving.py:379 +#: appTools/ToolCopperThieving.py:378 msgid "Click the end point of the filling area." msgstr "" -#: appTools/ToolCopperThieving.py:507 appTools/ToolCopperThieving.py:511 -#: appTools/ToolCopperThieving.py:570 +#: appTools/ToolCopperThieving.py:506 appTools/ToolCopperThieving.py:510 +#: appTools/ToolCopperThieving.py:569 msgid "Thieving" msgstr "" -#: appTools/ToolCopperThieving.py:518 +#: appTools/ToolCopperThieving.py:517 msgid "Copper Thieving Tool started. Reading parameters." msgstr "" -#: appTools/ToolCopperThieving.py:543 +#: appTools/ToolCopperThieving.py:542 msgid "Copper Thieving Tool. Preparing isolation polygons." msgstr "" -#: appTools/ToolCopperThieving.py:586 +#: appTools/ToolCopperThieving.py:585 msgid "Copper Thieving Tool. Preparing areas to fill with copper." msgstr "" -#: appTools/ToolCopperThieving.py:597 appTools/ToolFilm.py:631 appTools/ToolFilm.py:879 +#: appTools/ToolCopperThieving.py:596 appTools/ToolFilm.py:631 appTools/ToolFilm.py:879 #: appTools/ToolIsolation.py:916 appTools/ToolNCC.py:853 appTools/ToolOptimal.py:145 #: appTools/ToolPanelize.py:612 appTools/ToolRulesCheck.py:627 msgid "Working..." msgstr "" -#: appTools/ToolCopperThieving.py:626 +#: appTools/ToolCopperThieving.py:625 msgid "Geometry not supported for bounding box" msgstr "" -#: appTools/ToolCopperThieving.py:632 appTools/ToolNCC.py:1681 appTools/ToolNCC.py:1736 +#: appTools/ToolCopperThieving.py:631 appTools/ToolNCC.py:1681 appTools/ToolNCC.py:1736 #: appTools/ToolNCC.py:2734 appTools/ToolPaint.py:2457 msgid "No object available." msgstr "" -#: appTools/ToolCopperThieving.py:669 appTools/ToolNCC.py:1706 appTools/ToolNCC.py:1759 +#: appTools/ToolCopperThieving.py:668 appTools/ToolNCC.py:1706 appTools/ToolNCC.py:1759 #: appTools/ToolNCC.py:2776 msgid "The reference object type is not supported." msgstr "" -#: appTools/ToolCopperThieving.py:674 +#: appTools/ToolCopperThieving.py:673 msgid "Copper Thieving Tool. Appending new geometry and buffering." msgstr "" -#: appTools/ToolCopperThieving.py:690 +#: appTools/ToolCopperThieving.py:689 msgid "Create geometry" msgstr "" -#: appTools/ToolCopperThieving.py:896 appTools/ToolCopperThieving.py:900 +#: appTools/ToolCopperThieving.py:894 appTools/ToolCopperThieving.py:898 msgid "P-Plating Mask" msgstr "" -#: appTools/ToolCopperThieving.py:922 +#: appTools/ToolCopperThieving.py:920 msgid "Append PP-M geometry" msgstr "" -#: appTools/ToolCopperThieving.py:1040 +#: appTools/ToolCopperThieving.py:1036 msgid "Generating Pattern Plating Mask done." msgstr "" -#: appTools/ToolCopperThieving.py:1112 +#: appTools/ToolCopperThieving.py:1108 msgid "Copper Thieving Tool exit." msgstr "" -#: appTools/ToolCopperThieving.py:1171 appTools/ToolFiducials.py:875 +#: appTools/ToolCopperThieving.py:1167 appTools/ToolFiducials.py:877 msgid "Gerber Object to which will be added a copper thieving." msgstr "" -#: appTools/ToolCopperThieving.py:1197 +#: appTools/ToolCopperThieving.py:1193 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 "" -#: appTools/ToolCopperThieving.py:1230 +#: appTools/ToolCopperThieving.py:1226 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" @@ -12371,42 +12371,42 @@ msgid "" "object." msgstr "" -#: appTools/ToolCopperThieving.py:1237 appTools/ToolIsolation.py:3385 +#: appTools/ToolCopperThieving.py:1233 appTools/ToolIsolation.py:3385 #: appTools/ToolNCC.py:4317 appTools/ToolPaint.py:3137 msgid "Ref. Type" msgstr "" -#: appTools/ToolCopperThieving.py:1239 +#: appTools/ToolCopperThieving.py:1235 msgid "" "The type of FlatCAM object to be used as copper thieving reference.\n" "It can be Gerber, Excellon or Geometry." msgstr "" -#: appTools/ToolCopperThieving.py:1248 appTools/ToolIsolation.py:3396 +#: appTools/ToolCopperThieving.py:1244 appTools/ToolIsolation.py:3396 #: appTools/ToolNCC.py:4327 appTools/ToolPaint.py:3147 msgid "Ref. Object" msgstr "" -#: appTools/ToolCopperThieving.py:1250 appTools/ToolIsolation.py:3398 +#: appTools/ToolCopperThieving.py:1246 appTools/ToolIsolation.py:3398 #: appTools/ToolNCC.py:4329 appTools/ToolPaint.py:3149 msgid "The FlatCAM object to be used as non copper clearing reference." msgstr "" -#: appTools/ToolCopperThieving.py:1426 +#: appTools/ToolCopperThieving.py:1422 msgid "Insert Copper thieving" msgstr "" -#: appTools/ToolCopperThieving.py:1428 +#: appTools/ToolCopperThieving.py:1424 msgid "" "Will add a polygon (may be split in multiple parts)\n" "that will surround the actual Gerber traces at a certain distance." msgstr "" -#: appTools/ToolCopperThieving.py:1487 +#: appTools/ToolCopperThieving.py:1483 msgid "Insert Robber Bar" msgstr "" -#: appTools/ToolCopperThieving.py:1489 +#: appTools/ToolCopperThieving.py:1485 msgid "" "Will add a polygon with a defined thickness\n" "that will surround the actual Gerber object\n" @@ -12414,22 +12414,22 @@ msgid "" "Required when doing holes pattern plating." msgstr "" -#: appTools/ToolCopperThieving.py:1513 +#: appTools/ToolCopperThieving.py:1509 msgid "Select Soldermask object" msgstr "" -#: appTools/ToolCopperThieving.py:1515 +#: appTools/ToolCopperThieving.py:1511 msgid "" "Gerber Object with the soldermask.\n" "It will be used as a base for\n" "the pattern plating mask." msgstr "" -#: appTools/ToolCopperThieving.py:1544 +#: appTools/ToolCopperThieving.py:1540 msgid "Plated area" msgstr "" -#: appTools/ToolCopperThieving.py:1546 +#: appTools/ToolCopperThieving.py:1542 msgid "" "The area to be plated by pattern plating.\n" "Basically is made from the openings in the plating mask.\n" @@ -12440,19 +12440,19 @@ msgid "" "calculated from the soldermask openings." msgstr "" -#: appTools/ToolCopperThieving.py:1557 +#: appTools/ToolCopperThieving.py:1553 msgid "mm" msgstr "" -#: appTools/ToolCopperThieving.py:1559 +#: appTools/ToolCopperThieving.py:1555 msgid "in" msgstr "" -#: appTools/ToolCopperThieving.py:1566 +#: appTools/ToolCopperThieving.py:1562 msgid "Generate pattern plating mask" msgstr "" -#: appTools/ToolCopperThieving.py:1568 +#: appTools/ToolCopperThieving.py:1564 msgid "" "Will add to the soldermask gerber geometry\n" "the geometries of the copper thieving and/or\n" @@ -12463,39 +12463,39 @@ msgstr "" msgid "Corners Tool" msgstr "" -#: appTools/ToolCorners.py:157 +#: appTools/ToolCorners.py:158 msgid "Please select at least a location" msgstr "" -#: appTools/ToolCorners.py:292 +#: appTools/ToolCorners.py:293 msgid "Corners Tool exit." msgstr "" -#: appTools/ToolCorners.py:319 +#: appTools/ToolCorners.py:320 msgid "The Gerber object to which will be added corner markers." msgstr "" -#: appTools/ToolCorners.py:335 +#: appTools/ToolCorners.py:336 msgid "Locations" msgstr "" -#: appTools/ToolCorners.py:337 +#: appTools/ToolCorners.py:338 msgid "Locations where to place corner markers." msgstr "" -#: appTools/ToolCorners.py:354 appTools/ToolFiducials.py:706 +#: appTools/ToolCorners.py:355 appTools/ToolFiducials.py:708 msgid "Top Right" msgstr "" -#: appTools/ToolCorners.py:363 +#: appTools/ToolCorners.py:364 msgid "Toggle ALL" msgstr "" -#: appTools/ToolCorners.py:429 +#: appTools/ToolCorners.py:430 msgid "Add Marker" msgstr "" -#: appTools/ToolCorners.py:431 +#: appTools/ToolCorners.py:432 msgid "Will add corner markers to the selected Gerber file." msgstr "" @@ -12503,7 +12503,7 @@ msgstr "" #: appTools/ToolIsolation.py:1185 appTools/ToolNCC.py:463 appTools/ToolNCC.py:992 #: appTools/ToolNCC.py:1130 appTools/ToolPaint.py:395 appTools/ToolPaint.py:686 #: appTools/ToolPaint.py:823 appTools/ToolSolderPaste.py:131 appTools/ToolSolderPaste.py:464 -#: app_Main.py:4496 +#: app_Main.py:4419 msgid "Please enter a tool diameter with non-zero value, in Float format." msgstr "" @@ -12542,30 +12542,30 @@ msgid "" "Select one and try again." msgstr "" -#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:926 appTools/ToolCutOut.py:1300 -#: appTools/ToolCutOut.py:1431 tclCommands/TclCommandGeoCutout.py:184 +#: appTools/ToolCutOut.py:555 appTools/ToolCutOut.py:927 appTools/ToolCutOut.py:1303 +#: appTools/ToolCutOut.py:1434 tclCommands/TclCommandGeoCutout.py:184 msgid "Tool Diameter is zero value. Change it to a positive real number." msgstr "" -#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:940 +#: appTools/ToolCutOut.py:568 appTools/ToolCutOut.py:941 msgid "Number of gaps value is missing. Add it and retry." msgstr "" -#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:944 +#: appTools/ToolCutOut.py:573 appTools/ToolCutOut.py:945 msgid "" "Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. Fill in a " "correct value and retry. " msgstr "" -#: appTools/ToolCutOut.py:891 appTools/ToolCutOut.py:1260 appTools/ToolCutOut.py:1615 +#: appTools/ToolCutOut.py:892 appTools/ToolCutOut.py:1263 appTools/ToolCutOut.py:1619 msgid "Mouse bites failed." msgstr "" -#: appTools/ToolCutOut.py:899 +#: appTools/ToolCutOut.py:900 msgid "Any form CutOut operation finished." msgstr "" -#: appTools/ToolCutOut.py:921 appTools/ToolDrilling.py:1586 +#: appTools/ToolCutOut.py:922 appTools/ToolDrilling.py:1586 #: appTools/ToolEtchCompensation.py:158 appTools/ToolInvertGerber.py:105 #: appTools/ToolIsolation.py:912 appTools/ToolIsolation.py:1349 #: appTools/ToolIsolation.py:1376 appTools/ToolMilling.py:1326 appTools/ToolNCC.py:850 @@ -12574,79 +12574,79 @@ msgstr "" msgid "Object not found" msgstr "" -#: appTools/ToolCutOut.py:1114 appTools/ToolCutOut.py:1187 +#: appTools/ToolCutOut.py:1115 appTools/ToolCutOut.py:1188 msgid "Rectangular cutout with negative margin is not possible." msgstr "" -#: appTools/ToolCutOut.py:1268 +#: appTools/ToolCutOut.py:1271 msgid "Rectangular CutOut operation finished." msgstr "" -#: appTools/ToolCutOut.py:1284 appTools/ToolCutOut.py:1316 +#: appTools/ToolCutOut.py:1287 appTools/ToolCutOut.py:1319 msgid "Could not retrieve Geometry object" msgstr "" -#: appTools/ToolCutOut.py:1289 appTools/ToolCutOut.py:1344 +#: appTools/ToolCutOut.py:1292 appTools/ToolCutOut.py:1347 msgid "Geometry object for manual cutout not found" msgstr "" -#: appTools/ToolCutOut.py:1292 +#: appTools/ToolCutOut.py:1295 msgid "Click on the selected geometry object perimeter to create a bridge gap ..." msgstr "" -#: appTools/ToolCutOut.py:1380 +#: appTools/ToolCutOut.py:1383 msgid "No tool in the Geometry object." msgstr "" -#: appTools/ToolCutOut.py:1401 +#: appTools/ToolCutOut.py:1404 msgid "Added manual Bridge Gap. Left click to add another or right click to finish." msgstr "" -#: appTools/ToolCutOut.py:1413 +#: appTools/ToolCutOut.py:1416 msgid "Could not retrieve Gerber object" msgstr "" -#: appTools/ToolCutOut.py:1418 +#: appTools/ToolCutOut.py:1421 msgid "" "There is no Gerber object selected for Cutout.\n" "Select one and try again." msgstr "" -#: appTools/ToolCutOut.py:1424 +#: appTools/ToolCutOut.py:1427 msgid "" "The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." msgstr "" -#: appTools/ToolCutOut.py:1459 +#: appTools/ToolCutOut.py:1462 msgid "Geometry not supported for cutout" msgstr "" -#: appTools/ToolCutOut.py:1531 +#: appTools/ToolCutOut.py:1534 msgid "Making manual bridge gap..." msgstr "" -#: appTools/ToolCutOut.py:1619 +#: appTools/ToolCutOut.py:1623 msgid "Finished manual adding of gaps." msgstr "" -#: appTools/ToolCutOut.py:1961 +#: appTools/ToolCutOut.py:1965 msgid "Cutout PCB" msgstr "" -#: appTools/ToolCutOut.py:1987 appTools/ToolDblSided.py:513 appTools/ToolPanelize.py:652 +#: appTools/ToolCutOut.py:1991 appTools/ToolDblSided.py:515 appTools/ToolPanelize.py:652 msgid "Source Object" msgstr "" -#: appTools/ToolCutOut.py:1988 +#: appTools/ToolCutOut.py:1992 msgid "Object to be cutout" msgstr "" -#: appTools/ToolCutOut.py:1993 +#: appTools/ToolCutOut.py:1997 msgid "Kind" msgstr "" -#: appTools/ToolCutOut.py:2015 +#: appTools/ToolCutOut.py:2019 msgid "" "Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" @@ -12654,7 +12654,7 @@ msgid "" "of objects that will populate the 'Object' combobox." msgstr "" -#: appTools/ToolCutOut.py:2074 appTools/ToolIsolation.py:3125 appTools/ToolNCC.py:3999 +#: appTools/ToolCutOut.py:2078 appTools/ToolIsolation.py:3125 appTools/ToolNCC.py:3999 #: appTools/ToolPaint.py:2901 msgid "" "Add a new tool to the Tool Table\n" @@ -12664,30 +12664,30 @@ msgid "" "in the Tools DB then a default tool is added." msgstr "" -#: appTools/ToolCutOut.py:2100 +#: appTools/ToolCutOut.py:2104 msgid "Tool Parameters" msgstr "" -#: appTools/ToolCutOut.py:2249 +#: appTools/ToolCutOut.py:2253 msgid "Automatic" msgstr "" -#: appTools/ToolCutOut.py:2249 appTools/ToolCutOut.py:2324 +#: appTools/ToolCutOut.py:2253 appTools/ToolCutOut.py:2328 msgid "Bridge Gaps" msgstr "" -#: appTools/ToolCutOut.py:2251 +#: appTools/ToolCutOut.py:2255 msgid "This section handle creation of automatic bridge gaps." msgstr "" -#: appTools/ToolCutOut.py:2290 +#: appTools/ToolCutOut.py:2294 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 "" -#: appTools/ToolCutOut.py:2305 +#: appTools/ToolCutOut.py:2309 msgid "" "Cutout the selected object.\n" "The resulting cutout shape is\n" @@ -12695,18 +12695,18 @@ msgid "" "the bounding box of the Object." msgstr "" -#: appTools/ToolCutOut.py:2326 +#: appTools/ToolCutOut.py:2330 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 "" -#: appTools/ToolCutOut.py:2342 +#: appTools/ToolCutOut.py:2346 msgid "Generate Manual Geometry" msgstr "" -#: appTools/ToolCutOut.py:2345 +#: appTools/ToolCutOut.py:2349 msgid "" "If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" @@ -12714,19 +12714,19 @@ msgid "" "Select the source Gerber file in the top object combobox." msgstr "" -#: appTools/ToolCutOut.py:2365 +#: appTools/ToolCutOut.py:2369 msgid "Manual cutout Geometry" msgstr "" -#: appTools/ToolCutOut.py:2367 +#: appTools/ToolCutOut.py:2371 msgid "Geometry object used to create the manual cutout." msgstr "" -#: appTools/ToolCutOut.py:2374 +#: appTools/ToolCutOut.py:2378 msgid "Manual Add Bridge Gaps" msgstr "" -#: appTools/ToolCutOut.py:2377 +#: appTools/ToolCutOut.py:2381 msgid "" "Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" @@ -12756,122 +12756,122 @@ msgstr "" msgid "There are no Alignment Drill Coordinates to use. Add them and retry." msgstr "" -#: appTools/ToolDblSided.py:213 +#: appTools/ToolDblSided.py:215 msgid "Excellon object with alignment drills created..." msgstr "" -#: appTools/ToolDblSided.py:224 appTools/ToolPunchGerber.py:209 +#: appTools/ToolDblSided.py:226 appTools/ToolPunchGerber.py:209 msgid "There is no Excellon object loaded ..." msgstr "" -#: appTools/ToolDblSided.py:236 +#: appTools/ToolDblSided.py:238 msgid "Click on canvas within the desired Excellon drill hole" msgstr "" -#: appTools/ToolDblSided.py:280 +#: appTools/ToolDblSided.py:282 msgid "Mirror reference point set." msgstr "" -#: appTools/ToolDblSided.py:308 +#: appTools/ToolDblSided.py:310 msgid "Only Gerber, Excellon and Geometry objects can be mirrored." msgstr "" -#: appTools/ToolDblSided.py:320 +#: appTools/ToolDblSided.py:322 msgid "There is no Box object loaded ..." msgstr "" -#: appTools/ToolDblSided.py:330 +#: appTools/ToolDblSided.py:332 msgid "There are no Point coordinates in the Point field. Add coords and try again ..." msgstr "" -#: appTools/ToolDblSided.py:337 camlib.py:2401 +#: appTools/ToolDblSided.py:339 camlib.py:2401 msgid "Object was mirrored" msgstr "" -#: appTools/ToolDblSided.py:403 app_Main.py:4635 app_Main.py:4790 +#: appTools/ToolDblSided.py:405 app_Main.py:4558 app_Main.py:4713 msgid "Failed. No object(s) selected..." msgstr "" -#: appTools/ToolDblSided.py:487 +#: appTools/ToolDblSided.py:489 msgid "2-Sided PCB" msgstr "" -#: appTools/ToolDblSided.py:514 +#: appTools/ToolDblSided.py:516 msgid "Objects to be mirrored" msgstr "" -#: appTools/ToolDblSided.py:521 +#: appTools/ToolDblSided.py:523 msgid "Select the type of application object to be processed in this tool." msgstr "" -#: appTools/ToolDblSided.py:555 +#: appTools/ToolDblSided.py:557 msgid "Bounds Values" msgstr "" -#: appTools/ToolDblSided.py:557 +#: appTools/ToolDblSided.py:559 msgid "" "Select on canvas the object(s)\n" "for which to calculate bounds values." msgstr "" -#: appTools/ToolDblSided.py:567 +#: appTools/ToolDblSided.py:569 msgid "X min" msgstr "" -#: appTools/ToolDblSided.py:569 appTools/ToolDblSided.py:583 +#: appTools/ToolDblSided.py:571 appTools/ToolDblSided.py:585 msgid "Minimum location." msgstr "" -#: appTools/ToolDblSided.py:581 +#: appTools/ToolDblSided.py:583 msgid "Y min" msgstr "" -#: appTools/ToolDblSided.py:595 +#: appTools/ToolDblSided.py:597 msgid "X max" msgstr "" -#: appTools/ToolDblSided.py:597 appTools/ToolDblSided.py:611 +#: appTools/ToolDblSided.py:599 appTools/ToolDblSided.py:613 msgid "Maximum location." msgstr "" -#: appTools/ToolDblSided.py:609 +#: appTools/ToolDblSided.py:611 msgid "Y max" msgstr "" -#: appTools/ToolDblSided.py:620 +#: appTools/ToolDblSided.py:622 msgid "Center point coordinates" msgstr "" -#: appTools/ToolDblSided.py:622 +#: appTools/ToolDblSided.py:624 msgid "Centroid" msgstr "" -#: appTools/ToolDblSided.py:624 +#: appTools/ToolDblSided.py:626 msgid "" "The center point location for the rectangular\n" "bounding shape. Centroid. Format is (x, y)." msgstr "" -#: appTools/ToolDblSided.py:633 +#: appTools/ToolDblSided.py:635 msgid "Calculate Bounds Values" msgstr "" -#: appTools/ToolDblSided.py:635 +#: appTools/ToolDblSided.py:637 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 "" -#: appTools/ToolDblSided.py:660 +#: appTools/ToolDblSided.py:662 msgid "Mirror Operation" msgstr "" -#: appTools/ToolDblSided.py:661 +#: appTools/ToolDblSided.py:663 msgid "Parameters for the mirror operation" msgstr "" -#: appTools/ToolDblSided.py:683 +#: appTools/ToolDblSided.py:685 msgid "" "The coordinates used as reference for the mirror operation.\n" "Can be:\n" @@ -12881,11 +12881,11 @@ msgid "" "- Hole Snap -> a point defined by the center of a drill hole in a Excellon object" msgstr "" -#: appTools/ToolDblSided.py:703 +#: appTools/ToolDblSided.py:705 msgid "Point coordinates" msgstr "" -#: appTools/ToolDblSided.py:708 +#: appTools/ToolDblSided.py:710 msgid "" "Add the coordinates in format (x, y) through which the mirroring axis\n" " selected in 'MIRROR AXIS' pass.\n" @@ -12893,65 +12893,65 @@ msgid "" "and left mouse button click on canvas or you can enter the coordinates manually." msgstr "" -#: appTools/ToolDblSided.py:726 +#: appTools/ToolDblSided.py:728 msgid "Object that holds holes that can be picked as reference for mirroring." msgstr "" -#: appTools/ToolDblSided.py:741 +#: appTools/ToolDblSided.py:743 msgid "Pick hole" msgstr "" -#: appTools/ToolDblSided.py:743 +#: appTools/ToolDblSided.py:745 msgid "" "Click inside a drill hole that belong to the selected Excellon object,\n" "and the hole center coordinates will be copied to the Point field." msgstr "" -#: appTools/ToolDblSided.py:759 +#: appTools/ToolDblSided.py:761 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 "" -#: appTools/ToolDblSided.py:785 +#: appTools/ToolDblSided.py:787 msgid "Mirror" msgstr "" -#: appTools/ToolDblSided.py:787 +#: appTools/ToolDblSided.py:789 msgid "" "Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" "object, but modifies it." msgstr "" -#: appTools/ToolDblSided.py:813 +#: appTools/ToolDblSided.py:815 msgid "PCB Alignment" msgstr "" -#: appTools/ToolDblSided.py:815 appTools/ToolDblSided.py:923 +#: appTools/ToolDblSided.py:817 appTools/ToolDblSided.py:925 msgid "" "Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" "images." msgstr "" -#: appTools/ToolDblSided.py:822 +#: appTools/ToolDblSided.py:824 msgid "Drill Diameter" msgstr "" -#: appTools/ToolDblSided.py:857 appTools/ToolDblSided.py:864 +#: appTools/ToolDblSided.py:859 appTools/ToolDblSided.py:866 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 "" -#: appTools/ToolDblSided.py:877 +#: appTools/ToolDblSided.py:879 msgid "Alignment Drill Coordinates" msgstr "" -#: appTools/ToolDblSided.py:879 +#: appTools/ToolDblSided.py:881 msgid "" "Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For each set of " "(x, y) coordinates\n" @@ -12961,11 +12961,11 @@ msgid "" "- one drill in mirror position over the axis selected above in the 'Align Axis'." msgstr "" -#: appTools/ToolDblSided.py:887 +#: appTools/ToolDblSided.py:889 msgid "Drill coordinates" msgstr "" -#: appTools/ToolDblSided.py:894 +#: appTools/ToolDblSided.py:896 msgid "" "Add alignment drill holes coordinates in the format: (x1, y1), (x2, y2), ... \n" "on one side of the alignment axis.\n" @@ -12978,15 +12978,15 @@ msgid "" "- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." msgstr "" -#: appTools/ToolDblSided.py:909 +#: appTools/ToolDblSided.py:911 msgid "Delete Last" msgstr "" -#: appTools/ToolDblSided.py:911 +#: appTools/ToolDblSided.py:913 msgid "Delete the last coordinates tuple in the list." msgstr "" -#: appTools/ToolDblSided.py:921 +#: appTools/ToolDblSided.py:923 msgid "Create Excellon Object" msgstr "" @@ -13343,15 +13343,15 @@ msgstr "" msgid "No drills extracted. Try different parameters." msgstr "" -#: appTools/ToolExtractDrills.py:420 appTools/ToolExtractDrills.py:687 +#: appTools/ToolExtractDrills.py:421 appTools/ToolExtractDrills.py:688 msgid "Extract Drills" msgstr "" -#: appTools/ToolExtractDrills.py:454 +#: appTools/ToolExtractDrills.py:455 msgid "Gerber from which to extract drill holes" msgstr "" -#: appTools/ToolExtractDrills.py:689 +#: appTools/ToolExtractDrills.py:690 msgid "Extract drills from a given Gerber file." msgstr "" @@ -13359,63 +13359,63 @@ msgstr "" msgid "Click to add first Fiducial. Bottom Left..." msgstr "" -#: appTools/ToolFiducials.py:501 +#: appTools/ToolFiducials.py:503 msgid "Click to add the last fiducial. Top Right..." msgstr "" -#: appTools/ToolFiducials.py:506 +#: appTools/ToolFiducials.py:508 msgid "Click to add the second fiducial. Top Left or Bottom Right..." msgstr "" -#: appTools/ToolFiducials.py:509 appTools/ToolFiducials.py:518 +#: appTools/ToolFiducials.py:511 appTools/ToolFiducials.py:520 msgid "Done. All fiducials have been added." msgstr "" -#: appTools/ToolFiducials.py:595 +#: appTools/ToolFiducials.py:597 msgid "Fiducials Tool exit." msgstr "" -#: appTools/ToolFiducials.py:667 +#: appTools/ToolFiducials.py:669 msgid "Fiducials Coordinates" msgstr "" -#: appTools/ToolFiducials.py:669 +#: appTools/ToolFiducials.py:671 msgid "" "A table with the fiducial points coordinates,\n" "in the format (x, y)." msgstr "" -#: appTools/ToolFiducials.py:805 +#: appTools/ToolFiducials.py:807 msgid "" "- 'Auto' - automatic placement of fiducials in the corners of the bounding box.\n" " - 'Manual' - manual placement of fiducials." msgstr "" -#: appTools/ToolFiducials.py:851 +#: appTools/ToolFiducials.py:853 msgid "Thickness of the line that makes the fiducial." msgstr "" -#: appTools/ToolFiducials.py:882 +#: appTools/ToolFiducials.py:884 msgid "Add Fiducial" msgstr "" -#: appTools/ToolFiducials.py:884 +#: appTools/ToolFiducials.py:886 msgid "Will add a polygon on the copper layer to serve as fiducial." msgstr "" -#: appTools/ToolFiducials.py:900 +#: appTools/ToolFiducials.py:902 msgid "Soldermask Gerber" msgstr "" -#: appTools/ToolFiducials.py:902 +#: appTools/ToolFiducials.py:904 msgid "The Soldermask Gerber object." msgstr "" -#: appTools/ToolFiducials.py:914 +#: appTools/ToolFiducials.py:916 msgid "Add Soldermask Opening" msgstr "" -#: appTools/ToolFiducials.py:916 +#: appTools/ToolFiducials.py:918 msgid "" "Will add a polygon on the soldermask layer\n" "to serve as fiducial opening.\n" @@ -13568,7 +13568,7 @@ msgstr "" msgid "Import IMAGE" msgstr "" -#: appTools/ToolImage.py:142 app_Main.py:8893 app_Main.py:8943 +#: appTools/ToolImage.py:142 app_Main.py:9782 app_Main.py:9832 msgid "Not supported type is picked as parameter. Only Geometry and Gerber are supported" msgstr "" @@ -13576,8 +13576,8 @@ msgstr "" msgid "Importing Image" msgstr "" -#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:8921 app_Main.py:8976 -#: app_Main.py:9040 app_Main.py:9103 app_Main.py:9169 app_Main.py:9234 app_Main.py:9291 +#: appTools/ToolImage.py:162 appTools/ToolPDF.py:154 app_Main.py:9810 app_Main.py:9865 +#: app_Main.py:9929 app_Main.py:9992 app_Main.py:10058 app_Main.py:10123 app_Main.py:10180 msgid "Opened" msgstr "" @@ -13681,7 +13681,7 @@ msgid "New Tool" msgstr "" #: appTools/ToolIsolation.py:795 appTools/ToolNCC.py:467 appTools/ToolPaint.py:399 -#: appTools/ToolSolderPaste.py:135 app_Main.py:4500 +#: appTools/ToolSolderPaste.py:135 app_Main.py:4423 msgid "Adding Tool cancelled" msgstr "" @@ -13817,7 +13817,7 @@ msgid "Click the end point of the paint area." msgstr "" #: appTools/ToolIsolation.py:2590 appTools/ToolNCC.py:3722 appTools/ToolPaint.py:2633 -#: app_Main.py:5779 app_Main.py:5789 +#: app_Main.py:5702 app_Main.py:5712 msgid "Tool from DB added in Tool Table." msgstr "" @@ -14252,11 +14252,11 @@ msgstr "" msgid "Parsing PDF file ..." msgstr "" -#: appTools/ToolPDF.py:138 app_Main.py:9134 +#: appTools/ToolPDF.py:138 app_Main.py:10023 msgid "Failed to open" msgstr "" -#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9083 +#: appTools/ToolPDF.py:203 appTools/ToolPcbWizard.py:331 app_Main.py:9972 msgid "No geometry found in file" msgstr "" @@ -14582,7 +14582,7 @@ msgstr "" msgid "Main PcbWizard Excellon file loaded." msgstr "" -#: appTools/ToolPcbWizard.py:310 app_Main.py:9063 +#: appTools/ToolPcbWizard.py:310 app_Main.py:9952 msgid "This is not Excellon file." msgstr "" @@ -14699,9 +14699,9 @@ msgid "" "the other has .INF extension." msgstr "" -#: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 app_Main.py:4976 -#: app_Main.py:7321 app_Main.py:7421 app_Main.py:7462 app_Main.py:7503 app_Main.py:7545 -#: app_Main.py:7587 app_Main.py:7631 app_Main.py:7675 app_Main.py:8191 app_Main.py:8195 +#: appTools/ToolProperties.py:112 appTools/ToolTransform.py:142 app_Main.py:4899 +#: app_Main.py:8253 app_Main.py:8351 app_Main.py:8391 app_Main.py:8431 app_Main.py:8472 +#: app_Main.py:8513 app_Main.py:8556 app_Main.py:8599 app_Main.py:9058 app_Main.py:9062 msgid "No object selected." msgstr "" @@ -14785,7 +14785,7 @@ msgid "" "the specified box." msgstr "" -#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:485 appTools/ToolQRCode.py:534 +#: appTools/ToolQRCode.py:147 appTools/ToolQRCode.py:486 appTools/ToolQRCode.py:535 msgid "Cancelled. There is no QRCode Data in the text box." msgstr "" @@ -14797,61 +14797,61 @@ msgstr "" msgid "Click on the Destination point ..." msgstr "" -#: appTools/ToolQRCode.py:321 +#: appTools/ToolQRCode.py:322 msgid "QRCode Tool done." msgstr "" -#: appTools/ToolQRCode.py:517 appTools/ToolQRCode.py:521 +#: appTools/ToolQRCode.py:518 appTools/ToolQRCode.py:522 msgid "Export PNG" msgstr "" -#: appTools/ToolQRCode.py:564 appTools/ToolQRCode.py:568 app_Main.py:7353 app_Main.py:7357 +#: appTools/ToolQRCode.py:565 appTools/ToolQRCode.py:569 app_Main.py:8284 app_Main.py:8288 msgid "Export SVG" msgstr "" -#: appTools/ToolQRCode.py:661 +#: appTools/ToolQRCode.py:662 msgid "Gerber Object to which the QRCode will be added." msgstr "" -#: appTools/ToolQRCode.py:697 +#: appTools/ToolQRCode.py:698 msgid "The parameters used to shape the QRCode." msgstr "" -#: appTools/ToolQRCode.py:797 +#: appTools/ToolQRCode.py:798 msgid "Export QRCode" msgstr "" -#: appTools/ToolQRCode.py:799 +#: appTools/ToolQRCode.py:800 msgid "" "Show a set of controls allowing to export the QRCode\n" "to a SVG file or an PNG file." msgstr "" -#: appTools/ToolQRCode.py:838 +#: appTools/ToolQRCode.py:839 msgid "Transparent back color" msgstr "" -#: appTools/ToolQRCode.py:863 +#: appTools/ToolQRCode.py:864 msgid "Export QRCode SVG" msgstr "" -#: appTools/ToolQRCode.py:865 +#: appTools/ToolQRCode.py:866 msgid "Export a SVG file with the QRCode content." msgstr "" -#: appTools/ToolQRCode.py:876 +#: appTools/ToolQRCode.py:877 msgid "Export QRCode PNG" msgstr "" -#: appTools/ToolQRCode.py:878 +#: appTools/ToolQRCode.py:879 msgid "Export a PNG image file with the QRCode content." msgstr "" -#: appTools/ToolQRCode.py:889 +#: appTools/ToolQRCode.py:890 msgid "Insert QRCode" msgstr "" -#: appTools/ToolQRCode.py:891 +#: appTools/ToolQRCode.py:892 msgid "Create the QRCode object." msgstr "" @@ -15499,7 +15499,7 @@ msgstr "" msgid "Apply Language ..." msgstr "" -#: appTranslation.py:206 app_Main.py:3383 +#: appTranslation.py:206 app_Main.py:3306 msgid "" "There are files/objects modified in FlatCAM. \n" "Do you want to Save the project?" @@ -15526,137 +15526,121 @@ msgid "" "Canvas initialization finished in" msgstr "" -#: app_Main.py:1596 app_Main.py:7007 +#: app_Main.py:1292 app_Main.py:8831 msgid "New Project - Not saved" msgstr "" -#: app_Main.py:1702 +#: app_Main.py:1711 msgid "Found old default preferences files. Please reboot the application to update." msgstr "" -#: app_Main.py:1769 +#: app_Main.py:1778 msgid "Open Config file failed." msgstr "" -#: app_Main.py:1784 +#: app_Main.py:1793 msgid "Open Script file failed." msgstr "" -#: app_Main.py:1810 +#: app_Main.py:1819 msgid "Open Excellon file failed." msgstr "" -#: app_Main.py:1823 +#: app_Main.py:1832 msgid "Open GCode file failed." msgstr "" -#: app_Main.py:1836 +#: app_Main.py:1845 msgid "Open Gerber file failed." msgstr "" -#: app_Main.py:2174 +#: app_Main.py:2183 msgid "Select a Geometry, Gerber, Excellon or CNCJob Object to edit." msgstr "" -#: app_Main.py:2189 +#: app_Main.py:2198 msgid "" "Simultaneous editing of tools geometry in a MultiGeo Geometry is not possible.\n" "Edit only one geometry at a time." msgstr "" -#: app_Main.py:2267 +#: app_Main.py:2276 msgid "EDITOR Area" msgstr "" -#: app_Main.py:2269 +#: app_Main.py:2278 msgid "Editor is activated ..." msgstr "" -#: app_Main.py:2290 +#: app_Main.py:2299 msgid "Do you want to save the edited object?" msgstr "" -#: app_Main.py:2331 +#: app_Main.py:2340 msgid "Object empty after edit." msgstr "" -#: app_Main.py:2336 app_Main.py:2354 app_Main.py:2385 app_Main.py:2401 +#: app_Main.py:2345 app_Main.py:2363 app_Main.py:2394 app_Main.py:2410 msgid "Editor exited. Editor content saved." msgstr "" -#: app_Main.py:2405 app_Main.py:2446 +#: app_Main.py:2414 app_Main.py:2455 msgid "Select a Gerber, Geometry, Excellon or CNCJob Object to update." msgstr "" -#: app_Main.py:2408 +#: app_Main.py:2417 msgid "is updated, returning to App..." msgstr "" -#: app_Main.py:2421 +#: app_Main.py:2430 msgid "Editor exited. Editor content was not saved." msgstr "" -#: app_Main.py:2469 +#: app_Main.py:2478 msgid "Select a Gerber, Geometry or Excellon Object to update." msgstr "" -#: app_Main.py:2573 app_Main.py:2577 -msgid "Import FlatCAM Preferences" -msgstr "" - -#: app_Main.py:2588 -msgid "Imported Defaults from" -msgstr "" - -#: app_Main.py:2608 app_Main.py:2614 -msgid "Export FlatCAM Preferences" -msgstr "" - -#: app_Main.py:2634 -msgid "Exported preferences to" -msgstr "" - -#: app_Main.py:2654 app_Main.py:2659 +#: app_Main.py:2586 app_Main.py:2591 msgid "Save to file" msgstr "" -#: app_Main.py:2683 +#: app_Main.py:2615 msgid "Could not load the file." msgstr "" -#: app_Main.py:2699 +#: app_Main.py:2631 msgid "Exported file to" msgstr "" -#: app_Main.py:2736 +#: app_Main.py:2668 msgid "Failed to open recent files file for writing." msgstr "" -#: app_Main.py:2747 +#: app_Main.py:2679 msgid "Failed to open recent projects file for writing." msgstr "" -#: app_Main.py:2802 +#: app_Main.py:2734 msgid "2D Computer-Aided Printed Circuit Board Manufacturing" msgstr "" -#: app_Main.py:2803 +#: app_Main.py:2735 msgid "Development" msgstr "" -#: app_Main.py:2804 +#: app_Main.py:2736 msgid "DOWNLOAD" msgstr "" -#: app_Main.py:2805 +#: app_Main.py:2737 msgid "Issue tracker" msgstr "" -#: app_Main.py:2824 +#: app_Main.py:2756 msgid "Licensed under the MIT license" msgstr "" -#: app_Main.py:2833 +#: app_Main.py:2765 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" @@ -15677,7 +15661,7 @@ msgid "" "THE SOFTWARE." msgstr "" -#: app_Main.py:2855 +#: app_Main.py:2787 msgid "" "Some of the icons used are from the following sources:
    " msgstr "" -#: app_Main.py:2891 +#: app_Main.py:2823 msgid "Splash" msgstr "" -#: app_Main.py:2897 +#: app_Main.py:2829 msgid "Programmers" msgstr "" -#: app_Main.py:2903 +#: app_Main.py:2835 msgid "Translators" msgstr "" -#: app_Main.py:2909 +#: app_Main.py:2841 msgid "License" msgstr "" -#: app_Main.py:2915 +#: app_Main.py:2847 msgid "Attributions" msgstr "" -#: app_Main.py:2938 +#: app_Main.py:2870 msgid "Programmer" msgstr "" -#: app_Main.py:2939 +#: app_Main.py:2871 msgid "Status" msgstr "" -#: app_Main.py:2940 app_Main.py:3020 +#: app_Main.py:2872 app_Main.py:2952 msgid "E-mail" msgstr "" -#: app_Main.py:2943 +#: app_Main.py:2875 msgid "Program Author" msgstr "" -#: app_Main.py:2948 +#: app_Main.py:2880 msgid "BETA Maintainer >= 2019" msgstr "" -#: app_Main.py:3017 +#: app_Main.py:2949 msgid "Language" msgstr "" -#: app_Main.py:3018 +#: app_Main.py:2950 msgid "Translator" msgstr "" -#: app_Main.py:3019 +#: app_Main.py:2951 msgid "Corrections" msgstr "" -#: app_Main.py:3104 +#: app_Main.py:3036 msgid "Important Information's" msgstr "" -#: app_Main.py:3152 +#: app_Main.py:3084 #, python-format msgid "This program is %s and free in a very wide meaning of the word." msgstr "" -#: app_Main.py:3153 +#: app_Main.py:3085 msgid "Yet it cannot evolve without contributions." msgstr "" -#: app_Main.py:3154 +#: app_Main.py:3086 msgid "If you want to see this application grow and become better and better" msgstr "" -#: app_Main.py:3155 +#: app_Main.py:3087 msgid "you can contribute to the development yourself by:" msgstr "" -#: app_Main.py:3156 +#: app_Main.py:3088 msgid "Pull Requests on the Bitbucket repository, if you are a developer" msgstr "" -#: app_Main.py:3158 +#: app_Main.py:3090 msgid "Bug Reports by providing the steps required to reproduce the bug" msgstr "" -#: app_Main.py:3189 +#: app_Main.py:3121 msgid "Contribute" msgstr "" -#: app_Main.py:3212 +#: app_Main.py:3144 msgid "Links Exchange" msgstr "" -#: app_Main.py:3224 app_Main.py:3243 +#: app_Main.py:3156 app_Main.py:3175 msgid "Soon ..." msgstr "" -#: app_Main.py:3231 +#: app_Main.py:3163 msgid "How To's" msgstr "" -#: app_Main.py:3343 +#: app_Main.py:3275 msgid "" "This entry will resolve to another website if:\n" "\n" @@ -15797,27 +15781,27 @@ msgid "" "use the YouTube channel link from the Help menu." msgstr "" -#: app_Main.py:3350 +#: app_Main.py:3282 msgid "Alternative website" msgstr "" -#: app_Main.py:3701 +#: app_Main.py:3624 msgid "Selected Excellon file extensions registered with FlatCAM." msgstr "" -#: app_Main.py:3723 +#: app_Main.py:3646 msgid "Selected GCode file extensions registered with FlatCAM." msgstr "" -#: app_Main.py:3745 +#: app_Main.py:3668 msgid "Selected Gerber file extensions registered with FlatCAM." msgstr "" -#: app_Main.py:3933 app_Main.py:3994 app_Main.py:4024 +#: app_Main.py:3856 app_Main.py:3917 app_Main.py:3947 msgid "At least two objects are required for join. Objects currently selected" msgstr "" -#: app_Main.py:3942 +#: app_Main.py:3865 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 " @@ -15827,47 +15811,47 @@ msgid "" "Check the generated GCODE." msgstr "" -#: app_Main.py:3956 app_Main.py:3966 +#: app_Main.py:3879 app_Main.py:3889 msgid "Geometry merging finished" msgstr "" -#: app_Main.py:3989 +#: app_Main.py:3912 msgid "Failed. Excellon joining works only on Excellon objects." msgstr "" -#: app_Main.py:4001 +#: app_Main.py:3924 msgid "Excellon merging finished" msgstr "" -#: app_Main.py:4019 +#: app_Main.py:3942 msgid "Failed. Gerber joining works only on Gerber objects." msgstr "" -#: app_Main.py:4029 +#: app_Main.py:3952 msgid "Gerber merging finished" msgstr "" -#: app_Main.py:4049 app_Main.py:4086 +#: app_Main.py:3972 app_Main.py:4009 msgid "Failed. Select a Geometry Object and try again." msgstr "" -#: app_Main.py:4053 app_Main.py:4091 +#: app_Main.py:3976 app_Main.py:4014 msgid "Expected a GeometryObject, got" msgstr "" -#: app_Main.py:4068 +#: app_Main.py:3991 msgid "A Geometry object was converted to MultiGeo type." msgstr "" -#: app_Main.py:4106 +#: app_Main.py:4029 msgid "A Geometry object was converted to SingleGeo type." msgstr "" -#: app_Main.py:4339 +#: app_Main.py:4262 msgid "Toggle Units" msgstr "" -#: app_Main.py:4343 +#: app_Main.py:4266 msgid "" "Changing the units of the project\n" "will scale all objects.\n" @@ -15875,725 +15859,741 @@ msgid "" "Do you want to continue?" msgstr "" -#: app_Main.py:4346 app_Main.py:4509 app_Main.py:4592 app_Main.py:7327 app_Main.py:7343 -#: app_Main.py:7681 app_Main.py:7693 +#: app_Main.py:4269 app_Main.py:4432 app_Main.py:4515 app_Main.py:8259 app_Main.py:8274 +#: app_Main.py:8605 app_Main.py:8617 msgid "Ok" msgstr "" -#: app_Main.py:4396 +#: app_Main.py:4319 msgid "Converted units to" msgstr "" -#: app_Main.py:4436 +#: app_Main.py:4359 msgid "Workspace enabled." msgstr "" -#: app_Main.py:4439 +#: app_Main.py:4362 msgid "Workspace disabled." msgstr "" -#: app_Main.py:4503 +#: app_Main.py:4426 msgid "" "Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options." msgstr "" -#: app_Main.py:4585 +#: app_Main.py:4508 msgid "Delete objects" msgstr "" -#: app_Main.py:4590 +#: app_Main.py:4513 msgid "" "Are you sure you want to permanently delete\n" "the selected objects?" msgstr "" -#: app_Main.py:4633 +#: app_Main.py:4556 msgid "Object(s) deleted" msgstr "" -#: app_Main.py:4637 +#: app_Main.py:4560 msgid "Save the work in Editor and try again ..." msgstr "" -#: app_Main.py:4666 +#: app_Main.py:4589 msgid "Object deleted" msgstr "" -#: app_Main.py:4693 +#: app_Main.py:4616 msgid "Click to set the origin ..." msgstr "" -#: app_Main.py:4715 +#: app_Main.py:4638 msgid "Setting Origin..." msgstr "" -#: app_Main.py:4728 app_Main.py:4830 +#: app_Main.py:4651 app_Main.py:4753 msgid "Origin set" msgstr "" -#: app_Main.py:4745 +#: app_Main.py:4668 msgid "Origin coordinates specified but incomplete." msgstr "" -#: app_Main.py:4786 +#: app_Main.py:4709 msgid "Moving to Origin..." msgstr "" -#: app_Main.py:4867 +#: app_Main.py:4790 msgid "Jump to ..." msgstr "" -#: app_Main.py:4868 +#: app_Main.py:4791 msgid "Enter the coordinates in format X,Y:" msgstr "" -#: app_Main.py:4878 +#: app_Main.py:4801 msgid "Wrong coordinates. Enter coordinates in format: X,Y" msgstr "" -#: app_Main.py:4995 +#: app_Main.py:4918 msgid "Bottom-Left" msgstr "" -#: app_Main.py:4998 +#: app_Main.py:4921 msgid "Top-Right" msgstr "" -#: app_Main.py:5019 +#: app_Main.py:4942 msgid "Locate ..." msgstr "" -#: app_Main.py:5292 app_Main.py:5367 app_Main.py:5530 +#: app_Main.py:5215 app_Main.py:5290 app_Main.py:5453 msgid "No object is selected. Select an object and try again." msgstr "" -#: app_Main.py:5556 +#: app_Main.py:5479 msgid "Aborting. The current task will be gracefully closed as soon as possible..." msgstr "" -#: app_Main.py:5562 +#: app_Main.py:5485 msgid "The current task was gracefully closed on user request..." msgstr "" -#: app_Main.py:5752 +#: app_Main.py:5675 msgid "Tools in Tools Database edited but not saved." msgstr "" -#: app_Main.py:5791 +#: app_Main.py:5714 msgid "Adding tool from DB is not allowed for this object." msgstr "" -#: app_Main.py:5809 +#: app_Main.py:5732 msgid "" "One or more Tools are edited.\n" "Do you want to update the Tools Database?" msgstr "" -#: app_Main.py:5811 +#: app_Main.py:5734 msgid "Save Tools Database" msgstr "" -#: app_Main.py:5857 +#: app_Main.py:5780 msgid "No object selected to Flip on Y axis." msgstr "" -#: app_Main.py:5883 +#: app_Main.py:5806 msgid "Flip on Y axis done." msgstr "" -#: app_Main.py:5905 +#: app_Main.py:5828 msgid "No object selected to Flip on X axis." msgstr "" -#: app_Main.py:5931 +#: app_Main.py:5854 msgid "Flip on X axis done." msgstr "" -#: app_Main.py:5953 +#: app_Main.py:5876 msgid "No object selected to Rotate." msgstr "" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Transform" msgstr "" -#: app_Main.py:5956 app_Main.py:6007 app_Main.py:6044 +#: app_Main.py:5879 app_Main.py:5930 app_Main.py:5967 msgid "Enter the Angle value:" msgstr "" -#: app_Main.py:5986 +#: app_Main.py:5909 msgid "Rotation done." msgstr "" -#: app_Main.py:5988 +#: app_Main.py:5911 msgid "Rotation movement was not executed." msgstr "" -#: app_Main.py:6005 +#: app_Main.py:5928 msgid "No object selected to Skew/Shear on X axis." msgstr "" -#: app_Main.py:6026 +#: app_Main.py:5949 msgid "Skew on X axis done." msgstr "" -#: app_Main.py:6042 +#: app_Main.py:5965 msgid "No object selected to Skew/Shear on Y axis." msgstr "" -#: app_Main.py:6063 +#: app_Main.py:5986 msgid "Skew on Y axis done." msgstr "" -#: app_Main.py:6145 +#: app_Main.py:6068 msgid "New Grid ..." msgstr "" -#: app_Main.py:6146 +#: app_Main.py:6069 msgid "Enter a Grid Value:" msgstr "" -#: app_Main.py:6154 app_Main.py:6178 +#: app_Main.py:6077 app_Main.py:6101 msgid "Please enter a grid value with non-zero value, in Float format." msgstr "" -#: app_Main.py:6159 +#: app_Main.py:6082 msgid "New Grid added" msgstr "" -#: app_Main.py:6161 +#: app_Main.py:6084 msgid "Grid already exists" msgstr "" -#: app_Main.py:6163 +#: app_Main.py:6086 msgid "Adding New Grid cancelled" msgstr "" -#: app_Main.py:6184 +#: app_Main.py:6107 msgid " Grid Value does not exist" msgstr "" -#: app_Main.py:6186 +#: app_Main.py:6109 msgid "Grid Value deleted" msgstr "" -#: app_Main.py:6188 +#: app_Main.py:6111 msgid "Delete Grid value cancelled" msgstr "" -#: app_Main.py:6194 +#: app_Main.py:6117 msgid "Key Shortcut List" msgstr "" -#: app_Main.py:6231 +#: app_Main.py:6154 msgid " No object selected to copy it's name" msgstr "" -#: app_Main.py:6235 +#: app_Main.py:6158 msgid "Name copied on clipboard ..." msgstr "" -#: app_Main.py:6892 -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 "" - -#: app_Main.py:6915 -msgid "New Project created" -msgstr "" - -#: app_Main.py:7121 app_Main.py:7160 app_Main.py:7204 app_Main.py:7274 app_Main.py:8060 -#: app_Main.py:9304 app_Main.py:9366 -msgid "" -"Canvas initialization started.\n" -"Canvas initialization finished in" -msgstr "" - -#: app_Main.py:7123 -msgid "Opening Gerber file." -msgstr "" - -#: app_Main.py:7162 -msgid "Opening Excellon file." -msgstr "" - -#: app_Main.py:7193 app_Main.py:7198 -msgid "Open G-Code" -msgstr "" - -#: app_Main.py:7206 -msgid "Opening G-Code file." -msgstr "" - -#: app_Main.py:7265 app_Main.py:7269 -msgid "Open HPGL2" -msgstr "" - -#: app_Main.py:7276 -msgid "Opening HPGL2 file." -msgstr "" - -#: app_Main.py:7299 app_Main.py:7302 -msgid "Open Configuration File" -msgstr "" - -#: app_Main.py:7322 app_Main.py:7676 -msgid "Please Select a Geometry object to export" -msgstr "" - -#: app_Main.py:7338 -msgid "Only Geometry, Gerber and CNCJob objects can be used." -msgstr "" - -#: app_Main.py:7383 -msgid "Data must be a 3D array with last dimension 3 or 4" -msgstr "" - -#: app_Main.py:7389 app_Main.py:7393 -msgid "Export PNG Image" -msgstr "" - -#: app_Main.py:7426 app_Main.py:7636 -msgid "Failed. Only Gerber objects can be saved as Gerber files..." -msgstr "" - -#: app_Main.py:7438 -msgid "Save Gerber source file" -msgstr "" - -#: app_Main.py:7467 -msgid "Failed. Only Script objects can be saved as TCL Script files..." -msgstr "" - -#: app_Main.py:7479 -msgid "Save Script source file" -msgstr "" - -#: app_Main.py:7508 -msgid "Failed. Only Document objects can be saved as Document files..." -msgstr "" - -#: app_Main.py:7520 -msgid "Save Document source file" -msgstr "" - -#: app_Main.py:7550 app_Main.py:7592 app_Main.py:8543 -msgid "Failed. Only Excellon objects can be saved as Excellon files..." -msgstr "" - -#: app_Main.py:7558 app_Main.py:7563 -msgid "Save Excellon source file" -msgstr "" - -#: app_Main.py:7600 app_Main.py:7604 -msgid "Export Excellon" -msgstr "" - -#: app_Main.py:7644 app_Main.py:7648 -msgid "Export Gerber" -msgstr "" - -#: app_Main.py:7688 -msgid "Only Geometry objects can be used." -msgstr "" - -#: app_Main.py:7704 app_Main.py:7708 -msgid "Export DXF" -msgstr "" - -#: app_Main.py:7733 app_Main.py:7736 -msgid "Import SVG" -msgstr "" - -#: app_Main.py:7764 app_Main.py:7768 -msgid "Import DXF" -msgstr "" - -#: app_Main.py:7822 app_Main.py:7826 +#: app_Main.py:6917 app_Main.py:6921 msgid "Select an Gerber or Excellon file to view it's source file." msgstr "" -#: app_Main.py:7829 +#: app_Main.py:6924 msgid "Viewing the source code of the selected object." msgstr "" -#: app_Main.py:7843 +#: app_Main.py:6938 msgid "Source Editor" msgstr "" -#: app_Main.py:7879 app_Main.py:7886 +#: app_Main.py:6974 app_Main.py:6981 msgid "There is no selected object for which to see it's source file code." msgstr "" -#: app_Main.py:7894 +#: app_Main.py:6989 msgid "Failed to load the source code for the selected object" msgstr "" -#: app_Main.py:7927 +#: app_Main.py:7022 msgid "Go to Line ..." msgstr "" -#: app_Main.py:7928 +#: app_Main.py:7023 msgid "Line:" msgstr "" -#: app_Main.py:7955 -msgid "New TCL script file created in Code Editor." -msgstr "" - -#: app_Main.py:7994 app_Main.py:7996 app_Main.py:8032 app_Main.py:8034 -msgid "Open TCL script" -msgstr "" - -#: app_Main.py:8062 -msgid "Executing ScriptObject file." -msgstr "" - -#: app_Main.py:8070 app_Main.py:8073 -msgid "Run TCL script" -msgstr "" - -#: app_Main.py:8096 -msgid "TCL script file opened in Code Editor and executed." -msgstr "" - -#: app_Main.py:8147 app_Main.py:8153 -msgid "Save Project As ..." -msgstr "" - -#: app_Main.py:8188 -msgid "FlatCAM objects print" -msgstr "" - -#: app_Main.py:8201 app_Main.py:8208 -msgid "Save Object as PDF ..." -msgstr "" - -#: app_Main.py:8217 -msgid "Printing PDF ... Please wait." -msgstr "" - -#: app_Main.py:8396 -msgid "PDF file saved to" -msgstr "" - -#: app_Main.py:8421 -msgid "Exporting SVG" -msgstr "" - -#: app_Main.py:8464 -msgid "SVG file exported to" -msgstr "" - -#: app_Main.py:8490 -msgid "Save cancelled because source file is empty. Try to export the file." -msgstr "" - -#: app_Main.py:8641 -msgid "Excellon file exported to" -msgstr "" - -#: app_Main.py:8650 -msgid "Exporting Excellon" -msgstr "" - -#: app_Main.py:8655 app_Main.py:8662 -msgid "Could not export Excellon file." -msgstr "" - -#: app_Main.py:8778 -msgid "Gerber file exported to" -msgstr "" - -#: app_Main.py:8786 -msgid "Exporting Gerber" -msgstr "" - -#: app_Main.py:8791 app_Main.py:8798 -msgid "Could not export file." -msgstr "" - -#: app_Main.py:8846 -msgid "DXF file exported to" -msgstr "" - -#: app_Main.py:8855 -msgid "Exporting DXF" -msgstr "" - -#: app_Main.py:8860 app_Main.py:8867 -msgid "Could not export DXF file." -msgstr "" - -#: app_Main.py:8906 -msgid "Importing SVG" -msgstr "" - -#: app_Main.py:8914 app_Main.py:8969 -msgid "Import failed." -msgstr "" - -#: app_Main.py:8961 -msgid "Importing DXF" -msgstr "" - -#: app_Main.py:9002 app_Main.py:9193 app_Main.py:9258 -msgid "Failed to open file" -msgstr "" - -#: app_Main.py:9005 app_Main.py:9196 app_Main.py:9261 -msgid "Failed to parse file" -msgstr "" - -#: app_Main.py:9017 -msgid "Object is not Gerber file or empty. Aborting object creation." -msgstr "" - -#: app_Main.py:9022 -msgid "Opening Gerber" -msgstr "" - -#: app_Main.py:9033 -msgid "Open Gerber failed. Probable not a Gerber file." -msgstr "" - -#: app_Main.py:9066 -msgid "Cannot open file" -msgstr "" - -#: app_Main.py:9086 -msgid "Opening Excellon." -msgstr "" - -#: app_Main.py:9096 -msgid "Open Excellon file failed. Probable not an Excellon file." -msgstr "" - -#: app_Main.py:9128 -msgid "Reading GCode file" -msgstr "" - -#: app_Main.py:9141 -msgid "This is not GCODE" -msgstr "" - -#: app_Main.py:9146 -msgid "Opening G-Code." -msgstr "" - -#: app_Main.py:9159 -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 "" - -#: app_Main.py:9215 -msgid "Object is not HPGL2 file or empty. Aborting object creation." -msgstr "" - -#: app_Main.py:9220 -msgid "Opening HPGL2" -msgstr "" - -#: app_Main.py:9227 -msgid " Open HPGL2 failed. Probable not a HPGL2 file." -msgstr "" - -#: app_Main.py:9253 -msgid "TCL script file opened in Code Editor." -msgstr "" - -#: app_Main.py:9273 -msgid "Opening TCL Script..." -msgstr "" - -#: app_Main.py:9284 -msgid "Failed to open TCL Script." -msgstr "" - -#: app_Main.py:9306 -msgid "Opening FlatCAM Config file." -msgstr "" - -#: app_Main.py:9334 -msgid "Failed to open config file" -msgstr "" - -#: app_Main.py:9363 -msgid "Loading Project ... Please Wait ..." -msgstr "" - -#: app_Main.py:9368 -msgid "Opening FlatCAM Project file." -msgstr "" - -#: app_Main.py:9383 app_Main.py:9387 app_Main.py:9404 -msgid "Failed to open project file" -msgstr "" - -#: app_Main.py:9443 -msgid "Loading Project ... restoring" -msgstr "" - -#: app_Main.py:9451 -msgid "Project loaded from" -msgstr "" - -#: app_Main.py:9477 +#: app_Main.py:7053 msgid "Redrawing all objects" msgstr "" -#: app_Main.py:9565 +#: app_Main.py:7141 msgid "Failed to load recent item list." msgstr "" -#: app_Main.py:9572 +#: app_Main.py:7148 msgid "Failed to parse recent item list." msgstr "" -#: app_Main.py:9582 +#: app_Main.py:7158 msgid "Failed to load recent projects item list." msgstr "" -#: app_Main.py:9589 +#: app_Main.py:7165 msgid "Failed to parse recent project item list." msgstr "" -#: app_Main.py:9650 +#: app_Main.py:7226 msgid "Clear Recent projects" msgstr "" -#: app_Main.py:9674 +#: app_Main.py:7250 msgid "Clear Recent files" msgstr "" -#: app_Main.py:9730 +#: app_Main.py:7306 msgid "FlatCAM Evo" msgstr "" -#: app_Main.py:9734 +#: app_Main.py:7310 msgid "Release date" msgstr "" -#: app_Main.py:9738 +#: app_Main.py:7314 msgid "Displayed" msgstr "" -#: app_Main.py:9741 +#: app_Main.py:7317 msgid "Snap" msgstr "" -#: app_Main.py:9750 +#: app_Main.py:7326 msgid "Canvas" msgstr "" -#: app_Main.py:9755 +#: app_Main.py:7331 msgid "Workspace active" msgstr "" -#: app_Main.py:9759 +#: app_Main.py:7335 msgid "Workspace size" msgstr "" -#: app_Main.py:9763 +#: app_Main.py:7339 msgid "Workspace orientation" msgstr "" -#: app_Main.py:9826 +#: app_Main.py:7402 msgid "Failed checking for latest version. Could not connect." msgstr "" -#: app_Main.py:9833 +#: app_Main.py:7409 msgid "Could not parse information about latest version." msgstr "" -#: app_Main.py:9843 +#: app_Main.py:7419 msgid "FlatCAM is up to date!" msgstr "" -#: app_Main.py:9848 +#: app_Main.py:7424 msgid "Newer Version Available" msgstr "" -#: app_Main.py:9850 +#: app_Main.py:7426 msgid "There is a newer version of FlatCAM available for download:" msgstr "" -#: app_Main.py:9854 +#: app_Main.py:7430 msgid "info" msgstr "" -#: app_Main.py:9882 +#: app_Main.py:7458 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 "" -#: app_Main.py:9960 +#: app_Main.py:7536 msgid "All plots disabled." msgstr "" -#: app_Main.py:9967 +#: app_Main.py:7543 msgid "All non selected plots disabled." msgstr "" -#: app_Main.py:9974 +#: app_Main.py:7550 msgid "All plots enabled." msgstr "" -#: app_Main.py:9980 +#: app_Main.py:7556 msgid "Selected plots enabled..." msgstr "" -#: app_Main.py:9988 +#: app_Main.py:7564 msgid "Selected plots disabled..." msgstr "" -#: app_Main.py:10021 +#: app_Main.py:7597 msgid "Enabling plots ..." msgstr "" -#: app_Main.py:10070 +#: app_Main.py:7646 msgid "Disabling plots ..." msgstr "" -#: app_Main.py:10093 +#: app_Main.py:7669 msgid "Working ..." msgstr "" -#: app_Main.py:10205 +#: app_Main.py:7781 msgid "Set alpha level ..." msgstr "" -#: app_Main.py:10271 +#: app_Main.py:8057 app_Main.py:8096 app_Main.py:8140 app_Main.py:8206 app_Main.py:8932 +#: app_Main.py:10193 app_Main.py:10255 +msgid "" +"Canvas initialization started.\n" +"Canvas initialization finished in" +msgstr "" + +#: app_Main.py:8060 +msgid "Opening Gerber file." +msgstr "" + +#: app_Main.py:8099 +msgid "Opening Excellon file." +msgstr "" + +#: app_Main.py:8129 app_Main.py:8134 +msgid "Open G-Code" +msgstr "" + +#: app_Main.py:8143 +msgid "Opening G-Code file." +msgstr "" + +#: app_Main.py:8197 app_Main.py:8201 +msgid "Open HPGL2" +msgstr "" + +#: app_Main.py:8209 +msgid "Opening HPGL2 file." +msgstr "" + +#: app_Main.py:8232 app_Main.py:8235 +msgid "Open Configuration File" +msgstr "" + +#: app_Main.py:8254 app_Main.py:8600 +msgid "Please Select a Geometry object to export" +msgstr "" + +#: app_Main.py:8269 +msgid "Only Geometry, Gerber and CNCJob objects can be used." +msgstr "" + +#: app_Main.py:8314 +msgid "Data must be a 3D array with last dimension 3 or 4" +msgstr "" + +#: app_Main.py:8320 app_Main.py:8324 +msgid "Export PNG Image" +msgstr "" + +#: app_Main.py:8356 app_Main.py:8561 +msgid "Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "" + +#: app_Main.py:8368 +msgid "Save Gerber source file" +msgstr "" + +#: app_Main.py:8396 +msgid "Failed. Only Script objects can be saved as TCL Script files..." +msgstr "" + +#: app_Main.py:8408 +msgid "Save Script source file" +msgstr "" + +#: app_Main.py:8436 +msgid "Failed. Only Document objects can be saved as Document files..." +msgstr "" + +#: app_Main.py:8448 +msgid "Save Document source file" +msgstr "" + +#: app_Main.py:8477 app_Main.py:8518 app_Main.py:9437 +msgid "Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" + +#: app_Main.py:8485 app_Main.py:8490 +msgid "Save Excellon source file" +msgstr "" + +#: app_Main.py:8526 app_Main.py:8530 +msgid "Export Excellon" +msgstr "" + +#: app_Main.py:8569 app_Main.py:8573 +msgid "Export Gerber" +msgstr "" + +#: app_Main.py:8612 +msgid "Only Geometry objects can be used." +msgstr "" + +#: app_Main.py:8628 app_Main.py:8632 +msgid "Export DXF" +msgstr "" + +#: app_Main.py:8656 app_Main.py:8660 +msgid "Import SVG" +msgstr "" + +#: app_Main.py:8686 app_Main.py:8690 +msgid "Import DXF" +msgstr "" + +#: app_Main.py:8716 +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 "" + +#: app_Main.py:8739 +msgid "New Project created" +msgstr "" + +#: app_Main.py:8841 +msgid "New TCL script file created in Code Editor." +msgstr "" + +#: app_Main.py:8868 app_Main.py:8870 app_Main.py:8905 app_Main.py:8907 +msgid "Open TCL script" +msgstr "" + +#: app_Main.py:8934 +msgid "Executing ScriptObject file." +msgstr "" + +#: app_Main.py:8942 app_Main.py:8946 +msgid "Run TCL script" +msgstr "" + +#: app_Main.py:8969 +msgid "TCL script file opened in Code Editor and executed." +msgstr "" + +#: app_Main.py:9015 app_Main.py:9021 +msgid "Save Project As ..." +msgstr "" + +#: app_Main.py:9055 +msgid "FlatCAM objects print" +msgstr "" + +#: app_Main.py:9068 app_Main.py:9075 +msgid "Save Object as PDF ..." +msgstr "" + +#: app_Main.py:9084 +msgid "Printing PDF ... Please wait." +msgstr "" + +#: app_Main.py:9262 +msgid "PDF file saved to" +msgstr "" + +#: app_Main.py:9284 +msgid "Exporting SVG" +msgstr "" + +#: app_Main.py:9327 +msgid "SVG file exported to" +msgstr "" + +#: app_Main.py:9342 app_Main.py:9346 +msgid "Import FlatCAM Preferences" +msgstr "" + +#: app_Main.py:9357 +msgid "Imported Defaults from" +msgstr "" + +#: app_Main.py:9376 app_Main.py:9382 +msgid "Export FlatCAM Preferences" +msgstr "" + +#: app_Main.py:9402 +msgid "Exported preferences to" +msgstr "" + +#: app_Main.py:9535 +msgid "Excellon file exported to" +msgstr "" + +#: app_Main.py:9544 +msgid "Exporting Excellon" +msgstr "" + +#: app_Main.py:9549 app_Main.py:9556 +msgid "Could not export Excellon file." +msgstr "" + +#: app_Main.py:9670 +msgid "Gerber file exported to" +msgstr "" + +#: app_Main.py:9678 +msgid "Exporting Gerber" +msgstr "" + +#: app_Main.py:9683 app_Main.py:9690 +msgid "Could not export file." +msgstr "" + +#: app_Main.py:9736 +msgid "DXF file exported to" +msgstr "" + +#: app_Main.py:9745 +msgid "Exporting DXF" +msgstr "" + +#: app_Main.py:9750 app_Main.py:9757 +msgid "Could not export DXF file." +msgstr "" + +#: app_Main.py:9795 +msgid "Importing SVG" +msgstr "" + +#: app_Main.py:9803 app_Main.py:9858 +msgid "Import failed." +msgstr "" + +#: app_Main.py:9850 +msgid "Importing DXF" +msgstr "" + +#: app_Main.py:9891 app_Main.py:10082 app_Main.py:10147 +msgid "Failed to open file" +msgstr "" + +#: app_Main.py:9894 app_Main.py:10085 app_Main.py:10150 +msgid "Failed to parse file" +msgstr "" + +#: app_Main.py:9906 +msgid "Object is not Gerber file or empty. Aborting object creation." +msgstr "" + +#: app_Main.py:9911 +msgid "Opening Gerber" +msgstr "" + +#: app_Main.py:9922 +msgid "Open Gerber failed. Probable not a Gerber file." +msgstr "" + +#: app_Main.py:9955 +msgid "Cannot open file" +msgstr "" + +#: app_Main.py:9975 +msgid "Opening Excellon." +msgstr "" + +#: app_Main.py:9985 +msgid "Open Excellon file failed. Probable not an Excellon file." +msgstr "" + +#: app_Main.py:10017 +msgid "Reading GCode file" +msgstr "" + +#: app_Main.py:10030 +msgid "This is not GCODE" +msgstr "" + +#: app_Main.py:10035 +msgid "Opening G-Code." +msgstr "" + +#: app_Main.py:10048 +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 "" + +#: app_Main.py:10104 +msgid "Object is not HPGL2 file or empty. Aborting object creation." +msgstr "" + +#: app_Main.py:10109 +msgid "Opening HPGL2" +msgstr "" + +#: app_Main.py:10116 +msgid " Open HPGL2 failed. Probable not a HPGL2 file." +msgstr "" + +#: app_Main.py:10142 +msgid "TCL script file opened in Code Editor." +msgstr "" + +#: app_Main.py:10162 +msgid "Opening TCL Script..." +msgstr "" + +#: app_Main.py:10173 +msgid "Failed to open TCL Script." +msgstr "" + +#: app_Main.py:10196 +msgid "Opening FlatCAM Config file." +msgstr "" + +#: app_Main.py:10223 +msgid "Failed to open config file" +msgstr "" + +#: app_Main.py:10252 +msgid "Loading Project ... Please Wait ..." +msgstr "" + +#: app_Main.py:10258 +msgid "Opening FlatCAM Project file." +msgstr "" + +#: app_Main.py:10273 app_Main.py:10277 app_Main.py:10295 +msgid "Failed to open project file" +msgstr "" + +#: app_Main.py:10335 +msgid "Loading Project ... restoring" +msgstr "" + +#: app_Main.py:10339 +msgid "Project loaded from" +msgstr "" + +#: app_Main.py:10368 msgid "Saving FlatCAM Project" msgstr "" -#: app_Main.py:10294 app_Main.py:10330 +#: app_Main.py:10390 app_Main.py:10426 msgid "Project saved to" msgstr "" -#: app_Main.py:10301 +#: app_Main.py:10397 msgid "The object is used by another application." msgstr "" -#: app_Main.py:10315 +#: app_Main.py:10411 msgid "Failed to verify project file" msgstr "" -#: app_Main.py:10315 app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10411 app_Main.py:10419 app_Main.py:10429 msgid "Retry to save it." msgstr "" -#: app_Main.py:10323 app_Main.py:10333 +#: app_Main.py:10419 app_Main.py:10429 msgid "Failed to parse saved project file" msgstr "" +#: app_Main.py:10466 +msgid "Save cancelled because source file is empty. Try to export the file." +msgstr "" + #: assets/linux/flatcam-beta.desktop:3 msgid "FlatCAM Beta" msgstr "" diff --git a/tclCommands/TclCommandExportDXF.py b/tclCommands/TclCommandExportDXF.py index 093276ff..9c59780f 100644 --- a/tclCommands/TclCommandExportDXF.py +++ b/tclCommands/TclCommandExportDXF.py @@ -49,4 +49,4 @@ class TclCommandExportDXF(TclCommand): """ if 'filename' not in args: args['filename'] = self.app.defaults["global_last_save_folder"] + '/' + args['name'] - self.app.export_dxf(use_thread=False, local_use=None, **args) + self.app.f_handlers.export_dxf(use_thread=False, local_use=None, **args) diff --git a/tclCommands/TclCommandExportExcellon.py b/tclCommands/TclCommandExportExcellon.py index a97ac054..4c20a65f 100644 --- a/tclCommands/TclCommandExportExcellon.py +++ b/tclCommands/TclCommandExportExcellon.py @@ -49,4 +49,4 @@ class TclCommandExportExcellon(TclCommand): """ if 'filename' not in args: args['filename'] = self.app.defaults["global_last_save_folder"] + '/' + args['name'] - self.app.export_excellon(use_thread=False, **args) + self.app.f_handlers.export_excellon(use_thread=False, **args) diff --git a/tclCommands/TclCommandExportGerber.py b/tclCommands/TclCommandExportGerber.py index a4f143d9..e495048e 100644 --- a/tclCommands/TclCommandExportGerber.py +++ b/tclCommands/TclCommandExportGerber.py @@ -49,4 +49,4 @@ class TclCommandExportGerber(TclCommand): """ if 'filename' not in args: args['filename'] = self.app.defaults["global_last_save_folder"] + '/' + args['name'] - self.app.export_gerber(use_thread=False,**args) + self.app.f_handlers.export_gerber(use_thread=False,**args) diff --git a/tclCommands/TclCommandExportSVG.py b/tclCommands/TclCommandExportSVG.py index 29d5655c..10999641 100644 --- a/tclCommands/TclCommandExportSVG.py +++ b/tclCommands/TclCommandExportSVG.py @@ -52,4 +52,4 @@ class TclCommandExportSVG(TclCommand): :return: """ - self.app.export_svg(**args) + self.app.f_handlers.export_svg(**args)