diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 29766fc6..5d1b3212 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -64,12 +64,6 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('FlatCAMApp') -def _tr(text): - try: - return _(text) - except: - return text - ######################################## ## App ## ######################################## @@ -857,12 +851,12 @@ class App(QtCore.QObject): ret_val = fcTranslate.apply_language('FlatCAMApp') if ret_val == "no language": - self.inform.emit(_tr("[ERROR] Could not find the Language files. The App strings are missing.")) + self.inform.emit(_("[ERROR] Could not find the Language files. The App strings are missing.")) log.debug("Could not find the Language files. The App strings are missing.") else: # make the current language the current selection on the language combobox self.ui.general_defaults_form.general_app_group.language_cb.setCurrentText(ret_val) - log.debug("App.__init__tr() --> Applied %s language." % str(ret_val).capitalize()) + log.debug("App.__init__() --> Applied %s language." % str(ret_val).capitalize()) ################################### @@ -1679,7 +1673,7 @@ class App(QtCore.QObject): project_name = str(argument) if project_name == "": - self.inform.emit(_tr("Open cancelled.")) + self.inform.emit(_("Open cancelled.")) else: # self.open_project(project_name) run_from_arg = True @@ -1693,7 +1687,7 @@ class App(QtCore.QObject): file_name = str(argument) if file_name == "": - self.inform.emit(_tr("Open Config file failed.")) + self.inform.emit(_("Open Config file failed.")) else: # run_from_arg = True # self.worker_task.emit({'fcn': self.open_config_file, @@ -1874,7 +1868,7 @@ class App(QtCore.QObject): if isinstance(edited_object, FlatCAMGeometry): # for now, if the Geometry is MultiGeo do not allow the editing if edited_object.multigeo is True: - self.inform.emit(_tr("[WARNING_NOTCL] Editing a MultiGeo Geometry is not possible for the moment.")) + self.inform.emit(_("[WARNING_NOTCL] Editing a MultiGeo Geometry is not possible for the moment.")) return # store the Geometry Editor Toolbar visibility before entering in the Editor @@ -1895,7 +1889,7 @@ class App(QtCore.QObject): # set call source to the Editor we go into self.call_source = 'exc_editor' else: - self.inform.emit(_tr("[WARNING_NOTCL]Select a Geometry or Excellon Object to edit.")) + self.inform.emit(_("[WARNING_NOTCL]Select a Geometry or Excellon Object to edit.")) return # make sure that we can't select another object while in Editor Mode: @@ -1906,7 +1900,7 @@ class App(QtCore.QObject): self.ui.plot_tab_area.setTabText(0, "EDITOR Area") self.ui.plot_tab_area.protectTab(0) - self.inform.emit(_tr("[WARNING_NOTCL]Editor is activated ...")) + self.inform.emit(_("[WARNING_NOTCL]Editor is activated ...")) self.should_we_save = True @@ -1941,7 +1935,7 @@ class App(QtCore.QObject): edited_obj.options['xmax'] = xmax edited_obj.options['ymax'] = ymax except AttributeError: - self.inform.emit(_tr("[WARNING] Object empty after edit.")) + self.inform.emit(_("[WARNING] Object empty after edit.")) elif isinstance(edited_obj, FlatCAMExcellon): obj_type = "Excellon" @@ -1950,7 +1944,7 @@ class App(QtCore.QObject): self.exc_editor.deactivate() else: - self.inform.emit(_tr("[WARNING_NOTCL]Select a Geometry or Excellon Object to update.")) + self.inform.emit(_("[WARNING_NOTCL]Select a Geometry or Excellon Object to update.")) return # if notebook is hidden we show it @@ -1963,7 +1957,7 @@ class App(QtCore.QObject): edited_obj.plot() self.ui.plot_tab_area.setTabText(0, "Plot Area") self.ui.plot_tab_area.protectTab(0) - self.inform.emit(_tr("[selected] %s is updated, returning to App...") % obj_type) + self.inform.emit(_("[selected] %s is updated, returning to App...") % obj_type) # reset the Object UI to original settings # edited_obj.set_ui(edited_obj.ui_type()) @@ -2286,7 +2280,7 @@ class App(QtCore.QObject): f.close() except IOError: self.log.error("Could not load defaults file.") - self.inform.emit(_tr("[ERROR] Could not load defaults file.")) + self.inform.emit(_("[ERROR] Could not load defaults file.")) # in case the defaults file can't be loaded, show all toolbars self.defaults["global_toolbar_view"] = 255 return @@ -2298,7 +2292,7 @@ class App(QtCore.QObject): self.defaults["global_toolbar_view"] = 255 e = sys.exc_info()[0] App.log.error(str(e)) - self.inform.emit(_tr("[ERROR] Failed to parse defaults file.")) + self.inform.emit(_("[ERROR] Failed to parse defaults file.")) return self.defaults.update(defaults) log.debug("FlatCAM defaults loaded from: %s" % filename) @@ -2327,7 +2321,7 @@ class App(QtCore.QObject): filename = str(filename) if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL]FlatCAM preferences import cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]FlatCAM preferences import cancelled.")) else: try: f = open(filename) @@ -2335,7 +2329,7 @@ class App(QtCore.QObject): f.close() except IOError: self.log.error("Could not load defaults file.") - self.inform.emit(_tr("[ERROR_NOTCL] Could not load defaults file.")) + self.inform.emit(_("[ERROR_NOTCL] Could not load defaults file.")) return try: @@ -2343,10 +2337,10 @@ class App(QtCore.QObject): except: e = sys.exc_info()[0] App.log.error(str(e)) - self.inform.emit(_tr("[ERROR_NOTCL] Failed to parse defaults file.")) + self.inform.emit(_("[ERROR_NOTCL] Failed to parse defaults file.")) return self.defaults.update(defaults_from_file) - self.inform.emit(_tr("[success]Imported Defaults from %s") %filename) + self.inform.emit(_("[success]Imported Defaults from %s") %filename) def on_export_preferences(self): @@ -2366,7 +2360,7 @@ class App(QtCore.QObject): defaults_from_file = {} if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL]FlatCAM preferences export cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]FlatCAM preferences export cancelled.")) return else: try: @@ -2382,7 +2376,7 @@ class App(QtCore.QObject): e = sys.exc_info()[0] App.log.error("Could not load defaults file.") App.log.error(str(e)) - self.inform.emit(_tr("[ERROR_NOTCL]Could not load defaults file.")) + self.inform.emit(_("[ERROR_NOTCL]Could not load defaults file.")) return try: @@ -2401,7 +2395,7 @@ class App(QtCore.QObject): json.dump(defaults_from_file, f) f.close() except: - self.inform.emit(_tr("[ERROR_NOTCL] Failed to write defaults to file.")) + self.inform.emit(_("[ERROR_NOTCL] Failed to write defaults to file.")) return self.file_saved.emit("preferences", filename) @@ -2453,7 +2447,7 @@ class App(QtCore.QObject): f = open(self.data_path + '/recent.json', 'w') except IOError: App.log.error("Failed to open recent items file for writing.") - self.inform.emit(_tr('[ERROR_NOTCL]Failed to open recent files file for writing.')) + self.inform.emit(_('[ERROR_NOTCL]Failed to open recent files file for writing.')) return #try: @@ -2538,8 +2532,8 @@ class App(QtCore.QObject): try: return_value = initialize(obj, self) except Exception as e: - msg = _tr("[ERROR_NOTCL] An internal error has ocurred. See shell.\n") - msg += _tr("Object (%s) failed because: %s \n\n") % (kind, str(e)) + msg = _("[ERROR_NOTCL] An internal error has ocurred. See shell.\n") + msg += _("Object (%s) failed because: %s \n\n") % (kind, str(e)) msg += traceback.format_exc() self.inform.emit(msg) @@ -2559,7 +2553,7 @@ class App(QtCore.QObject): # Check units and convert if necessary # This condition CAN be true because initialize() can change obj.units if self.options["units"].upper() != obj.units.upper(): - self.inform.emit(_tr("Converting units to ") + self.options["units"] + ".") + self.inform.emit(_("Converting units to ") + self.options["units"] + ".") obj.convert_units(self.options["units"]) t3 = time.time() self.log.debug("%f seconds converting units." % (t3 - t2)) @@ -2617,16 +2611,16 @@ class App(QtCore.QObject): # self.inform.emit('[selected] %s created & selected: %s' % # (str(obj.kind).capitalize(), str(obj.options['name']))) if obj.kind == 'gerber': - self.inform.emit('_tr([selected]%s created/selected: %s' % + self.inform.emit('_([selected]%s created/selected: %s' % (obj.kind.capitalize(), 'green', str(obj.options['name']))) elif obj.kind == 'excellon': - self.inform.emit(_tr('[selected]%s created/selected: %s') % + self.inform.emit(_('[selected]%s created/selected: %s') % (obj.kind.capitalize(), 'brown', str(obj.options['name']))) elif obj.kind == 'cncjob': - self.inform.emit(_tr('[selected]%s created/selected: %s') % + self.inform.emit(_('[selected]%s created/selected: %s') % (obj.kind.capitalize(), 'blue', str(obj.options['name']))) elif obj.kind == 'geometry': - self.inform.emit(_tr('[selected]%s created/selected: %s') % + self.inform.emit(_('[selected]%s created/selected: %s') % (obj.kind.capitalize(), 'red', str(obj.options['name']))) # update the SHELL auto-completer model with the name of the new object @@ -2809,7 +2803,7 @@ class App(QtCore.QObject): e = sys.exc_info()[0] App.log.error("Could not load defaults file.") App.log.error(str(e)) - self.inform.emit(_tr("[ERROR_NOTCL] Could not load defaults file.")) + self.inform.emit(_("[ERROR_NOTCL] Could not load defaults file.")) return try: @@ -2818,7 +2812,7 @@ class App(QtCore.QObject): e = sys.exc_info()[0] App.log.error("Failed to parse defaults file.") App.log.error(str(e)) - self.inform.emit(_tr("[ERROR_NOTCL] Failed to parse defaults file.")) + self.inform.emit(_("[ERROR_NOTCL] Failed to parse defaults file.")) return # Update options @@ -2832,7 +2826,7 @@ class App(QtCore.QObject): json.dump(defaults, f, default=to_dict, indent=2, sort_keys=True) f.close() except: - self.inform.emit(_tr("[ERROR_NOTCL] Failed to write defaults to file.")) + self.inform.emit(_("[ERROR_NOTCL] Failed to write defaults to file.")) return # Save the toolbar view @@ -2864,7 +2858,7 @@ class App(QtCore.QObject): self.defaults["global_toolbar_view"] = tb_status if not silent: - self.inform.emit(_tr("[success]Defaults saved.")) + self.inform.emit(_("[success]Defaults saved.")) def save_factory_defaults(self, silent=False): """ @@ -2885,7 +2879,7 @@ class App(QtCore.QObject): e = sys.exc_info()[0] App.log.error("Could not load factory defaults file.") App.log.error(str(e)) - self.inform.emit(_tr("[ERROR_NOTCL] Could not load factory defaults file.")) + self.inform.emit(_("[ERROR_NOTCL] Could not load factory defaults file.")) return try: @@ -2894,7 +2888,7 @@ class App(QtCore.QObject): e = sys.exc_info()[0] App.log.error("Failed to parse factory defaults file.") App.log.error(str(e)) - self.inform.emit(_tr("[ERROR_NOTCL] Failed to parse factory defaults file.")) + self.inform.emit(_("[ERROR_NOTCL] Failed to parse factory defaults file.")) return # Update options @@ -2908,20 +2902,20 @@ class App(QtCore.QObject): json.dump(factory_defaults, f_f_def_s, default=to_dict, indent=2, sort_keys=True) f_f_def_s.close() except: - self.inform.emit(_tr("[ERROR_NOTCL] Failed to write factory defaults to file.")) + self.inform.emit(_("[ERROR_NOTCL] Failed to write factory defaults to file.")) return if silent is False: - self.inform.emit(_tr("Factory defaults saved.")) + self.inform.emit(_("Factory defaults saved.")) def final_save(self): if self.should_we_save and self.collection.get_list(): msgbox = QtWidgets.QMessageBox() # msgbox.setText("Save changes ...") - msgbox.setText(_tr("There are files/objects modified in FlatCAM. " + msgbox.setText(_("There are files/objects modified in FlatCAM. " "\n" "Do you want to Save the project?")) - msgbox.setWindowTitle(_tr("Save changes")) + msgbox.setWindowTitle(_("Save changes")) msgbox.setWindowIcon(QtGui.QIcon('share/save_as.png')) msgbox.setStandardButtons(QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No | QtWidgets.QMessageBox.Cancel) @@ -2970,7 +2964,7 @@ class App(QtCore.QObject): # if len(set(geo_type_list)) == 1 means that all list elements are the same if len(set(geo_type_list)) != 1: - self.inform.emit(_tr("[ERROR] Failed join. The Geometry objects are of different types.\n" + self.inform.emit(_("[ERROR] Failed join. The Geometry objects are of different types.\n" "At least one is MultiGeo type and the other is SingleGeo type. A possibility is to " "convert from one to another and retry joining \n" "but in the case of converting from MultiGeo to SingleGeo, informations may be lost and " @@ -3011,7 +3005,7 @@ class App(QtCore.QObject): for obj in objs: if not isinstance(obj, FlatCAMExcellon): - self.inform.emit(_tr("[ERROR_NOTCL]Failed. Excellon joining works only on Excellon objects.")) + self.inform.emit(_("[ERROR_NOTCL]Failed. Excellon joining works only on Excellon objects.")) return def initialize(obj, app): @@ -3033,7 +3027,7 @@ class App(QtCore.QObject): for obj in objs: if not isinstance(obj, FlatCAMGerber): - self.inform.emit(_tr("[ERROR_NOTCL]Failed. Gerber joining works only on Gerber objects.")) + self.inform.emit(_("[ERROR_NOTCL]Failed. Gerber joining works only on Gerber objects.")) return def initialize(obj, app): @@ -3048,11 +3042,11 @@ class App(QtCore.QObject): obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[ERROR_NOTCL]Failed. Select a Geometry Object and try again.")) + self.inform.emit(_("[ERROR_NOTCL]Failed. Select a Geometry Object and try again.")) return if not isinstance(obj, FlatCAMGeometry): - self.inform.emit(_tr("[ERROR_NOTCL]Expected a FlatCAMGeometry, got %s") % type(obj)) + self.inform.emit(_("[ERROR_NOTCL]Expected a FlatCAMGeometry, got %s") % type(obj)) return obj.multigeo = True @@ -3065,7 +3059,7 @@ class App(QtCore.QObject): self.should_we_save = True - self.inform.emit(_tr("[success] A Geometry object was converted to MultiGeo type.")) + self.inform.emit(_("[success] A Geometry object was converted to MultiGeo type.")) def on_convert_multigeo_to_singlegeo(self): self.report_usage("on_convert_multigeo_to_singlegeo()") @@ -3073,11 +3067,11 @@ class App(QtCore.QObject): obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[ERROR_NOTCL]Failed. Select a Geometry Object and try again.")) + self.inform.emit(_("[ERROR_NOTCL]Failed. Select a Geometry Object and try again.")) return if not isinstance(obj, FlatCAMGeometry): - self.inform.emit(_tr("[ERROR_NOTCL]Expected a FlatCAMGeometry, got %s") % type(obj)) + self.inform.emit(_("[ERROR_NOTCL]Expected a FlatCAMGeometry, got %s") % type(obj)) return obj.multigeo = False @@ -3091,7 +3085,7 @@ class App(QtCore.QObject): self.should_we_save = True - self.inform.emit(_tr("[success] A Geometry object was converted to SingleGeo type.")) + self.inform.emit(_("[success] A Geometry object was converted to SingleGeo type.")) def on_options_dict_change(self, field): self.options_write_form_field(field) @@ -3275,7 +3269,7 @@ class App(QtCore.QObject): current.to_form() self.plot_all() - self.inform.emit(_tr("[success]Converted units to %s") % self.defaults["units"]) + self.inform.emit(_("[success]Converted units to %s") % self.defaults["units"]) # self.ui.units_label.setText("[" + self.options["units"] + "]") self.set_screen_units(self.defaults["units"]) else: @@ -3286,7 +3280,7 @@ class App(QtCore.QObject): else: self.ui.general_defaults_form.general_app_group.units_radio.set_value('MM') self.toggle_units_ignore = False - self.inform.emit(_tr("[WARNING_NOTCL]Units conversion cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Units conversion cancelled.")) self.options_read_form() self.defaults_read_form() @@ -3910,7 +3904,7 @@ class App(QtCore.QObject): filename = str(QtWidgets.QFileDialog.getSaveFileName(caption="Export G-Code ...", filter=_filter_)[0]) if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL]Export Code cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Export Code cancelled.")) return else: try: @@ -3920,14 +3914,14 @@ class App(QtCore.QObject): f.write(line) except FileNotFoundError: - self.inform.emit(_tr("[WARNING] No such file or directory")) + self.inform.emit(_("[WARNING] No such file or directory")) return # Just for adding it to the recent files list. self.file_opened.emit("cncjob", filename) self.file_saved.emit("cncjob", filename) - self.inform.emit(_tr("Saved to: %s") % filename) + self.inform.emit(_("Saved to: %s") % filename) def handleFindGCode(self): self.report_usage("handleFindGCode()") @@ -3990,15 +3984,15 @@ class App(QtCore.QObject): if ok: if float(val) == 0: self.inform.emit( - _tr("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) + _("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) return self.collection.get_active().on_tool_add(dia=float(val)) else: self.inform.emit( - _tr("[WARNING_NOTCL] Adding Tool cancelled ...")) + _("[WARNING_NOTCL] Adding Tool cancelled ...")) else: msgbox = QtWidgets.QMessageBox() - msgbox.setText(_tr("Adding Tool works only when Advanced is checked.\n" + msgbox.setText(_("Adding Tool works only when Advanced is checked.\n" "Go to Preferences -> General - Show Advanced Options.")) msgbox.setWindowTitle("Tool adding ...") msgbox.setWindowIcon(QtGui.QIcon('share/warning.png')) @@ -4022,34 +4016,34 @@ class App(QtCore.QObject): if ok: if float(val) == 0: self.inform.emit( - _tr("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) + _("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) return self.ncclear_tool.on_tool_add(dia=float(val)) else: self.inform.emit( - _tr("[WARNING_NOTCL] Adding Tool cancelled ...")) + _("[WARNING_NOTCL] Adding Tool cancelled ...")) # and only if the tool is Paint Area Tool elif tool_widget == self.paint_tool.toolName: if ok: if float(val) == 0: self.inform.emit( - _tr("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) + _("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) return self.paint_tool.on_tool_add(dia=float(val)) else: self.inform.emit( - _tr("[WARNING_NOTCL] Adding Tool cancelled ...")) + _("[WARNING_NOTCL] Adding Tool cancelled ...")) # and only if the tool is Solder Paste Dispensing Tool elif tool_widget == self.paste_tool.toolName: if ok: if float(val) == 0: self.inform.emit( - _tr("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) + _("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) return self.paste_tool.on_tool_add(dia=float(val)) else: self.inform.emit( - _tr("[WARNING_NOTCL] Adding Tool cancelled ...")) + _("[WARNING_NOTCL] Adding Tool cancelled ...")) # It's meant to delete tools in tool tables via a 'Delete' shortcut key but only if certain conditions are met @@ -4103,13 +4097,13 @@ class App(QtCore.QObject): while (self.collection.get_active()): self.delete_first_selected() - self.inform.emit(_tr("Object(s) deleted ...")) + self.inform.emit(_("Object(s) deleted ...")) # make sure that the selection shape is deleted, too self.delete_selection_shape() else: - self.inform.emit(_tr("Failed. No object(s) selected...")) + self.inform.emit(_("Failed. No object(s) selected...")) else: - self.inform.emit(_tr("Save the work in Editor and try again ...")) + self.inform.emit(_("Save the work in Editor and try again ...")) def on_set_origin(self): """ @@ -4122,7 +4116,7 @@ class App(QtCore.QObject): #and ask him to click on the desired position self.report_usage("on_set_origin()") - self.inform.emit(_tr('Click to set the origin ...')) + self.inform.emit(_('Click to set the origin ...')) self.plotcanvas.vis_connect('mouse_press', self.on_set_zero_click) @@ -4134,15 +4128,15 @@ class App(QtCore.QObject): """ self.report_usage("on_jump_to()") - dia_box = Dialog_box(title=_tr("Jump to ..."), - label=_tr("Enter the coordinates in format X,Y:"), + dia_box = Dialog_box(title=_("Jump to ..."), + label=_("Enter the coordinates in format X,Y:"), icon=QtGui.QIcon('share/jump_to16.png')) if dia_box.ok is True: try: location = eval(dia_box.location) if not isinstance(location, tuple): - self.inform.emit(_tr("Wrong coordinates. Enter coordinates in format: X,Y")) + self.inform.emit(_("Wrong coordinates. Enter coordinates in format: X,Y")) return except: return @@ -4157,7 +4151,7 @@ class App(QtCore.QObject): jump_loc = self.plotcanvas.vispy_canvas.translate_coords_2((location[0], location[1])) cursor.setPos(canvas_origin.x() + jump_loc[0], (canvas_origin.y() + jump_loc[1])) - self.inform.emit(_tr("Done.")) + self.inform.emit(_("Done.")) def on_copy_object(self): self.report_usage("on_copy_object()") @@ -4289,7 +4283,7 @@ class App(QtCore.QObject): obj.options['xmax'] = c obj.options['ymax'] = d # self.plot_all(zoom=False) - self.inform.emit(_tr('[success] Origin set ...')) + self.inform.emit(_('[success] Origin set ...')) self.plotcanvas.vis_disconnect('mouse_press', self.on_set_zero_click) self.should_we_save = True @@ -4327,7 +4321,7 @@ class App(QtCore.QObject): ymaxlist = [] if not obj_list: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected to Flip on Y axis.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected to Flip on Y axis.")) else: try: # first get a bounding box to fit all @@ -4352,9 +4346,9 @@ class App(QtCore.QObject): obj.mirror('X', [px, py]) obj.plot() self.object_changed.emit(obj) - self.inform.emit(_tr("[success] Flip on Y axis done.")) + self.inform.emit(_("[success] Flip on Y axis done.")) except Exception as e: - self.inform.emit(_tr("[ERROR_NOTCL] Due of %s, Flip action was not executed.") % str(e)) + self.inform.emit(_("[ERROR_NOTCL] Due of %s, Flip action was not executed.") % str(e)) return def on_flipx(self): @@ -4367,7 +4361,7 @@ class App(QtCore.QObject): ymaxlist = [] if not obj_list: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected to Flip on X axis.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected to Flip on X axis.")) else: try: # first get a bounding box to fit all @@ -4392,9 +4386,9 @@ class App(QtCore.QObject): obj.mirror('Y', [px, py]) obj.plot() self.object_changed.emit(obj) - self.inform.emit(_tr("[success] Flip on X axis done.")) + self.inform.emit(_("[success] Flip on X axis done.")) except Exception as e: - self.inform.emit(_tr("[ERROR_NOTCL] Due of %s, Flip action was not executed.") % str(e)) + self.inform.emit(_("[ERROR_NOTCL] Due of %s, Flip action was not executed.") % str(e)) return def on_rotate(self, silent=False, preset=None): @@ -4407,10 +4401,10 @@ class App(QtCore.QObject): ymaxlist = [] if not obj_list: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected to Rotate.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected to Rotate.")) else: if silent is False: - rotatebox = FCInputDialog(title=_tr("Transform"), text=_tr("Enter the Angle value:"), + rotatebox = FCInputDialog(title=_("Transform"), text=_("Enter the Angle value:"), min=-360, max=360, decimals=4, init_val=float(self.defaults['tools_transform_rotate'])) num, ok = rotatebox.get_value() @@ -4440,9 +4434,9 @@ class App(QtCore.QObject): sel_obj.rotate(-float(num), point=(px, py)) sel_obj.plot() self.object_changed.emit(sel_obj) - self.inform.emit(_tr("[success] Rotation done.")) + self.inform.emit(_("[success] Rotation done.")) except Exception as e: - self.inform.emit(_tr("[ERROR_NOTCL] Due of %s, rotation movement was not executed.") % str(e)) + self.inform.emit(_("[ERROR_NOTCL] Due of %s, rotation movement was not executed.") % str(e)) return def on_skewx(self): @@ -4453,9 +4447,9 @@ class App(QtCore.QObject): yminlist = [] if not obj_list: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected to Skew/Shear on X axis.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected to Skew/Shear on X axis.")) else: - skewxbox = FCInputDialog(title=_tr("Transform"), text=_tr("Enter the Angle value:"), + skewxbox = FCInputDialog(title=_("Transform"), text=_("Enter the Angle value:"), min=-360, max=360, decimals=4, init_val=float(self.defaults['tools_transform_skew_x'])) num, ok = skewxbox.get_value() @@ -4474,7 +4468,7 @@ class App(QtCore.QObject): obj.skew(num, 0, point=(xminimal, yminimal)) obj.plot() self.object_changed.emit(obj) - self.inform.emit(_tr("[success] Skew on X axis done.")) + self.inform.emit(_("[success] Skew on X axis done.")) def on_skewy(self): self.report_usage("on_skewy()") @@ -4484,9 +4478,9 @@ class App(QtCore.QObject): yminlist = [] if not obj_list: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected to Skew/Shear on Y axis.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected to Skew/Shear on Y axis.")) else: - skewybox = FCInputDialog(title=_tr("Transform"), text=_tr("Enter the Angle value:"), + skewybox = FCInputDialog(title=_("Transform"), text=_("Enter the Angle value:"), min=-360, max=360, decimals=4, init_val=float(self.defaults['tools_transform_skew_y'])) num, ok = skewybox.get_value() @@ -4505,7 +4499,7 @@ class App(QtCore.QObject): obj.skew(0, num, point=(xminimal, yminimal)) obj.plot() self.object_changed.emit(obj) - self.inform.emit(_tr("[success] Skew on Y axis done.")) + self.inform.emit(_("[success] Skew on Y axis done.")) def delete_first_selected(self): # Keep this for later @@ -4601,19 +4595,19 @@ class App(QtCore.QObject): if ok: if float(val) == 0: self.inform.emit( - _tr("[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float format.")) + _("[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float format.")) return else: if val not in self.defaults["global_grid_context_menu"][str(units)]: self.defaults["global_grid_context_menu"][str(units)].append(val) self.inform.emit( - _tr("[success] New Grid added ...")) + _("[success] New Grid added ...")) else: self.inform.emit( - _tr("[WARNING_NOTCL] Grid already exists ...")) + _("[WARNING_NOTCL] Grid already exists ...")) else: self.inform.emit( - _tr("[WARNING_NOTCL] Adding New Grid cancelled ...")) + _("[WARNING_NOTCL] Adding New Grid cancelled ...")) def on_grid_delete(self): ## Current application units in lower Case @@ -4628,20 +4622,20 @@ class App(QtCore.QObject): if ok: if float(val) == 0: self.inform.emit( - _tr("[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float format.")) + _("[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float format.")) return else: try: self.defaults["global_grid_context_menu"][str(units)].remove(val) except ValueError: self.inform.emit( - _tr("[ERROR_NOTCL] Grid Value does not exist ...")) + _("[ERROR_NOTCL] Grid Value does not exist ...")) return self.inform.emit( - _tr("[success] Grid Value deleted ...")) + _("[success] Grid Value deleted ...")) else: self.inform.emit( - _tr("[WARNING_NOTCL] Delete Grid value cancelled ...")) + _("[WARNING_NOTCL] Delete Grid value cancelled ...")) def on_shortcut_list(self): self.report_usage("on_shortcut_list()") @@ -4680,11 +4674,11 @@ class App(QtCore.QObject): name = obj.options["name"] except AttributeError: log.debug("on_copy_name() --> No object selected to copy it's name") - self.inform.emit(_tr("[WARNING_NOTCL]No object selected to copy it's name")) + self.inform.emit(_("[WARNING_NOTCL]No object selected to copy it's name")) return self.clipboard.setText(name) - self.inform.emit(_tr("Name copied on clipboard ...")) + self.inform.emit(_("Name copied on clipboard ...")) def on_mouse_click_over_plot(self, event): """ @@ -4979,16 +4973,16 @@ class App(QtCore.QObject): # self.inform.emit('[selected] %s: %s selected' % # (str(curr_sel_obj.kind).capitalize(), str(curr_sel_obj.options['name']))) if curr_sel_obj.kind == 'gerber': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('green', str(curr_sel_obj.options['name']))) elif curr_sel_obj.kind == 'excellon': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('brown', str(curr_sel_obj.options['name']))) elif curr_sel_obj.kind == 'cncjob': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('blue', str(curr_sel_obj.options['name']))) elif curr_sel_obj.kind == 'geometry': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('red', str(curr_sel_obj.options['name']))) elif self.collection.get_active().options['name'] not in objects_under_the_click_list: @@ -5002,16 +4996,16 @@ class App(QtCore.QObject): # self.inform.emit('[selected] %s: %s selected' % # (str(curr_sel_obj.kind).capitalize(), str(curr_sel_obj.options['name']))) if curr_sel_obj.kind == 'gerber': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('green', str(curr_sel_obj.options['name']))) elif curr_sel_obj.kind == 'excellon': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('brown', str(curr_sel_obj.options['name']))) elif curr_sel_obj.kind == 'cncjob': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('blue', str(curr_sel_obj.options['name']))) elif curr_sel_obj.kind == 'geometry': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('red', str(curr_sel_obj.options['name']))) else: @@ -5050,16 +5044,16 @@ class App(QtCore.QObject): # self.inform.emit('[selected] %s: %s selected' % # (str(curr_sel_obj.kind).capitalize(), str(curr_sel_obj.options['name']))) if curr_sel_obj.kind == 'gerber': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('green', str(curr_sel_obj.options['name']))) elif curr_sel_obj.kind == 'excellon': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('brown', str(curr_sel_obj.options['name']))) elif curr_sel_obj.kind == 'cncjob': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('blue', str(curr_sel_obj.options['name']))) elif curr_sel_obj.kind == 'geometry': - self.inform.emit(_tr('[selected]%s selected') % + self.inform.emit(_('[selected]%s selected') % ('red', str(curr_sel_obj.options['name']))) # for obj in self.collection.get_list(): @@ -5176,10 +5170,10 @@ class App(QtCore.QObject): if self.collection.get_list() and self.should_we_save: msgbox = QtWidgets.QMessageBox() # msgbox.setText("Save changes ...") - msgbox.setText(_tr("There are files/objects opened in FlatCAM.\n" + 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(_tr("Save changes")) + msgbox.setWindowTitle(_("Save changes")) msgbox.setWindowIcon(QtGui.QIcon('share/save_as.png')) msgbox.setStandardButtons(QtWidgets.QMessageBox.Cancel | QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) @@ -5194,7 +5188,7 @@ class App(QtCore.QObject): self.on_file_new() else: self.on_file_new() - self.inform.emit(_tr("[success] New Project created...")) + self.inform.emit(_("[success] New Project created...")) def on_file_new(self): """ @@ -5275,18 +5269,18 @@ class App(QtCore.QObject): try: obj = self.collection.get_active() except: - self.inform.emit(_tr("[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file.")) + self.inform.emit(_("[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file.")) return 'fail' # then append the text from GCode to the text editor try: file = StringIO(obj.source_file) except AttributeError: - self.inform.emit(_tr("[WARNING_NOTCL] There is no selected object for which to see it's source file code.")) + self.inform.emit(_("[WARNING_NOTCL] There is no selected object for which to see it's source file code.")) return 'fail' # add the tab if it was closed - self.ui.plot_tab_area.addTab(self.ui.cncjob_tab, _tr("Code Editor")) + self.ui.plot_tab_area.addTab(self.ui.cncjob_tab, _("Code Editor")) # first clear previous text in text editor (if any) self.ui.code_editor.clear() @@ -5299,7 +5293,7 @@ class App(QtCore.QObject): self.ui.code_editor.append(proc_line) except Exception as e: log.debug('App.on_view_source() -->%s' % str(e)) - self.inform.emit(_tr('[ERROR]App.on_view_source() -->%s') % str(e)) + self.inform.emit(_('[ERROR]App.on_view_source() -->%s') % str(e)) return self.ui.code_editor.moveCursor(QtGui.QTextCursor.Start) @@ -5345,7 +5339,7 @@ class App(QtCore.QObject): filenames = [str(filename) for filename in filenames] if len(filenames) == 0: - self.inform.emit(_tr("[WARNING_NOTCL]Open Gerber cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Open Gerber cancelled.")) else: for filename in filenames: if filename != '': @@ -5374,7 +5368,7 @@ class App(QtCore.QObject): filenames = [str(filename) for filename in filenames] if len(filenames) == 0: - self.inform.emit(_tr("[WARNING_NOTCL]Open Excellon cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Open Excellon cancelled.")) else: for filename in filenames: if filename != '': @@ -5404,7 +5398,7 @@ class App(QtCore.QObject): filenames = [str(filename) for filename in filenames] if len(filenames) == 0: - self.inform.emit(_tr("[WARNING_NOTCL]Open G-Code cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Open G-Code cancelled.")) else: for filename in filenames: if filename != '': @@ -5433,7 +5427,7 @@ class App(QtCore.QObject): filename = str(filename) if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL]Open Project cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Open Project cancelled.")) else: # self.worker_task.emit({'fcn': self.open_project, # 'params': [filename]}) @@ -5458,7 +5452,7 @@ class App(QtCore.QObject): filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption="Open Configuration File", filter = _filter_) if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL]Open COnfig cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Open COnfig cancelled.")) else: self.open_config_file(filename) @@ -5473,8 +5467,8 @@ class App(QtCore.QObject): obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected.")) - msg = _tr("Please Select a Geometry object to export") + self.inform.emit(_("[WARNING_NOTCL] No object selected.")) + msg = _("Please Select a Geometry object to export") msgbox = QtWidgets.QMessageBox() msgbox.setInformativeText(msg) msgbox.setStandardButtons(QtWidgets.QMessageBox.Ok) @@ -5485,7 +5479,7 @@ class App(QtCore.QObject): # Check for more compatible types and add as required if (not isinstance(obj, FlatCAMGeometry) and not isinstance(obj, FlatCAMGerber) and not isinstance(obj, FlatCAMCNCjob) and not isinstance(obj, FlatCAMExcellon)): - msg = _tr("[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used.") + msg = _("[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used.") msgbox = QtWidgets.QMessageBox() msgbox.setInformativeText(msg) msgbox.setStandardButtons(QtWidgets.QMessageBox.Ok) @@ -5507,7 +5501,7 @@ class App(QtCore.QObject): filename = str(filename) if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL]Export SVG cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Export SVG cancelled.")) return else: self.export_svg(name, filename) @@ -5521,7 +5515,7 @@ class App(QtCore.QObject): image = _screenshot() data = np.asarray(image) if not data.ndim == 3 and data.shape[-1] in (3, 4): - self.inform.emit(_tr('[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4')) + self.inform.emit(_('[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4')) return filter_ = "PNG File (*.png);;All Files (*.*)" @@ -5531,12 +5525,12 @@ class App(QtCore.QObject): directory=self.get_last_save_folder() + '/png_' + str(self.date).replace('-', ''), filter=filter_) except TypeError: - filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_tr("Export PNG Image"), filter=filter_) + filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export PNG Image"), filter=filter_) filename = str(filename) if filename == "": - self.inform.emit(_tr("Export PNG cancelled.")) + self.inform.emit(_("Export PNG cancelled.")) return else: write_png(filename, data) @@ -5553,12 +5547,12 @@ class App(QtCore.QObject): obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected. Please select an Gerber object to export.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected. Please select an Gerber object to export.")) return # Check for more compatible types and add as required if not isinstance(obj, FlatCAMGerber): - self.inform.emit(_tr("[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files...")) + self.inform.emit(_("[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files...")) return name = self.collection.get_active().options["name"] @@ -5570,12 +5564,12 @@ class App(QtCore.QObject): directory=self.get_last_save_folder() + '/' + name, filter=filter) except TypeError: - filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_tr("Save Gerber source file"), filter=filter) + filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Gerber source file"), filter=filter) filename = str(filename) if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL]Save Gerber source file cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Save Gerber source file cancelled.")) return else: self.save_source_file(name, filename) @@ -5592,12 +5586,12 @@ class App(QtCore.QObject): obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected. Please select an Excellon object to export.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected. Please select an Excellon object to export.")) return # Check for more compatible types and add as required if not isinstance(obj, FlatCAMExcellon): - self.inform.emit(_tr("[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files...")) + self.inform.emit(_("[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files...")) return name = self.collection.get_active().options["name"] @@ -5609,12 +5603,12 @@ class App(QtCore.QObject): directory=self.get_last_save_folder() + '/' + name, filter=filter) except TypeError: - filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_tr("Save Excellon source file"), filter=filter) + filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Excellon source file"), filter=filter) filename = str(filename) if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL]Saving Excellon source file cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Saving Excellon source file cancelled.")) return else: self.save_source_file(name, filename) @@ -5631,12 +5625,12 @@ class App(QtCore.QObject): obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected. Please Select an Excellon object to export.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an Excellon object to export.")) return # Check for more compatible types and add as required if not isinstance(obj, FlatCAMExcellon): - self.inform.emit(_tr("[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files...")) + self.inform.emit(_("[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files...")) return name = self.collection.get_active().options["name"] @@ -5648,12 +5642,12 @@ class App(QtCore.QObject): directory=self.get_last_save_folder() + '/' + name, filter=filter) except TypeError: - filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_tr("Export Excellon"), filter=filter) + filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Excellon"), filter=filter) filename = str(filename) if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL]Export Excellon cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Export Excellon cancelled.")) return else: self.export_excellon(name, filename) @@ -5670,8 +5664,8 @@ class App(QtCore.QObject): obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected.")) - msg = _tr("Please Select a Geometry object to export") + self.inform.emit(_("[WARNING_NOTCL] No object selected.")) + msg = _("Please Select a Geometry object to export") msgbox = QtWidgets.QMessageBox() msgbox.setInformativeText(msg) msgbox.setStandardButtons(QtWidgets.QMessageBox.Ok) @@ -5681,7 +5675,7 @@ class App(QtCore.QObject): # Check for more compatible types and add as required if not isinstance(obj, FlatCAMGeometry): - msg = _tr("[ERROR_NOTCL] Only Geometry objects can be used.") + msg = _("[ERROR_NOTCL] Only Geometry objects can be used.") msgbox = QtWidgets.QMessageBox() msgbox.setInformativeText(msg) msgbox.setStandardButtons(QtWidgets.QMessageBox.Ok) @@ -5698,12 +5692,12 @@ class App(QtCore.QObject): directory=self.get_last_save_folder() + '/' + name, filter=filter) except TypeError: - filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_tr("Export DXF"), filter=filter) + filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export DXF"), filter=filter) filename = str(filename) if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL] Export DXF cancelled.")) + self.inform.emit(_("[WARNING_NOTCL] Export DXF cancelled.")) return else: self.export_dxf(name, filename) @@ -5732,7 +5726,7 @@ class App(QtCore.QObject): filenames = [str(filename) for filename in filenames] if len(filenames) == 0: - self.inform.emit(_tr("[WARNING_NOTCL]Open SVG cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Open SVG cancelled.")) else: for filename in filenames: if filename != '': @@ -5751,10 +5745,10 @@ class App(QtCore.QObject): filter = "DXF File (*.DXF);;All Files (*.*)" try: - filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption=_tr("Import DXF"), + filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Import DXF"), directory=self.get_last_folder(), filter=filter) except TypeError: - filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption=_tr("Import DXF"), filter=filter) + filenames, _ = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Import DXF"), filter=filter) if type_of_obj is not "geometry" and type_of_obj is not "gerber": type_of_obj = "geometry" @@ -5762,7 +5756,7 @@ class App(QtCore.QObject): filenames = [str(filename) for filename in filenames] if len(filenames) == 0: - self.inform.emit(_tr("[WARNING_NOTCL]Open DXF cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Open DXF cancelled.")) else: for filename in filenames: if filename != '': @@ -5780,10 +5774,10 @@ class App(QtCore.QObject): App.log.debug("on_file_runscript()") _filter_ = "TCL script (*.TCL);;TCL script (*.TXT);;All Files (*.*)" try: - filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption=_tr("Open TCL script"), + filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open TCL script"), directory=self.get_last_folder(), filter=_filter_) except TypeError: - filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption=_tr("Open TCL script"), filter=_filter_) + filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open 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. @@ -5791,7 +5785,7 @@ class App(QtCore.QObject): filename = str(filename) if filename == "": - self.inform.emit(_tr("[WARNING_NOTCL]Open TCL script cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Open TCL script cancelled.")) else: try: with open(filename, "r") as tcl_script: @@ -5843,12 +5837,12 @@ class App(QtCore.QObject): directory=self.get_last_save_folder() + '/Project_' + self.date.replace('-', ''), filter=filter_) except TypeError: - filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_tr("Save Project As ..."), filter=filter_) + filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_("Save Project As ..."), filter=filter_) filename = str(filename) if filename == '': - self.inform.emit(_tr("[WARNING_NOTCL]Save Project cancelled.")) + self.inform.emit(_("[WARNING_NOTCL]Save Project cancelled.")) return try: @@ -5903,7 +5897,7 @@ class App(QtCore.QObject): # TODO: The return behavior has not been established... should raise exception? return "Could not retrieve object: %s" % obj_name - with self.proc_container.new(_tr("Exporting SVG")) as proc: + with self.proc_container.new(_("Exporting SVG")) as proc: exported_svg = obj.export_svg(scale_factor=scale_factor) # Determine bounding area for svg export @@ -5936,7 +5930,7 @@ class App(QtCore.QObject): fp.write(svgcode.toprettyxml()) self.file_saved.emit("SVG", filename) - self.inform.emit(_tr("[success] SVG file exported to %s") % filename) + self.inform.emit(_("[success] SVG file exported to %s") % filename) def export_svg_negative(self, obj_name, box_name, filename, boundary, scale_factor=0.00, use_thread=True): """ @@ -5967,7 +5961,7 @@ class App(QtCore.QObject): return "Could not retrieve object: %s" % box_name if box is None: - self.inform.emit(_tr("[WARNING_NOTCL]No object Box. Using instead %s") % obj) + self.inform.emit(_("[WARNING_NOTCL]No object Box. Using instead %s") % obj) box = obj def make_negative_film(): @@ -6041,10 +6035,10 @@ class App(QtCore.QObject): self.progress.emit(100) self.file_saved.emit("SVG", filename) - self.inform.emit(_tr("[success] SVG file exported to %s") % filename) + self.inform.emit(_("[success] SVG file exported to %s") % filename) if use_thread is True: - proc = self.proc_container.new(_tr("Generating Film ... Please wait.")) + proc = self.proc_container.new(_("Generating Film ... Please wait.")) def job_thread_film(app_obj): try: @@ -6087,7 +6081,7 @@ class App(QtCore.QObject): return "Could not retrieve object: %s" % box_name if box is None: - self.inform.emit(_tr("[WARNING_NOTCL]No object Box. Using instead %s") % obj) + self.inform.emit(_("[WARNING_NOTCL]No object Box. Using instead %s") % obj) box = obj def make_black_film(): @@ -6155,10 +6149,10 @@ class App(QtCore.QObject): self.progress.emit(100) self.file_saved.emit("SVG", filename) - self.inform.emit(_tr("[success] SVG file exported to %s") % filename) + self.inform.emit(_("[success] SVG file exported to %s") % filename) if use_thread is True: - proc = self.proc_container.new(_tr("Generating Film ... Please wait.")) + proc = self.proc_container.new(_("Generating Film ... Please wait.")) def job_thread_film(app_obj): try: @@ -6305,26 +6299,26 @@ class App(QtCore.QObject): fp.write(exported_excellon) self.file_saved.emit("Excellon", filename) - self.inform.emit(_tr("[success] Excellon file exported to %s") % filename) + self.inform.emit(_("[success] Excellon file exported to %s") % filename) 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(_tr("Exporting Excellon")) as proc: + with self.proc_container.new(_("Exporting Excellon")) as proc: def job_thread_exc(app_obj): ret = make_excellon() if ret == 'fail': - self.inform.emit(_tr('[ERROR_NOTCL] Could not export Excellon file.')) + self.inform.emit(_('[ERROR_NOTCL] Could not export Excellon file.')) return self.worker_task.emit({'fcn': job_thread_exc, 'params': [self]}) else: ret = make_excellon() if ret == 'fail': - self.inform.emit(_tr('[ERROR_NOTCL] Could not export Excellon file.')) + self.inform.emit(_('[ERROR_NOTCL] Could not export Excellon file.')) return def export_dxf(self, obj_name, filename, use_thread=True): @@ -6363,25 +6357,25 @@ class App(QtCore.QObject): dxf_code.saveas(filename) self.file_saved.emit("DXF", filename) - self.inform.emit(_tr("[success] DXF file exported to %s") % filename) + self.inform.emit(_("[success] DXF file exported to %s") % filename) except: return 'fail' if use_thread is True: - with self.proc_container.new(_tr("Exporting DXF")) as proc: + with self.proc_container.new(_("Exporting DXF")) as proc: def job_thread_exc(app_obj): ret = make_dxf() if ret == 'fail': - self.inform.emit(_tr('[[WARNING_NOTCL]] Could not export DXF file.')) + self.inform.emit(_('[[WARNING_NOTCL]] 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(_tr('[[WARNING_NOTCL]] Could not export DXF file.')) + self.inform.emit(_('[[WARNING_NOTCL]] Could not export DXF file.')) return def import_svg(self, filename, geo_type='geometry', outname=None): @@ -6401,7 +6395,7 @@ class App(QtCore.QObject): elif geo_type == "gerber": obj_type = geo_type else: - self.inform.emit(_tr("[ERROR_NOTCL] Not supported type is picked as parameter. " + self.inform.emit(_("[ERROR_NOTCL] Not supported type is picked as parameter. " "Only Geometry and Gerber are supported")) return @@ -6411,7 +6405,7 @@ class App(QtCore.QObject): geo_obj.import_svg(filename, obj_type, units=units) geo_obj.multigeo = False - with self.proc_container.new(_tr("Importing SVG")) as proc: + with self.proc_container.new(_("Importing SVG")) as proc: # Object name name = outname or filename.split('/')[-1].split('\\')[-1] @@ -6422,7 +6416,7 @@ class App(QtCore.QObject): self.file_opened.emit("svg", filename) # GUI feedback - self.inform.emit(_tr("[success] Opened: %s") % filename) + self.inform.emit(_("[success] Opened: %s") % filename) self.progress.emit(100) def import_dxf(self, filename, geo_type='geometry', outname=None): @@ -6443,7 +6437,7 @@ class App(QtCore.QObject): elif geo_type == "gerber": obj_type = geo_type else: - self.inform.emit(_tr("[ERROR_NOTCL] Not supported type is picked as parameter. " + self.inform.emit(_("[ERROR_NOTCL] Not supported type is picked as parameter. " "Only Geometry and Gerber are supported")) return @@ -6453,7 +6447,7 @@ class App(QtCore.QObject): geo_obj.import_dxf(filename, obj_type, units=units) geo_obj.multigeo = False - with self.proc_container.new(_tr("Importing DXF")) as proc: + with self.proc_container.new(_("Importing DXF")) as proc: # Object name name = outname or filename.split('/')[-1].split('\\')[-1] @@ -6464,7 +6458,7 @@ class App(QtCore.QObject): self.file_opened.emit("dxf", filename) # GUI feedback - self.inform.emit(_tr("[success] Opened: %s") % filename) + self.inform.emit(_("[success] Opened: %s") % filename) self.progress.emit(100) def import_image(self, filename, type='gerber', dpi=96, mode='black', mask=[250, 250, 250, 250], outname=None): @@ -6484,7 +6478,7 @@ class App(QtCore.QObject): elif type == "gerber": obj_type = type else: - self.inform.emit(_tr("[ERROR_NOTCL] Not supported type is picked as parameter. " + self.inform.emit(_("[ERROR_NOTCL] Not supported type is picked as parameter. " "Only Geometry and Gerber are supported")) return @@ -6492,7 +6486,7 @@ class App(QtCore.QObject): geo_obj.import_image(filename, units=units, dpi=dpi, mode=mode, mask=mask) geo_obj.multigeo = False - with self.proc_container.new(_tr("Importing Image")) as proc: + with self.proc_container.new(_("Importing Image")) as proc: # Object name name = outname or filename.split('/')[-1].split('\\')[-1] @@ -6504,7 +6498,7 @@ class App(QtCore.QObject): self.file_opened.emit("image", filename) # GUI feedback - self.inform.emit(_tr("[success] Opened: %s") % filename) + self.inform.emit(_("[success] Opened: %s") % filename) self.progress.emit(100) def open_gerber(self, filename, outname=None): @@ -6533,18 +6527,18 @@ class App(QtCore.QObject): try: gerber_obj.parse_file(filename) except IOError: - app_obj.inform.emit(_tr("[ERROR_NOTCL] Failed to open file: %s") % filename) + app_obj.inform.emit(_("[ERROR_NOTCL] Failed to open file: %s") % filename) app_obj.progress.emit(0) - self.inform.emit(_tr('[ERROR_NOTCL] Failed to open file: %s') % filename) + self.inform.emit(_('[ERROR_NOTCL] Failed to open file: %s') % filename) return "fail" except ParseError as err: - app_obj.inform.emit(_tr("[ERROR_NOTCL] Failed to parse file: %s. %s") % (filename, str(err))) + app_obj.inform.emit(_("[ERROR_NOTCL] Failed to parse file: %s. %s") % (filename, str(err))) app_obj.progress.emit(0) self.log.error(str(err)) return "fail" except: - msg = _tr("[ERROR] An internal error has ocurred. See shell.\n") + msg = _("[ERROR] An internal error has ocurred. See shell.\n") msg += traceback.format_exc() app_obj.inform.emit(msg) return "fail" @@ -6553,7 +6547,7 @@ class App(QtCore.QObject): # app_obj.inform.emit("[ERROR] No geometry found in file: " + filename) # self.collection.set_active(gerber_obj.options["name"]) # self.collection.delete_active() - self.inform.emit(_tr("[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation.")) + self.inform.emit(_("[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation.")) return "fail" # Further parsing @@ -6561,7 +6555,7 @@ class App(QtCore.QObject): App.log.debug("open_gerber()") - with self.proc_container.new(_tr("Opening Gerber")) as proc: + with self.proc_container.new(_("Opening Gerber")) as proc: self.progress.emit(10) @@ -6571,7 +6565,7 @@ class App(QtCore.QObject): ### Object creation ### ret = self.new_object("gerber", name, obj_init, autoselected=False) if ret == 'fail': - self.inform.emit(_tr('[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file.')) + self.inform.emit(_('[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file.')) return # Register recent file @@ -6580,7 +6574,7 @@ class App(QtCore.QObject): self.progress.emit(100) # GUI feedback - self.inform.emit(_tr("[success] Opened: %s") % filename) + self.inform.emit(_("[success] Opened: %s") % filename) def open_excellon(self, filename, outname=None): """ @@ -6606,15 +6600,15 @@ class App(QtCore.QObject): ret = excellon_obj.parse_file(filename) if ret == "fail": log.debug("Excellon parsing failed.") - self.inform.emit(_tr("[ERROR_NOTCL] This is not Excellon file.")) + self.inform.emit(_("[ERROR_NOTCL] This is not Excellon file.")) return "fail" except IOError: - app_obj.inform.emit(_tr("[ERROR_NOTCL] Cannot open file: %s") % filename) + app_obj.inform.emit(_("[ERROR_NOTCL] Cannot open file: %s") % filename) log.debug("Could not open Excellon object.") self.progress.emit(0) # TODO: self and app_bjj mixed return "fail" except: - msg = _tr("[ERROR_NOTCL] An internal error has occurred. See shell.\n") + msg = _("[ERROR_NOTCL] An internal error has occurred. See shell.\n") msg += traceback.format_exc() app_obj.inform.emit(msg) return "fail" @@ -6630,24 +6624,24 @@ class App(QtCore.QObject): for tool in excellon_obj.tools: if excellon_obj.tools[tool]['solid_geometry']: return - app_obj.inform.emit(_tr("[ERROR_NOTCL] No geometry found in file: %s") % filename) + app_obj.inform.emit(_("[ERROR_NOTCL] No geometry found in file: %s") % filename) return "fail" - with self.proc_container.new(_tr("Opening Excellon.")): + with self.proc_container.new(_("Opening Excellon.")): # Object name name = outname or filename.split('/')[-1].split('\\')[-1] ret = self.new_object("excellon", name, obj_init, autoselected=False) if ret == 'fail': - self.inform.emit(_tr('[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file.')) + self.inform.emit(_('[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file.')) return # Register recent file self.file_opened.emit("excellon", filename) # GUI feedback - self.inform.emit(_tr("[success] Opened: %s") % filename) + self.inform.emit(_("[success] Opened: %s") % filename) # self.progress.emit(100) def open_gcode(self, filename, outname=None): @@ -6679,7 +6673,7 @@ class App(QtCore.QObject): gcode = f.read() f.close() except IOError: - app_obj_.inform.emit(_tr("[ERROR_NOTCL] Failed to open %s") % filename) + app_obj_.inform.emit(_("[ERROR_NOTCL] Failed to open %s") % filename) self.progress.emit(0) return "fail" @@ -6689,13 +6683,13 @@ class App(QtCore.QObject): ret = job_obj.gcode_parse() if ret == "fail": - self.inform.emit(_tr("[ERROR_NOTCL] This is not GCODE")) + self.inform.emit(_("[ERROR_NOTCL] This is not GCODE")) return "fail" self.progress.emit(60) job_obj.create_geometry() - with self.proc_container.new(_tr("Opening G-Code.")): + with self.proc_container.new(_("Opening G-Code.")): # Object name name = outname or filename.split('/')[-1].split('\\')[-1] @@ -6703,7 +6697,7 @@ class App(QtCore.QObject): # New object creation and file processing ret = self.new_object("cncjob", name, obj_init, autoselected=False) if ret == 'fail': - self.inform.emit(_tr("[ERROR_NOTCL] Failed to create CNCJob Object. Probable not a GCode file.\n " + self.inform.emit(_("[ERROR_NOTCL] Failed to create CNCJob Object. Probable not a GCode file.\n " "Attempting to create a FlatCAM CNCJob Object from " "G-Code file failed during processing")) return "fail" @@ -6712,7 +6706,7 @@ class App(QtCore.QObject): self.file_opened.emit("cncjob", filename) # GUI feedback - self.inform.emit(_tr("[success] Opened: %s") % filename) + self.inform.emit(_("[success] Opened: %s") % filename) self.progress.emit(100) def open_config_file(self, filename, run_from_arg=None): @@ -6726,7 +6720,7 @@ class App(QtCore.QObject): App.log.debug("Opening config file: " + filename) # add the tab if it was closed - self.ui.plot_tab_area.addTab(self.ui.cncjob_tab, _tr("Code Editor")) + self.ui.plot_tab_area.addTab(self.ui.cncjob_tab, _("Code Editor")) # first clear previous text in text editor (if any) self.ui.code_editor.clear() @@ -6743,7 +6737,7 @@ class App(QtCore.QObject): f.close() except IOError: App.log.error("Failed to open config file: %s" % filename) - self.inform.emit(_tr("[ERROR_NOTCL] Failed to open config file: %s") % filename) + self.inform.emit(_("[ERROR_NOTCL] Failed to open config file: %s") % filename) return def open_project(self, filename, run_from_arg=None): @@ -6768,14 +6762,14 @@ class App(QtCore.QObject): f = open(filename, 'r') except IOError: App.log.error("Failed to open project file: %s" % filename) - self.inform.emit(_tr("[ERROR_NOTCL] Failed to open project file: %s") % filename) + self.inform.emit(_("[ERROR_NOTCL] Failed to open project file: %s") % filename) return try: d = json.load(f, object_hook=dict2obj) except: App.log.error("Failed to parse project file: %s" % filename) - self.inform.emit(_tr("[ERROR_NOTCL] Failed to parse project file: %s") % filename) + self.inform.emit(_("[ERROR_NOTCL] Failed to parse project file: %s") % filename) f.close() # Open and parse a compressed Project file @@ -6785,7 +6779,7 @@ class App(QtCore.QObject): d = json.loads(file_content, object_hook=dict2obj) except IOError: App.log.error("Failed to open project file: %s" % filename) - self.inform.emit(_tr("[ERROR_NOTCL] Failed to open project file: %s") % filename) + self.inform.emit(_("[ERROR_NOTCL] Failed to open project file: %s") % filename) return self.file_opened.emit("project", filename) @@ -6811,7 +6805,7 @@ class App(QtCore.QObject): App.log.debug(obj['kind'] + ": " + obj['options']['name']) self.new_object(obj['kind'], obj['options']['name'], obj_init, active=False, fit=False, plot=True) self.plot_all() - self.inform.emit(_tr("[success] Project loaded from: %s") % filename) + self.inform.emit(_("[success] Project loaded from: %s") % filename) self.should_we_save = False @@ -6941,9 +6935,9 @@ class App(QtCore.QObject): def shelp(p=None): if not p: - return _tr("Available commands:\n") + \ + return _("Available commands:\n") + \ '\n'.join([' ' + cmd for cmd in sorted(commands)]) + \ - _tr("\n\nType help for usage.\n Example: help open_gerber") + _("\n\nType help for usage.\n Example: help open_gerber") if p not in commands: return "Unknown command: %s" % p @@ -7091,7 +7085,7 @@ class App(QtCore.QObject): commands = { 'help': { 'fcn': shelp, - 'help': _tr("Shows list of commands.") + 'help': _("Shows list of commands.") }, } @@ -7144,14 +7138,14 @@ class App(QtCore.QObject): f = open(self.data_path + '/recent.json') except IOError: App.log.error("Failed to load recent item list.") - self.inform.emit(_tr("[ERROR_NOTCL] Failed to load recent item list.")) + self.inform.emit(_("[ERROR_NOTCL] Failed to load recent item list.")) return try: self.recent = json.load(f) except json.scanner.JSONDecodeError: App.log.error("Failed to parse recent item list.") - self.inform.emit(_tr("[ERROR_NOTCL] Failed to parse recent item list.")) + self.inform.emit(_("[ERROR_NOTCL] Failed to parse recent item list.")) f.close() return f.close() @@ -7212,14 +7206,14 @@ class App(QtCore.QObject): # label.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter) sel_title = QtWidgets.QTextEdit( - _tr('Shortcut Key List')) + _('Shortcut Key List')) sel_title.setTextInteractionFlags(QtCore.Qt.NoTextInteraction) sel_title.setFrameStyle(QtWidgets.QFrame.NoFrame) # font = self.sel_title.font() # font.setPointSize(12) # self.sel_title.setFont(font) - selected_text = _tr(''' + selected_text = _('''

Selected Tab - Choose an Item from Project Tab

Details:
@@ -7323,14 +7317,14 @@ The normal flow when working in FlatCAM is the following:

except: # App.log.warning("Failed checking for latest version. Could not connect.") self.log.warning("Failed checking for latest version. Could not connect.") - self.inform.emit(_tr("[WARNING_NOTCL] Failed checking for latest version. Could not connect.")) + self.inform.emit(_("[WARNING_NOTCL] Failed checking for latest version. Could not connect.")) return try: data = json.load(f) except Exception as e: App.log.error("Could not parse information about latest version.") - self.inform.emit(_tr("[ERROR_NOTCL] Could not parse information about latest version.")) + self.inform.emit(_("[ERROR_NOTCL] Could not parse information about latest version.")) App.log.debug("json.load(): %s" % str(e)) f.close() return @@ -7340,13 +7334,13 @@ The normal flow when working in FlatCAM is the following:

### Latest version? if self.version >= data["version"]: App.log.debug("FlatCAM is up to date!") - self.inform.emit(_tr("[success] FlatCAM is up to date!")) + self.inform.emit(_("[success] FlatCAM is up to date!")) return App.log.debug("Newer version available.") self.message.emit( - _tr("Newer Version Available"), - _tr("There is a newer version of FlatCAM available for download:

%s
%s" % ( + _("Newer Version Available"), + _("There is a newer version of FlatCAM available for download:

%s
%s" % ( str(data["name"]), str(data["message"])) ), "info" @@ -7368,19 +7362,19 @@ The normal flow when working in FlatCAM is the following:

self.report_usage("disable_all_plots()") self.disable_plots(self.collection.get_list()) - self.inform.emit(_tr("[success]All plots disabled.")) + self.inform.emit(_("[success]All plots disabled.")) def disable_other_plots(self): self.report_usage("disable_other_plots()") self.disable_plots(self.collection.get_non_selected()) - self.inform.emit(_tr("[success]All non selected plots disabled.")) + self.inform.emit(_("[success]All non selected plots disabled.")) def enable_all_plots(self): self.report_usage("enable_all_plots()") self.enable_plots(self.collection.get_list()) - self.inform.emit(_tr("[success]All plots enabled.")) + self.inform.emit(_("[success]All plots enabled.")) # TODO: FIX THIS ''' @@ -7490,7 +7484,7 @@ The normal flow when working in FlatCAM is the following:

""" self.log.debug("save_project()") - with self.proc_container.new(_tr("Saving FlatCAM Project")) as proc: + with self.proc_container.new(_("Saving FlatCAM Project")) as proc: ## Capture the latest changes # Current object try: @@ -7511,7 +7505,7 @@ The normal flow when working in FlatCAM is the following:

g = json.dumps(d, default=to_dict, indent=2, sort_keys=True).encode('utf-8') # # Write f.write(g) - self.inform.emit(_tr("[success] Project saved to: %s") % filename) + self.inform.emit(_("[success] Project saved to: %s") % filename) else: # Open file try: @@ -7529,22 +7523,22 @@ The normal flow when working in FlatCAM is the following:

try: saved_f = open(filename, 'r') except IOError: - self.inform.emit(_tr("[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it.") % filename) + self.inform.emit(_("[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it.") % filename) return try: saved_d = json.load(saved_f, object_hook=dict2obj) except: self.inform.emit( - _tr("[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it.") % filename) + _("[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it.") % filename) f.close() return saved_f.close() if 'version' in saved_d: - self.inform.emit(_tr("[success] Project saved to: %s") % filename) + self.inform.emit(_("[success] Project saved to: %s") % filename) else: - self.inform.emit(_tr("[ERROR_NOTCL] Failed to save project file: %s. Retry to save it.") % filename) + self.inform.emit(_("[ERROR_NOTCL] Failed to save project file: %s. Retry to save it.") % filename) def on_options_app2project(self): """ @@ -7587,7 +7581,7 @@ The normal flow when working in FlatCAM is the following:

self.options_read_form() obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected.")) return for option in self.options: if option.find(obj.kind + "_") == 0: @@ -7607,7 +7601,7 @@ The normal flow when working in FlatCAM is the following:

obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected.")) return obj.read_form() for option in obj.options: @@ -7628,7 +7622,7 @@ The normal flow when working in FlatCAM is the following:

obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected.")) return obj.read_form() for option in obj.options: @@ -7650,7 +7644,7 @@ The normal flow when working in FlatCAM is the following:

self.defaults_read_form() obj = self.collection.get_active() if obj is None: - self.inform.emit(_tr("[WARNING_NOTCL] No object selected.")) + self.inform.emit(_("[WARNING_NOTCL] No object selected.")) return for option in self.defaults: if option.find(obj.kind + "_") == 0: diff --git a/FlatCAMEditor.py b/FlatCAMEditor.py index 3c1b4dc5..74d10daa 100644 --- a/FlatCAMEditor.py +++ b/FlatCAMEditor.py @@ -38,13 +38,6 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('FlatCAMEditor') -def _tr(text): - try: - return _(text) - except: - return text - - class BufferSelectionTool(FlatCAMTool): """ Simple input for buffer distance. @@ -82,33 +75,33 @@ class BufferSelectionTool(FlatCAMTool): # Buffer distance self.buffer_distance_entry = FCEntry() - form_layout.addRow(_tr("Buffer distance:"), self.buffer_distance_entry) - self.buffer_corner_lbl = QtWidgets.QLabel(_tr("Buffer corner:")) + form_layout.addRow(_("Buffer distance:"), self.buffer_distance_entry) + self.buffer_corner_lbl = QtWidgets.QLabel(_("Buffer corner:")) self.buffer_corner_lbl.setToolTip( - _tr("There are 3 types of corners:\n" + _("There are 3 types of corners:\n" " - 'Round': the corner is rounded for exterior buffer.\n" " - 'Square:' the corner is met in a sharp angle for exterior buffer.\n" " - 'Beveled:' the corner is a line that directly connects the features meeting in the corner") ) self.buffer_corner_cb = FCComboBox() - self.buffer_corner_cb.addItem(_tr("Round")) - self.buffer_corner_cb.addItem(_tr("Square")) - self.buffer_corner_cb.addItem(_tr("Beveled")) + self.buffer_corner_cb.addItem(_("Round")) + self.buffer_corner_cb.addItem(_("Square")) + self.buffer_corner_cb.addItem(_("Beveled")) form_layout.addRow(self.buffer_corner_lbl, self.buffer_corner_cb) # Buttons hlay = QtWidgets.QHBoxLayout() self.buffer_tools_box.addLayout(hlay) - self.buffer_int_button = QtWidgets.QPushButton(_tr("Buffer Interior")) + self.buffer_int_button = QtWidgets.QPushButton(_("Buffer Interior")) hlay.addWidget(self.buffer_int_button) - self.buffer_ext_button = QtWidgets.QPushButton(_tr("Buffer Exterior")) + self.buffer_ext_button = QtWidgets.QPushButton(_("Buffer Exterior")) hlay.addWidget(self.buffer_ext_button) hlay1 = QtWidgets.QHBoxLayout() self.buffer_tools_box.addLayout(hlay1) - self.buffer_button = QtWidgets.QPushButton(_tr("Full Buffer")) + self.buffer_button = QtWidgets.QPushButton(_("Full Buffer")) hlay1.addWidget(self.buffer_button) self.layout.addStretch() @@ -129,7 +122,7 @@ class BufferSelectionTool(FlatCAMTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - self.app.ui.notebook.setTabText(2, _tr("Buffer Tool")) + self.app.ui.notebook.setTabText(2, _("Buffer Tool")) def on_buffer(self): try: @@ -140,7 +133,7 @@ class BufferSelectionTool(FlatCAMTool): buffer_distance = float(self.buffer_distance_entry.get_value().replace(',', '.')) self.buffer_distance_entry.set_value(buffer_distance) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " "Add it and retry.")) return # the cb index start from 0 but the join styles for the buffer start from 1 therefore the adjustment @@ -157,7 +150,7 @@ class BufferSelectionTool(FlatCAMTool): buffer_distance = float(self.buffer_distance_entry.get_value().replace(',', '.')) self.buffer_distance_entry.set_value(buffer_distance) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " "Add it and retry.")) return # the cb index start from 0 but the join styles for the buffer start from 1 therefore the adjustment @@ -174,7 +167,7 @@ class BufferSelectionTool(FlatCAMTool): buffer_distance = float(self.buffer_distance_entry.get_value().replace(',', '.')) self.buffer_distance_entry.set_value(buffer_distance) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " "Add it and retry.")) return # the cb index start from 0 but the join styles for the buffer start from 1 therefore the adjustment @@ -422,9 +415,9 @@ class PaintOptionsTool(FlatCAMTool): self.layout.addLayout(grid) # Tool dia - ptdlabel = QtWidgets.QLabel(_tr('Tool dia:')) + ptdlabel = QtWidgets.QLabel(_('Tool dia:')) ptdlabel.setToolTip( - _tr( "Diameter of the tool to\n" + _( "Diameter of the tool to\n" "be used in the operation.") ) grid.addWidget(ptdlabel, 0, 0) @@ -433,9 +426,9 @@ class PaintOptionsTool(FlatCAMTool): grid.addWidget(self.painttooldia_entry, 0, 1) # Overlap - ovlabel = QtWidgets.QLabel(_tr('Overlap:')) + ovlabel = QtWidgets.QLabel(_('Overlap:')) ovlabel.setToolTip( - _tr("How much (fraction) of the tool width to overlap each tool pass.\n" + _("How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" "A value here of 0.25 means 25% from the tool diameter found above.\n\n" "Adjust the value starting with lower values\n" @@ -451,9 +444,9 @@ class PaintOptionsTool(FlatCAMTool): grid.addWidget(self.paintoverlap_entry, 1, 1) # Margin - marginlabel = QtWidgets.QLabel(_tr('Margin:')) + marginlabel = QtWidgets.QLabel(_('Margin:')) marginlabel.setToolTip( - _tr( "Distance by which to avoid\n" + _( "Distance by which to avoid\n" "the edges of the polygon to\n" "be painted.") ) @@ -462,33 +455,33 @@ class PaintOptionsTool(FlatCAMTool): grid.addWidget(self.paintmargin_entry, 2, 1) # Method - methodlabel = QtWidgets.QLabel(_tr('Method:')) + methodlabel = QtWidgets.QLabel(_('Method:')) methodlabel.setToolTip( - _tr("Algorithm to paint the polygon:
" + _("Algorithm to paint the polygon:
" "Standard: Fixed step inwards.
" "Seed-based: Outwards from seed.") ) grid.addWidget(methodlabel, 3, 0) self.paintmethod_combo = RadioSet([ - {"label": _tr("Standard"), "value": "standard"}, - {"label": _tr("Seed-based"), "value": "seed"}, - {"label": _tr("Straight lines"), "value": "lines"} + {"label": _("Standard"), "value": "standard"}, + {"label": _("Seed-based"), "value": "seed"}, + {"label": _("Straight lines"), "value": "lines"} ], orientation='vertical', stretch=False) grid.addWidget(self.paintmethod_combo, 3, 1) # Connect lines - pathconnectlabel = QtWidgets.QLabel(_tr("Connect:")) + pathconnectlabel = QtWidgets.QLabel(_("Connect:")) pathconnectlabel.setToolTip( - _tr( "Draw lines between resulting\n" + _( "Draw lines between resulting\n" "segments to minimize tool lifts.") ) grid.addWidget(pathconnectlabel, 4, 0) self.pathconnect_cb = FCCheckBox() grid.addWidget(self.pathconnect_cb, 4, 1) - contourlabel = QtWidgets.QLabel(_tr("Contour:")) + contourlabel = QtWidgets.QLabel(_("Contour:")) contourlabel.setToolTip( - _tr("Cut around the perimeter of the polygon\n" + _("Cut around the perimeter of the polygon\n" "to trim rough edges.") ) grid.addWidget(contourlabel, 5, 0) @@ -500,7 +493,7 @@ class PaintOptionsTool(FlatCAMTool): hlay = QtWidgets.QHBoxLayout() self.layout.addLayout(hlay) hlay.addStretch() - self.paint_button = QtWidgets.QPushButton(_tr("Paint")) + self.paint_button = QtWidgets.QPushButton(_("Paint")) hlay.addWidget(self.paint_button) self.layout.addStretch() @@ -518,7 +511,7 @@ class PaintOptionsTool(FlatCAMTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - self.app.ui.notebook.setTabText(2, _tr("Paint Tool")) + self.app.ui.notebook.setTabText(2, _("Paint Tool")) def set_tool_ui(self): ## Init GUI @@ -554,7 +547,7 @@ class PaintOptionsTool(FlatCAMTool): def on_paint(self): if not self.fcdraw.selected: - self.app.inform.emit(_tr("[WARNING_NOTCL] Paint cancelled. No shape selected.")) + self.app.inform.emit(_("[WARNING_NOTCL] Paint cancelled. No shape selected.")) return try: @@ -565,7 +558,7 @@ class PaintOptionsTool(FlatCAMTool): tooldia = float(self.painttooldia_entry.get_value().replace(',', '.')) self.painttooldia_entry.set_value(tooldia) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " "Add it and retry.")) return try: @@ -576,7 +569,7 @@ class PaintOptionsTool(FlatCAMTool): overlap = float(self.paintoverlap_entry.get_value().replace(',', '.')) self.paintoverlap_entry.set_value(overlap) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Overlap value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Overlap value is missing or wrong format. " "Add it and retry.")) return @@ -588,7 +581,7 @@ class PaintOptionsTool(FlatCAMTool): margin = float(self.paintmargin_entry.get_value().replace(',', '.')) self.paintmargin_entry.set_value(margin) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Margin distance value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Margin distance value is missing or wrong format. " "Add it and retry.")) return method = self.paintmethod_combo.get_value() @@ -597,7 +590,7 @@ class PaintOptionsTool(FlatCAMTool): self.fcdraw.paint(tooldia, overlap, margin, connect=connect, contour=contour, method=method) self.fcdraw.select_tool("select") - self.app.ui.notebook.setTabText(2, _tr("Tools")) + self.app.ui.notebook.setTabText(2, _("Tools")) self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) self.app.ui.splitter.setSizes([0, 1]) @@ -608,12 +601,12 @@ class TransformEditorTool(FlatCAMTool): Inputs to specify how to paint the selected polygons. """ - toolName = _tr("Transform Tool") - rotateName = _tr("Rotate") - skewName = _tr("Skew/Shear") - scaleName = _tr("Scale") - flipName = _tr("Mirror (Flip)") - offsetName = _tr("Offset") + toolName = _("Transform Tool") + rotateName = _("Rotate") + skewName = _("Skew/Shear") + scaleName = _("Scale") + flipName = _("Mirror (Flip)") + offsetName = _("Offset") def __init__(self, app, draw_app): FlatCAMTool.__init__(self, app) @@ -624,7 +617,7 @@ class TransformEditorTool(FlatCAMTool): self.transform_lay = QtWidgets.QVBoxLayout() self.layout.addLayout(self.transform_lay) ## Title - title_label = QtWidgets.QLabel("%s" % (_tr('Editor %s') % self.toolName)) + title_label = QtWidgets.QLabel("%s" % (_('Editor %s') % self.toolName)) title_label.setStyleSheet(""" QLabel { @@ -656,9 +649,9 @@ class TransformEditorTool(FlatCAMTool): self.transform_lay.addLayout(form_layout) form_child = QtWidgets.QHBoxLayout() - self.rotate_label = QtWidgets.QLabel(_tr("Angle:")) + self.rotate_label = QtWidgets.QLabel(_("Angle:")) self.rotate_label.setToolTip( - _tr( "Angle for Rotation action, in degrees.\n" + _( "Angle for Rotation action, in degrees.\n" "Float number between -360 and 359.\n" "Positive numbers for CW motion.\n" "Negative numbers for CCW motion.") @@ -670,9 +663,9 @@ class TransformEditorTool(FlatCAMTool): self.rotate_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.rotate_button = FCButton() - self.rotate_button.set_value(_tr("Rotate")) + self.rotate_button.set_value(_("Rotate")) self.rotate_button.setToolTip( - _tr("Rotate the selected shape(s).\n" + _("Rotate the selected shape(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected shapes.") ) @@ -695,9 +688,9 @@ class TransformEditorTool(FlatCAMTool): form1_child_1 = QtWidgets.QHBoxLayout() form1_child_2 = QtWidgets.QHBoxLayout() - self.skewx_label = QtWidgets.QLabel(_tr("Angle X:")) + self.skewx_label = QtWidgets.QLabel(_("Angle X:")) self.skewx_label.setToolTip( - _tr( "Angle for Skew action, in degrees.\n" + _( "Angle for Skew action, in degrees.\n" "Float number between -360 and 359.") ) self.skewx_label.setFixedWidth(50) @@ -706,16 +699,16 @@ class TransformEditorTool(FlatCAMTool): # self.skewx_entry.setFixedWidth(60) self.skewx_button = FCButton() - self.skewx_button.set_value(_tr("Skew X")) + self.skewx_button.set_value(_("Skew X")) self.skewx_button.setToolTip( - _tr( "Skew/shear the selected shape(s).\n" + _( "Skew/shear the selected shape(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected shapes.")) self.skewx_button.setFixedWidth(60) - self.skewy_label = QtWidgets.QLabel(_tr("Angle Y:")) + self.skewy_label = QtWidgets.QLabel(_("Angle Y:")) self.skewy_label.setToolTip( - _tr( "Angle for Skew action, in degrees.\n" + _( "Angle for Skew action, in degrees.\n" "Float number between -360 and 359.") ) self.skewy_label.setFixedWidth(50) @@ -724,9 +717,9 @@ class TransformEditorTool(FlatCAMTool): # self.skewy_entry.setFixedWidth(60) self.skewy_button = FCButton() - self.skewy_button.set_value(_tr("Skew Y")) + self.skewy_button.set_value(_("Skew Y")) self.skewy_button.setToolTip( - _tr("Skew/shear the selected shape(s).\n" + _("Skew/shear the selected shape(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected shapes.")) self.skewy_button.setFixedWidth(60) @@ -752,9 +745,9 @@ class TransformEditorTool(FlatCAMTool): form2_child_1 = QtWidgets.QHBoxLayout() form2_child_2 = QtWidgets.QHBoxLayout() - self.scalex_label = QtWidgets.QLabel(_tr("Factor X:")) + self.scalex_label = QtWidgets.QLabel(_("Factor X:")) self.scalex_label.setToolTip( - _tr("Factor for Scale action over X axis.") + _("Factor for Scale action over X axis.") ) self.scalex_label.setFixedWidth(50) self.scalex_entry = FCEntry() @@ -762,16 +755,16 @@ class TransformEditorTool(FlatCAMTool): # self.scalex_entry.setFixedWidth(60) self.scalex_button = FCButton() - self.scalex_button.set_value(_tr("Scale X")) + self.scalex_button.set_value(_("Scale X")) self.scalex_button.setToolTip( - _tr( "Scale the selected shape(s).\n" + _( "Scale the selected shape(s).\n" "The point of reference depends on \n" "the Scale reference checkbox state.")) self.scalex_button.setFixedWidth(60) - self.scaley_label = QtWidgets.QLabel(_tr("Factor Y:")) + self.scaley_label = QtWidgets.QLabel(_("Factor Y:")) self.scaley_label.setToolTip( - _tr("Factor for Scale action over Y axis.") + _("Factor for Scale action over Y axis.") ) self.scaley_label.setFixedWidth(50) self.scaley_entry = FCEntry() @@ -779,26 +772,26 @@ class TransformEditorTool(FlatCAMTool): # self.scaley_entry.setFixedWidth(60) self.scaley_button = FCButton() - self.scaley_button.set_value(_tr("Scale Y")) + self.scaley_button.set_value(_("Scale Y")) self.scaley_button.setToolTip( - _tr( "Scale the selected shape(s).\n" + _( "Scale the selected shape(s).\n" "The point of reference depends on \n" "the Scale reference checkbox state.")) self.scaley_button.setFixedWidth(60) self.scale_link_cb = FCCheckBox() self.scale_link_cb.set_value(True) - self.scale_link_cb.setText(_tr("Link")) + self.scale_link_cb.setText(_("Link")) self.scale_link_cb.setToolTip( - _tr("Scale the selected shape(s)\n" + _("Scale the selected shape(s)\n" "using the Scale Factor X for both axis.")) self.scale_link_cb.setFixedWidth(50) self.scale_zero_ref_cb = FCCheckBox() self.scale_zero_ref_cb.set_value(True) - self.scale_zero_ref_cb.setText(_tr("Scale Reference")) + self.scale_zero_ref_cb.setText(_("Scale Reference")) self.scale_zero_ref_cb.setToolTip( - _tr("Scale the selected shape(s)\n" + _("Scale the selected shape(s)\n" "using the origin reference when checked,\n" "and the center of the biggest bounding box\n" "of the selected shapes when unchecked.")) @@ -826,9 +819,9 @@ class TransformEditorTool(FlatCAMTool): form3_child_1 = QtWidgets.QHBoxLayout() form3_child_2 = QtWidgets.QHBoxLayout() - self.offx_label = QtWidgets.QLabel(_tr("Value X:")) + self.offx_label = QtWidgets.QLabel(_("Value X:")) self.offx_label.setToolTip( - _tr("Value for Offset action on X axis.") + _("Value for Offset action on X axis.") ) self.offx_label.setFixedWidth(50) self.offx_entry = FCEntry() @@ -836,17 +829,17 @@ class TransformEditorTool(FlatCAMTool): # self.offx_entry.setFixedWidth(60) self.offx_button = FCButton() - self.offx_button.set_value(_tr("Offset X")) + self.offx_button.set_value(_("Offset X")) self.offx_button.setToolTip( - _tr( "Offset the selected shape(s).\n" + _( "Offset the selected shape(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected shapes.\n") ) self.offx_button.setFixedWidth(60) - self.offy_label = QtWidgets.QLabel(_tr("Value Y:")) + self.offy_label = QtWidgets.QLabel(_("Value Y:")) self.offy_label.setToolTip( - _tr("Value for Offset action on Y axis.") + _("Value for Offset action on Y axis.") ) self.offy_label.setFixedWidth(50) self.offy_entry = FCEntry() @@ -854,9 +847,9 @@ class TransformEditorTool(FlatCAMTool): # self.offy_entry.setFixedWidth(60) self.offy_button = FCButton() - self.offy_button.set_value(_tr("Offset Y")) + self.offy_button.set_value(_("Offset Y")) self.offy_button.setToolTip( - _tr("Offset the selected shape(s).\n" + _("Offset the selected shape(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected shapes.\n") ) @@ -885,26 +878,26 @@ class TransformEditorTool(FlatCAMTool): form4_child_1 = QtWidgets.QHBoxLayout() self.flipx_button = FCButton() - self.flipx_button.set_value(_tr("Flip on X")) + self.flipx_button.set_value(_("Flip on X")) self.flipx_button.setToolTip( - _tr("Flip the selected shape(s) over the X axis.\n" + _("Flip the selected shape(s) over the X axis.\n" "Does not create a new shape.") ) self.flipx_button.setFixedWidth(60) self.flipy_button = FCButton() - self.flipy_button.set_value(_tr("Flip on Y")) + self.flipy_button.set_value(_("Flip on Y")) self.flipy_button.setToolTip( - _tr("Flip the selected shape(s) over the X axis.\n" + _("Flip the selected shape(s) over the X axis.\n" "Does not create a new shape.") ) self.flipy_button.setFixedWidth(60) self.flip_ref_cb = FCCheckBox() self.flip_ref_cb.set_value(True) - self.flip_ref_cb.setText(_tr("Ref Pt")) + self.flip_ref_cb.setText(_("Ref Pt")) self.flip_ref_cb.setToolTip( - _tr("Flip the selected shape(s)\n" + _("Flip the selected shape(s)\n" "around the point in Point Entry Field.\n" "\n" "The point coordinates can be captured by\n" @@ -916,9 +909,9 @@ class TransformEditorTool(FlatCAMTool): ) self.flip_ref_cb.setFixedWidth(50) - self.flip_ref_label = QtWidgets.QLabel(_tr("Point:")) + self.flip_ref_label = QtWidgets.QLabel(_("Point:")) self.flip_ref_label.setToolTip( - _tr("Coordinates in format (x, y) used as reference for mirroring.\n" + _("Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" "the 'y' in (x, y) will be used when using Flip on Y.") ) @@ -928,9 +921,9 @@ class TransformEditorTool(FlatCAMTool): # self.flip_ref_entry.setFixedWidth(60) self.flip_ref_button = FCButton() - self.flip_ref_button.set_value(_tr("Add")) + self.flip_ref_button.set_value(_("Add")) self.flip_ref_button.setToolTip( - _tr( "The point coordinates can be captured by\n" + _( "The point coordinates can be captured by\n" "left click on canvas together with pressing\n" "SHIFT key. Then click Add button to insert.") ) @@ -981,7 +974,7 @@ class TransformEditorTool(FlatCAMTool): if self.app.ui.splitter.sizes()[0] == 0: self.app.ui.splitter.setSizes([1, 1]) - self.app.ui.notebook.setTabText(2, _tr("Transform Tool")) + self.app.ui.notebook.setTabText(2, _("Transform Tool")) def install(self, icon=None, separator=None, **kwargs): FlatCAMTool.install(self, icon, separator, shortcut='ALT+T', **kwargs) @@ -1045,7 +1038,7 @@ class TransformEditorTool(FlatCAMTool): def template(self): if not self.fcdraw.selected: - self.app.inform.emit(_tr("[WARNING_NOTCL] Transformation cancelled. No shape selected.")) + self.app.inform.emit(_("[WARNING_NOTCL] Transformation cancelled. No shape selected.")) return @@ -1066,7 +1059,7 @@ class TransformEditorTool(FlatCAMTool): try: value = float(self.rotate_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Rotate, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Rotate, " "use a number.")) return self.app.worker_task.emit({'fcn': self.on_rotate_action, @@ -1103,7 +1096,7 @@ class TransformEditorTool(FlatCAMTool): try: value = float(self.skewx_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Skew X, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Skew X, " "use a number.")) return @@ -1124,7 +1117,7 @@ class TransformEditorTool(FlatCAMTool): try: value = float(self.skewy_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Skew Y, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Skew Y, " "use a number.")) return @@ -1145,7 +1138,7 @@ class TransformEditorTool(FlatCAMTool): try: xvalue = float(self.scalex_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Scale X, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Scale X, " "use a number.")) return @@ -1182,7 +1175,7 @@ class TransformEditorTool(FlatCAMTool): try: yvalue = float(self.scaley_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Scale Y, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Scale Y, " "use a number.")) return @@ -1214,7 +1207,7 @@ class TransformEditorTool(FlatCAMTool): try: value = float(self.offx_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Offset X, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Offset X, " "use a number.")) return @@ -1235,7 +1228,7 @@ class TransformEditorTool(FlatCAMTool): try: value = float(self.offy_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Offset Y, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Offset Y, " "use a number.")) return @@ -1253,10 +1246,10 @@ class TransformEditorTool(FlatCAMTool): ymaxlist = [] if not shape_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!")) + self.app.inform.emit(_("[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!")) return else: - with self.app.proc_container.new(_tr("Appying Rotate")): + with self.app.proc_container.new(_("Appying Rotate")): try: # first get a bounding box to fit all for sha in shape_list: @@ -1284,12 +1277,12 @@ class TransformEditorTool(FlatCAMTool): # self.draw_app.transform_complete.emit() - self.app.inform.emit(_tr("[success] Done. Rotate completed.")) + self.app.inform.emit(_("[success] Done. Rotate completed.")) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_tr("[ERROR_NOTCL] Due of %s, rotation movement was not executed.") % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, rotation movement was not executed.") % str(e)) return def on_flip(self, axis): @@ -1300,10 +1293,10 @@ class TransformEditorTool(FlatCAMTool): ymaxlist = [] if not shape_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No shape selected. Please Select a shape to flip!")) + self.app.inform.emit(_("[WARNING_NOTCL] No shape selected. Please Select a shape to flip!")) return else: - with self.app.proc_container.new(_tr("Applying Flip")): + with self.app.proc_container.new(_("Applying Flip")): try: # get mirroring coords from the point entry if self.flip_ref_cb.isChecked(): @@ -1333,10 +1326,10 @@ class TransformEditorTool(FlatCAMTool): for sha in shape_list: if axis is 'X': sha.mirror('X', (px, py)) - self.app.inform.emit(_tr('[success] Flip on the Y axis done ...')) + self.app.inform.emit(_('[success] Flip on the Y axis done ...')) elif axis is 'Y': sha.mirror('Y', (px, py)) - self.app.inform.emit(_tr('[success] Flip on the X axis done ...')) + self.app.inform.emit(_('[success] Flip on the X axis done ...')) self.draw_app.replot() # self.draw_app.add_shape(DrawToolShape(sha.geo)) @@ -1346,7 +1339,7 @@ class TransformEditorTool(FlatCAMTool): self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_tr("[ERROR_NOTCL] Due of %s, Flip action was not executed.") % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Flip action was not executed.") % str(e)) return def on_skew(self, axis, num): @@ -1355,10 +1348,10 @@ class TransformEditorTool(FlatCAMTool): yminlist = [] if not shape_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!")) + self.app.inform.emit(_("[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!")) return else: - with self.app.proc_container.new(_tr("Applying Skew")): + with self.app.proc_container.new(_("Applying Skew")): try: # first get a bounding box to fit all for sha in shape_list: @@ -1383,11 +1376,11 @@ class TransformEditorTool(FlatCAMTool): # # self.draw_app.transform_complete.emit() - self.app.inform.emit(_tr('[success] Skew on the %s axis done ...') % str(axis)) + self.app.inform.emit(_('[success] Skew on the %s axis done ...') % str(axis)) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_tr("[ERROR_NOTCL] Due of %s, Skew action was not executed.") % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Skew action was not executed.") % str(e)) return def on_scale(self, axis, xfactor, yfactor, point=None): @@ -1398,10 +1391,10 @@ class TransformEditorTool(FlatCAMTool): ymaxlist = [] if not shape_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No shape selected. Please Select a shape to scale!")) + self.app.inform.emit(_("[WARNING_NOTCL] No shape selected. Please Select a shape to scale!")) return else: - with self.app.proc_container.new(_tr("Applying Scale")): + with self.app.proc_container.new(_("Applying Scale")): try: # first get a bounding box to fit all for sha in shape_list: @@ -1434,10 +1427,10 @@ class TransformEditorTool(FlatCAMTool): # # self.draw_app.transform_complete.emit() - self.app.inform.emit(_tr('[success] Scale on the %s axis done ...') % str(axis)) + self.app.inform.emit(_('[success] Scale on the %s axis done ...') % str(axis)) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_tr("[ERROR_NOTCL] Due of %s, Scale action was not executed.") % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Scale action was not executed.") % str(e)) return def on_offset(self, axis, num): @@ -1446,10 +1439,10 @@ class TransformEditorTool(FlatCAMTool): yminlist = [] if not shape_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No shape selected. Please Select a shape to offset!")) + self.app.inform.emit(_("[WARNING_NOTCL] No shape selected. Please Select a shape to offset!")) return else: - with self.app.proc_container.new(_tr("Applying Offset")): + with self.app.proc_container.new(_("Applying Offset")): try: # first get a bounding box to fit all for sha in shape_list: @@ -1473,16 +1466,16 @@ class TransformEditorTool(FlatCAMTool): # # self.draw_app.transform_complete.emit() - self.app.inform.emit(_tr('[success] Offset on the %s axis done ...') % str(axis)) + self.app.inform.emit(_('[success] Offset on the %s axis done ...') % str(axis)) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_tr("[ERROR_NOTCL] Due of %s, Offset action was not executed.") % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Offset action was not executed.") % str(e)) return def on_rotate_key(self): - val_box = FCInputDialog(title=_tr("Rotate ..."), - text=_tr('Enter an Angle Value (degrees):'), + val_box = FCInputDialog(title=_("Rotate ..."), + text=_('Enter an Angle Value (degrees):'), min=-359.9999, max=360.0000, decimals=4, init_val=float(self.app.defaults['tools_transform_rotate'])) val_box.setWindowIcon(QtGui.QIcon('share/rotate.png')) @@ -1491,19 +1484,19 @@ class TransformEditorTool(FlatCAMTool): if ok: self.on_rotate(val=val) self.app.inform.emit( - _tr("[success] Geometry shape rotate done...") + _("[success] Geometry shape rotate done...") ) return else: self.app.inform.emit( - _tr("[WARNING_NOTCL] Geometry shape rotate cancelled...") + _("[WARNING_NOTCL] Geometry shape rotate cancelled...") ) def on_offx_key(self): units = self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().lower() - val_box = FCInputDialog(title=_tr("Offset on X axis ..."), - text=(_tr('Enter a distance Value (%s):') % str(units)), + val_box = FCInputDialog(title=_("Offset on X axis ..."), + text=(_('Enter a distance Value (%s):') % str(units)), min=-9999.9999, max=10000.0000, decimals=4, init_val=float(self.app.defaults['tools_transform_offset_x'])) val_box.setWindowIcon(QtGui.QIcon('share/offsetx32.png')) @@ -1512,17 +1505,17 @@ class TransformEditorTool(FlatCAMTool): if ok: self.on_offx(val=val) self.app.inform.emit( - _tr("[success] Geometry shape offset on X axis done...")) + _("[success] Geometry shape offset on X axis done...")) return else: self.app.inform.emit( - _tr("[WARNING_NOTCL] Geometry shape offset X cancelled...")) + _("[WARNING_NOTCL] Geometry shape offset X cancelled...")) def on_offy_key(self): units = self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().lower() - val_box = FCInputDialog(title=_tr("Offset on Y axis ..."), - text=(_tr('Enter a distance Value (%s):') % str(units)), + val_box = FCInputDialog(title=_("Offset on Y axis ..."), + text=(_('Enter a distance Value (%s):') % str(units)), min=-9999.9999, max=10000.0000, decimals=4, init_val=float(self.app.defaults['tools_transform_offset_y'])) val_box.setWindowIcon(QtGui.QIcon('share/offsety32.png')) @@ -1531,15 +1524,15 @@ class TransformEditorTool(FlatCAMTool): if ok: self.on_offx(val=val) self.app.inform.emit( - _tr("[success] Geometry shape offset on Y axis done...")) + _("[success] Geometry shape offset on Y axis done...")) return else: self.app.inform.emit( - _tr("[WARNING_NOTCL] Geometry shape offset Y cancelled...")) + _("[WARNING_NOTCL] Geometry shape offset Y cancelled...")) def on_skewx_key(self): - val_box = FCInputDialog(title=_tr("Skew on X axis ..."), - text=_tr('Enter an Angle Value (degrees):'), + val_box = FCInputDialog(title=_("Skew on X axis ..."), + text=_('Enter an Angle Value (degrees):'), min=-359.9999, max=360.0000, decimals=4, init_val=float(self.app.defaults['tools_transform_skew_x'])) val_box.setWindowIcon(QtGui.QIcon('share/skewX.png')) @@ -1548,15 +1541,15 @@ class TransformEditorTool(FlatCAMTool): if ok: self.on_skewx(val=val) self.app.inform.emit( - _tr("[success] Geometry shape skew on X axis done...")) + _("[success] Geometry shape skew on X axis done...")) return else: self.app.inform.emit( - _tr( "[WARNING_NOTCL] Geometry shape skew X cancelled...")) + _( "[WARNING_NOTCL] Geometry shape skew X cancelled...")) def on_skewy_key(self): - val_box = FCInputDialog(title=_tr("Skew on Y axis ..."), - text=_tr('Enter an Angle Value (degrees):'), + val_box = FCInputDialog(title=_("Skew on Y axis ..."), + text=_('Enter an Angle Value (degrees):'), min=-359.9999, max=360.0000, decimals=4, init_val=float(self.app.defaults['tools_transform_skew_y'])) val_box.setWindowIcon(QtGui.QIcon('share/skewY.png')) @@ -1565,11 +1558,11 @@ class TransformEditorTool(FlatCAMTool): if ok: self.on_skewx(val=val) self.app.inform.emit( - _tr( "[success] Geometry shape skew on Y axis done...")) + _( "[success] Geometry shape skew on Y axis done...")) return else: self.app.inform.emit( - _tr("[WARNING_NOTCL] Geometry shape skew Y cancelled...")) + _("[WARNING_NOTCL] Geometry shape skew Y cancelled...")) class DrawToolShape(object): @@ -1900,14 +1893,14 @@ class FCCircle(FCShapeTool): DrawTool.__init__(self, draw_app) self.name = 'circle' - self.start_msg = _tr("Click on CENTER ...") + self.start_msg = _("Click on CENTER ...") self.steps_per_circ = self.draw_app.app.defaults["geometry_circle_steps"] def click(self, point): self.points.append(point) if len(self.points) == 1: - self.draw_app.app.inform.emit(_tr("Click on Circle perimeter point to complete ...")) + self.draw_app.app.inform.emit(_("Click on Circle perimeter point to complete ...")) return "Click on perimeter to complete ..." if len(self.points) == 2: @@ -1931,7 +1924,7 @@ class FCCircle(FCShapeTool): radius = distance(p1, p2) self.geometry = DrawToolShape(Point(p1).buffer(radius, int(self.steps_per_circ / 4))) self.complete = True - self.draw_app.app.inform.emit(_tr("[success]Done. Adding Circle completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Adding Circle completed.")) class FCArc(FCShapeTool): @@ -1939,7 +1932,7 @@ class FCArc(FCShapeTool): DrawTool.__init__(self, draw_app) self.name = 'arc' - self.start_msg = _tr("Click on CENTER ...") + self.start_msg = _("Click on CENTER ...") # Direction of rotation between point 1 and 2. # 'cw' or 'ccw'. Switch direction by hitting the @@ -1958,11 +1951,11 @@ class FCArc(FCShapeTool): self.points.append(point) if len(self.points) == 1: - self.draw_app.app.inform.emit(_tr("Click on Start arc point ...")) + self.draw_app.app.inform.emit(_("Click on Start arc point ...")) return "Click on 1st point ..." if len(self.points) == 2: - self.draw_app.app.inform.emit(_tr("Click on End arc point to complete ...")) + self.draw_app.app.inform.emit(_("Click on End arc point to complete ...")) return "Click on 2nd point to complete ..." if len(self.points) == 3: @@ -2117,7 +2110,7 @@ class FCArc(FCShapeTool): self.geometry = DrawToolShape(LineString(arc(center, radius, startangle, stopangle, self.direction, self.steps_per_circ))) self.complete = True - self.draw_app.app.inform.emit(_tr("[success]Done. Arc completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Arc completed.")) class FCRectangle(FCShapeTool): @@ -2129,7 +2122,7 @@ class FCRectangle(FCShapeTool): DrawTool.__init__(self, draw_app) self.name = 'rectangle' - self.start_msg = _tr("Click on 1st corner ...") + self.start_msg = _("Click on 1st corner ...") def click(self, point): self.points.append(point) @@ -2157,7 +2150,7 @@ class FCRectangle(FCShapeTool): # self.geometry = LinearRing([p1, (p2[0], p1[1]), p2, (p1[0], p2[1])]) self.geometry = DrawToolShape(Polygon([p1, (p2[0], p1[1]), p2, (p1[0], p2[1])])) self.complete = True - self.draw_app.app.inform.emit("_tr([success]Done. Rectangle completed.") + self.draw_app.app.inform.emit("_([success]Done. Rectangle completed.") class FCPolygon(FCShapeTool): @@ -2169,14 +2162,14 @@ class FCPolygon(FCShapeTool): DrawTool.__init__(self, draw_app) self.name = 'polygon' - self.start_msg = _tr("Click on 1st point ...") + self.start_msg = _("Click on 1st point ...") def click(self, point): self.draw_app.in_action = True self.points.append(point) if len(self.points) > 0: - self.draw_app.app.inform.emit(_tr("Click on next Point or click Right mouse button to complete ...")) + self.draw_app.app.inform.emit(_("Click on next Point or click Right mouse button to complete ...")) return "Click on next point or hit ENTER to complete ..." return "" @@ -2199,7 +2192,7 @@ class FCPolygon(FCShapeTool): self.geometry = DrawToolShape(Polygon(self.points)) self.draw_app.in_action = False self.complete = True - self.draw_app.app.inform.emit(_tr("[success]Done. Polygon completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Polygon completed.")) def on_key(self, key): if key == 'backspace': @@ -2218,7 +2211,7 @@ class FCPath(FCPolygon): self.draw_app.in_action = False self.complete = True - self.draw_app.app.inform.emit(_tr("[success]Done. Path completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Path completed.")) def utility_geometry(self, data=None): if len(self.points) > 0: @@ -2478,14 +2471,14 @@ class FCMove(FCShapeTool): # self.shape_buffer = self.draw_app.shape_buffer if not self.draw_app.selected: - self.draw_app.app.inform.emit(_tr("[WARNING_NOTCL] Move cancelled. No shape selected.")) + self.draw_app.app.inform.emit(_("[WARNING_NOTCL] Move cancelled. No shape selected.")) return self.origin = None self.destination = None - self.start_msg = _tr("Click on reference point.") + self.start_msg = _("Click on reference point.") def set_origin(self, origin): - self.draw_app.app.inform.emit(_tr("Click on destination point.")) + self.draw_app.app.inform.emit(_("Click on destination point.")) self.origin = origin def click(self, point): @@ -2516,7 +2509,7 @@ class FCMove(FCShapeTool): # self.draw_app.set_selected(g) self.complete = True - self.draw_app.app.inform.emit(_tr("[success]Done. Geometry(s) Move completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Geometry(s) Move completed.")) def utility_geometry(self, data=None): """ @@ -2561,7 +2554,7 @@ class FCCopy(FCMove): self.geometry = [DrawToolShape(affinity.translate(geom.geo, xoff=dx, yoff=dy)) for geom in self.draw_app.get_selected()] self.complete = True - self.draw_app.app.inform.emit(_tr("[success]Done. Geometry(s) Copy completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Geometry(s) Copy completed.")) class FCText(FCShapeTool): @@ -2573,7 +2566,7 @@ class FCText(FCShapeTool): self.draw_app = draw_app self.app = draw_app.app - self.start_msg = _tr("Click on the Destination point...") + self.start_msg = _("Click on the Destination point...") self.origin = (0, 0) self.text_gui = TextInputTool(self.app) @@ -2587,7 +2580,7 @@ class FCText(FCShapeTool): self.geometry = DrawToolShape(affinity.translate(self.text_gui.text_path, xoff=dx, yoff=dy)) except Exception as e: log.debug("Font geometry is empty or incorrect: %s" % str(e)) - self.draw_app.app.inform.emit(_tr("[ERROR]Font not supported. Only Regular, Bold, Italic and BoldItalic are " + self.draw_app.app.inform.emit(_("[ERROR]Font not supported. Only Regular, Bold, Italic and BoldItalic are " "supported. Error: %s") % str(e)) self.text_gui.text_path = [] self.text_gui.hide_tool() @@ -2597,7 +2590,7 @@ class FCText(FCShapeTool): self.text_gui.text_path = [] self.text_gui.hide_tool() self.complete = True - self.draw_app.app.inform.emit(_tr("[success]Done. Adding Text completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Adding Text completed.")) def utility_geometry(self, data=None): """ @@ -2625,18 +2618,18 @@ class FCBuffer(FCShapeTool): self.draw_app = draw_app self.app = draw_app.app - self.start_msg = _tr("Create buffer geometry ...") + self.start_msg = _("Create buffer geometry ...") self.origin = (0, 0) self.buff_tool = BufferSelectionTool(self.app, self.draw_app) self.buff_tool.run() - self.app.ui.notebook.setTabText(2, _tr("Buffer Tool")) + self.app.ui.notebook.setTabText(2, _("Buffer Tool")) if self.draw_app.app.ui.splitter.sizes()[0] == 0: self.draw_app.app.ui.splitter.setSizes([1, 1]) self.activate() def on_buffer(self): if not self.draw_app.selected: - self.app.inform.emit(_tr("[WARNING_NOTCL] Buffer cancelled. No shape selected.")) + self.app.inform.emit(_("[WARNING_NOTCL] Buffer cancelled. No shape selected.")) return try: @@ -2647,22 +2640,22 @@ class FCBuffer(FCShapeTool): buffer_distance = float(self.buff_tool.buffer_distance_entry.get_value().replace(',', '.')) self.buff_tool.buffer_distance_entry.set_value(buffer_distance) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " "Add it and retry.")) return # the cb index start from 0 but the join styles for the buffer start from 1 therefore the adjustment # I populated the combobox such that the index coincide with the join styles value (whcih is really an INT) join_style = self.buff_tool.buffer_corner_cb.currentIndex() + 1 self.draw_app.buffer(buffer_distance, join_style) - self.app.ui.notebook.setTabText(2, _tr("Tools")) + self.app.ui.notebook.setTabText(2, _("Tools")) self.draw_app.app.ui.splitter.setSizes([0, 1]) self.disactivate() - self.draw_app.app.inform.emit(_tr("[success]Done. Buffer Tool completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Buffer Tool completed.")) def on_buffer_int(self): if not self.draw_app.selected: - self.app.inform.emit(_tr("[WARNING_NOTCL] Buffer cancelled. No shape selected.")) + self.app.inform.emit(_("[WARNING_NOTCL] Buffer cancelled. No shape selected.")) return try: @@ -2673,22 +2666,22 @@ class FCBuffer(FCShapeTool): buffer_distance = float(self.buff_tool.buffer_distance_entry.get_value().replace(',', '.')) self.buff_tool.buffer_distance_entry.set_value(buffer_distance) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " "Add it and retry.")) return # the cb index start from 0 but the join styles for the buffer start from 1 therefore the adjustment # I populated the combobox such that the index coincide with the join styles value (whcih is really an INT) join_style = self.buff_tool.buffer_corner_cb.currentIndex() + 1 self.draw_app.buffer_int(buffer_distance, join_style) - self.app.ui.notebook.setTabText(2, _tr("Tools")) + self.app.ui.notebook.setTabText(2, _("Tools")) self.draw_app.app.ui.splitter.setSizes([0, 1]) self.disactivate() - self.draw_app.app.inform.emit(_tr("[success]Done. Buffer Int Tool completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Buffer Int Tool completed.")) def on_buffer_ext(self): if not self.draw_app.selected: - self.app.inform.emit(_tr("[WARNING_NOTCL] Buffer cancelled. No shape selected.")) + self.app.inform.emit(_("[WARNING_NOTCL] Buffer cancelled. No shape selected.")) return try: @@ -2699,18 +2692,18 @@ class FCBuffer(FCShapeTool): buffer_distance = float(self.buff_tool.buffer_distance_entry.get_value().replace(',', '.')) self.buff_tool.buffer_distance_entry.set_value(buffer_distance) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Buffer distance value is missing or wrong format. " "Add it and retry.")) return # the cb index start from 0 but the join styles for the buffer start from 1 therefore the adjustment # I populated the combobox such that the index coincide with the join styles value (whcih is really an INT) join_style = self.buff_tool.buffer_corner_cb.currentIndex() + 1 self.draw_app.buffer_ext(buffer_distance, join_style) - self.app.ui.notebook.setTabText(2, _tr("Tools")) + self.app.ui.notebook.setTabText(2, _("Tools")) self.draw_app.app.ui.splitter.setSizes([0, 1]) self.disactivate() - self.draw_app.app.inform.emit(_tr("[success]Done. Buffer Ext Tool completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Buffer Ext Tool completed.")) def activate(self): self.buff_tool.buffer_button.clicked.disconnect() @@ -2743,7 +2736,7 @@ class FCPaint(FCShapeTool): self.draw_app = draw_app self.app = draw_app.app - self.start_msg = _tr("Create Paint geometry ...") + self.start_msg = _("Create Paint geometry ...") self.origin = (0, 0) self.draw_app.paint_tool.run() @@ -2757,7 +2750,7 @@ class FCTransform(FCShapeTool): self.draw_app = draw_app self.app = draw_app.app - self.start_msg = _tr("Shape transformations ...") + self.start_msg = _("Shape transformations ...") self.origin = (0, 0) self.draw_app.transform_tool.run() @@ -2782,7 +2775,7 @@ class FCDrillAdd(FCShapeTool): self.draw_app.tools_table_exc.setCurrentItem(item) except KeyError: - self.draw_app.app.inform.emit(_tr("[WARNING_NOTCL] To add a drill first select a tool")) + self.draw_app.app.inform.emit(_("[WARNING_NOTCL] To add a drill first select a tool")) self.draw_app.select_tool("select") return @@ -2791,7 +2784,7 @@ class FCDrillAdd(FCShapeTool): if isinstance(geo, DrawToolShape) and geo.geo is not None: self.draw_app.draw_utility_geometry(geo=geo) - self.draw_app.app.inform.emit(_tr("Click on target location ...")) + self.draw_app.app.inform.emit(_("Click on target location ...")) # Switch notebook to Selected page self.draw_app.app.ui.notebook.setCurrentWidget(self.draw_app.app.ui.selected_tab) @@ -2831,7 +2824,7 @@ class FCDrillAdd(FCShapeTool): self.draw_app.current_storage = self.draw_app.storage_dict[self.selected_dia] self.geometry = DrawToolShape(self.util_shape(self.points)) self.complete = True - self.draw_app.app.inform.emit(_tr("[success]Done. Drill added.")) + self.draw_app.app.inform.emit(_("[success]Done. Drill added.")) class FCDrillArray(FCShapeTool): @@ -2873,7 +2866,7 @@ class FCDrillArray(FCShapeTool): item = self.draw_app.tools_table_exc.item((self.draw_app.last_tool_selected - 1), 1) self.draw_app.tools_table_exc.setCurrentItem(item) except KeyError: - self.draw_app.app.inform.emit(_tr("[WARNING_NOTCL] To add an Drill Array first select a tool in Tool Table")) + self.draw_app.app.inform.emit(_("[WARNING_NOTCL] To add an Drill Array first select a tool in Tool Table")) return geo = self.utility_geometry(data=(self.draw_app.snap_x, self.draw_app.snap_y), static=True) @@ -2881,7 +2874,7 @@ class FCDrillArray(FCShapeTool): if isinstance(geo, DrawToolShape) and geo.geo is not None: self.draw_app.draw_utility_geometry(geo=geo) - self.draw_app.app.inform.emit(_tr("Click on target location ...")) + self.draw_app.app.inform.emit(_("Click on target location ...")) # Switch notebook to Selected page self.draw_app.app.ui.notebook.setCurrentWidget(self.draw_app.app.ui.selected_tab) @@ -2898,7 +2891,7 @@ class FCDrillArray(FCShapeTool): self.flag_for_circ_array = True self.set_origin(point) - self.draw_app.app.inform.emit(_tr("Click on the Drill Circular Array Start position")) + self.draw_app.app.inform.emit(_("Click on the Drill Circular Array Start position")) else: self.destination = point self.make() @@ -2920,10 +2913,10 @@ class FCDrillArray(FCShapeTool): self.drill_angle = float(self.draw_app.drill_angle_entry.get_value()) except TypeError: self.draw_app.app.inform.emit( - _tr("[ERROR_NOTCL] The value is not Float. Check for comma instead of dot separator.")) + _("[ERROR_NOTCL] The value is not Float. Check for comma instead of dot separator.")) return except Exception as e: - self.draw_app.app.inform.emit(_tr("[ERROR_NOTCL] The value is mistyped. Check the value.")) + self.draw_app.app.inform.emit(_("[ERROR_NOTCL] The value is mistyped. Check the value.")) return if self.drill_array == 'Linear': @@ -3016,7 +3009,7 @@ class FCDrillArray(FCShapeTool): self.geometry.append(DrawToolShape(geo)) else: if (self.drill_angle * self.drill_array_size) > 360: - self.draw_app.app.inform.emit(_tr("[WARNING_NOTCL]Too many drills for the selected spacing angle.")) + self.draw_app.app.inform.emit(_("[WARNING_NOTCL]Too many drills for the selected spacing angle.")) return radius = distance(self.destination, self.origin) @@ -3033,7 +3026,7 @@ class FCDrillArray(FCShapeTool): geo = self.util_shape((x, y)) self.geometry.append(DrawToolShape(geo)) self.complete = True - self.draw_app.app.inform.emit(_tr("[success]Done. Drill Array added.")) + self.draw_app.app.inform.emit(_("[success]Done. Drill Array added.")) self.draw_app.in_action = True self.draw_app.array_frame.hide() return @@ -3044,7 +3037,7 @@ class FCDrillResize(FCShapeTool): DrawTool.__init__(self, draw_app) self.name = 'drill_resize' - self.draw_app.app.inform.emit(_tr("Click on the Drill(s) to resize ...")) + self.draw_app.app.inform.emit(_("Click on the Drill(s) to resize ...")) self.resize_dia = None self.draw_app.resize_frame.show() self.points = None @@ -3064,7 +3057,7 @@ class FCDrillResize(FCShapeTool): try: new_dia = self.draw_app.resdrill_entry.get_value() except: - self.draw_app.app.inform.emit(_tr("[ERROR_NOTCL]Resize drill(s) failed. Please enter a diameter for resize.")) + self.draw_app.app.inform.emit(_("[ERROR_NOTCL]Resize drill(s) failed. Please enter a diameter for resize.")) return if new_dia not in self.draw_app.olddia_newdia: @@ -3136,7 +3129,7 @@ class FCDrillResize(FCShapeTool): self.draw_app.resize_frame.hide() self.complete = True - self.draw_app.app.inform.emit(_tr("[success]Done. Drill Resize completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Drill Resize completed.")) # MS: always return to the Select Tool self.draw_app.select_tool("select") @@ -3154,9 +3147,9 @@ class FCDrillMove(FCShapeTool): if self.draw_app.launched_from_shortcuts is True: self.draw_app.launched_from_shortcuts = False - self.draw_app.app.inform.emit(_tr("Click on target location ...")) + self.draw_app.app.inform.emit(_("Click on target location ...")) else: - self.draw_app.app.inform.emit(_tr("Click on reference location ...")) + self.draw_app.app.inform.emit(_("Click on reference location ...")) self.current_storage = None self.geometry = [] @@ -3179,7 +3172,7 @@ class FCDrillMove(FCShapeTool): if self.origin is None: self.set_origin(point) - self.draw_app.app.inform.emit(_tr("Click on target location ...")) + self.draw_app.app.inform.emit(_("Click on target location ...")) return else: self.destination = point @@ -3211,7 +3204,7 @@ class FCDrillMove(FCShapeTool): sel_shapes_to_be_deleted = [] self.draw_app.build_ui() - self.draw_app.app.inform.emit(_tr("[success]Done. Drill(s) Move completed.")) + self.draw_app.app.inform.emit(_("[success]Done. Drill(s) Move completed.")) def utility_geometry(self, data=None): """ @@ -3264,7 +3257,7 @@ class FCDrillCopy(FCDrillMove): sel_shapes_to_be_deleted = [] self.draw_app.build_ui() - self.draw_app.app.inform.emit(_tr("[success]Done. Drill(s) copied.")) + self.draw_app.app.inform.emit(_("[success]Done. Drill(s) copied.")) ######################## @@ -3914,7 +3907,7 @@ class FlatCAMGeoEditor(QtCore.QObject): self.active_tool.make() if self.active_tool.complete: self.on_shape_complete() - self.app.inform.emit(_tr("[success]Done.")) + self.app.inform.emit(_("[success]Done.")) # MS: always return to the Select Tool if modifier key is not pressed # else return to the current tool @@ -4040,21 +4033,21 @@ class FlatCAMGeoEditor(QtCore.QObject): def on_move_click(self): if not self.selected: - self.app.inform.emit(_tr("[WARNING_NOTCL] Move cancelled. No shape selected.")) + self.app.inform.emit(_("[WARNING_NOTCL] Move cancelled. No shape selected.")) return self.on_move() self.active_tool.set_origin(self.snap(self.x, self.y)) def on_copy_click(self): if not self.selected: - self.app.inform.emit(_tr("[WARNING_NOTCL] Copy cancelled. No shape selected.")) + self.app.inform.emit(_("[WARNING_NOTCL] Copy cancelled. No shape selected.")) return self.app.ui.geo_copy_btn.setChecked(True) self.app.geo_editor.on_tool_select('copy') self.app.geo_editor.active_tool.set_origin(self.app.geo_editor.snap( self.app.geo_editor.x, self.app.geo_editor.y)) - self.app.inform.emit(_tr("Click on target point.")) + self.app.inform.emit(_("Click on target point.")) def on_corner_snap(self): self.app.ui.corner_snap_btn.trigger() @@ -4295,7 +4288,7 @@ class FlatCAMGeoEditor(QtCore.QObject): results = shapes[0].geo except Exception as e: log.debug("FlatCAMGeoEditor.intersection() --> %s" % str(e)) - self.app.inform.emit(_tr("[WARNING_NOTCL]A selection of at least 2 geo items is required to do Intersection.")) + self.app.inform.emit(_("[WARNING_NOTCL]A selection of at least 2 geo items is required to do Intersection.")) self.select_tool('select') return @@ -4333,7 +4326,7 @@ class FlatCAMGeoEditor(QtCore.QObject): if buf_distance < 0: self.app.inform.emit( - _tr( "[ERROR_NOTCL]Negative buffer value is not accepted. Use Buffer interior to generate an 'inside' shape")) + _( "[ERROR_NOTCL]Negative buffer value is not accepted. Use Buffer interior to generate an 'inside' shape")) # deselect everything self.selected = [] @@ -4341,11 +4334,11 @@ class FlatCAMGeoEditor(QtCore.QObject): return if len(selected) == 0: - self.app.inform.emit(_tr("[WARNING_NOTCL] Nothing selected for buffering.")) + self.app.inform.emit(_("[WARNING_NOTCL] Nothing selected for buffering.")) return if not isinstance(buf_distance, float): - self.app.inform.emit(_tr("[WARNING_NOTCL] Invalid distance for buffering.")) + self.app.inform.emit(_("[WARNING_NOTCL] Invalid distance for buffering.")) # deselect everything self.selected = [] @@ -4355,7 +4348,7 @@ class FlatCAMGeoEditor(QtCore.QObject): pre_buffer = cascaded_union([t.geo for t in selected]) results = pre_buffer.buffer(buf_distance - 1e-10, resolution=32, join_style=join_style) if results.is_empty: - self.app.inform.emit(_tr("[ERROR_NOTCL]Failed, the result is empty. Choose a different buffer value.")) + self.app.inform.emit(_("[ERROR_NOTCL]Failed, the result is empty. Choose a different buffer value.")) # deselect everything self.selected = [] self.replot() @@ -4363,14 +4356,14 @@ class FlatCAMGeoEditor(QtCore.QObject): self.add_shape(DrawToolShape(results)) self.replot() - self.app.inform.emit(_tr("[success]Full buffer geometry created.")) + self.app.inform.emit(_("[success]Full buffer geometry created.")) def buffer_int(self, buf_distance, join_style): selected = self.get_selected() if buf_distance < 0: self.app.inform.emit( - _tr("[ERROR_NOTCL]Negative buffer value is not accepted. " + _("[ERROR_NOTCL]Negative buffer value is not accepted. " "Use Buffer interior to generate an 'inside' shape") ) # deselect everything @@ -4379,11 +4372,11 @@ class FlatCAMGeoEditor(QtCore.QObject): return if len(selected) == 0: - self.app.inform.emit(_tr("[WARNING_NOTCL] Nothing selected for buffering.")) + self.app.inform.emit(_("[WARNING_NOTCL] Nothing selected for buffering.")) return if not isinstance(buf_distance, float): - self.app.inform.emit(_tr("[WARNING_NOTCL] Invalid distance for buffering.")) + self.app.inform.emit(_("[WARNING_NOTCL] Invalid distance for buffering.")) # deselect everything self.selected = [] self.replot() @@ -4392,7 +4385,7 @@ class FlatCAMGeoEditor(QtCore.QObject): pre_buffer = cascaded_union([t.geo for t in selected]) results = pre_buffer.buffer(-buf_distance + 1e-10, resolution=32, join_style=join_style) if results.is_empty: - self.app.inform.emit(_tr("[ERROR_NOTCL]Failed, the result is empty. Choose a smaller buffer value.")) + self.app.inform.emit(_("[ERROR_NOTCL]Failed, the result is empty. Choose a smaller buffer value.")) # deselect everything self.selected = [] self.replot() @@ -4404,7 +4397,7 @@ class FlatCAMGeoEditor(QtCore.QObject): self.add_shape(DrawToolShape(results.exterior)) self.replot() - self.app.inform.emit(_tr("[success]Exterior buffer geometry created.")) + self.app.inform.emit(_("[success]Exterior buffer geometry created.")) # selected = self.get_selected() # # if len(selected) == 0: @@ -4442,7 +4435,7 @@ class FlatCAMGeoEditor(QtCore.QObject): selected = self.get_selected() if buf_distance < 0: - self.app.inform.emit(_tr("[ERROR_NOTCL]Negative buffer value is not accepted. " + self.app.inform.emit(_("[ERROR_NOTCL]Negative buffer value is not accepted. " "Use Buffer interior to generate an 'inside' shape")) # deselect everything self.selected = [] @@ -4450,11 +4443,11 @@ class FlatCAMGeoEditor(QtCore.QObject): return if len(selected) == 0: - self.app.inform.emit(_tr("[WARNING_NOTCL] Nothing selected for buffering.")) + self.app.inform.emit(_("[WARNING_NOTCL] Nothing selected for buffering.")) return if not isinstance(buf_distance, float): - self.app.inform.emit(_tr("[WARNING_NOTCL] Invalid distance for buffering.")) + self.app.inform.emit(_("[WARNING_NOTCL] Invalid distance for buffering.")) # deselect everything self.selected = [] self.replot() @@ -4463,7 +4456,7 @@ class FlatCAMGeoEditor(QtCore.QObject): pre_buffer = cascaded_union([t.geo for t in selected]) results = pre_buffer.buffer(buf_distance - 1e-10, resolution=32, join_style=join_style) if results.is_empty: - self.app.inform.emit(_tr("[ERROR_NOTCL]Failed, the result is empty. Choose a different buffer value.")) + self.app.inform.emit(_("[ERROR_NOTCL]Failed, the result is empty. Choose a different buffer value.")) # deselect everything self.selected = [] self.replot() @@ -4475,7 +4468,7 @@ class FlatCAMGeoEditor(QtCore.QObject): self.add_shape(DrawToolShape(results.exterior)) self.replot() - self.app.inform.emit(_tr("[success]Exterior buffer geometry created.")) + self.app.inform.emit(_("[success]Exterior buffer geometry created.")) # def paint(self, tooldia, overlap, margin, method): # selected = self.get_selected() @@ -4539,19 +4532,19 @@ class FlatCAMGeoEditor(QtCore.QObject): selected = self.get_selected() if len(selected) == 0: - self.app.inform.emit(_tr("[WARNING_NOTCL]Nothing selected for painting.")) + self.app.inform.emit(_("[WARNING_NOTCL]Nothing selected for painting.")) return for param in [tooldia, overlap, margin]: if not isinstance(param, float): param_name = [k for k, v in locals().items() if v is param][0] - self.app.inform.emit(_tr("[WARNING] Invalid value for {}").format(param)) + self.app.inform.emit(_("[WARNING] Invalid value for {}").format(param)) results = [] if overlap >= 1: self.app.inform.emit( - _tr("[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 (100%).")) + _("[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 (100%).")) return def recurse(geometry, reset=True): @@ -4610,7 +4603,7 @@ class FlatCAMGeoEditor(QtCore.QObject): except Exception as e: log.debug("Could not Paint the polygons. %s" % str(e)) self.app.inform.emit( - _tr("[ERROR] Could not do Paint. Try a different combination of parameters. " + _("[ERROR] Could not do Paint. Try a different combination of parameters. " "Or a different method of Paint\n%s") % str(e)) return @@ -4621,7 +4614,7 @@ class FlatCAMGeoEditor(QtCore.QObject): for r in results: self.add_shape(DrawToolShape(r)) self.app.inform.emit( - _tr("[success] Paint done.")) + _("[success] Paint done.")) self.replot() @@ -4653,14 +4646,14 @@ class FlatCAMExcEditor(QtCore.QObject): self.title_box.addWidget(self.icon, stretch=0) ## Title label - self.title_label = QtWidgets.QLabel("%s" % _tr('Excellon Editor')) + self.title_label = QtWidgets.QLabel("%s" % _('Excellon Editor')) self.title_label.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) self.title_box.addWidget(self.title_label, stretch=1) ## Object name self.name_box = QtWidgets.QHBoxLayout() layout.addLayout(self.name_box) - name_label = QtWidgets.QLabel(_tr("Name:")) + name_label = QtWidgets.QLabel(_("Name:")) self.name_box.addWidget(name_label) self.name_entry = FCEntry() self.name_box.addWidget(self.name_entry) @@ -4680,9 +4673,9 @@ class FlatCAMExcEditor(QtCore.QObject): self.drills_frame.setLayout(self.tools_box) #### Tools Drills #### - self.tools_table_label = QtWidgets.QLabel("%s" % _tr('Tools Table')) + self.tools_table_label = QtWidgets.QLabel("%s" % _('Tools Table')) self.tools_table_label.setToolTip( - _tr( "Tools in this Excellon object\n" + _( "Tools in this Excellon object\n" "when are used for drilling.") ) self.tools_box.addWidget(self.tools_table_label) @@ -4691,7 +4684,7 @@ class FlatCAMExcEditor(QtCore.QObject): self.tools_box.addWidget(self.tools_table_exc) self.tools_table_exc.setColumnCount(4) - self.tools_table_exc.setHorizontalHeaderLabels(['#', _tr('Diameter'), 'D', 'S']) + self.tools_table_exc.setHorizontalHeaderLabels(['#', _('Diameter'), 'D', 'S']) self.tools_table_exc.setSortingEnabled(False) self.tools_table_exc.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) @@ -4699,9 +4692,9 @@ class FlatCAMExcEditor(QtCore.QObject): self.tools_box.addWidget(self.empty_label) #### Add a new Tool #### - self.addtool_label = QtWidgets.QLabel('%s' % _tr('Add/Delete Tool')) + self.addtool_label = QtWidgets.QLabel('%s' % _('Add/Delete Tool')) self.addtool_label.setToolTip( - _tr("Add/Delete a tool to the tool list\n" + _("Add/Delete a tool to the tool list\n" "for this Excellon object.") ) self.tools_box.addWidget(self.addtool_label) @@ -4709,9 +4702,9 @@ class FlatCAMExcEditor(QtCore.QObject): grid1 = QtWidgets.QGridLayout() self.tools_box.addLayout(grid1) - addtool_entry_lbl = QtWidgets.QLabel(_tr('Tool Dia:')) + addtool_entry_lbl = QtWidgets.QLabel(_('Tool Dia:')) addtool_entry_lbl.setToolTip( - _tr("Diameter for the new tool") + _("Diameter for the new tool") ) grid1.addWidget(addtool_entry_lbl, 0, 0) @@ -4720,9 +4713,9 @@ class FlatCAMExcEditor(QtCore.QObject): self.addtool_entry.setValidator(QtGui.QDoubleValidator(0.0001, 99.9999, 4)) hlay.addWidget(self.addtool_entry) - self.addtool_btn = QtWidgets.QPushButton(_tr('Add Tool')) + self.addtool_btn = QtWidgets.QPushButton(_('Add Tool')) self.addtool_btn.setToolTip( - _tr( "Add a new tool to the tool list\n" + _( "Add a new tool to the tool list\n" "with the diameter specified above.") ) self.addtool_btn.setFixedWidth(80) @@ -4732,9 +4725,9 @@ class FlatCAMExcEditor(QtCore.QObject): grid2 = QtWidgets.QGridLayout() self.tools_box.addLayout(grid2) - self.deltool_btn = QtWidgets.QPushButton(_tr('Delete Tool')) + self.deltool_btn = QtWidgets.QPushButton(_('Delete Tool')) self.deltool_btn.setToolTip( - _tr( "Delete a tool in the tool list\n" + _( "Delete a tool in the tool list\n" "by selecting a row in the tool table.") ) grid2.addWidget(self.deltool_btn, 0, 1) @@ -4752,18 +4745,18 @@ class FlatCAMExcEditor(QtCore.QObject): self.emptyresize_label = QtWidgets.QLabel('') self.resize_box.addWidget(self.emptyresize_label) - self.drillresize_label = QtWidgets.QLabel('%s' % _tr("Resize Drill(s)")) + self.drillresize_label = QtWidgets.QLabel('%s' % _("Resize Drill(s)")) self.drillresize_label.setToolTip( - _tr("Resize a drill or a selection of drills.") + _("Resize a drill or a selection of drills.") ) self.resize_box.addWidget(self.drillresize_label) grid3 = QtWidgets.QGridLayout() self.resize_box.addLayout(grid3) - res_entry_lbl = QtWidgets.QLabel(_tr('Resize Dia:')) + res_entry_lbl = QtWidgets.QLabel(_('Resize Dia:')) res_entry_lbl.setToolTip( - _tr( "Diameter to resize to.") + _( "Diameter to resize to.") ) grid3.addWidget(addtool_entry_lbl, 0, 0) @@ -4771,9 +4764,9 @@ class FlatCAMExcEditor(QtCore.QObject): self.resdrill_entry = LengthEntry() hlay2.addWidget(self.resdrill_entry) - self.resize_btn = QtWidgets.QPushButton(_tr('Resize')) + self.resize_btn = QtWidgets.QPushButton(_('Resize')) self.resize_btn.setToolTip( - _tr("Resize drill(s)") + _("Resize drill(s)") ) self.resize_btn.setFixedWidth(80) hlay2.addWidget(self.resize_btn) @@ -4795,28 +4788,28 @@ class FlatCAMExcEditor(QtCore.QObject): self.emptyarray_label = QtWidgets.QLabel('') self.array_box.addWidget(self.emptyarray_label) - self.drillarray_label = QtWidgets.QLabel('%s' % _tr("Add Drill Array")) + self.drillarray_label = QtWidgets.QLabel('%s' % _("Add Drill Array")) self.drillarray_label.setToolTip( - _tr("Add an array of drills (linear or circular array)") + _("Add an array of drills (linear or circular array)") ) self.array_box.addWidget(self.drillarray_label) self.array_type_combo = FCComboBox() self.array_type_combo.setToolTip( - _tr( "Select the type of drills array to create.\n" + _( "Select the type of drills array to create.\n" "It can be Linear X(Y) or Circular") ) - self.array_type_combo.addItem(_tr("Linear")) - self.array_type_combo.addItem(_tr("Circular")) + self.array_type_combo.addItem(_("Linear")) + self.array_type_combo.addItem(_("Circular")) self.array_box.addWidget(self.array_type_combo) self.array_form = QtWidgets.QFormLayout() self.array_box.addLayout(self.array_form) - self.drill_array_size_label = QtWidgets.QLabel(_tr('Nr of drills:')) + self.drill_array_size_label = QtWidgets.QLabel(_('Nr of drills:')) self.drill_array_size_label.setToolTip( - _tr("Specify how many drills to be in the array.") + _("Specify how many drills to be in the array.") ) self.drill_array_size_label.setFixedWidth(100) @@ -4833,9 +4826,9 @@ class FlatCAMExcEditor(QtCore.QObject): self.linear_form = QtWidgets.QFormLayout() self.linear_box.addLayout(self.linear_form) - self.drill_axis_label = QtWidgets.QLabel(_tr('Direction:')) + self.drill_axis_label = QtWidgets.QLabel(_('Direction:')) self.drill_axis_label.setToolTip( - _tr("Direction on which the linear array is oriented:\n" + _("Direction on which the linear array is oriented:\n" "- 'X' - horizontal axis \n" "- 'Y' - vertical axis or \n" "- 'Angle' - a custom angle for the array inclination") @@ -4844,22 +4837,22 @@ class FlatCAMExcEditor(QtCore.QObject): self.drill_axis_radio = RadioSet([{'label': 'X', 'value': 'X'}, {'label': 'Y', 'value': 'Y'}, - {'label': _tr('Angle'), 'value': 'A'}]) + {'label': _('Angle'), 'value': 'A'}]) self.drill_axis_radio.set_value('X') self.linear_form.addRow(self.drill_axis_label, self.drill_axis_radio) - self.drill_pitch_label = QtWidgets.QLabel(_tr('Pitch:')) + self.drill_pitch_label = QtWidgets.QLabel(_('Pitch:')) self.drill_pitch_label.setToolTip( - _tr("Pitch = Distance between elements of the array.") + _("Pitch = Distance between elements of the array.") ) self.drill_pitch_label.setFixedWidth(100) self.drill_pitch_entry = LengthEntry() self.linear_form.addRow(self.drill_pitch_label, self.drill_pitch_entry) - self.linear_angle_label = QtWidgets.QLabel(_tr('Angle:')) + self.linear_angle_label = QtWidgets.QLabel(_('Angle:')) self.linear_angle_label.setToolTip( - _tr( "Angle at which the linear array is placed.\n" + _( "Angle at which the linear array is placed.\n" "The precision is of max 2 decimals.\n" "Min value is: -359.99 degrees.\n" "Max value is: 360.00 degrees.") @@ -4878,9 +4871,9 @@ class FlatCAMExcEditor(QtCore.QObject): self.circular_box.setContentsMargins(0, 0, 0, 0) self.array_circular_frame.setLayout(self.circular_box) - self.drill_direction_label = QtWidgets.QLabel(_tr('Direction:')) + self.drill_direction_label = QtWidgets.QLabel(_('Direction:')) self.drill_direction_label.setToolTip( - _tr( "Direction for circular array." + _( "Direction for circular array." "Can be CW = clockwise or CCW = counter clockwise.") ) self.drill_direction_label.setFixedWidth(100) @@ -4893,9 +4886,9 @@ class FlatCAMExcEditor(QtCore.QObject): self.drill_direction_radio.set_value('CW') self.circular_form.addRow(self.drill_direction_label, self.drill_direction_radio) - self.drill_angle_label = QtWidgets.QLabel(_tr('Angle:')) + self.drill_angle_label = QtWidgets.QLabel(_('Angle:')) self.drill_angle_label.setToolTip( - _tr("Angle at which each element in circular array is placed.") + _("Angle at which each element in circular array is placed.") ) self.drill_angle_label.setFixedWidth(100) @@ -5216,7 +5209,7 @@ class FlatCAMExcEditor(QtCore.QObject): empty_b = QtWidgets.QTableWidgetItem('') empty_b.setFlags(empty_b.flags() ^ QtCore.Qt.ItemIsEnabled) - label_tot_drill_count = QtWidgets.QTableWidgetItem(_tr('Total Drills')) + label_tot_drill_count = QtWidgets.QTableWidgetItem(_('Total Drills')) tot_drill_count = QtWidgets.QTableWidgetItem('%d' % self.tot_drill_cnt) label_tot_drill_count.setFlags(label_tot_drill_count.flags() ^ QtCore.Qt.ItemIsEnabled) @@ -5248,7 +5241,7 @@ class FlatCAMExcEditor(QtCore.QObject): empty_3 = QtWidgets.QTableWidgetItem('') empty_3.setFlags(empty_3.flags() ^ QtCore.Qt.ItemIsEnabled) - label_tot_slot_count = QtWidgets.QTableWidgetItem(_tr('Total Slots')) + label_tot_slot_count = QtWidgets.QTableWidgetItem(_('Total Slots')) tot_slot_count = QtWidgets.QTableWidgetItem('%d' % self.tot_slot_cnt) label_tot_slot_count.setFlags(label_tot_slot_count.flags() ^ QtCore.Qt.ItemIsEnabled) tot_slot_count.setFlags(tot_slot_count.flags() ^ QtCore.Qt.ItemIsEnabled) @@ -5322,7 +5315,7 @@ class FlatCAMExcEditor(QtCore.QObject): try: tool_dia = float(self.addtool_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.") ) return @@ -5335,7 +5328,7 @@ class FlatCAMExcEditor(QtCore.QObject): # each time a tool diameter is edited or added self.olddia_newdia[tool_dia] = tool_dia else: - self.app.inform.emit(_tr("[WARNING_NOTCL]Tool already in the original or actual tool list.\n" + self.app.inform.emit(_("[WARNING_NOTCL]Tool already in the original or actual tool list.\n" "Save and reedit Excellon if you need to add this tool. ") ) return @@ -5344,7 +5337,7 @@ class FlatCAMExcEditor(QtCore.QObject): # we add a new entry in the tool2tooldia dict self.tool2tooldia[len(self.olddia_newdia)] = tool_dia - self.app.inform.emit(_tr("[success]Added new tool with dia: %s %s") % (str(tool_dia), str(self.units))) + self.app.inform.emit(_("[success]Added new tool with dia: %s %s") % (str(tool_dia), str(self.units))) self.build_ui() @@ -5375,7 +5368,7 @@ class FlatCAMExcEditor(QtCore.QObject): else: deleted_tool_dia_list.append(float('%.4f' % dia)) except: - self.app.inform.emit(_tr("[WARNING_NOTCL]Select a tool in Tool Table")) + self.app.inform.emit(_("[WARNING_NOTCL]Select a tool in Tool Table")) return for deleted_tool_dia in deleted_tool_dia_list: @@ -5408,7 +5401,7 @@ class FlatCAMExcEditor(QtCore.QObject): self.olddia_newdia.pop(deleted_tool_dia, None) - self.app.inform.emit(_tr("[success]Deleted tool with dia: %s %s") % (str(deleted_tool_dia), str(self.units))) + self.app.inform.emit(_("[success]Deleted tool with dia: %s %s") % (str(deleted_tool_dia), str(self.units))) self.replot() # self.app.inform.emit("Could not delete selected tool") @@ -5751,7 +5744,7 @@ class FlatCAMExcEditor(QtCore.QObject): # reset the tool table self.tools_table_exc.clear() - self.tools_table_exc.setHorizontalHeaderLabels(['#', _tr('Diameter'), 'D', 'S']) + self.tools_table_exc.setHorizontalHeaderLabels(['#', _('Diameter'), 'D', 'S']) self.last_tool_selected = None # delete the edited Excellon object which will be replaced by a new one having the edited content of the first @@ -5805,16 +5798,16 @@ class FlatCAMExcEditor(QtCore.QObject): excellon_obj.create_geometry() except KeyError: self.app.inform.emit( - _tr( "[ERROR_NOTCL] There are no Tools definitions in the file. Aborting Excellon creation.") + _( "[ERROR_NOTCL] There are no Tools definitions in the file. Aborting Excellon creation.") ) except: - msg = _tr("[ERROR] An internal error has ocurred. See shell.\n") + msg = _("[ERROR] An internal error has ocurred. See shell.\n") msg += traceback.format_exc() app_obj.inform.emit(msg) raise # raise - with self.app.proc_container.new(_tr("Creating Excellon.")): + with self.app.proc_container.new(_("Creating Excellon.")): try: self.app.new_object("excellon", outname, obj_init) @@ -5823,7 +5816,7 @@ class FlatCAMExcEditor(QtCore.QObject): self.app.progress.emit(100) return - self.app.inform.emit(_tr("[success]Excellon editing finished.")) + self.app.inform.emit(_("[success]Excellon editing finished.")) # self.progress.emit(100) def on_tool_select(self, tool): @@ -5840,7 +5833,7 @@ class FlatCAMExcEditor(QtCore.QObject): # self.draw_app.select_tool('select') self.complete = True current_tool = 'select' - self.app.inform.emit(_tr("[WARNING_NOTCL]Cancelled. There is no Tool/Drill selected")) + self.app.inform.emit(_("[WARNING_NOTCL]Cancelled. There is no Tool/Drill selected")) # This is to make the group behave as radio group if current_tool in self.tools_exc: @@ -6322,7 +6315,7 @@ class FlatCAMExcEditor(QtCore.QObject): self.selected = [] self.build_ui() - self.app.inform.emit(_tr("[success]Done. Drill(s) deleted.")) + self.app.inform.emit(_("[success]Done. Drill(s) deleted.")) def delete_shape(self, shape): self.is_modified = True @@ -6392,7 +6385,7 @@ class FlatCAMExcEditor(QtCore.QObject): self.delete_utility_geometry() self.array_circular_frame.show() self.array_linear_frame.hide() - self.app.inform.emit(_tr("Click on the circular array Center position")) + self.app.inform.emit(_("Click on the circular array Center position")) def on_linear_angle_radio(self): val = self.drill_axis_radio.get_value() diff --git a/FlatCAMGUI.py b/FlatCAMGUI.py index 636afd4a..980f9b21 100644 --- a/FlatCAMGUI.py +++ b/FlatCAMGUI.py @@ -19,13 +19,6 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('FlatCAMGUI') -def _tr(text): - try: - return _(text) - except: - return text - - class FlatCAMGUI(QtWidgets.QMainWindow): # Emitted when persistent window geometry needs to be retained geom_update = QtCore.pyqtSignal(int, int, int, int, int, name='geomUpdate') @@ -52,66 +45,66 @@ class FlatCAMGUI(QtWidgets.QMainWindow): # New Project self.menufilenewproject = QtWidgets.QAction(QtGui.QIcon('share/file16.png'), - _tr('&New Project ...\tCTRL+N'), self) + _('&New Project ...\tCTRL+N'), self) self.menufilenewproject.setToolTip( - _tr("Will create a new, blank project") + _("Will create a new, blank project") ) self.menufile.addAction(self.menufilenewproject) # New Category (Excellon, Geometry) - self.menufilenew = self.menufile.addMenu(QtGui.QIcon('share/file16.png'), _tr('&New')) + self.menufilenew = self.menufile.addMenu(QtGui.QIcon('share/file16.png'), _('&New')) self.menufilenew.setToolTipsVisible(True) - self.menufilenewgeo = self.menufilenew.addAction(QtGui.QIcon('share/new_geo16.png'), _tr('&New Geometry\tN')) + self.menufilenewgeo = self.menufilenew.addAction(QtGui.QIcon('share/new_geo16.png'), _('&New Geometry\tN')) self.menufilenewgeo.setToolTip( - _tr("Will create a new, empty Geometry Object.") + _("Will create a new, empty Geometry Object.") ) - self.menufilenewexc = self.menufilenew.addAction(QtGui.QIcon('share/new_geo16.png'), _tr('New Excellon\tL')) + self.menufilenewexc = self.menufilenew.addAction(QtGui.QIcon('share/new_geo16.png'), _('New Excellon\tL')) self.menufilenewexc.setToolTip( - _tr("Will create a new, empty Excellon Object.") + _("Will create a new, empty Excellon Object.") ) - self.menufile_open = self.menufile.addMenu(QtGui.QIcon('share/folder32_bis.png'), _tr('Open')) + self.menufile_open = self.menufile.addMenu(QtGui.QIcon('share/folder32_bis.png'), _('Open')) self.menufile_open.setToolTipsVisible(True) # Open gerber ... self.menufileopengerber = QtWidgets.QAction(QtGui.QIcon('share/flatcam_icon24.png'), - _tr('Open &Gerber ...\tCTRL+G'), self) + _('Open &Gerber ...\tCTRL+G'), self) self.menufile_open.addAction(self.menufileopengerber) self.menufile_open.addSeparator() # Open Excellon ... self.menufileopenexcellon = QtWidgets.QAction(QtGui.QIcon('share/open_excellon32.png'), - _tr('Open &Excellon ...\tCTRL+E'), + _('Open &Excellon ...\tCTRL+E'), self) self.menufile_open.addAction(self.menufileopenexcellon) # Open G-Code ... - self.menufileopengcode = QtWidgets.QAction(QtGui.QIcon('share/code.png'), _tr('Open G-&Code ...'), self) + self.menufileopengcode = QtWidgets.QAction(QtGui.QIcon('share/code.png'), _('Open G-&Code ...'), self) self.menufile_open.addAction(self.menufileopengcode) # Open Project ... - self.menufileopenproject = QtWidgets.QAction(QtGui.QIcon('share/folder16.png'), _tr('Open &Project ...'), self) + self.menufileopenproject = QtWidgets.QAction(QtGui.QIcon('share/folder16.png'), _('Open &Project ...'), self) self.menufile_open.addAction(self.menufileopenproject) self.menufile_open.addSeparator() # Open Config File... - self.menufileopenconfig = QtWidgets.QAction(QtGui.QIcon('share/folder16.png'), _tr('Open Config ...'), self) + self.menufileopenconfig = QtWidgets.QAction(QtGui.QIcon('share/folder16.png'), _('Open Config ...'), self) self.menufile_open.addAction(self.menufileopenconfig) # Recent - self.recent = self.menufile.addMenu(QtGui.QIcon('share/recent_files.png'), _tr("Recent files")) + self.recent = self.menufile.addMenu(QtGui.QIcon('share/recent_files.png'), _("Recent files")) # Separator self.menufile.addSeparator() # Run Scripts - self.menufilerunscript = QtWidgets.QAction(QtGui.QIcon('share/script16.png'), _tr('Run Script ...\tSHIFT+S'), + self.menufilerunscript = QtWidgets.QAction(QtGui.QIcon('share/script16.png'), _('Run Script ...\tSHIFT+S'), self) self.menufilerunscript.setToolTip( - _tr( "Will run the opened Tcl Script thus\n" + _( "Will run the opened Tcl Script thus\n" "enabling the automation of certain\n" "functions of FlatCAM.") ) @@ -121,38 +114,38 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menufile.addSeparator() # Import ... - self.menufileimport = self.menufile.addMenu(QtGui.QIcon('share/import.png'), _tr('Import')) + self.menufileimport = self.menufile.addMenu(QtGui.QIcon('share/import.png'), _('Import')) self.menufileimportsvg = QtWidgets.QAction(QtGui.QIcon('share/svg16.png'), - _tr('&SVG as Geometry Object ...'), self) + _('&SVG as Geometry Object ...'), self) self.menufileimport.addAction(self.menufileimportsvg) self.menufileimportsvg_as_gerber = QtWidgets.QAction(QtGui.QIcon('share/svg16.png'), - _tr('&SVG as Gerber Object ...'), self) + _('&SVG as Gerber Object ...'), self) self.menufileimport.addAction(self.menufileimportsvg_as_gerber) self.menufileimport.addSeparator() self.menufileimportdxf = QtWidgets.QAction(QtGui.QIcon('share/dxf16.png'), - _tr('&DXF as Geometry Object ...'), self) + _('&DXF as Geometry Object ...'), self) self.menufileimport.addAction(self.menufileimportdxf) self.menufileimportdxf_as_gerber = QtWidgets.QAction(QtGui.QIcon('share/dxf16.png'), - _tr('&DXF as Gerber Object ...'), self) + _('&DXF as Gerber Object ...'), self) self.menufileimport.addAction(self.menufileimportdxf_as_gerber) self.menufileimport.addSeparator() # Export ... - self.menufileexport = self.menufile.addMenu(QtGui.QIcon('share/export.png'), _tr('Export')) + self.menufileexport = self.menufile.addMenu(QtGui.QIcon('share/export.png'), _('Export')) self.menufileexport.setToolTipsVisible(True) - self.menufileexportsvg = QtWidgets.QAction(QtGui.QIcon('share/export.png'), _tr('Export &SVG ...'), self) + self.menufileexportsvg = QtWidgets.QAction(QtGui.QIcon('share/export.png'), _('Export &SVG ...'), self) self.menufileexport.addAction(self.menufileexportsvg) - self.menufileexportdxf = QtWidgets.QAction(QtGui.QIcon('share/export.png'), _tr('Export DXF ...'), self) + self.menufileexportdxf = QtWidgets.QAction(QtGui.QIcon('share/export.png'), _('Export DXF ...'), self) self.menufileexport.addAction(self.menufileexportdxf) self.menufileexport.addSeparator() - self.menufileexportpng = QtWidgets.QAction(QtGui.QIcon('share/export_png32.png'), _tr('Export &PNG ...'), self) + self.menufileexportpng = QtWidgets.QAction(QtGui.QIcon('share/export_png32.png'), _('Export &PNG ...'), self) self.menufileexportpng.setToolTip( - _tr("Will export an image in PNG format,\n" + _("Will export an image in PNG format,\n" "the saved image will contain the visual \n" "information currently in FlatCAM Plot Area.") ) @@ -160,10 +153,10 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menufileexport.addSeparator() - self.menufileexportexcellon = QtWidgets.QAction(QtGui.QIcon('share/drill32.png'), _tr('Export &Excellon ...'), + self.menufileexportexcellon = QtWidgets.QAction(QtGui.QIcon('share/drill32.png'), _('Export &Excellon ...'), self) self.menufileexportexcellon.setToolTip( - _tr( "Will export an Excellon Object as Excellon file,\n" + _( "Will export an Excellon Object as Excellon file,\n" "the coordinates format, the file units and zeros\n" "are set in Preferences -> Excellon Export.") ) @@ -174,24 +167,24 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menufile.addSeparator() # Save Defaults - self.menufilesavedefaults = QtWidgets.QAction(QtGui.QIcon('share/defaults.png'), _tr('Save &Defaults'), self) + self.menufilesavedefaults = QtWidgets.QAction(QtGui.QIcon('share/defaults.png'), _('Save &Defaults'), self) self.menufile.addAction(self.menufilesavedefaults) # Separator self.menufile.addSeparator() - self.menufile_save = self.menufile.addMenu(QtGui.QIcon('share/save_as.png'), _tr('Save')) + self.menufile_save = self.menufile.addMenu(QtGui.QIcon('share/save_as.png'), _('Save')) # Save Project - self.menufilesaveproject = QtWidgets.QAction(QtGui.QIcon('share/floppy16.png'), _tr('&Save Project ...'), self) + self.menufilesaveproject = QtWidgets.QAction(QtGui.QIcon('share/floppy16.png'), _('&Save Project ...'), self) self.menufile_save.addAction(self.menufilesaveproject) # Save Project As ... self.menufilesaveprojectas = QtWidgets.QAction(QtGui.QIcon('share/save_as.png'), - _tr('Save Project &As ...\tCTRL+S'), self) + _('Save Project &As ...\tCTRL+S'), self) self.menufile_save.addAction(self.menufilesaveprojectas) # Save Project Copy ... - self.menufilesaveprojectcopy = QtWidgets.QAction(QtGui.QIcon('share/floppy16.png'), _tr('Save Project C&opy ...'), + self.menufilesaveprojectcopy = QtWidgets.QAction(QtGui.QIcon('share/floppy16.png'), _('Save Project C&opy ...'), self) self.menufile_save.addAction(self.menufilesaveprojectcopy) @@ -199,82 +192,82 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menufile.addSeparator() # Quit - self.menufile_exit = QtWidgets.QAction(QtGui.QIcon('share/power16.png'), _tr('E&xit'), self) + self.menufile_exit = QtWidgets.QAction(QtGui.QIcon('share/power16.png'), _('E&xit'), self) # exitAction.setShortcut('Ctrl+Q') # exitAction.setStatusTip('Exit application') self.menufile.addAction(self.menufile_exit) ### Edit ### - self.menuedit = self.menu.addMenu(_tr('&Edit')) + self.menuedit = self.menu.addMenu(_('&Edit')) # Separator self.menuedit.addSeparator() - self.menueditedit = self.menuedit.addAction(QtGui.QIcon('share/edit16.png'), _tr('Edit Object\tE')) - self.menueditok = self.menuedit.addAction(QtGui.QIcon('share/edit_ok16.png'), _tr('Save && Close Editor\tCTRL+S')) + self.menueditedit = self.menuedit.addAction(QtGui.QIcon('share/edit16.png'), _('Edit Object\tE')) + self.menueditok = self.menuedit.addAction(QtGui.QIcon('share/edit_ok16.png'), _('Save && Close Editor\tCTRL+S')) # Separator self.menuedit.addSeparator() - self.menuedit_convert = self.menuedit.addMenu(QtGui.QIcon('share/convert24.png'), _tr('Conversion')) + self.menuedit_convert = self.menuedit.addMenu(QtGui.QIcon('share/convert24.png'), _('Conversion')) self.menuedit_convertjoin = self.menuedit_convert.addAction( - QtGui.QIcon('share/join16.png'), _tr('&Join Geo/Gerber/Exc -> Geo')) + QtGui.QIcon('share/join16.png'), _('&Join Geo/Gerber/Exc -> Geo')) self.menuedit_convertjoin.setToolTip( - _tr( "Merge a selection of objects, which can be of type:\n" + _( "Merge a selection of objects, which can be of type:\n" "- Gerber\n" "- Excellon\n" "- Geometry\n" "into a new combo Geometry object.") ) self.menuedit_convertjoinexc = self.menuedit_convert.addAction( - QtGui.QIcon('share/join16.png'), _tr('Join Excellon(s) -> Excellon')) + QtGui.QIcon('share/join16.png'), _('Join Excellon(s) -> Excellon')) self.menuedit_convertjoinexc.setToolTip( - _tr( "Merge a selection of Excellon objects into a new combo Excellon object.") + _( "Merge a selection of Excellon objects into a new combo Excellon object.") ) self.menuedit_convertjoingrb = self.menuedit_convert.addAction( - QtGui.QIcon('share/join16.png'), _tr('Join Gerber(s) -> Gerber')) + QtGui.QIcon('share/join16.png'), _('Join Gerber(s) -> Gerber')) self.menuedit_convertjoingrb.setToolTip( - _tr("Merge a selection of Gerber objects into a new combo Gerber object.") + _("Merge a selection of Gerber objects into a new combo Gerber object.") ) # Separator self.menuedit_convert.addSeparator() self.menuedit_convert_sg2mg = self.menuedit_convert.addAction( - QtGui.QIcon('share/convert24.png'), _tr('Convert Single to MultiGeo')) + QtGui.QIcon('share/convert24.png'), _('Convert Single to MultiGeo')) self.menuedit_convert_sg2mg.setToolTip( - _tr( "Will convert a Geometry object from single_geometry type\n" + _( "Will convert a Geometry object from single_geometry type\n" "to a multi_geometry type.") ) self.menuedit_convert_mg2sg = self.menuedit_convert.addAction( - QtGui.QIcon('share/convert24.png'), _tr('Convert Multi to SingleGeo')) + QtGui.QIcon('share/convert24.png'), _('Convert Multi to SingleGeo')) self.menuedit_convert_mg2sg.setToolTip( - _tr( "Will convert a Geometry object from multi_geometry type\n" + _( "Will convert a Geometry object from multi_geometry type\n" "to a single_geometry type.") ) self.menuedit_convert.setToolTipsVisible(True) # Separator self.menuedit.addSeparator() - self.menueditcopyobject = self.menuedit.addAction(QtGui.QIcon('share/copy.png'), _tr('&Copy Object\tCTRL+C')) + self.menueditcopyobject = self.menuedit.addAction(QtGui.QIcon('share/copy.png'), _('&Copy Object\tCTRL+C')) self.menueditcopyobjectasgeom = self.menuedit.addAction(QtGui.QIcon('share/copy_geo.png'), - _tr('Copy as &Geom')) + _('Copy as &Geom')) # Separator self.menuedit.addSeparator() - self.menueditdelete = self.menuedit.addAction(QtGui.QIcon('share/trash16.png'), _tr('&Delete\tDEL')) + self.menueditdelete = self.menuedit.addAction(QtGui.QIcon('share/trash16.png'), _('&Delete\tDEL')) # Separator self.menuedit.addSeparator() - self.menueditorigin = self.menuedit.addAction(QtGui.QIcon('share/origin.png'), _tr('Se&t Origin\tO')) - self.menueditjump = self.menuedit.addAction(QtGui.QIcon('share/jump_to16.png'), _tr('Jump to Location\tJ')) + self.menueditorigin = self.menuedit.addAction(QtGui.QIcon('share/origin.png'), _('Se&t Origin\tO')) + self.menueditjump = self.menuedit.addAction(QtGui.QIcon('share/jump_to16.png'), _('Jump to Location\tJ')) # Separator self.menuedit.addSeparator() self.menuedittoggleunits= self.menuedit.addAction(QtGui.QIcon('share/toggle_units16.png'), - _tr('Toggle Units\tQ')) + _('Toggle Units\tQ')) self.menueditselectall = self.menuedit.addAction(QtGui.QIcon('share/select_all.png'), - _tr('&Select All\tCTRL+A')) + _('&Select All\tCTRL+A')) # Separator self.menuedit.addSeparator() - self.menueditpreferences = self.menuedit.addAction(QtGui.QIcon('share/pref.png'), _tr('&Preferences\tSHIFT+P')) + self.menueditpreferences = self.menuedit.addAction(QtGui.QIcon('share/pref.png'), _('&Preferences\tSHIFT+P')) ### Options ### - self.menuoptions = self.menu.addMenu(_tr('&Options')) + self.menuoptions = self.menu.addMenu(_('&Options')) # self.menuoptions_transfer = self.menuoptions.addMenu(QtGui.QIcon('share/transfer.png'), 'Transfer options') # self.menuoptions_transfer_a2p = self.menuoptions_transfer.addAction("Application to Project") # self.menuoptions_transfer_p2a = self.menuoptions_transfer.addAction("Project to Application") @@ -289,77 +282,77 @@ class FlatCAMGUI(QtWidgets.QMainWindow): # self.menuoptions_transform = self.menuoptions.addMenu(QtGui.QIcon('share/transform.png'), # '&Transform Object') self.menuoptions_transform_rotate = self.menuoptions.addAction(QtGui.QIcon('share/rotate.png'), - _tr("&Rotate Selection\tSHIFT+(R)")) + _("&Rotate Selection\tSHIFT+(R)")) # Separator self.menuoptions.addSeparator() self.menuoptions_transform_skewx = self.menuoptions.addAction(QtGui.QIcon('share/skewX.png'), - _tr("&Skew on X axis\tSHIFT+X")) + _("&Skew on X axis\tSHIFT+X")) self.menuoptions_transform_skewy = self.menuoptions.addAction(QtGui.QIcon('share/skewY.png'), - _tr( "S&kew on Y axis\tSHIFT+Y")) + _( "S&kew on Y axis\tSHIFT+Y")) # Separator self.menuoptions.addSeparator() self.menuoptions_transform_flipx = self.menuoptions.addAction(QtGui.QIcon('share/flipx.png'), - _tr("Flip on &X axis\tX")) + _("Flip on &X axis\tX")) self.menuoptions_transform_flipy = self.menuoptions.addAction(QtGui.QIcon('share/flipy.png'), - _tr("Flip on &Y axis\tY")) + _("Flip on &Y axis\tY")) # Separator self.menuoptions.addSeparator() self.menuoptions_view_source = self.menuoptions.addAction(QtGui.QIcon('share/source32.png'), - _tr("View source\tALT+S")) + _("View source\tALT+S")) # Separator self.menuoptions.addSeparator() ### View ### - self.menuview = self.menu.addMenu(_tr('&View')) - self.menuviewenable = self.menuview.addAction(QtGui.QIcon('share/replot16.png'), _tr('Enable all plots\tALT+1')) + self.menuview = self.menu.addMenu(_('&View')) + self.menuviewenable = self.menuview.addAction(QtGui.QIcon('share/replot16.png'), _('Enable all plots\tALT+1')) self.menuviewdisableall = self.menuview.addAction(QtGui.QIcon('share/clear_plot16.png'), - _tr('Disable all plots\tALT+2')) + _('Disable all plots\tALT+2')) self.menuviewdisableother = self.menuview.addAction(QtGui.QIcon('share/clear_plot16.png'), - _tr('Disable non-selected\tALT+3')) + _('Disable non-selected\tALT+3')) # Separator self.menuview.addSeparator() - self.menuview_zoom_fit = self.menuview.addAction(QtGui.QIcon('share/zoom_fit32.png'), _tr("&Zoom Fit\tV")) - self.menuview_zoom_in = self.menuview.addAction(QtGui.QIcon('share/zoom_in32.png'), _tr("&Zoom In\t-")) - self.menuview_zoom_out = self.menuview.addAction(QtGui.QIcon('share/zoom_out32.png'), _tr("&Zoom Out\t=")) + self.menuview_zoom_fit = self.menuview.addAction(QtGui.QIcon('share/zoom_fit32.png'), _("&Zoom Fit\tV")) + self.menuview_zoom_in = self.menuview.addAction(QtGui.QIcon('share/zoom_in32.png'), _("&Zoom In\t-")) + self.menuview_zoom_out = self.menuview.addAction(QtGui.QIcon('share/zoom_out32.png'), _("&Zoom Out\t=")) self.menuview.addSeparator() self.menuview_toggle_code_editor = self.menuview.addAction(QtGui.QIcon('share/code_editor32.png'), - _tr('Toggle Code Editor\tCTRL+E')) + _('Toggle Code Editor\tCTRL+E')) self.menuview.addSeparator() self.menuview_toggle_fscreen = self.menuview.addAction( - QtGui.QIcon('share/fscreen32.png'), _tr("&Toggle FullScreen\tALT+F10")) + QtGui.QIcon('share/fscreen32.png'), _("&Toggle FullScreen\tALT+F10")) self.menuview_toggle_parea = self.menuview.addAction( - QtGui.QIcon('share/plot32.png'), _tr("&Toggle Plot Area\tCTRL+F10")) + QtGui.QIcon('share/plot32.png'), _("&Toggle Plot Area\tCTRL+F10")) self.menuview_toggle_notebook = self.menuview.addAction( - QtGui.QIcon('share/notebook32.png'), _tr("&Toggle Project/Sel/Tool\t`")) + QtGui.QIcon('share/notebook32.png'), _("&Toggle Project/Sel/Tool\t`")) self.menuview.addSeparator() - self.menuview_toggle_grid = self.menuview.addAction(QtGui.QIcon('share/grid32.png'), _tr("&Toggle Grid Snap\tG") + self.menuview_toggle_grid = self.menuview.addAction(QtGui.QIcon('share/grid32.png'), _("&Toggle Grid Snap\tG") ) - self.menuview_toggle_axis = self.menuview.addAction(QtGui.QIcon('share/axis32.png'), _tr("&Toggle Axis\tSHIFT+G") + self.menuview_toggle_axis = self.menuview.addAction(QtGui.QIcon('share/axis32.png'), _("&Toggle Axis\tSHIFT+G") ) self.menuview_toggle_workspace = self.menuview.addAction(QtGui.QIcon('share/workspace24.png'), - _tr("Toggle Workspace\tSHIFT+W")) + _("Toggle Workspace\tSHIFT+W")) ### Tool ### # self.menutool = self.menu.addMenu('&Tool') self.menutool = QtWidgets.QMenu('&Tool') self.menutoolaction = self.menu.addMenu(self.menutool) - self.menutoolshell = self.menutool.addAction(QtGui.QIcon('share/shell16.png'), _tr('&Command Line\tS')) + self.menutoolshell = self.menutool.addAction(QtGui.QIcon('share/shell16.png'), _('&Command Line\tS')) ### Help ### self.menuhelp = self.menu.addMenu('&Help') - self.menuhelp_manual = self.menuhelp.addAction(QtGui.QIcon('share/globe16.png'), _tr('Help\tF1')) - self.menuhelp_home = self.menuhelp.addAction(QtGui.QIcon('share/home16.png'), _tr('FlatCAM.org')) + self.menuhelp_manual = self.menuhelp.addAction(QtGui.QIcon('share/globe16.png'), _('Help\tF1')) + self.menuhelp_home = self.menuhelp.addAction(QtGui.QIcon('share/home16.png'), _('FlatCAM.org')) self.menuhelp.addSeparator() self.menuhelp_shortcut_list = self.menuhelp.addAction(QtGui.QIcon('share/shortcuts24.png'), - _tr('Shortcuts List\tF3')) - self.menuhelp_videohelp = self.menuhelp.addAction(QtGui.QIcon('share/youtube32.png'), _tr('YouTube Channel\tF4') + _('Shortcuts List\tF3')) + self.menuhelp_videohelp = self.menuhelp.addAction(QtGui.QIcon('share/youtube32.png'), _('YouTube Channel\tF4') ) - self.menuhelp_about = self.menuhelp.addAction(QtGui.QIcon('share/about32.png'), _tr('About')) + self.menuhelp_about = self.menuhelp.addAction(QtGui.QIcon('share/about32.png'), _('About')) ### FlatCAM Editor menu ### @@ -370,71 +363,71 @@ class FlatCAMGUI(QtWidgets.QMainWindow): # self.select_menuitem = self.menu.addAction(QtGui.QIcon('share/pointer16.png'), "Select 'Esc'") self.geo_add_circle_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/circle32.png'), _tr('Add Circle\tO') + QtGui.QIcon('share/circle32.png'), _('Add Circle\tO') ) - self.geo_add_arc_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/arc16.png'), _tr('Add Arc\tA')) + self.geo_add_arc_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/arc16.png'), _('Add Arc\tA')) self.geo_editor_menu.addSeparator() self.geo_add_rectangle_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/rectangle32.png'), _tr('Add Rectangle\tR') + QtGui.QIcon('share/rectangle32.png'), _('Add Rectangle\tR') ) self.geo_add_polygon_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/polygon32.png'), _tr('Add Polygon\tN') + QtGui.QIcon('share/polygon32.png'), _('Add Polygon\tN') ) - self.geo_add_path_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/path32.png'), _tr('Add Path\tP')) + self.geo_add_path_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/path32.png'), _('Add Path\tP')) self.geo_editor_menu.addSeparator() - self.geo_add_text_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/text32.png'), _tr('Add Text\tT')) + self.geo_add_text_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/text32.png'), _('Add Text\tT')) self.geo_editor_menu.addSeparator() self.geo_union_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/union16.png'), - _tr('Polygon Union\tU')) + _('Polygon Union\tU')) self.geo_intersection_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/intersection16.png'), - _tr('Polygon Intersection\tE')) + _('Polygon Intersection\tE')) self.geo_subtract_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/subtract16.png'), _tr('Polygon Subtraction\tS') + QtGui.QIcon('share/subtract16.png'), _('Polygon Subtraction\tS') ) self.geo_editor_menu.addSeparator() self.geo_cutpath_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/cutpath16.png'), - _tr('Cut Path\tX')) + _('Cut Path\tX')) # self.move_menuitem = self.menu.addAction(QtGui.QIcon('share/move16.png'), "Move Objects 'm'") - self.geo_copy_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/copy16.png'), _tr("Copy Geom\tC")) + self.geo_copy_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/copy16.png'), _("Copy Geom\tC")) self.geo_delete_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/deleteshape16.png'), _tr("Delete Shape\tDEL") + QtGui.QIcon('share/deleteshape16.png'), _("Delete Shape\tDEL") ) self.geo_editor_menu.addSeparator() - self.geo_move_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/move32.png'), _tr("Move\tM")) + self.geo_move_menuitem = self.geo_editor_menu.addAction(QtGui.QIcon('share/move32.png'), _("Move\tM")) self.geo_buffer_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/buffer16.png'),_tr( "Buffer Tool\tB") + QtGui.QIcon('share/buffer16.png'),_( "Buffer Tool\tB") ) self.geo_paint_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/paint16.png'), _tr("Paint Tool\tI") + QtGui.QIcon('share/paint16.png'), _("Paint Tool\tI") ) self.geo_transform_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/transform.png'),_tr( "Transform Tool\tALT+R") + QtGui.QIcon('share/transform.png'),_( "Transform Tool\tALT+R") ) self.geo_editor_menu.addSeparator() self.geo_cornersnap_menuitem = self.geo_editor_menu.addAction( - QtGui.QIcon('share/corner32.png'), _tr("Toggle Corner Snap\tK") + QtGui.QIcon('share/corner32.png'), _("Toggle Corner Snap\tK") ) - self.exc_editor_menu = QtWidgets.QMenu(_tr(">Excellon Editor<")) + self.exc_editor_menu = QtWidgets.QMenu(_(">Excellon Editor<")) self.menu.addMenu(self.exc_editor_menu) self.exc_add_array_drill_menuitem = self.exc_editor_menu.addAction( - QtGui.QIcon('share/rectangle32.png'), _tr('Add Drill Array\tA')) + QtGui.QIcon('share/rectangle32.png'), _('Add Drill Array\tA')) self.exc_add_drill_menuitem = self.exc_editor_menu.addAction(QtGui.QIcon('share/plus16.png'), - _tr('Add Drill\tD')) + _('Add Drill\tD')) self.exc_editor_menu.addSeparator() self.exc_resize_drill_menuitem = self.exc_editor_menu.addAction( - QtGui.QIcon('share/resize16.png'), _tr('Resize Drill(S)\tR') + QtGui.QIcon('share/resize16.png'), _('Resize Drill(S)\tR') ) - self.exc_copy_drill_menuitem = self.exc_editor_menu.addAction(QtGui.QIcon('share/copy32.png'), _tr('Copy\tC')) + self.exc_copy_drill_menuitem = self.exc_editor_menu.addAction(QtGui.QIcon('share/copy32.png'), _('Copy\tC')) self.exc_delete_drill_menuitem = self.exc_editor_menu.addAction( - QtGui.QIcon('share/deleteshape32.png'), _tr('Delete\tDEL') + QtGui.QIcon('share/deleteshape32.png'), _('Delete\tDEL') ) self.exc_editor_menu.addSeparator() self.exc_move_drill_menuitem = self.exc_editor_menu.addAction( - QtGui.QIcon('share/move32.png'),_tr( 'Move Drill(s)\tM')) + QtGui.QIcon('share/move32.png'),_( 'Move Drill(s)\tM')) self.geo_editor_menu.menuAction().setVisible(False) self.geo_editor_menu.setDisabled(True) @@ -448,19 +441,19 @@ class FlatCAMGUI(QtWidgets.QMainWindow): ################################ self.menuproject = QtWidgets.QMenu() - self.menuprojectenable = self.menuproject.addAction(QtGui.QIcon('share/replot32.png'), _tr('Enable Plot')) - self.menuprojectdisable = self.menuproject.addAction(QtGui.QIcon('share/clear_plot32.png'), _tr('Disable Plot')) + self.menuprojectenable = self.menuproject.addAction(QtGui.QIcon('share/replot32.png'), _('Enable Plot')) + self.menuprojectdisable = self.menuproject.addAction(QtGui.QIcon('share/clear_plot32.png'), _('Disable Plot')) self.menuproject.addSeparator() - self.menuprojectgeneratecnc = self.menuproject.addAction(QtGui.QIcon('share/cnc32.png'), _tr('Generate CNC')) - self.menuprojectviewsource = self.menuproject.addAction(QtGui.QIcon('share/source32.png'), _tr('View Source')) + self.menuprojectgeneratecnc = self.menuproject.addAction(QtGui.QIcon('share/cnc32.png'), _('Generate CNC')) + self.menuprojectviewsource = self.menuproject.addAction(QtGui.QIcon('share/source32.png'), _('View Source')) - self.menuprojectedit = self.menuproject.addAction(QtGui.QIcon('share/edit_ok32.png'), _tr('Edit')) - self.menuprojectcopy = self.menuproject.addAction(QtGui.QIcon('share/copy32.png'), _tr('Copy')) - self.menuprojectdelete = self.menuproject.addAction(QtGui.QIcon('share/delete32.png'), _tr('Delete')) - self.menuprojectsave= self.menuproject.addAction(QtGui.QIcon('share/save_as.png'), _tr('Save')) + self.menuprojectedit = self.menuproject.addAction(QtGui.QIcon('share/edit_ok32.png'), _('Edit')) + self.menuprojectcopy = self.menuproject.addAction(QtGui.QIcon('share/copy32.png'), _('Copy')) + self.menuprojectdelete = self.menuproject.addAction(QtGui.QIcon('share/delete32.png'), _('Delete')) + self.menuprojectsave= self.menuproject.addAction(QtGui.QIcon('share/save_as.png'), _('Save')) self.menuproject.addSeparator() - self.menuprojectproperties = self.menuproject.addAction(QtGui.QIcon('share/properties32.png'), _tr('Properties')) + self.menuprojectproperties = self.menuproject.addAction(QtGui.QIcon('share/properties32.png'), _('Properties')) ################ ### Splitter ### @@ -489,35 +482,35 @@ class FlatCAMGUI(QtWidgets.QMainWindow): ############### ### TOOLBAR INSTALLATION ### - self.toolbarfile = QtWidgets.QToolBar(_tr('File Toolbar')) + self.toolbarfile = QtWidgets.QToolBar(_('File Toolbar')) self.toolbarfile.setObjectName('File_TB') self.addToolBar(self.toolbarfile) - self.toolbargeo = QtWidgets.QToolBar(_tr('Edit Toolbar')) + self.toolbargeo = QtWidgets.QToolBar(_('Edit Toolbar')) self.toolbargeo.setObjectName('Edit_TB') self.addToolBar(self.toolbargeo) - self.toolbarview = QtWidgets.QToolBar(_tr('View Toolbar')) + self.toolbarview = QtWidgets.QToolBar(_('View Toolbar')) self.toolbarview.setObjectName('View_TB') self.addToolBar(self.toolbarview) - self.toolbarshell = QtWidgets.QToolBar(_tr('Shell Toolbar')) + self.toolbarshell = QtWidgets.QToolBar(_('Shell Toolbar')) self.toolbarshell.setObjectName('Shell_TB') self.addToolBar(self.toolbarshell) - self.toolbartools = QtWidgets.QToolBar(_tr('Tools Toolbar')) + self.toolbartools = QtWidgets.QToolBar(_('Tools Toolbar')) self.toolbartools.setObjectName('Tools_TB') self.addToolBar(self.toolbartools) - self.exc_edit_toolbar = QtWidgets.QToolBar(_tr('Excellon Editor Toolbar')) + self.exc_edit_toolbar = QtWidgets.QToolBar(_('Excellon Editor Toolbar')) self.exc_edit_toolbar.setObjectName('ExcEditor_TB') self.addToolBar(self.exc_edit_toolbar) - self.geo_edit_toolbar = QtWidgets.QToolBar(_tr('Geometry Editor Toolbar')) + self.geo_edit_toolbar = QtWidgets.QToolBar(_('Geometry Editor Toolbar')) self.geo_edit_toolbar.setObjectName('GeoEditor_TB') self.addToolBar(self.geo_edit_toolbar) - self.snap_toolbar = QtWidgets.QToolBar(_tr('Grid Toolbar')) + self.snap_toolbar = QtWidgets.QToolBar(_('Grid Toolbar')) self.snap_toolbar.setObjectName('Snap_TB') self.addToolBar(self.snap_toolbar) @@ -533,127 +526,127 @@ class FlatCAMGUI(QtWidgets.QMainWindow): ### File Toolbar ### self.file_open_gerber_btn = self.toolbarfile.addAction(QtGui.QIcon('share/flatcam_icon32.png'), - _tr("Open Gerber")) - self.file_open_excellon_btn = self.toolbarfile.addAction(QtGui.QIcon('share/drill32.png'), _tr("Open Excellon")) + _("Open Gerber")) + self.file_open_excellon_btn = self.toolbarfile.addAction(QtGui.QIcon('share/drill32.png'), _("Open Excellon")) self.toolbarfile.addSeparator() - self.file_open_btn = self.toolbarfile.addAction(QtGui.QIcon('share/folder32.png'), _tr("Open project")) - self.file_save_btn = self.toolbarfile.addAction(QtGui.QIcon('share/floppy32.png'), _tr("Save project")) + self.file_open_btn = self.toolbarfile.addAction(QtGui.QIcon('share/folder32.png'), _("Open project")) + self.file_save_btn = self.toolbarfile.addAction(QtGui.QIcon('share/floppy32.png'), _("Save project")) ### Edit Toolbar ### - self.newgeo_btn = self.toolbargeo.addAction(QtGui.QIcon('share/new_geo32_bis.png'), _tr("New Blank Geometry")) - self.newexc_btn = self.toolbargeo.addAction(QtGui.QIcon('share/new_exc32.png'), _tr("New Blank Excellon")) + self.newgeo_btn = self.toolbargeo.addAction(QtGui.QIcon('share/new_geo32_bis.png'), _("New Blank Geometry")) + self.newexc_btn = self.toolbargeo.addAction(QtGui.QIcon('share/new_exc32.png'), _("New Blank Excellon")) self.toolbargeo.addSeparator() - self.editgeo_btn = self.toolbargeo.addAction(QtGui.QIcon('share/edit32.png'), _tr("Editor")) + self.editgeo_btn = self.toolbargeo.addAction(QtGui.QIcon('share/edit32.png'), _("Editor")) self.update_obj_btn = self.toolbargeo.addAction( - QtGui.QIcon('share/edit_ok32_bis.png'), _tr("Save Object and close the Editor") + QtGui.QIcon('share/edit_ok32_bis.png'), _("Save Object and close the Editor") ) self.toolbargeo.addSeparator() - self.delete_btn = self.toolbargeo.addAction(QtGui.QIcon('share/cancel_edit32.png'), _tr("&Delete")) + self.delete_btn = self.toolbargeo.addAction(QtGui.QIcon('share/cancel_edit32.png'), _("&Delete")) ### View Toolbar ### - self.replot_btn = self.toolbarview.addAction(QtGui.QIcon('share/replot32.png'), _tr("&Replot")) - self.clear_plot_btn = self.toolbarview.addAction(QtGui.QIcon('share/clear_plot32.png'), _tr("&Clear plot")) - self.zoom_in_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_in32.png'), _tr("Zoom In")) - self.zoom_out_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_out32.png'), _tr("Zoom Out")) - self.zoom_fit_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_fit32.png'), _tr("Zoom Fit")) + self.replot_btn = self.toolbarview.addAction(QtGui.QIcon('share/replot32.png'), _("&Replot")) + self.clear_plot_btn = self.toolbarview.addAction(QtGui.QIcon('share/clear_plot32.png'), _("&Clear plot")) + self.zoom_in_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_in32.png'), _("Zoom In")) + self.zoom_out_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_out32.png'), _("Zoom Out")) + self.zoom_fit_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_fit32.png'), _("Zoom Fit")) # self.toolbarview.setVisible(False) ### Shell Toolbar ### - self.shell_btn = self.toolbarshell.addAction(QtGui.QIcon('share/shell32.png'), _tr("&Command Line")) + self.shell_btn = self.toolbarshell.addAction(QtGui.QIcon('share/shell32.png'), _("&Command Line")) ### Tools Toolbar ### - self.dblsided_btn = self.toolbartools.addAction(QtGui.QIcon('share/doubleside32.png'), _tr("2Sided Tool")) - self.cutout_btn = self.toolbartools.addAction(QtGui.QIcon('share/cut16.png'), _tr("&Cutout Tool")) - self.ncc_btn = self.toolbartools.addAction(QtGui.QIcon('share/flatcam_icon32.png'), _tr("NCC Tool")) - self.paint_btn = self.toolbartools.addAction(QtGui.QIcon('share/paint20_1.png'), _tr("Paint Tool")) + self.dblsided_btn = self.toolbartools.addAction(QtGui.QIcon('share/doubleside32.png'), _("2Sided Tool")) + self.cutout_btn = self.toolbartools.addAction(QtGui.QIcon('share/cut16.png'), _("&Cutout Tool")) + self.ncc_btn = self.toolbartools.addAction(QtGui.QIcon('share/flatcam_icon32.png'), _("NCC Tool")) + self.paint_btn = self.toolbartools.addAction(QtGui.QIcon('share/paint20_1.png'), _("Paint Tool")) self.toolbartools.addSeparator() - self.panelize_btn = self.toolbartools.addAction(QtGui.QIcon('share/panel16.png'), _tr("Panel Tool")) - self.film_btn = self.toolbartools.addAction(QtGui.QIcon('share/film16.png'),_tr( "Film Tool")) - self.solder_btn = self.toolbartools.addAction(QtGui.QIcon('share/solderpastebis32.png'), _tr("SolderPaste Tool")) + self.panelize_btn = self.toolbartools.addAction(QtGui.QIcon('share/panel16.png'), _("Panel Tool")) + self.film_btn = self.toolbartools.addAction(QtGui.QIcon('share/film16.png'),_( "Film Tool")) + self.solder_btn = self.toolbartools.addAction(QtGui.QIcon('share/solderpastebis32.png'), _("SolderPaste Tool")) self.toolbartools.addSeparator() - self.calculators_btn = self.toolbartools.addAction(QtGui.QIcon('share/calculator24.png'), _tr("Calculators Tool")) - self.transform_btn = self.toolbartools.addAction(QtGui.QIcon('share/transform.png'), _tr("Transform Tool")) + self.calculators_btn = self.toolbartools.addAction(QtGui.QIcon('share/calculator24.png'), _("Calculators Tool")) + self.transform_btn = self.toolbartools.addAction(QtGui.QIcon('share/transform.png'), _("Transform Tool")) ### Drill Editor Toolbar ### - self.select_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/pointer32.png'), _tr("Select")) - self.add_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/plus16.png'), _tr('Add Drill Hole')) + self.select_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/pointer32.png'), _("Select")) + self.add_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/plus16.png'), _('Add Drill Hole')) self.add_drill_array_btn = self.exc_edit_toolbar.addAction( QtGui.QIcon('share/addarray16.png'), 'Add Drill Hole Array') - self.resize_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/resize16.png'), _tr('Resize Drill')) + self.resize_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/resize16.png'), _('Resize Drill')) self.exc_edit_toolbar.addSeparator() - self.copy_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/copy32.png'), _tr('Copy Drill')) - self.delete_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/deleteshape32.png'), _tr("Delete Drill")) + self.copy_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/copy32.png'), _('Copy Drill')) + self.delete_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/deleteshape32.png'), _("Delete Drill")) self.exc_edit_toolbar.addSeparator() - self.move_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/move32.png'), _tr("Move Drill")) + self.move_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/move32.png'), _("Move Drill")) ### Geometry Editor Toolbar ### - self.geo_select_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/pointer32.png'), _tr("Select")) - self.geo_add_circle_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/circle32.png'), _tr('Add Circle')) - self.geo_add_arc_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/arc32.png'), _tr('Add Arc')) + self.geo_select_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/pointer32.png'), _("Select")) + self.geo_add_circle_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/circle32.png'), _('Add Circle')) + self.geo_add_arc_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/arc32.png'), _('Add Arc')) self.geo_add_rectangle_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/rectangle32.png'), - _tr('Add Rectangle')) + _('Add Rectangle')) self.geo_edit_toolbar.addSeparator() - self.geo_add_path_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/path32.png'), _tr('Add Path')) - self.geo_add_polygon_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/polygon32.png'), _tr('Add Polygon')) + self.geo_add_path_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/path32.png'), _('Add Path')) + self.geo_add_polygon_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/polygon32.png'), _('Add Polygon')) self.geo_edit_toolbar.addSeparator() - self.geo_add_text_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/text32.png'), _tr('Add Text')) - self.geo_add_buffer_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/buffer16-2.png'), _tr('Add Buffer')) - self.geo_add_paint_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/paint20_1.png'), _tr('Paint Shape')) + self.geo_add_text_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/text32.png'), _('Add Text')) + self.geo_add_buffer_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/buffer16-2.png'), _('Add Buffer')) + self.geo_add_paint_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/paint20_1.png'), _('Paint Shape')) self.geo_edit_toolbar.addSeparator() - self.geo_union_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/union32.png'), _tr('Polygon Union')) + self.geo_union_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/union32.png'), _('Polygon Union')) self.geo_intersection_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/intersection32.png'), - _tr('Polygon Intersection')) + _('Polygon Intersection')) self.geo_subtract_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/subtract32.png'), - _tr('Polygon Subtraction')) + _('Polygon Subtraction')) self.geo_edit_toolbar.addSeparator() - self.geo_cutpath_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/cutpath32.png'), _tr('Cut Path')) - self.geo_copy_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/copy32.png'), _tr("Copy Shape(s)")) + self.geo_cutpath_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/cutpath32.png'), _('Cut Path')) + self.geo_copy_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/copy32.png'), _("Copy Shape(s)")) self.geo_delete_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/deleteshape32.png'), - _tr("Delete Shape '-'")) + _("Delete Shape '-'")) self.geo_transform_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/transform.png'), - _tr("Transformations")) + _("Transformations")) self.geo_edit_toolbar.addSeparator() - self.geo_move_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/move32.png'), _tr("Move Objects ")) + self.geo_move_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/move32.png'), _("Move Objects ")) ### Snap Toolbar ### # Snap GRID toolbar is always active to facilitate usage of measurements done on GRID # self.addToolBar(self.snap_toolbar) - self.grid_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share/grid32.png'), _tr('Snap to grid')) + self.grid_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share/grid32.png'), _('Snap to grid')) self.grid_gap_x_entry = FCEntry2() self.grid_gap_x_entry.setMaximumWidth(70) - self.grid_gap_x_entry.setToolTip(_tr("Grid X snapping distance")) + self.grid_gap_x_entry.setToolTip(_("Grid X snapping distance")) self.snap_toolbar.addWidget(self.grid_gap_x_entry) self.grid_gap_y_entry = FCEntry2() self.grid_gap_y_entry.setMaximumWidth(70) - self.grid_gap_y_entry.setToolTip(_tr("Grid Y snapping distance")) + self.grid_gap_y_entry.setToolTip(_("Grid Y snapping distance")) self.snap_toolbar.addWidget(self.grid_gap_y_entry) self.grid_space_label = QtWidgets.QLabel(" ") self.snap_toolbar.addWidget(self.grid_space_label) self.grid_gap_link_cb = FCCheckBox() - self.grid_gap_link_cb.setToolTip(_tr("When active, value on Grid_X\n" + self.grid_gap_link_cb.setToolTip(_("When active, value on Grid_X\n" "is copied to the Grid_Y value.")) self.snap_toolbar.addWidget(self.grid_gap_link_cb) self.ois_grid = OptionalInputSection(self.grid_gap_link_cb, [self.grid_gap_y_entry], logic=False) - self.corner_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share/corner32.png'), _tr('Snap to corner')) + self.corner_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share/corner32.png'), _('Snap to corner')) self.snap_max_dist_entry = FCEntry() self.snap_max_dist_entry.setMaximumWidth(70) - self.snap_max_dist_entry.setToolTip(_tr("Max. magnet distance")) + self.snap_max_dist_entry.setToolTip(_("Max. magnet distance")) self.snap_magnet = self.snap_toolbar.addWidget(self.snap_max_dist_entry) @@ -667,7 +660,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): # project_tab.setMinimumWidth(250) # Hack self.project_tab_layout = QtWidgets.QVBoxLayout(self.project_tab) self.project_tab_layout.setContentsMargins(2, 2, 2, 2) - self.notebook.addTab(self.project_tab,_tr( "Project")) + self.notebook.addTab(self.project_tab,_( "Project")) ### Selected ### self.selected_tab = QtWidgets.QWidget() @@ -676,14 +669,14 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.selected_tab_layout.setContentsMargins(2, 2, 2, 2) self.selected_scroll_area = VerticalScrollArea() self.selected_tab_layout.addWidget(self.selected_scroll_area) - self.notebook.addTab(self.selected_tab, _tr("Selected")) + self.notebook.addTab(self.selected_tab, _("Selected")) ### Tool ### self.tool_tab = QtWidgets.QWidget() - self.tool_tab.setObjectName(_tr("tool_tab")) + self.tool_tab.setObjectName(_("tool_tab")) self.tool_tab_layout = QtWidgets.QVBoxLayout(self.tool_tab) self.tool_tab_layout.setContentsMargins(2, 2, 2, 2) - self.notebook.addTab(self.tool_tab, _tr("Tool")) + self.notebook.addTab(self.tool_tab, _("Tool")) self.tool_scroll_area = VerticalScrollArea() self.tool_tab_layout.addWidget(self.tool_scroll_area) @@ -695,7 +688,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.right_lay.setContentsMargins(0, 0, 0, 0) self.right_widget.setLayout(self.right_lay) # self.plot_tab_area = FCTab() - self.plot_tab_area = FCDetachableTab(protect=False, protect_by_name=[_tr('Plot Area')]) + self.plot_tab_area = FCDetachableTab(protect=False, protect_by_name=[_('Plot Area')]) self.plot_tab_area.useOldIndex(True) self.right_lay.addWidget(self.plot_tab_area) @@ -703,7 +696,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.plot_tab = QtWidgets.QWidget() self.plot_tab.setObjectName("plotarea") - self.plot_tab_area.addTab(self.plot_tab, _tr("Plot Area")) + self.plot_tab_area.addTab(self.plot_tab, _("Plot Area")) self.right_layout = QtWidgets.QVBoxLayout() self.right_layout.setContentsMargins(2, 2, 2, 2) @@ -727,7 +720,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.pref_tab_layout.addWidget(self.pref_tab_area) self.general_tab = QtWidgets.QWidget() - self.pref_tab_area.addTab(self.general_tab, _tr("General")) + self.pref_tab_area.addTab(self.general_tab, _("General")) self.general_tab_lay = QtWidgets.QVBoxLayout() self.general_tab_lay.setContentsMargins(2, 2, 2, 2) self.general_tab.setLayout(self.general_tab_lay) @@ -736,8 +729,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.general_tab_lay.addLayout(self.hlay1) self.options_combo = QtWidgets.QComboBox() - self.options_combo.addItem(_tr("APP. DEFAULTS")) - self.options_combo.addItem(_tr("PROJ. OPTIONS ")) + self.options_combo.addItem(_("APP. DEFAULTS")) + self.options_combo.addItem(_("PROJ. OPTIONS ")) self.hlay1.addWidget(self.options_combo) # disable this button as it may no longer be useful @@ -748,7 +741,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.general_tab_lay.addWidget(self.general_scroll_area) self.gerber_tab = QtWidgets.QWidget() - self.pref_tab_area.addTab(self.gerber_tab, _tr("GERBER")) + self.pref_tab_area.addTab(self.gerber_tab, _("GERBER")) self.gerber_tab_lay = QtWidgets.QVBoxLayout() self.gerber_tab_lay.setContentsMargins(2, 2, 2, 2) self.gerber_tab.setLayout(self.gerber_tab_lay) @@ -757,7 +750,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.gerber_tab_lay.addWidget(self.gerber_scroll_area) self.excellon_tab = QtWidgets.QWidget() - self.pref_tab_area.addTab(self.excellon_tab, _tr("EXCELLON")) + self.pref_tab_area.addTab(self.excellon_tab, _("EXCELLON")) self.excellon_tab_lay = QtWidgets.QVBoxLayout() self.excellon_tab_lay.setContentsMargins(2, 2, 2, 2) self.excellon_tab.setLayout(self.excellon_tab_lay) @@ -766,7 +759,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.excellon_tab_lay.addWidget(self.excellon_scroll_area) self.geometry_tab = QtWidgets.QWidget() - self.pref_tab_area.addTab(self.geometry_tab, _tr("GEOMETRY")) + self.pref_tab_area.addTab(self.geometry_tab, _("GEOMETRY")) self.geometry_tab_lay = QtWidgets.QVBoxLayout() self.geometry_tab_lay.setContentsMargins(2, 2, 2, 2) self.geometry_tab.setLayout(self.geometry_tab_lay) @@ -776,7 +769,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.cncjob_tab = QtWidgets.QWidget() self.cncjob_tab.setObjectName("cncjob_tab") - self.pref_tab_area.addTab(self.cncjob_tab, _tr("CNC-JOB")) + self.pref_tab_area.addTab(self.cncjob_tab, _("CNC-JOB")) self.cncjob_tab_lay = QtWidgets.QVBoxLayout() self.cncjob_tab_lay.setContentsMargins(2, 2, 2, 2) self.cncjob_tab.setLayout(self.cncjob_tab_lay) @@ -785,7 +778,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.cncjob_tab_lay.addWidget(self.cncjob_scroll_area) self.tools_tab = QtWidgets.QWidget() - self.pref_tab_area.addTab(self.tools_tab, _tr("TOOLS")) + self.pref_tab_area.addTab(self.tools_tab, _("TOOLS")) self.tools_tab_lay = QtWidgets.QVBoxLayout() self.tools_tab_lay.setContentsMargins(2, 2, 2, 2) self.tools_tab.setLayout(self.tools_tab_lay) @@ -802,28 +795,28 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.pref_tab_bottom_layout.addLayout(self.pref_tab_bottom_layout_1) self.pref_import_button = QtWidgets.QPushButton() - self.pref_import_button.setText(_tr("Import Preferences")) + self.pref_import_button.setText(_("Import Preferences")) self.pref_import_button.setFixedWidth(130) self.pref_import_button.setToolTip( - _tr("Import a full set of FlatCAM settings from a file\n" + _("Import a full set of FlatCAM settings from a file\n" "previously saved on HDD.\n\n" "FlatCAM automatically save a 'factory_defaults' file\n" "on the first start. Do not delete that file.")) self.pref_tab_bottom_layout_1.addWidget(self.pref_import_button) self.pref_export_button = QtWidgets.QPushButton() - self.pref_export_button.setText(_tr("Export Preferences")) + self.pref_export_button.setText(_("Export Preferences")) self.pref_export_button.setFixedWidth(130) self.pref_export_button.setToolTip( - _tr( "Export a full set of FlatCAM settings in a file\n" + _( "Export a full set of FlatCAM settings in a file\n" "that is saved on HDD.")) self.pref_tab_bottom_layout_1.addWidget(self.pref_export_button) self.pref_open_button = QtWidgets.QPushButton() - self.pref_open_button.setText(_tr("Open Pref Folder")) + self.pref_open_button.setText(_("Open Pref Folder")) self.pref_open_button.setFixedWidth(130) self.pref_open_button.setToolTip( - _tr("Open the folder where FlatCAM save the preferences files.")) + _("Open the folder where FlatCAM save the preferences files.")) self.pref_tab_bottom_layout_1.addWidget(self.pref_open_button) self.pref_tab_bottom_layout_2 = QtWidgets.QHBoxLayout() @@ -831,10 +824,10 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.pref_tab_bottom_layout.addLayout(self.pref_tab_bottom_layout_2) self.pref_save_button = QtWidgets.QPushButton() - self.pref_save_button.setText(_tr("Save Preferences")) + self.pref_save_button.setText(_("Save Preferences")) self.pref_save_button.setFixedWidth(130) self.pref_save_button.setToolTip( - _tr("Save the current settings in the 'current_defaults' file\n" + _("Save the current settings in the 'current_defaults' file\n" "which is the file storing the working default preferences.")) self.pref_tab_bottom_layout_2.addWidget(self.pref_save_button) @@ -848,7 +841,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.sh_hlay = QtWidgets.QHBoxLayout() self.sh_title = QtWidgets.QTextEdit( - _tr('Shortcut Key List')) + _('Shortcut Key List')) self.sh_title.setTextInteractionFlags(QtCore.Qt.NoTextInteraction) self.sh_title.setFrameStyle(QtWidgets.QFrame.NoFrame) self.sh_title.setMaximumHeight(30) @@ -859,7 +852,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.sh_tab_layout.addWidget(self.sh_title) self.sh_tab_layout.addLayout(self.sh_hlay) - self.app_sh_msg = _tr( + self.app_sh_msg = _( '''General Shortcut list
@@ -1136,7 +1129,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.sh_app.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) self.sh_hlay.addWidget(self.sh_app) - self.editor_sh_msg = _tr( + self.editor_sh_msg = _( '''Editor Shortcut list

GEOMETRY EDITOR
@@ -1350,45 +1343,45 @@ class FlatCAMGUI(QtWidgets.QMainWindow): ############################################################## self.popMenu = QtWidgets.QMenu() - self.popmenu_disable = self.popMenu.addAction(QtGui.QIcon('share/clear_plot32.png'), _tr("Disable")) + self.popmenu_disable = self.popMenu.addAction(QtGui.QIcon('share/clear_plot32.png'), _("Disable")) self.popMenu.addSeparator() - self.cmenu_newmenu = self.popMenu.addMenu(QtGui.QIcon('share/file32.png'), _tr("New")) - self.popmenu_new_geo = self.cmenu_newmenu.addAction(QtGui.QIcon('share/new_geo32_bis.png'), _tr("Geometry")) - self.popmenu_new_exc = self.cmenu_newmenu.addAction(QtGui.QIcon('share/new_exc32.png'), _tr("Excellon")) + self.cmenu_newmenu = self.popMenu.addMenu(QtGui.QIcon('share/file32.png'), _("New")) + self.popmenu_new_geo = self.cmenu_newmenu.addAction(QtGui.QIcon('share/new_geo32_bis.png'), _("Geometry")) + self.popmenu_new_exc = self.cmenu_newmenu.addAction(QtGui.QIcon('share/new_exc32.png'), _("Excellon")) self.cmenu_newmenu.addSeparator() - self.popmenu_new_prj = self.cmenu_newmenu.addAction(QtGui.QIcon('share/file16.png'), _tr("Project")) + self.popmenu_new_prj = self.cmenu_newmenu.addAction(QtGui.QIcon('share/file16.png'), _("Project")) self.popMenu.addSeparator() - self.cmenu_gridmenu = self.popMenu.addMenu(QtGui.QIcon('share/grid32_menu.png'), _tr("Grids")) + self.cmenu_gridmenu = self.popMenu.addMenu(QtGui.QIcon('share/grid32_menu.png'), _("Grids")) - self.cmenu_viewmenu = self.popMenu.addMenu(QtGui.QIcon('share/view64.png'), _tr("View")) - self.zoomfit = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/zoom_fit32.png'), _tr("Zoom Fit")) - self.clearplot = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/clear_plot32.png'), _tr("Clear Plot")) - self.replot = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/replot32.png'), _tr("Replot")) + self.cmenu_viewmenu = self.popMenu.addMenu(QtGui.QIcon('share/view64.png'), _("View")) + self.zoomfit = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/zoom_fit32.png'), _("Zoom Fit")) + self.clearplot = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/clear_plot32.png'), _("Clear Plot")) + self.replot = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/replot32.png'), _("Replot")) self.popMenu.addSeparator() - self.g_editor_cmenu = self.popMenu.addMenu(QtGui.QIcon('share/draw32.png'), _tr("Geo Editor")) - self.draw_line = self.g_editor_cmenu.addAction(QtGui.QIcon('share/path32.png'), _tr("Line")) - self.draw_rect = self.g_editor_cmenu.addAction(QtGui.QIcon('share/rectangle32.png'), _tr("Rectangle")) - self.draw_cut = self.g_editor_cmenu.addAction(QtGui.QIcon('share/cutpath32.png'), _tr("Cut")) + self.g_editor_cmenu = self.popMenu.addMenu(QtGui.QIcon('share/draw32.png'), _("Geo Editor")) + self.draw_line = self.g_editor_cmenu.addAction(QtGui.QIcon('share/path32.png'), _("Line")) + self.draw_rect = self.g_editor_cmenu.addAction(QtGui.QIcon('share/rectangle32.png'), _("Rectangle")) + self.draw_cut = self.g_editor_cmenu.addAction(QtGui.QIcon('share/cutpath32.png'), _("Cut")) self.g_editor_cmenu.addSeparator() - self.draw_move = self.g_editor_cmenu.addAction(QtGui.QIcon('share/move32.png'), _tr("Move")) + self.draw_move = self.g_editor_cmenu.addAction(QtGui.QIcon('share/move32.png'), _("Move")) - self.e_editor_cmenu = self.popMenu.addMenu(QtGui.QIcon('share/drill32.png'), _tr("Exc Editor")) - self.drill = self.e_editor_cmenu.addAction(QtGui.QIcon('share/drill32.png'), _tr("Add Drill")) - self.drill_array = self.e_editor_cmenu.addAction(QtGui.QIcon('share/addarray32.png'), _tr("Add Drill Array")) - self.drill_copy = self.e_editor_cmenu.addAction(QtGui.QIcon('share/copy32.png'), _tr("Copy Drill(s)")) + self.e_editor_cmenu = self.popMenu.addMenu(QtGui.QIcon('share/drill32.png'), _("Exc Editor")) + self.drill = self.e_editor_cmenu.addAction(QtGui.QIcon('share/drill32.png'), _("Add Drill")) + self.drill_array = self.e_editor_cmenu.addAction(QtGui.QIcon('share/addarray32.png'), _("Add Drill Array")) + self.drill_copy = self.e_editor_cmenu.addAction(QtGui.QIcon('share/copy32.png'), _("Copy Drill(s)")) self.popMenu.addSeparator() - self.popmenu_copy = self.popMenu.addAction(QtGui.QIcon('share/copy32.png'), _tr("Copy")) - self.popmenu_delete = self.popMenu.addAction(QtGui.QIcon('share/delete32.png'), _tr("Delete")) - self.popmenu_edit = self.popMenu.addAction(QtGui.QIcon('share/edit32.png'), _tr("Edit")) - self.popmenu_save = self.popMenu.addAction(QtGui.QIcon('share/floppy32.png'), _tr("Save && Close Edit")) + self.popmenu_copy = self.popMenu.addAction(QtGui.QIcon('share/copy32.png'), _("Copy")) + self.popmenu_delete = self.popMenu.addAction(QtGui.QIcon('share/delete32.png'), _("Delete")) + self.popmenu_edit = self.popMenu.addAction(QtGui.QIcon('share/edit32.png'), _("Edit")) + self.popmenu_save = self.popMenu.addAction(QtGui.QIcon('share/floppy32.png'), _("Save && Close Edit")) self.popmenu_save.setVisible(False) self.popMenu.addSeparator() - self.popmenu_move = self.popMenu.addAction(QtGui.QIcon('share/move32.png'), _tr("Move")) - self.popmenu_properties = self.popMenu.addAction(QtGui.QIcon('share/properties32.png'), _tr("Properties")) + self.popmenu_move = self.popMenu.addAction(QtGui.QIcon('share/move32.png'), _("Move")) + self.popmenu_properties = self.popMenu.addAction(QtGui.QIcon('share/properties32.png'), _("Properties")) #################################### @@ -1408,24 +1401,24 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.code_editor.setStyleSheet(stylesheet) - self.buttonPreview = QtWidgets.QPushButton(_tr('Print Preview')) - self.buttonPrint = QtWidgets.QPushButton(_tr('Print Code')) - self.buttonFind = QtWidgets.QPushButton(_tr('Find in Code')) + self.buttonPreview = QtWidgets.QPushButton(_('Print Preview')) + self.buttonPrint = QtWidgets.QPushButton(_('Print Code')) + self.buttonFind = QtWidgets.QPushButton(_('Find in Code')) self.buttonFind.setFixedWidth(100) self.buttonPreview.setFixedWidth(100) self.entryFind = FCEntry() self.entryFind.setMaximumWidth(200) - self.buttonReplace = QtWidgets.QPushButton(_tr('Replace With')) + self.buttonReplace = QtWidgets.QPushButton(_('Replace With')) self.buttonReplace.setFixedWidth(100) self.entryReplace = FCEntry() self.entryReplace.setMaximumWidth(200) - self.sel_all_cb = QtWidgets.QCheckBox(_tr('All')) + self.sel_all_cb = QtWidgets.QCheckBox(_('All')) self.sel_all_cb.setToolTip( - _tr("When checked it will replace all instances in the 'Find' box\n" + _("When checked it will replace all instances in the 'Find' box\n" "with the text in the 'Replace' box..") ) - self.buttonOpen = QtWidgets.QPushButton(_tr('Open Code')) - self.buttonSave = QtWidgets.QPushButton(_tr('Save Code')) + self.buttonOpen = QtWidgets.QPushButton(_('Open Code')) + self.buttonSave = QtWidgets.QPushButton(_('Save Code')) self.cncjob_tab_layout.addWidget(self.code_editor, 0, 0, 1, 5) @@ -1460,13 +1453,13 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.rel_position_label = QtWidgets.QLabel( "Dx: 0.0000   Dy: 0.0000    ") self.rel_position_label.setMinimumWidth(110) - self.rel_position_label.setToolTip(_tr("Relative neasurement.\nReference is last click position")) + self.rel_position_label.setToolTip(_("Relative neasurement.\nReference is last click position")) self.infobar.addWidget(self.rel_position_label) self.position_label = QtWidgets.QLabel( "    X: 0.0000   Y: 0.0000") self.position_label.setMinimumWidth(110) - self.position_label.setToolTip(_tr("Absolute neasurement.\nReference is (X=0, Y= 0) position")) + self.position_label.setToolTip(_("Absolute neasurement.\nReference is (X=0, Y= 0) position")) self.infobar.addWidget(self.position_label) self.units_label = QtWidgets.QLabel("[in]") @@ -1582,132 +1575,132 @@ class FlatCAMGUI(QtWidgets.QMainWindow): ### File Toolbar ### self.file_open_gerber_btn = self.toolbarfile.addAction(QtGui.QIcon('share/flatcam_icon32.png'), - _tr("Open Gerber")) - self.file_open_excellon_btn = self.toolbarfile.addAction(QtGui.QIcon('share/drill32.png'), _tr("Open Excellon")) + _("Open Gerber")) + self.file_open_excellon_btn = self.toolbarfile.addAction(QtGui.QIcon('share/drill32.png'), _("Open Excellon")) self.toolbarfile.addSeparator() - self.file_open_btn = self.toolbarfile.addAction(QtGui.QIcon('share/folder32.png'), _tr("Open project")) - self.file_save_btn = self.toolbarfile.addAction(QtGui.QIcon('share/floppy32.png'), _tr("Save project")) + self.file_open_btn = self.toolbarfile.addAction(QtGui.QIcon('share/folder32.png'), _("Open project")) + self.file_save_btn = self.toolbarfile.addAction(QtGui.QIcon('share/floppy32.png'), _("Save project")) ### Edit Toolbar ### - self.newgeo_btn = self.toolbargeo.addAction(QtGui.QIcon('share/new_geo32_bis.png'), _tr("New Blank Geometry")) - self.newexc_btn = self.toolbargeo.addAction(QtGui.QIcon('share/new_exc32.png'), _tr("New Blank Excellon")) + self.newgeo_btn = self.toolbargeo.addAction(QtGui.QIcon('share/new_geo32_bis.png'), _("New Blank Geometry")) + self.newexc_btn = self.toolbargeo.addAction(QtGui.QIcon('share/new_exc32.png'), _("New Blank Excellon")) self.toolbargeo.addSeparator() - self.editgeo_btn = self.toolbargeo.addAction(QtGui.QIcon('share/edit32.png'), _tr("Editor")) + self.editgeo_btn = self.toolbargeo.addAction(QtGui.QIcon('share/edit32.png'), _("Editor")) self.update_obj_btn = self.toolbargeo.addAction( - QtGui.QIcon('share/edit_ok32_bis.png'), _tr("Save Object and close the Editor") + QtGui.QIcon('share/edit_ok32_bis.png'), _("Save Object and close the Editor") ) self.toolbargeo.addSeparator() - self.delete_btn = self.toolbargeo.addAction(QtGui.QIcon('share/cancel_edit32.png'), _tr("&Delete")) + self.delete_btn = self.toolbargeo.addAction(QtGui.QIcon('share/cancel_edit32.png'), _("&Delete")) ### View Toolbar ### - self.replot_btn = self.toolbarview.addAction(QtGui.QIcon('share/replot32.png'), _tr("&Replot")) - self.clear_plot_btn = self.toolbarview.addAction(QtGui.QIcon('share/clear_plot32.png'), _tr("&Clear plot")) - self.zoom_in_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_in32.png'), _tr("Zoom In")) - self.zoom_out_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_out32.png'), _tr("Zoom Out")) - self.zoom_fit_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_fit32.png'), _tr("Zoom Fit")) + self.replot_btn = self.toolbarview.addAction(QtGui.QIcon('share/replot32.png'), _("&Replot")) + self.clear_plot_btn = self.toolbarview.addAction(QtGui.QIcon('share/clear_plot32.png'), _("&Clear plot")) + self.zoom_in_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_in32.png'), _("Zoom In")) + self.zoom_out_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_out32.png'), _("Zoom Out")) + self.zoom_fit_btn = self.toolbarview.addAction(QtGui.QIcon('share/zoom_fit32.png'), _("Zoom Fit")) # self.toolbarview.setVisible(False) ### Shell Toolbar ### - self.shell_btn = self.toolbarshell.addAction(QtGui.QIcon('share/shell32.png'), _tr("&Command Line")) + self.shell_btn = self.toolbarshell.addAction(QtGui.QIcon('share/shell32.png'), _("&Command Line")) ### Tools Toolbar ### - self.dblsided_btn = self.toolbartools.addAction(QtGui.QIcon('share/doubleside32.png'), _tr("2Sided Tool")) - self.cutout_btn = self.toolbartools.addAction(QtGui.QIcon('share/cut16.png'), _tr("&Cutout Tool")) - self.ncc_btn = self.toolbartools.addAction(QtGui.QIcon('share/flatcam_icon32.png'), _tr("NCC Tool")) - self.paint_btn = self.toolbartools.addAction(QtGui.QIcon('share/paint20_1.png'), _tr("Paint Tool")) + self.dblsided_btn = self.toolbartools.addAction(QtGui.QIcon('share/doubleside32.png'), _("2Sided Tool")) + self.cutout_btn = self.toolbartools.addAction(QtGui.QIcon('share/cut16.png'), _("&Cutout Tool")) + self.ncc_btn = self.toolbartools.addAction(QtGui.QIcon('share/flatcam_icon32.png'), _("NCC Tool")) + self.paint_btn = self.toolbartools.addAction(QtGui.QIcon('share/paint20_1.png'), _("Paint Tool")) self.toolbartools.addSeparator() - self.panelize_btn = self.toolbartools.addAction(QtGui.QIcon('share/panel16.png'), _tr("Panel Tool")) - self.film_btn = self.toolbartools.addAction(QtGui.QIcon('share/film16.png'), _tr("Film Tool")) + self.panelize_btn = self.toolbartools.addAction(QtGui.QIcon('share/panel16.png'), _("Panel Tool")) + self.film_btn = self.toolbartools.addAction(QtGui.QIcon('share/film16.png'), _("Film Tool")) self.solder_btn = self.toolbartools.addAction(QtGui.QIcon('share/solderpastebis32.png'), - _tr("SolderPaste Tool")) + _("SolderPaste Tool")) self.toolbartools.addSeparator() self.calculators_btn = self.toolbartools.addAction(QtGui.QIcon('share/calculator24.png'), - _tr("Calculators Tool")) - self.transform_btn = self.toolbartools.addAction(QtGui.QIcon('share/transform.png'), _tr("Transform Tool")) + _("Calculators Tool")) + self.transform_btn = self.toolbartools.addAction(QtGui.QIcon('share/transform.png'), _("Transform Tool")) ### Drill Editor Toolbar ### - self.select_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/pointer32.png'), _tr("Select")) - self.add_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/plus16.png'), _tr('Add Drill Hole')) + self.select_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/pointer32.png'), _("Select")) + self.add_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/plus16.png'), _('Add Drill Hole')) self.add_drill_array_btn = self.exc_edit_toolbar.addAction( - QtGui.QIcon('share/addarray16.png'), _tr('Add Drill Hole Array')) - self.resize_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/resize16.png'), _tr('Resize Drill')) + QtGui.QIcon('share/addarray16.png'), _('Add Drill Hole Array')) + self.resize_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/resize16.png'), _('Resize Drill')) self.exc_edit_toolbar.addSeparator() - self.copy_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/copy32.png'), _tr('Copy Drill')) + self.copy_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/copy32.png'), _('Copy Drill')) self.delete_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/deleteshape32.png'), - _tr("Delete Drill")) + _("Delete Drill")) self.exc_edit_toolbar.addSeparator() - self.move_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/move32.png'), _tr("Move Drill")) + self.move_drill_btn = self.exc_edit_toolbar.addAction(QtGui.QIcon('share/move32.png'), _("Move Drill")) ### Geometry Editor Toolbar ### - self.geo_select_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/pointer32.png'), _tr("Select 'Esc'")) - self.geo_add_circle_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/circle32.png'), _tr('Add Circle')) - self.geo_add_arc_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/arc32.png'), _tr('Add Arc')) + self.geo_select_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/pointer32.png'), _("Select 'Esc'")) + self.geo_add_circle_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/circle32.png'), _('Add Circle')) + self.geo_add_arc_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/arc32.png'), _('Add Arc')) self.geo_add_rectangle_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/rectangle32.png'), - _tr('Add Rectangle')) + _('Add Rectangle')) self.geo_edit_toolbar.addSeparator() - self.geo_add_path_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/path32.png'), _tr('Add Path')) + self.geo_add_path_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/path32.png'), _('Add Path')) self.geo_add_polygon_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/polygon32.png'), - _tr('Add Polygon')) + _('Add Polygon')) self.geo_edit_toolbar.addSeparator() - self.geo_add_text_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/text32.png'), _tr('Add Text')) + self.geo_add_text_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/text32.png'), _('Add Text')) self.geo_add_buffer_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/buffer16-2.png'), - _tr('Add Buffer')) - self.geo_add_paint_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/paint20_1.png'), _tr('Paint Shape')) + _('Add Buffer')) + self.geo_add_paint_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/paint20_1.png'), _('Paint Shape')) self.geo_edit_toolbar.addSeparator() - self.geo_union_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/union32.png'), _tr('Polygon Union')) + self.geo_union_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/union32.png'), _('Polygon Union')) self.geo_intersection_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/intersection32.png'), - _tr('Polygon Intersection')) + _('Polygon Intersection')) self.geo_subtract_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/subtract32.png'), - _tr('Polygon Subtraction')) + _('Polygon Subtraction')) self.geo_edit_toolbar.addSeparator() - self.geo_cutpath_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/cutpath32.png'), _tr('Cut Path')) - self.geo_copy_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/copy32.png'), _tr("Copy Objects")) + self.geo_cutpath_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/cutpath32.png'), _('Cut Path')) + self.geo_copy_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/copy32.png'), _("Copy Objects")) self.geo_delete_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/deleteshape32.png'), - _tr("Delete Shape")) + _("Delete Shape")) self.geo_transform_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/transform.png'), - _tr("Transformations")) + _("Transformations")) self.geo_edit_toolbar.addSeparator() - self.geo_move_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/move32.png'), _tr("Move Objects")) + self.geo_move_btn = self.geo_edit_toolbar.addAction(QtGui.QIcon('share/move32.png'), _("Move Objects")) ### Snap Toolbar ### # Snap GRID toolbar is always active to facilitate usage of measurements done on GRID # self.addToolBar(self.snap_toolbar) - self.grid_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share/grid32.png'), _tr('Snap to grid')) + self.grid_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share/grid32.png'), _('Snap to grid')) self.grid_gap_x_entry = FCEntry2() self.grid_gap_x_entry.setMaximumWidth(70) - self.grid_gap_x_entry.setToolTip(_tr("Grid X snapping distance")) + self.grid_gap_x_entry.setToolTip(_("Grid X snapping distance")) self.snap_toolbar.addWidget(self.grid_gap_x_entry) self.grid_gap_y_entry = FCEntry2() self.grid_gap_y_entry.setMaximumWidth(70) - self.grid_gap_y_entry.setToolTip(_tr("Grid Y snapping distance")) + self.grid_gap_y_entry.setToolTip(_("Grid Y snapping distance")) self.snap_toolbar.addWidget(self.grid_gap_y_entry) self.grid_space_label = QtWidgets.QLabel(" ") self.snap_toolbar.addWidget(self.grid_space_label) self.grid_gap_link_cb = FCCheckBox() - self.grid_gap_link_cb.setToolTip(_tr("When active, value on Grid_X\n" + self.grid_gap_link_cb.setToolTip(_("When active, value on Grid_X\n" "is copied to the Grid_Y value.")) self.snap_toolbar.addWidget(self.grid_gap_link_cb) self.ois_grid = OptionalInputSection(self.grid_gap_link_cb, [self.grid_gap_y_entry], logic=False) - self.corner_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share/corner32.png'), _tr('Snap to corner')) + self.corner_snap_btn = self.snap_toolbar.addAction(QtGui.QIcon('share/corner32.png'), _('Snap to corner')) self.snap_max_dist_entry = FCEntry() self.snap_max_dist_entry.setMaximumWidth(70) - self.snap_max_dist_entry.setToolTip(_tr("Max. magnet distance")) + self.snap_max_dist_entry.setToolTip(_("Max. magnet distance")) self.snap_magnet = self.snap_toolbar.addWidget(self.snap_max_dist_entry) self.grid_snap_btn.setCheckable(True) @@ -2052,14 +2045,14 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if self.app.geo_editor.get_selected() is not None: self.app.geo_editor.cutpath() else: - msg = _tr('Please first select a geometry item to be cutted\n' \ + msg = _('Please first select a geometry item to be cutted\n' \ 'then select the geometry item that will be cutted\n' \ 'out of the first item. In the end press ~X~ key or\n' \ 'the toolbar button.') messagebox = QtWidgets.QMessageBox() messagebox.setText(msg) - messagebox.setWindowTitle(_tr("Warning")) + messagebox.setWindowTitle(_("Warning")) messagebox.setWindowIcon(QtGui.QIcon('share/warning.png')) messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) @@ -2106,7 +2099,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if self.app.geo_editor.active_tool.complete: self.app.geo_editor.on_shape_complete() - self.app.inform.emit(_tr("[success]Done.")) + self.app.inform.emit(_("[success]Done.")) # automatically make the selection tool active after completing current action self.app.geo_editor.select_tool('select') return @@ -2118,7 +2111,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if self.app.geo_editor.active_tool.complete: self.app.geo_editor.on_shape_complete() - self.app.inform.emit(_tr("[success]Done.")) + self.app.inform.emit(_("[success]Done.")) # automatically make the selection tool active after completing current action self.app.geo_editor.select_tool('select') @@ -2126,7 +2119,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if key == QtCore.Qt.Key_Escape or key == 'Escape': # TODO: ...? # self.on_tool_select("select") - self.app.inform.emit(_tr("[WARNING_NOTCL]Cancelled.")) + self.app.inform.emit(_("[WARNING_NOTCL]Cancelled.")) self.app.geo_editor.delete_utility_geometry() @@ -2186,12 +2179,12 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if self.app.geo_editor.get_selected() is not None: self.app.geo_editor.intersection() else: - msg = _tr("Please select geometry items \n" \ + msg = _("Please select geometry items \n" \ "on which to perform Intersection Tool.") messagebox = QtWidgets.QMessageBox() messagebox.setText(msg) - messagebox.setWindowTitle(_tr("Warning")) + messagebox.setWindowTitle(_("Warning")) messagebox.setWindowIcon(QtGui.QIcon('share/warning.png')) messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) @@ -2244,13 +2237,13 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if self.app.geo_editor.get_selected() is not None: self.app.geo_editor.subtract() else: - msg = _tr( + msg = _( "Please select geometry items \n" "on which to perform Substraction Tool.") messagebox = QtWidgets.QMessageBox() messagebox.setText(msg) - messagebox.setWindowTitle(_tr("Warning")) + messagebox.setWindowTitle(_("Warning")) messagebox.setWindowIcon(QtGui.QIcon('share/warning.png')) messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) @@ -2265,12 +2258,12 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if self.app.geo_editor.get_selected() is not None: self.app.geo_editor.union() else: - msg = _tr("Please select geometry items \n" + msg = _("Please select geometry items \n" "on which to perform union.") messagebox = QtWidgets.QMessageBox() messagebox.setText(msg) - messagebox.setWindowTitle(_tr("Warning")) + messagebox.setWindowTitle(_("Warning")) messagebox.setWindowIcon(QtGui.QIcon('share/warning.png')) messagebox.setStandardButtons(QtWidgets.QMessageBox.Ok) messagebox.setDefaultButton(QtWidgets.QMessageBox.Ok) @@ -2320,7 +2313,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if key == QtCore.Qt.Key_Escape or key == 'Escape': # TODO: ...? # self.on_tool_select("select") - self.app.inform.emit(_tr("[WARNING_NOTCL]Cancelled.")) + self.app.inform.emit(_("[WARNING_NOTCL]Cancelled.")) self.app.exc_editor.delete_utility_geometry() @@ -2337,7 +2330,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.app.exc_editor.delete_selected() self.app.exc_editor.replot() else: - self.app.inform.emit(_tr("[WARNING_NOTCL]Cancelled. Nothing selected to delete.")) + self.app.inform.emit(_("[WARNING_NOTCL]Cancelled. Nothing selected to delete.")) return # Delete tools in tools table if delete key event comes from the Selected Tab @@ -2398,19 +2391,19 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if key == QtCore.Qt.Key_C or key == 'C': self.app.exc_editor.launched_from_shortcuts = True if self.app.exc_editor.selected: - self.app.inform.emit(_tr("Click on target point.")) + self.app.inform.emit(_("Click on target point.")) self.app.ui.copy_drill_btn.setChecked(True) self.app.exc_editor.on_tool_select('drill_copy') self.app.exc_editor.active_tool.set_origin( (self.app.exc_editor.snap_x, self.app.exc_editor.snap_y)) else: - self.app.inform.emit(_tr("[WARNING_NOTCL]Cancelled. Nothing selected to copy.")) + self.app.inform.emit(_("[WARNING_NOTCL]Cancelled. Nothing selected to copy.")) return # Add Drill Hole Tool if key == QtCore.Qt.Key_D or key == 'D': self.app.exc_editor.launched_from_shortcuts = True - self.app.inform.emit(_tr("Click on target point.")) + self.app.inform.emit(_("Click on target point.")) self.app.ui.add_drill_btn.setChecked(True) self.app.exc_editor.x = self.app.mouse[0] @@ -2444,13 +2437,13 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if key == QtCore.Qt.Key_M or key == 'M': self.app.exc_editor.launched_from_shortcuts = True if self.app.exc_editor.selected: - self.app.inform.emit(_tr("Click on target point.")) + self.app.inform.emit(_("Click on target point.")) self.app.ui.move_drill_btn.setChecked(True) self.app.exc_editor.on_tool_select('drill_move') self.app.exc_editor.active_tool.set_origin( (self.app.exc_editor.snap_x, self.app.exc_editor.snap_y)) else: - self.app.inform.emit(_tr("[WARNING_NOTCL]Cancelled. Nothing selected to move.")) + self.app.inform.emit(_("[WARNING_NOTCL]Cancelled. Nothing selected to move.")) return # Resize Tool @@ -2464,8 +2457,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.app.exc_editor.launched_from_shortcuts = True ## Current application units in Upper Case self.units = self.general_defaults_group.general_app_group.units_radio.get_value().upper() - tool_add_popup = FCInputDialog(title=_tr("New Tool ..."), - text=_tr('Enter a Tool Diameter:'), + tool_add_popup = FCInputDialog(title=_("New Tool ..."), + text=_('Enter a Tool Diameter:'), min=0.0000, max=99.9999, decimals=4) tool_add_popup.setWindowIcon(QtGui.QIcon('share/letter_t_32.png')) @@ -2473,10 +2466,10 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if ok: self.app.exc_editor.on_tool_add(tooldia=val) self.app.inform.emit( - _tr("[success]Added new tool with dia: %s %s") % ('%.4f' % float(val), str(self.units))) + _("[success]Added new tool with dia: %s %s") % ('%.4f' % float(val), str(self.units))) else: self.app.inform.emit( - _tr("[WARNING_NOTCL] Adding Tool cancelled ...")) + _("[WARNING_NOTCL] Adding Tool cancelled ...")) return # Zoom Fit @@ -2781,33 +2774,33 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box = QtWidgets.QFormLayout() # Grid X Entry - self.gridx_label = QtWidgets.QLabel(_tr('Grid X value:')) + self.gridx_label = QtWidgets.QLabel(_('Grid X value:')) self.gridx_label.setToolTip( - _tr( "This is the Grid snap value on X axis.") + _( "This is the Grid snap value on X axis.") ) self.gridx_entry = LengthEntry() # Grid Y Entry - self.gridy_label = QtWidgets.QLabel(_tr('Grid Y value:')) + self.gridy_label = QtWidgets.QLabel(_('Grid Y value:')) self.gridy_label.setToolTip( - _tr("This is the Grid snap value on Y axis.") + _("This is the Grid snap value on Y axis.") ) self.gridy_entry = LengthEntry() # Snap Max Entry - self.snap_max_label = QtWidgets.QLabel(_tr('Snap Max:')) - self.snap_max_label.setToolTip(_tr("Max. magnet distance")) + self.snap_max_label = QtWidgets.QLabel(_('Snap Max:')) + self.snap_max_label.setToolTip(_("Max. magnet distance")) self.snap_max_dist_entry = FCEntry() # Workspace - self.workspace_lbl = QtWidgets.QLabel(_tr('Workspace:')) + self.workspace_lbl = QtWidgets.QLabel(_('Workspace:')) self.workspace_lbl.setToolTip( - _tr( "Draw a delimiting rectangle on canvas.\n" + _( "Draw a delimiting rectangle on canvas.\n" "The purpose is to illustrate the limits for our work.") ) - self.workspace_type_lbl = QtWidgets.QLabel(_tr('Wk. format:')) + self.workspace_type_lbl = QtWidgets.QLabel(_('Wk. format:')) self.workspace_type_lbl.setToolTip( - _tr( "Select the type of rectangle to be used on canvas,\n" + _( "Select the type of rectangle to be used on canvas,\n" "as valid workspace.") ) self.workspace_cb = FCCheckBox() @@ -2820,9 +2813,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.wks = OptionalInputSection(self.workspace_cb, [self.workspace_type_lbl, self.wk_cb]) # Plot Fill Color - self.pf_color_label = QtWidgets.QLabel(_tr('Plot Fill:')) + self.pf_color_label = QtWidgets.QLabel(_('Plot Fill:')) self.pf_color_label.setToolTip( - _tr( "Set the fill color for plotted objects.\n" + _( "Set the fill color for plotted objects.\n" "First 6 digits are the color and the last 2\n" "digits are for alpha (transparency) level.") ) @@ -2836,9 +2829,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_1.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) # Plot Fill Transparency Level - self.pf_alpha_label = QtWidgets.QLabel(_tr('Alpha Level:')) + self.pf_alpha_label = QtWidgets.QLabel(_('Alpha Level:')) self.pf_alpha_label.setToolTip( - _tr( "Set the fill transparency for plotted objects.") + _( "Set the fill transparency for plotted objects.") ) self.pf_color_alpha_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) self.pf_color_alpha_slider.setMinimum(0) @@ -2855,9 +2848,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_2.addWidget(self.pf_color_alpha_spinner) # Plot Line Color - self.pl_color_label = QtWidgets.QLabel(_tr('Plot Line:')) + self.pl_color_label = QtWidgets.QLabel(_('Plot Line:')) self.pl_color_label.setToolTip( - _tr( "Set the line color for plotted objects.") + _( "Set the line color for plotted objects.") ) self.pl_color_entry = FCEntry() self.pl_color_button = QtWidgets.QPushButton() @@ -2869,9 +2862,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_3.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) # Plot Selection (left - right) Fill Color - self.sf_color_label = QtWidgets.QLabel(_tr('Sel. Fill:')) + self.sf_color_label = QtWidgets.QLabel(_('Sel. Fill:')) self.sf_color_label.setToolTip( - _tr("Set the fill color for the selection box\n" + _("Set the fill color for the selection box\n" "in case that the selection is done from left to right.\n" "First 6 digits are the color and the last 2\n" "digits are for alpha (transparency) level.") @@ -2886,9 +2879,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_4.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) # Plot Selection (left - right) Fill Transparency Level - self.sf_alpha_label = QtWidgets.QLabel(_tr('Alpha Level:')) + self.sf_alpha_label = QtWidgets.QLabel(_('Alpha Level:')) self.sf_alpha_label.setToolTip( - _tr("Set the fill transparency for the 'left to right' selection box.") + _("Set the fill transparency for the 'left to right' selection box.") ) self.sf_color_alpha_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) self.sf_color_alpha_slider.setMinimum(0) @@ -2905,9 +2898,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_5.addWidget(self.sf_color_alpha_spinner) # Plot Selection (left - right) Line Color - self.sl_color_label = QtWidgets.QLabel(_tr('Sel. Line:')) + self.sl_color_label = QtWidgets.QLabel(_('Sel. Line:')) self.sl_color_label.setToolTip( - _tr("Set the line color for the 'left to right' selection box.") + _("Set the line color for the 'left to right' selection box.") ) self.sl_color_entry = FCEntry() self.sl_color_button = QtWidgets.QPushButton() @@ -2919,9 +2912,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_6.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) # Plot Selection (right - left) Fill Color - self.alt_sf_color_label = QtWidgets.QLabel(_tr('Sel2. Fill:')) + self.alt_sf_color_label = QtWidgets.QLabel(_('Sel2. Fill:')) self.alt_sf_color_label.setToolTip( - _tr("Set the fill color for the selection box\n" + _("Set the fill color for the selection box\n" "in case that the selection is done from right to left.\n" "First 6 digits are the color and the last 2\n" "digits are for alpha (transparency) level.") @@ -2936,9 +2929,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_7.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) # Plot Selection (right - left) Fill Transparency Level - self.alt_sf_alpha_label = QtWidgets.QLabel(_tr('Alpha Level:')) + self.alt_sf_alpha_label = QtWidgets.QLabel(_('Alpha Level:')) self.alt_sf_alpha_label.setToolTip( - _tr("Set the fill transparency for selection 'right to left' box.") + _("Set the fill transparency for selection 'right to left' box.") ) self.alt_sf_color_alpha_slider = QtWidgets.QSlider(QtCore.Qt.Horizontal) self.alt_sf_color_alpha_slider.setMinimum(0) @@ -2955,9 +2948,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_8.addWidget(self.alt_sf_color_alpha_spinner) # Plot Selection (right - left) Line Color - self.alt_sl_color_label = QtWidgets.QLabel(_tr('Sel2. Line:')) + self.alt_sl_color_label = QtWidgets.QLabel(_('Sel2. Line:')) self.alt_sl_color_label.setToolTip( - _tr("Set the line color for the 'right to left' selection box.") + _("Set the line color for the 'right to left' selection box.") ) self.alt_sl_color_entry = FCEntry() self.alt_sl_color_button = QtWidgets.QPushButton() @@ -2969,9 +2962,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_9.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) # Editor Draw Color - self.draw_color_label = QtWidgets.QLabel(_tr('Editor Draw:')) + self.draw_color_label = QtWidgets.QLabel(_('Editor Draw:')) self.alt_sf_color_label.setToolTip( - _tr("Set the color for the shape.") + _("Set the color for the shape.") ) self.draw_color_entry = FCEntry() self.draw_color_button = QtWidgets.QPushButton() @@ -2983,9 +2976,9 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_10.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) # Editor Draw Selection Color - self.sel_draw_color_label = QtWidgets.QLabel(_tr('Editor Draw Sel.:')) + self.sel_draw_color_label = QtWidgets.QLabel(_('Editor Draw Sel.:')) self.sel_draw_color_label.setToolTip( - _tr("Set the color of the shape when selected.") + _("Set the color of the shape when selected.") ) self.sel_draw_color_entry = FCEntry() self.sel_draw_color_button = QtWidgets.QPushButton() @@ -3032,28 +3025,28 @@ class GeneralGUISetGroupUI(OptionsGroupUI): def __init__(self, parent=None): super(GeneralGUISetGroupUI, self).__init__(self) - self.setTitle(str(_tr("GUI Settings"))) + self.setTitle(str(_("GUI Settings"))) # Create a form layout for the Application general settings self.form_box = QtWidgets.QFormLayout() # Layout selection - self.layout_label = QtWidgets.QLabel(_tr('Layout:')) + self.layout_label = QtWidgets.QLabel(_('Layout:')) self.layout_label.setToolTip( - _tr("Select an layout for FlatCAM.\n" + _("Select an layout for FlatCAM.\n" "It is applied immediately.") ) self.layout_combo = FCComboBox() - self.layout_combo.addItem(_tr("Choose ...")) - self.layout_combo.addItem(_tr("Standard")) - self.layout_combo.addItem(_tr("Compact")) + self.layout_combo.addItem(_("Choose ...")) + self.layout_combo.addItem(_("Standard")) + self.layout_combo.addItem(_("Compact")) self.layout_combo.setCurrentIndex(0) # Style selection - self.style_label = QtWidgets.QLabel(_tr('Style:')) + self.style_label = QtWidgets.QLabel(_('Style:')) self.style_label.setToolTip( - _tr("Select an style for FlatCAM.\n" + _("Select an style for FlatCAM.\n" "It will be applied at the next app start.") ) self.style_combo = FCComboBox() @@ -3064,9 +3057,9 @@ class GeneralGUISetGroupUI(OptionsGroupUI): self.style_combo.activated[str].connect(self.handle_style) # Enable High DPI Support - self.hdpi_label = QtWidgets.QLabel(_tr('HDPI Support:')) + self.hdpi_label = QtWidgets.QLabel(_('HDPI Support:')) self.hdpi_label.setToolTip( - _tr("Enable High DPI support for FlatCAM.\n" + _("Enable High DPI support for FlatCAM.\n" "It will be applied at the next app start.") ) self.hdpi_cb = FCCheckBox() @@ -3079,18 +3072,18 @@ class GeneralGUISetGroupUI(OptionsGroupUI): self.hdpi_cb.stateChanged.connect(self.handle_hdpi) # Clear Settings - self.clear_label = QtWidgets.QLabel(_tr('Clear GUI Settings:')) + self.clear_label = QtWidgets.QLabel(_('Clear GUI Settings:')) self.clear_label.setToolTip( - _tr("Clear the GUI settings for FlatCAM,\n" + _("Clear the GUI settings for FlatCAM,\n" "such as: layout, gui state, style, hdpi support etc.") ) - self.clear_btn = FCButton(_tr("Clear")) + self.clear_btn = FCButton(_("Clear")) self.clear_btn.clicked.connect(self.handle_clear) # Enable Hover box - self.hover_label = QtWidgets.QLabel(_tr('Hover Shape:')) + self.hover_label = QtWidgets.QLabel(_('Hover Shape:')) self.hover_label.setToolTip( - _tr("Enable display of a hover shape for FlatCAM objects.\n" + _("Enable display of a hover shape for FlatCAM objects.\n" "It is displayed whenever the mouse cursor is hovering\n" "over any kind of not-selected object.") ) @@ -3131,10 +3124,10 @@ class GeneralGUISetGroupUI(OptionsGroupUI): def handle_clear(self): msgbox = QtWidgets.QMessageBox() # msgbox.setText("Save changes ...") - msgbox.setText(_tr("Are you sure you want to delete the GUI Settings? " + msgbox.setText(_("Are you sure you want to delete the GUI Settings? " "\n") ) - msgbox.setWindowTitle(_tr("Clear GUI Settings")) + msgbox.setWindowTitle(_("Clear GUI Settings")) msgbox.setWindowIcon(QtGui.QIcon('share/trash32.png')) msgbox.setStandardButtons(QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) msgbox.setDefaultButton(QtWidgets.QMessageBox.No) @@ -3147,130 +3140,130 @@ class GeneralGUISetGroupUI(OptionsGroupUI): settings.remove(key) # This will write the setting to the platform specific storage. del settings - self.app.inform.emit(_tr("[success] GUI settings deleted ...")) + self.app.inform.emit(_("[success] GUI settings deleted ...")) class GeneralAppPrefGroupUI(OptionsGroupUI): def __init__(self, parent=None): super(GeneralAppPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("App Preferences"))) + self.setTitle(str(_("App Preferences"))) # Create a form layout for the Application general settings self.form_box = QtWidgets.QFormLayout() # Units for FlatCAM - self.unitslabel = QtWidgets.QLabel(_tr('Units:')) - self.unitslabel.setToolTip(_tr("The default value for FlatCAM units.\n" + self.unitslabel = QtWidgets.QLabel(_('Units:')) + self.unitslabel.setToolTip(_("The default value for FlatCAM units.\n" "Whatever is selected here is set every time\n" "FLatCAM is started.")) self.units_radio = RadioSet([{'label': 'IN', 'value': 'IN'}, {'label': 'MM', 'value': 'MM'}]) # Application Level for FlatCAM - self.app_level_label = QtWidgets.QLabel(_tr('APP. LEVEL:')) - self.app_level_label.setToolTip(_tr("Choose the default level of usage for FlatCAM.\n" + self.app_level_label = QtWidgets.QLabel(_('APP. LEVEL:')) + self.app_level_label.setToolTip(_("Choose the default level of usage for FlatCAM.\n" "BASIC level -> reduced functionality, best for beginner's.\n" "ADVANCED level -> full functionality.\n\n" "The choice here will influence the parameters in\n" "the Selected Tab for all kinds of FlatCAM objects.")) - self.app_level_radio = RadioSet([{'label': _tr('Basic'), 'value': 'b'}, - {'label': _tr('Advanced'), 'value': 'a'}]) + self.app_level_radio = RadioSet([{'label': _('Basic'), 'value': 'b'}, + {'label': _('Advanced'), 'value': 'a'}]) # Languages for FlatCAM - self.languagelabel = QtWidgets.QLabel(_tr('Languages:')) - self.languagelabel.setToolTip(_tr("Set the language used throughout FlatCAM.")) + self.languagelabel = QtWidgets.QLabel(_('Languages:')) + self.languagelabel.setToolTip(_("Set the language used throughout FlatCAM.")) self.language_cb = FCComboBox() self.languagespace = QtWidgets.QLabel('') - self.language_apply_btn = FCButton(_tr("Apply Language")) + self.language_apply_btn = FCButton(_("Apply Language")) # Shell StartUp CB - self.shell_startup_label = QtWidgets.QLabel(_tr('Shell at StartUp:')) + self.shell_startup_label = QtWidgets.QLabel(_('Shell at StartUp:')) self.shell_startup_label.setToolTip( - _tr("Check this box if you want the shell to\n" + _("Check this box if you want the shell to\n" "start automatically at startup.") ) self.shell_startup_cb = FCCheckBox(label='') self.shell_startup_cb.setToolTip( - _tr("Check this box if you want the shell to\n" + _("Check this box if you want the shell to\n" "start automatically at startup.") ) # Version Check CB - self.version_check_label = QtWidgets.QLabel(_tr('Version Check:')) + self.version_check_label = QtWidgets.QLabel(_('Version Check:')) self.version_check_label.setToolTip( - _tr("Check this box if you want to check\n" + _("Check this box if you want to check\n" "for a new version automatically at startup.") ) self.version_check_cb = FCCheckBox(label='') self.version_check_cb.setToolTip( - _tr("Check this box if you want to check\n" + _("Check this box if you want to check\n" "for a new version automatically at startup.") ) # Send Stats CB - self.send_stats_label = QtWidgets.QLabel(_tr('Send Stats:')) + self.send_stats_label = QtWidgets.QLabel(_('Send Stats:')) self.send_stats_label.setToolTip( - _tr("Check this box if you agree to send anonymous\n" + _("Check this box if you agree to send anonymous\n" "stats automatically at startup, to help improve FlatCAM.") ) self.send_stats_cb= FCCheckBox(label='') self.send_stats_cb.setToolTip( - _tr("Check this box if you agree to send anonymous\n" + _("Check this box if you agree to send anonymous\n" "stats automatically at startup, to help improve FlatCAM.") ) self.ois_version_check = OptionalInputSection(self.version_check_cb, [self.send_stats_cb]) # Select mouse pan button - self.panbuttonlabel = QtWidgets.QLabel(_tr('Pan Button:')) - self.panbuttonlabel.setToolTip(_tr("Select the mouse button to use for panning:\n" + self.panbuttonlabel = QtWidgets.QLabel(_('Pan Button:')) + self.panbuttonlabel.setToolTip(_("Select the mouse button to use for panning:\n" "- MMB --> Middle Mouse Button\n" "- RMB --> Right Mouse Button")) - self.pan_button_radio = RadioSet([{'label': _tr('MMB'), 'value': '3'}, - {'label': _tr('RMB'), 'value': '2'}]) + self.pan_button_radio = RadioSet([{'label': _('MMB'), 'value': '3'}, + {'label': _('RMB'), 'value': '2'}]) # Multiple Selection Modifier Key - self.mselectlabel = QtWidgets.QLabel(_tr('Multiple Sel:')) - self.mselectlabel.setToolTip(_tr("Select the key used for multiple selection.")) - self.mselect_radio = RadioSet([{'label': _tr('CTRL'), 'value': 'Control'}, - {'label': _tr('SHIFT'), 'value': 'Shift'}]) + self.mselectlabel = QtWidgets.QLabel(_('Multiple Sel:')) + self.mselectlabel.setToolTip(_("Select the key used for multiple selection.")) + self.mselect_radio = RadioSet([{'label': _('CTRL'), 'value': 'Control'}, + {'label': _('SHIFT'), 'value': 'Shift'}]) # Project at StartUp CB - self.project_startup_label = QtWidgets.QLabel(_tr('Project at StartUp:')) + self.project_startup_label = QtWidgets.QLabel(_('Project at StartUp:')) self.project_startup_label.setToolTip( - _tr("Check this box if you want the project/selected/tool tab area to\n" + _("Check this box if you want the project/selected/tool tab area to\n" "to be shown automatically at startup.") ) self.project_startup_cb = FCCheckBox(label='') self.project_startup_cb.setToolTip( - _tr("Check this box if you want the project/selected/tool tab area to\n" + _("Check this box if you want the project/selected/tool tab area to\n" "to be shown automatically at startup.") ) # Project autohide CB - self.project_autohide_label = QtWidgets.QLabel(_tr('Project AutoHide:')) + self.project_autohide_label = QtWidgets.QLabel(_('Project AutoHide:')) self.project_autohide_label.setToolTip( - _tr( "Check this box if you want the project/selected/tool tab area to\n" + _( "Check this box if you want the project/selected/tool tab area to\n" "hide automatically when there are no objects loaded and\n" "to show whenever a new object is created.") ) self.project_autohide_cb = FCCheckBox(label='') self.project_autohide_cb.setToolTip( - _tr("Check this box if you want the project/selected/tool tab area to\n" + _("Check this box if you want the project/selected/tool tab area to\n" "hide automatically when there are no objects loaded and\n" "to show whenever a new object is created.") ) # Enable/Disable ToolTips globally - self.toggle_tooltips_label = QtWidgets.QLabel(_tr('Enable ToolTips:')) + self.toggle_tooltips_label = QtWidgets.QLabel(_('Enable ToolTips:')) self.toggle_tooltips_label.setToolTip( - _tr( "Check this box if you want to have toolTips displayed\n" + _( "Check this box if you want to have toolTips displayed\n" "when hovering with mouse over items throughout the App.") ) self.toggle_tooltips_cb = FCCheckBox(label='') self.toggle_tooltips_cb.setToolTip( - _tr( "Check this box if you want to have toolTips displayed\n" + _( "Check this box if you want to have toolTips displayed\n" "when hovering with mouse over items throughout the App.") ) @@ -3304,9 +3297,9 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): # hlay.addStretch() # Save compressed project CB - self.save_type_cb = FCCheckBox(_tr('Save Compressed Project')) + self.save_type_cb = FCCheckBox(_('Save Compressed Project')) self.save_type_cb.setToolTip( - _tr("Whether to save a compressed or uncompressed project.\n" + _("Whether to save a compressed or uncompressed project.\n" "When checked it will save a compressed FlatCAM project.") ) # self.advanced_cb.setLayoutDirection(QtCore.Qt.RightToLeft) @@ -3317,9 +3310,9 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): # Project LZMA Comppression Level self.compress_combo = FCComboBox() - self.compress_label = QtWidgets.QLabel(_tr('Compression Level:')) + self.compress_label = QtWidgets.QLabel(_('Compression Level:')) self.compress_label.setToolTip( - _tr("The level of compression used when saving\n" + _("The level of compression used when saving\n" "a FlatCAM project. Higher value means better compression\n" "but require more RAM usage and more processing time.") ) @@ -3345,37 +3338,37 @@ class GerberGenPrefGroupUI(OptionsGroupUI): self.setTitle(str("Gerber General")) ## Plot options - self.plot_options_label = QtWidgets.QLabel(_tr("Plot Options:")) + self.plot_options_label = QtWidgets.QLabel(_("Plot Options:")) self.layout.addWidget(self.plot_options_label) grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) # Solid CB - self.solid_cb = FCCheckBox(label=_tr('Solid')) + self.solid_cb = FCCheckBox(label=_('Solid')) self.solid_cb.setToolTip( - _tr("Solid color polygons.") + _("Solid color polygons.") ) grid0.addWidget(self.solid_cb, 0, 0) # Multicolored CB - self.multicolored_cb = FCCheckBox(label=_tr('M-Color')) + self.multicolored_cb = FCCheckBox(label=_('M-Color')) self.multicolored_cb.setToolTip( - _tr("Draw polygons in different colors.") + _("Draw polygons in different colors.") ) grid0.addWidget(self.multicolored_cb, 0, 1) # Plot CB - self.plot_cb = FCCheckBox(label=_tr('Plot')) + self.plot_cb = FCCheckBox(label=_('Plot')) self.plot_options_label.setToolTip( - _tr("Plot (show) this object.") + _("Plot (show) this object.") ) grid0.addWidget(self.plot_cb, 0, 2) # Number of circle steps for circular aperture linear approximation - self.circle_steps_label = QtWidgets.QLabel(_tr("Circle Steps:")) + self.circle_steps_label = QtWidgets.QLabel(_("Circle Steps:")) self.circle_steps_label.setToolTip( - _tr("The number of circle steps for Gerber \n" + _("The number of circle steps for Gerber \n" "circular aperture linear approximation.") ) grid0.addWidget(self.circle_steps_label, 1, 0) @@ -3390,13 +3383,13 @@ class GerberOptPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Gerber Options Preferences", parent=parent) super(GerberOptPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Gerber Options"))) + self.setTitle(str(_("Gerber Options"))) ## Isolation Routing - self.isolation_routing_label = QtWidgets.QLabel(_tr("Isolation Routing:")) + self.isolation_routing_label = QtWidgets.QLabel(_("Isolation Routing:")) self.isolation_routing_label.setToolTip( - _tr("Create a Geometry object with\n" + _("Create a Geometry object with\n" "toolpaths to cut outside polygons.") ) self.layout.addWidget(self.isolation_routing_label) @@ -3405,18 +3398,18 @@ class GerberOptPrefGroupUI(OptionsGroupUI): grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) - tdlabel = QtWidgets.QLabel(_tr('Tool dia:')) + tdlabel = QtWidgets.QLabel(_('Tool dia:')) tdlabel.setToolTip( - _tr("Diameter of the cutting tool.") + _("Diameter of the cutting tool.") ) grid0.addWidget(tdlabel, 0, 0) self.iso_tool_dia_entry = LengthEntry() grid0.addWidget(self.iso_tool_dia_entry, 0, 1) # Nr of passes - passlabel = QtWidgets.QLabel(_tr('Width (# passes):')) + passlabel = QtWidgets.QLabel(_('Width (# passes):')) passlabel.setToolTip( - _tr("Width of the isolation gap in\n" + _("Width of the isolation gap in\n" "number (integer) of tool widths.") ) grid0.addWidget(passlabel, 1, 0) @@ -3424,9 +3417,9 @@ class GerberOptPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.iso_width_entry, 1, 1) # Pass overlap - overlabel = QtWidgets.QLabel(_tr('Pass overlap:')) + overlabel = QtWidgets.QLabel(_('Pass overlap:')) overlabel.setToolTip( - _tr("How much (fraction) of the tool width to overlap each tool pass.\n" + _("How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" "A value here of 0.25 means an overlap of 25% from the tool diameter found above.") ) @@ -3434,28 +3427,28 @@ class GerberOptPrefGroupUI(OptionsGroupUI): self.iso_overlap_entry = FloatEntry() grid0.addWidget(self.iso_overlap_entry, 2, 1) - milling_type_label = QtWidgets.QLabel(_tr('Milling Type:')) + milling_type_label = QtWidgets.QLabel(_('Milling Type:')) milling_type_label.setToolTip( - _tr("Milling type:\n" + _("Milling type:\n" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation") ) grid0.addWidget(milling_type_label, 3, 0) - self.milling_type_radio = RadioSet([{'label': _tr('Climb'), 'value': 'cl'}, - {'label': _tr('Conv.'), 'value': 'cv'}]) + self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, + {'label': _('Conv.'), 'value': 'cv'}]) grid0.addWidget(self.milling_type_radio, 3, 1) # Combine passes - self.combine_passes_cb = FCCheckBox(label=_tr('Combine Passes')) + self.combine_passes_cb = FCCheckBox(label=_('Combine Passes')) self.combine_passes_cb.setToolTip( - _tr("Combine all passes into one object") + _("Combine all passes into one object") ) grid0.addWidget(self.combine_passes_cb, 4, 0) ## Clear non-copper regions - self.clearcopper_label = QtWidgets.QLabel(_tr("Clear non-copper:")) + self.clearcopper_label = QtWidgets.QLabel(_("Clear non-copper:")) self.clearcopper_label.setToolTip( - _tr("Create a Geometry object with\n" + _("Create a Geometry object with\n" "toolpaths to cut all non-copper regions.") ) self.layout.addWidget(self.clearcopper_label) @@ -3464,9 +3457,9 @@ class GerberOptPrefGroupUI(OptionsGroupUI): self.layout.addLayout(grid1) # Margin - bmlabel = QtWidgets.QLabel(_tr('Boundary Margin:')) + bmlabel = QtWidgets.QLabel(_('Boundary Margin:')) bmlabel.setToolTip( - _tr("Specify the edge of the PCB\n" + _("Specify the edge of the PCB\n" "by drawing a box around all\n" "objects with this minimum\n" "distance.") @@ -3476,32 +3469,32 @@ class GerberOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.noncopper_margin_entry, 0, 1) # Rounded corners - self.noncopper_rounded_cb = FCCheckBox(label=_tr("Rounded corners")) + self.noncopper_rounded_cb = FCCheckBox(label=_("Rounded corners")) self.noncopper_rounded_cb.setToolTip( - _tr("Creates a Geometry objects with polygons\n" + _("Creates a Geometry objects with polygons\n" "covering the copper-free areas of the PCB.") ) grid1.addWidget(self.noncopper_rounded_cb, 1, 0, 1, 2) ## Bounding box - self.boundingbox_label = QtWidgets.QLabel(_tr('Bounding Box:')) + self.boundingbox_label = QtWidgets.QLabel(_('Bounding Box:')) self.layout.addWidget(self.boundingbox_label) grid2 = QtWidgets.QGridLayout() self.layout.addLayout(grid2) - bbmargin = QtWidgets.QLabel(_tr('Boundary Margin:')) + bbmargin = QtWidgets.QLabel(_('Boundary Margin:')) bbmargin.setToolTip( - _tr("Distance of the edges of the box\n" + _("Distance of the edges of the box\n" "to the nearest polygon.") ) grid2.addWidget(bbmargin, 0, 0) self.bbmargin_entry = LengthEntry() grid2.addWidget(self.bbmargin_entry, 0, 1) - self.bbrounded_cb = FCCheckBox(label=_tr("Rounded corners")) + self.bbrounded_cb = FCCheckBox(label=_("Rounded corners")) self.bbrounded_cb.setToolTip( - _tr("If the bounding box is \n" + _("If the bounding box is \n" "to have rounded corners\n" "their radius is equal to\n" "the margin.") @@ -3515,13 +3508,13 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Gerber Adv. Options Preferences", parent=parent) super(GerberAdvOptPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Gerber Adv. Options"))) + self.setTitle(str(_("Gerber Adv. Options"))) ## Advanced Gerber Parameters - self.adv_param_label = QtWidgets.QLabel(_tr("Advanced Param.:")) + self.adv_param_label = QtWidgets.QLabel(_("Advanced Param.:")) self.adv_param_label.setToolTip( - _tr("A list of Gerber advanced parameters.\n" + _("A list of Gerber advanced parameters.\n" "Those parameters are available only for\n" "Advanced App. Level.") ) @@ -3531,9 +3524,9 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI): self.layout.addLayout(grid0) # Follow Attribute - self.follow_cb = FCCheckBox(label=_tr('"Follow"')) + self.follow_cb = FCCheckBox(label=_('"Follow"')) self.follow_cb.setToolTip( - _tr("Generate a 'Follow' geometry.\n" + _("Generate a 'Follow' geometry.\n" "This means that it will cut through\n" "the middle of the trace.") @@ -3541,9 +3534,9 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.follow_cb, 0, 0) # Aperture Table Visibility CB - self.aperture_table_visibility_cb = FCCheckBox(label=_tr('Table Show/Hide')) + self.aperture_table_visibility_cb = FCCheckBox(label=_('Table Show/Hide')) self.aperture_table_visibility_cb.setToolTip( - _tr("Toggle the display of the Gerber Apertures Table.\n" + _("Toggle the display of the Gerber Apertures Table.\n" "Also, on hide, it will delete all mark shapes\n" "that are drawn on canvas.") @@ -3551,9 +3544,9 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.aperture_table_visibility_cb, 1, 0) # Scale Aperture Factor - self.scale_aperture_label = QtWidgets.QLabel(_tr('Ap. Scale Factor:')) + self.scale_aperture_label = QtWidgets.QLabel(_('Ap. Scale Factor:')) self.scale_aperture_label.setToolTip( - _tr("Change the size of the selected apertures.\n" + _("Change the size of the selected apertures.\n" "Factor by which to multiply\n" "geometric features of this object.") ) @@ -3563,9 +3556,9 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.scale_aperture_entry, 2, 1) # Buffer Aperture Factor - self.buffer_aperture_label = QtWidgets.QLabel(_tr('Ap. Buffer Factor:')) + self.buffer_aperture_label = QtWidgets.QLabel(_('Ap. Buffer Factor:')) self.buffer_aperture_label.setToolTip( - _tr("Change the size of the selected apertures.\n" + _("Change the size of the selected apertures.\n" "Factor by which to expand/shrink\n" "geometric features of this object.") ) @@ -3583,31 +3576,31 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Excellon Options", parent=parent) super(ExcellonGenPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Excellon General"))) + self.setTitle(str(_("Excellon General"))) # Plot options - self.plot_options_label = QtWidgets.QLabel(_tr("Plot Options:")) + self.plot_options_label = QtWidgets.QLabel(_("Plot Options:")) self.layout.addWidget(self.plot_options_label) grid1 = QtWidgets.QGridLayout() self.layout.addLayout(grid1) - self.plot_cb = FCCheckBox(label=_tr('Plot')) + self.plot_cb = FCCheckBox(label=_('Plot')) self.plot_cb.setToolTip( "Plot (show) this object." ) grid1.addWidget(self.plot_cb, 0, 0) - self.solid_cb = FCCheckBox(label=_tr('Solid')) + self.solid_cb = FCCheckBox(label=_('Solid')) self.solid_cb.setToolTip( "Plot as solid circles." ) grid1.addWidget(self.solid_cb, 0, 1) # Excellon format - self.excellon_format_label = QtWidgets.QLabel(_tr("Excellon Format:")) + self.excellon_format_label = QtWidgets.QLabel(_("Excellon Format:")) self.excellon_format_label.setToolTip( - _tr("The NC drill files, usually named Excellon files\n" + _("The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" "Here we set the format used when the provided\n" "coordinates are not using period.\n" @@ -3632,10 +3625,10 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): hlay1 = QtWidgets.QHBoxLayout() self.layout.addLayout(hlay1) - self.excellon_format_in_label = QtWidgets.QLabel(_tr("INCH:")) + self.excellon_format_in_label = QtWidgets.QLabel(_("INCH:")) self.excellon_format_in_label.setAlignment(QtCore.Qt.AlignLeft) self.excellon_format_in_label.setToolTip( - _tr("Default values for INCH are 2:4")) + _("Default values for INCH are 2:4")) hlay1.addWidget(self.excellon_format_in_label, QtCore.Qt.AlignLeft) self.excellon_format_upper_in_entry = IntEntry() @@ -3643,7 +3636,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): self.excellon_format_upper_in_entry.setAlignment(QtCore.Qt.AlignRight) self.excellon_format_upper_in_entry.setFixedWidth(30) self.excellon_format_upper_in_entry.setToolTip( - _tr( "This numbers signify the number of digits in\n" + _( "This numbers signify the number of digits in\n" "the whole part of Excellon coordinates.") ) hlay1.addWidget(self.excellon_format_upper_in_entry, QtCore.Qt.AlignLeft) @@ -3657,7 +3650,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): self.excellon_format_lower_in_entry.setAlignment(QtCore.Qt.AlignRight) self.excellon_format_lower_in_entry.setFixedWidth(30) self.excellon_format_lower_in_entry.setToolTip( - _tr("This numbers signify the number of digits in\n" + _("This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates.") ) hlay1.addWidget(self.excellon_format_lower_in_entry, QtCore.Qt.AlignLeft) @@ -3665,10 +3658,10 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): hlay2 = QtWidgets.QHBoxLayout() self.layout.addLayout(hlay2) - self.excellon_format_mm_label = QtWidgets.QLabel(_tr("METRIC:")) + self.excellon_format_mm_label = QtWidgets.QLabel(_("METRIC:")) self.excellon_format_mm_label.setAlignment(QtCore.Qt.AlignLeft) self.excellon_format_mm_label.setToolTip( - _tr("Default values for METRIC are 3:3")) + _("Default values for METRIC are 3:3")) hlay2.addWidget(self.excellon_format_mm_label, QtCore.Qt.AlignLeft) self.excellon_format_upper_mm_entry = IntEntry() @@ -3676,7 +3669,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): self.excellon_format_upper_mm_entry.setAlignment(QtCore.Qt.AlignRight) self.excellon_format_upper_mm_entry.setFixedWidth(30) self.excellon_format_upper_mm_entry.setToolTip( - _tr("This numbers signify the number of digits in\n" + _("This numbers signify the number of digits in\n" "the whole part of Excellon coordinates.") ) hlay2.addWidget(self.excellon_format_upper_mm_entry, QtCore.Qt.AlignLeft) @@ -3690,7 +3683,7 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): self.excellon_format_lower_mm_entry.setAlignment(QtCore.Qt.AlignRight) self.excellon_format_lower_mm_entry.setFixedWidth(30) self.excellon_format_lower_mm_entry.setToolTip( - _tr("This numbers signify the number of digits in\n" + _("This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates.") ) hlay2.addWidget(self.excellon_format_lower_mm_entry, QtCore.Qt.AlignLeft) @@ -3699,10 +3692,10 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): hlay3 = QtWidgets.QHBoxLayout() self.layout.addLayout(hlay3) - self.excellon_zeros_label = QtWidgets.QLabel(_tr('Default Zeros:')) + self.excellon_zeros_label = QtWidgets.QLabel(_('Default Zeros:')) self.excellon_zeros_label.setAlignment(QtCore.Qt.AlignLeft) self.excellon_zeros_label.setToolTip( - _tr("This sets the type of Excellon zeros.\n" + _("This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" "Trailing Zeros are removed.\n" "If TZ is checked then Trailing Zeros are kept\n" @@ -3710,10 +3703,10 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): ) hlay3.addWidget(self.excellon_zeros_label) - self.excellon_zeros_radio = RadioSet([{'label': _tr('LZ'), 'value': 'L'}, - {'label': _tr('TZ'), 'value': 'T'}]) + self.excellon_zeros_radio = RadioSet([{'label': _('LZ'), 'value': 'L'}, + {'label': _('TZ'), 'value': 'T'}]) self.excellon_zeros_radio.setToolTip( - _tr("This sets the default type of Excellon zeros.\n" + _("This sets the default type of Excellon zeros.\n" "If it is not detected in the parsed file the value here\n" "will be used." "If LZ then Leading Zeros are kept and\n" @@ -3727,10 +3720,10 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): hlay4 = QtWidgets.QHBoxLayout() self.layout.addLayout(hlay4) - self.excellon_units_label = QtWidgets.QLabel(_tr('Default Units:')) + self.excellon_units_label = QtWidgets.QLabel(_('Default Units:')) self.excellon_units_label.setAlignment(QtCore.Qt.AlignLeft) self.excellon_units_label.setToolTip( - _tr("This sets the default units of Excellon files.\n" + _("This sets the default units of Excellon files.\n" "If it is not detected in the parsed file the value here\n" "will be used." "Some Excellon files don't have an header\n" @@ -3738,10 +3731,10 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): ) hlay4.addWidget(self.excellon_units_label) - self.excellon_units_radio = RadioSet([{'label': _tr('INCH'), 'value': 'INCH'}, - {'label': _tr('MM'), 'value': 'METRIC'}]) + self.excellon_units_radio = RadioSet([{'label': _('INCH'), 'value': 'INCH'}, + {'label': _('MM'), 'value': 'METRIC'}]) self.excellon_units_radio.setToolTip( - _tr("This sets the units of Excellon files.\n" + _("This sets the units of Excellon files.\n" "Some Excellon files don't have an header\n" "therefore this parameter will be used.") ) @@ -3757,17 +3750,17 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): hlay6 = QtWidgets.QVBoxLayout() self.layout.addLayout(hlay6) - self.excellon_general_label = QtWidgets.QLabel(_tr("Excellon Optimization:")) + self.excellon_general_label = QtWidgets.QLabel(_("Excellon Optimization:")) hlay6.addWidget(self.excellon_general_label) # Create a form layout for the Excellon general settings form_box_excellon = QtWidgets.QFormLayout() hlay6.addLayout(form_box_excellon) - self.excellon_optimization_label = QtWidgets.QLabel(_tr('Algorithm: ')) + self.excellon_optimization_label = QtWidgets.QLabel(_('Algorithm: ')) self.excellon_optimization_label.setAlignment(QtCore.Qt.AlignLeft) self.excellon_optimization_label.setToolTip( - _tr("This sets the optimization type for the Excellon drill path.\n" + _("This sets the optimization type for the Excellon drill path.\n" "If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" "Guided Local Path is used. Default search time is 3sec.\n" "Use set_sys excellon_search_time value Tcl Command to set other values.\n" @@ -3777,10 +3770,10 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): "Travelling Salesman algorithm for path optimization.") ) - self.excellon_optimization_radio = RadioSet([{'label': _tr('MH'), 'value': 'M'}, - {'label': _tr('Basic'), 'value': 'B'}]) + self.excellon_optimization_radio = RadioSet([{'label': _('MH'), 'value': 'M'}, + {'label': _('Basic'), 'value': 'B'}]) self.excellon_optimization_radio.setToolTip( - _tr("This sets the optimization type for the Excellon drill path.\n" + _("This sets the optimization type for the Excellon drill path.\n" "If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" "Guided Local Path is used. Default search time is 3sec.\n" "Use set_sys excellon_search_time value Tcl Command to set other values.\n" @@ -3792,10 +3785,10 @@ class ExcellonGenPrefGroupUI(OptionsGroupUI): form_box_excellon.addRow(self.excellon_optimization_label, self.excellon_optimization_radio) - self.optimization_time_label = QtWidgets.QLabel(_tr('Optimization Time: ')) + self.optimization_time_label = QtWidgets.QLabel(_('Optimization Time: ')) self.optimization_time_label.setAlignment(QtCore.Qt.AlignLeft) self.optimization_time_label.setToolTip( - _tr("When OR-Tools Metaheuristic (MH) is enabled there is a\n" + _("When OR-Tools Metaheuristic (MH) is enabled there is a\n" "maximum threshold for how much time is spent doing the\n" "path optimization. This max duration is set here.\n" "In seconds.") @@ -3836,12 +3829,12 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Excellon Options", parent=parent) super(ExcellonOptPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Excellon Options"))) + self.setTitle(str(_("Excellon Options"))) ## Create CNC Job - self.cncjob_label = QtWidgets.QLabel(_tr('Create CNC Job')) + self.cncjob_label = QtWidgets.QLabel(_('Create CNC Job')) self.cncjob_label.setToolTip( - _tr("Parameters used to create a CNC Job object\n" + _("Parameters used to create a CNC Job object\n" "for this drill object.") ) self.layout.addWidget(self.cncjob_label) @@ -3849,18 +3842,18 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): grid2 = QtWidgets.QGridLayout() self.layout.addLayout(grid2) - cutzlabel = QtWidgets.QLabel(_tr('Cut Z:')) + cutzlabel = QtWidgets.QLabel(_('Cut Z:')) cutzlabel.setToolTip( - _tr("Drill depth (negative)\n" + _("Drill depth (negative)\n" "below the copper surface.") ) grid2.addWidget(cutzlabel, 0, 0) self.cutz_entry = LengthEntry() grid2.addWidget(self.cutz_entry, 0, 1) - travelzlabel = QtWidgets.QLabel(_tr('Travel Z:')) + travelzlabel = QtWidgets.QLabel(_('Travel Z:')) travelzlabel.setToolTip( - _tr("Tool height when travelling\n" + _("Tool height when travelling\n" "across the XY plane.") ) grid2.addWidget(travelzlabel, 1, 0) @@ -3868,26 +3861,26 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): grid2.addWidget(self.travelz_entry, 1, 1) # Tool change: - toolchlabel = QtWidgets.QLabel(_tr("Tool change:")) + toolchlabel = QtWidgets.QLabel(_("Tool change:")) toolchlabel.setToolTip( - _tr("Include tool-change sequence\n" + _("Include tool-change sequence\n" "in G-Code (Pause for tool change).") ) self.toolchange_cb = FCCheckBox() grid2.addWidget(toolchlabel, 2, 0) grid2.addWidget(self.toolchange_cb, 2, 1) - toolchangezlabel = QtWidgets.QLabel(_tr('Toolchange Z:')) + toolchangezlabel = QtWidgets.QLabel(_('Toolchange Z:')) toolchangezlabel.setToolTip( - _tr("Toolchange Z position.") + _("Toolchange Z position.") ) grid2.addWidget(toolchangezlabel, 3, 0) self.toolchangez_entry = LengthEntry() grid2.addWidget(self.toolchangez_entry, 3, 1) - frlabel = QtWidgets.QLabel(_tr('Feedrate:')) + frlabel = QtWidgets.QLabel(_('Feedrate:')) frlabel.setToolTip( - _tr("Tool speed while drilling\n" + _("Tool speed while drilling\n" "(in units per minute).") ) grid2.addWidget(frlabel, 4, 0) @@ -3895,9 +3888,9 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): grid2.addWidget(self.feedrate_entry, 4, 1) # Spindle speed - spdlabel = QtWidgets.QLabel(_tr('Spindle Speed:')) + spdlabel = QtWidgets.QLabel(_('Spindle Speed:')) spdlabel.setToolTip( - _tr("Speed of the spindle\n" + _("Speed of the spindle\n" "in RPM (optional)") ) grid2.addWidget(spdlabel, 5, 0) @@ -3905,14 +3898,14 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): grid2.addWidget(self.spindlespeed_entry, 5, 1) # Dwell - dwelllabel = QtWidgets.QLabel(_tr('Dwell:')) + dwelllabel = QtWidgets.QLabel(_('Dwell:')) dwelllabel.setToolTip( - _tr("Pause to allow the spindle to reach its\n" + _("Pause to allow the spindle to reach its\n" "speed before cutting.") ) - dwelltime = QtWidgets.QLabel(_tr('Duration:')) + dwelltime = QtWidgets.QLabel(_('Duration:')) dwelltime.setToolTip( - _tr("Number of milliseconds for spindle to dwell.") + _("Number of milliseconds for spindle to dwell.") ) self.dwell_cb = FCCheckBox() self.dwelltime_entry = FCEntry() @@ -3924,9 +3917,9 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): self.ois_dwell_exc = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry]) # postprocessor selection - pp_excellon_label = QtWidgets.QLabel(_tr("Postprocessor:")) + pp_excellon_label = QtWidgets.QLabel(_("Postprocessor:")) pp_excellon_label.setToolTip( - _tr("The postprocessor file that dictates\n" + _("The postprocessor file that dictates\n" "gcode output.") ) grid2.addWidget(pp_excellon_label, 8, 0) @@ -3936,16 +3929,16 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): #### Choose what to use for Gcode creation: Drills, Slots or Both - excellon_gcode_type_label = QtWidgets.QLabel(_tr('Gcode: ')) + excellon_gcode_type_label = QtWidgets.QLabel(_('Gcode: ')) excellon_gcode_type_label.setToolTip( - _tr("Choose what to use for GCode generation:\n" + _("Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" "When choosing 'Slots' or 'Both', slots will be\n" "converted to drills.") ) - self.excellon_gcode_type_radio = RadioSet([{'label': _tr('Drills'), 'value': 'drills'}, - {'label': _tr('Slots'), 'value': 'slots'}, - {'label': _tr('Both'), 'value': 'both'}]) + self.excellon_gcode_type_radio = RadioSet([{'label': _('Drills'), 'value': 'drills'}, + {'label': _('Slots'), 'value': 'slots'}, + {'label': _('Both'), 'value': 'both'}]) grid2.addWidget(excellon_gcode_type_label, 9, 0) grid2.addWidget(self.excellon_gcode_type_radio, 9, 1) @@ -3954,24 +3947,24 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): self.excellon_gcode_type_radio.setVisible(False) #### Milling Holes #### - self.mill_hole_label = QtWidgets.QLabel(_tr('Mill Holes')) + self.mill_hole_label = QtWidgets.QLabel(_('Mill Holes')) self.mill_hole_label.setToolTip( - _tr("Create Geometry for milling holes.") + _("Create Geometry for milling holes.") ) self.layout.addWidget(self.mill_hole_label) grid3 = QtWidgets.QGridLayout() self.layout.addLayout(grid3) - tdlabel = QtWidgets.QLabel(_tr('Drill Tool dia:')) + tdlabel = QtWidgets.QLabel(_('Drill Tool dia:')) tdlabel.setToolTip( - _tr("Diameter of the cutting tool.") + _("Diameter of the cutting tool.") ) grid3.addWidget(tdlabel, 0, 0) self.tooldia_entry = LengthEntry() grid3.addWidget(self.tooldia_entry, 0, 1) - stdlabel = QtWidgets.QLabel(_tr('Slot Tool dia:')) + stdlabel = QtWidgets.QLabel(_('Slot Tool dia:')) stdlabel.setToolTip( - _tr("Diameter of the cutting tool\n" + _("Diameter of the cutting tool\n" "when milling slots.") ) grid3.addWidget(stdlabel, 1, 0) @@ -3983,7 +3976,7 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): # Adding the Excellon Format Defaults Button self.excellon_defaults_button = QtWidgets.QPushButton() - self.excellon_defaults_button.setText(str(_tr("Defaults"))) + self.excellon_defaults_button.setText(str(_("Defaults"))) self.excellon_defaults_button.setFixedWidth(80) grid4.addWidget(self.excellon_defaults_button, 0, 0, QtCore.Qt.AlignRight) @@ -3996,15 +3989,15 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Excellon Advanced Options", parent=parent) super(ExcellonAdvOptPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Excellon Adv. Options"))) + self.setTitle(str(_("Excellon Adv. Options"))) ###################### ## ADVANCED OPTIONS ## ###################### - self.cncjob_label = QtWidgets.QLabel(_tr('Advanced Options:')) + self.cncjob_label = QtWidgets.QLabel(_('Advanced Options:')) self.cncjob_label.setToolTip( - _tr("Parameters used to create a CNC Job object\n" + _("Parameters used to create a CNC Job object\n" "for this drill object that are shown when App Level is Advanced.") ) self.layout.addWidget(self.cncjob_label) @@ -4012,55 +4005,57 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI): grid1 = QtWidgets.QGridLayout() self.layout.addLayout(grid1) - offsetlabel = QtWidgets.QLabel(_tr('Offset Z:')) + offsetlabel = QtWidgets.QLabel(_('Offset Z:')) offsetlabel.setToolTip( - _tr("Some drill bits (the larger ones) need to drill deeper\n" + _("Some drill bits (the larger ones) need to drill deeper\n" "to create the desired exit hole diameter due of the tip shape.\n" "The value here can compensate the Cut Z parameter.")) grid1.addWidget(offsetlabel, 0, 0) self.offset_entry = LengthEntry() grid1.addWidget(self.offset_entry, 0, 1) - toolchange_xy_label = QtWidgets.QLabel(_tr('Toolchange X,Y:')) + toolchange_xy_label = QtWidgets.QLabel(_('Toolchange X,Y:')) toolchange_xy_label.setToolTip( - _tr("Toolchange X,Y position.") + _("Toolchange X,Y position.") ) grid1.addWidget(toolchange_xy_label, 1, 0) self.toolchangexy_entry = FCEntry() grid1.addWidget(self.toolchangexy_entry, 1, 1) - startzlabel = QtWidgets.QLabel(_tr('Start move Z:')) + startzlabel = QtWidgets.QLabel(_('Start move Z:')) startzlabel.setToolTip( - _tr("Height of the tool just after start.\n" + _("Height of the tool just after start.\n" "Delete the value if you don't need this feature.") ) grid1.addWidget(startzlabel, 2, 0) self.estartz_entry = FloatEntry() grid1.addWidget(self.estartz_entry, 2, 1) - endzlabel = QtWidgets.QLabel(_tr('End move Z:')) + endzlabel = QtWidgets.QLabel(_('End move Z:')) endzlabel.setToolTip( - _tr("Height of the tool after\n" + _("Height of the tool after\n" "the last move at the end of the job.") ) grid1.addWidget(endzlabel, 3, 0) self.eendz_entry = LengthEntry() grid1.addWidget(self.eendz_entry, 3, 1) - fr_rapid_label = QtWidgets.QLabel(_tr('Feedrate Rapids:')) + fr_rapid_label = QtWidgets.QLabel(_('Feedrate Rapids:')) fr_rapid_label.setToolTip( - _tr("Tool speed while drilling\n" - "with rapid move\n" - "(in units per minute).") + _("Tool speed while drilling\n" + "(in units per minute).\n" + "This is for the rapid move G00.\n" + "It is useful only for Marlin,\n" + "ignore for any other cases.") ) grid1.addWidget(fr_rapid_label, 4, 0) self.feedrate_rapid_entry = LengthEntry() grid1.addWidget(self.feedrate_rapid_entry, 4, 1) # Probe depth - self.pdepth_label = QtWidgets.QLabel(_tr("Probe Z depth:")) + self.pdepth_label = QtWidgets.QLabel(_("Probe Z depth:")) self.pdepth_label.setToolTip( - _tr("The maximum depth that the probe is allowed\n" + _("The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units.") ) grid1.addWidget(self.pdepth_label, 5, 0) @@ -4068,17 +4063,17 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.pdepth_entry, 5, 1) # Probe feedrate - self.feedrate_probe_label = QtWidgets.QLabel(_tr("Feedrate Probe:")) + self.feedrate_probe_label = QtWidgets.QLabel(_("Feedrate Probe:")) self.feedrate_probe_label.setToolTip( - _tr( "The feedrate used while the probe is probing.") + _( "The feedrate used while the probe is probing.") ) grid1.addWidget(self.feedrate_probe_label, 6, 0) self.feedrate_probe_entry = FCEntry() grid1.addWidget(self.feedrate_probe_entry, 6, 1) - fplungelabel = QtWidgets.QLabel(_tr('Fast Plunge:')) + fplungelabel = QtWidgets.QLabel(_('Fast Plunge:')) fplungelabel.setToolTip( - _tr("By checking this, the vertical move from\n" + _("By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" "meaning the fastest speed available.\n" "WARNING: the move is done at Toolchange X,Y coords.") @@ -4087,9 +4082,9 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(fplungelabel, 7, 0) grid1.addWidget(self.fplunge_cb, 7, 1) - fretractlabel = QtWidgets.QLabel(_tr('Fast Retract:')) + fretractlabel = QtWidgets.QLabel(_('Fast Retract:')) fretractlabel.setToolTip( - _tr("Exit hole strategy.\n" + _("Exit hole strategy.\n" " - When uncheked, while exiting the drilled hole the drill bit\n" "will travel slow, with set feedrate (G1), up to zero depth and then\n" "travel as fast as possible (G0) to the Z Move (travel height).\n" @@ -4108,12 +4103,12 @@ class ExcellonExpPrefGroupUI(OptionsGroupUI): def __init__(self, parent=None): super(ExcellonExpPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Excellon Export"))) + self.setTitle(str(_("Excellon Export"))) # Plot options - self.export_options_label = QtWidgets.QLabel(_tr("Export Options:")) + self.export_options_label = QtWidgets.QLabel(_("Export Options:")) self.export_options_label.setToolTip( - _tr("The parameters set here are used in the file exported\n" + _("The parameters set here are used in the file exported\n" "when using the File -> Export -> Export Excellon menu entry.") ) self.layout.addWidget(self.export_options_label) @@ -4122,23 +4117,23 @@ class ExcellonExpPrefGroupUI(OptionsGroupUI): self.layout.addLayout(form) # Excellon Units - self.excellon_units_label = QtWidgets.QLabel(_tr('Units:')) + self.excellon_units_label = QtWidgets.QLabel(_('Units:')) self.excellon_units_label.setToolTip( - _tr("The units used in the Excellon file.") + _("The units used in the Excellon file.") ) - self.excellon_units_radio = RadioSet([{'label': _tr('INCH'), 'value': 'INCH'}, - {'label': _tr('MM'), 'value': 'METRIC'}]) + self.excellon_units_radio = RadioSet([{'label': _('INCH'), 'value': 'INCH'}, + {'label': _('MM'), 'value': 'METRIC'}]) self.excellon_units_radio.setToolTip( - _tr("The units used in the Excellon file.") + _("The units used in the Excellon file.") ) form.addRow(self.excellon_units_label, self.excellon_units_radio) # Excellon non-decimal format - self.digits_label = QtWidgets.QLabel(_tr("Int/Decimals:")) + self.digits_label = QtWidgets.QLabel(_("Int/Decimals:")) self.digits_label.setToolTip( - _tr("The NC drill files, usually named Excellon files\n" + _("The NC drill files, usually named Excellon files\n" "are files that can be found in different formats.\n" "Here we set the format used when the provided\n" "coordinates are not using period.") @@ -4151,7 +4146,7 @@ class ExcellonExpPrefGroupUI(OptionsGroupUI): self.format_whole_entry.setAlignment(QtCore.Qt.AlignRight) self.format_whole_entry.setFixedWidth(30) self.format_whole_entry.setToolTip( - _tr("This numbers signify the number of digits in\n" + _("This numbers signify the number of digits in\n" "the whole part of Excellon coordinates.") ) hlay1.addWidget(self.format_whole_entry, QtCore.Qt.AlignLeft) @@ -4165,7 +4160,7 @@ class ExcellonExpPrefGroupUI(OptionsGroupUI): self.format_dec_entry.setAlignment(QtCore.Qt.AlignRight) self.format_dec_entry.setFixedWidth(30) self.format_dec_entry.setToolTip( - _tr("This numbers signify the number of digits in\n" + _("This numbers signify the number of digits in\n" "the decimal part of Excellon coordinates.") ) hlay1.addWidget(self.format_dec_entry, QtCore.Qt.AlignLeft) @@ -4174,19 +4169,19 @@ class ExcellonExpPrefGroupUI(OptionsGroupUI): form.addRow(self.digits_label, hlay1) # Select the Excellon Format - self.format_label = QtWidgets.QLabel(_tr("Format:")) + self.format_label = QtWidgets.QLabel(_("Format:")) self.format_label.setToolTip( - _tr("Select the kind of coordinates format used.\n" + _("Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" "When there is no decimal point, it is required to specify\n" "the number of digits for integer part and the number of decimals.\n" "Also it will have to be specified if LZ = leading zeros are kept\n" "or TZ = trailing zeros are kept.") ) - self.format_radio = RadioSet([{'label': _tr('Decimal'), 'value': 'dec'}, - {'label': _tr('No-Decimal'), 'value': 'ndec'}]) + self.format_radio = RadioSet([{'label': _('Decimal'), 'value': 'dec'}, + {'label': _('No-Decimal'), 'value': 'ndec'}]) self.format_radio.setToolTip( - _tr("Select the kind of coordinates format used.\n" + _("Select the kind of coordinates format used.\n" "Coordinates can be saved with decimal point or without.\n" "When there is no decimal point, it is required to specify\n" "the number of digits for integer part and the number of decimals.\n" @@ -4197,20 +4192,20 @@ class ExcellonExpPrefGroupUI(OptionsGroupUI): form.addRow(self.format_label, self.format_radio) # Excellon Zeros - self.zeros_label = QtWidgets.QLabel(_tr('Zeros:')) + self.zeros_label = QtWidgets.QLabel(_('Zeros:')) self.zeros_label.setAlignment(QtCore.Qt.AlignLeft) self.zeros_label.setToolTip( - _tr("This sets the type of Excellon zeros.\n" + _("This sets the type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" "Trailing Zeros are removed.\n" "If TZ is checked then Trailing Zeros are kept\n" "and Leading Zeros are removed.") ) - self.zeros_radio = RadioSet([{'label': _tr('LZ'), 'value': 'LZ'}, - {'label': _tr('TZ'), 'value': 'TZ'}]) + self.zeros_radio = RadioSet([{'label': _('LZ'), 'value': 'LZ'}, + {'label': _('TZ'), 'value': 'TZ'}]) self.zeros_radio.setToolTip( - _tr("This sets the default type of Excellon zeros.\n" + _("This sets the default type of Excellon zeros.\n" "If LZ then Leading Zeros are kept and\n" "Trailing Zeros are removed.\n" "If TZ is checked then Trailing Zeros are kept\n" @@ -4236,25 +4231,25 @@ class GeometryGenPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Geometry General Preferences", parent=parent) super(GeometryGenPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Geometry General"))) + self.setTitle(str(_("Geometry General"))) ## Plot options - self.plot_options_label = QtWidgets.QLabel(_tr("Plot Options:")) + self.plot_options_label = QtWidgets.QLabel(_("Plot Options:")) self.layout.addWidget(self.plot_options_label) # Plot CB - self.plot_cb = FCCheckBox(label=_tr('Plot')) + self.plot_cb = FCCheckBox(label=_('Plot')) self.plot_cb.setToolTip( - _tr("Plot (show) this object.") + _("Plot (show) this object.") ) self.layout.addWidget(self.plot_cb) grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) # Number of circle steps for circular aperture linear approximation - self.circle_steps_label = QtWidgets.QLabel(_tr("Circle Steps:")) + self.circle_steps_label = QtWidgets.QLabel(_("Circle Steps:")) self.circle_steps_label.setToolTip( - _tr("The number of circle steps for Geometry \n" + _("The number of circle steps for Geometry \n" "circle and arc shapes linear approximation.") ) grid0.addWidget(self.circle_steps_label, 1, 0) @@ -4262,16 +4257,16 @@ class GeometryGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.circle_steps_entry, 1, 1) # Tools - self.tools_label = QtWidgets.QLabel(_tr("Tools")) + self.tools_label = QtWidgets.QLabel(_("Tools")) self.layout.addWidget(self.tools_label) grid0_b = QtWidgets.QGridLayout() self.layout.addLayout(grid0_b) # Tooldia - tdlabel = QtWidgets.QLabel(_tr('Tool dia: ')) + tdlabel = QtWidgets.QLabel(_('Tool dia: ')) tdlabel.setToolTip( - _tr("The diameter of the cutting\n" + _("The diameter of the cutting\n" "tool..") ) grid0_b.addWidget(tdlabel, 0, 0) @@ -4286,14 +4281,14 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Geometry Options Preferences", parent=parent) super(GeometryOptPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Geometry Options"))) + self.setTitle(str(_("Geometry Options"))) # ------------------------------ ## Create CNC Job # ------------------------------ - self.cncjob_label = QtWidgets.QLabel(_tr('Create CNC Job:')) + self.cncjob_label = QtWidgets.QLabel(_('Create CNC Job:')) self.cncjob_label.setToolTip( - _tr("Create a CNC Job object\n" + _("Create a CNC Job object\n" "tracing the contours of this\n" "Geometry object.") ) @@ -4303,9 +4298,9 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): self.layout.addLayout(grid1) # Cut Z - cutzlabel = QtWidgets.QLabel(_tr('Cut Z:')) + cutzlabel = QtWidgets.QLabel(_('Cut Z:')) cutzlabel.setToolTip( - _tr("Cutting depth (negative)\n" + _("Cutting depth (negative)\n" "below the copper surface.") ) grid1.addWidget(cutzlabel, 0, 0) @@ -4313,16 +4308,16 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.cutz_entry, 0, 1) # Multidepth CheckBox - self.multidepth_cb = FCCheckBox(label=_tr('Multidepth')) + self.multidepth_cb = FCCheckBox(label=_('Multidepth')) self.multidepth_cb.setToolTip( - _tr("Multidepth usage: True or False.") + _("Multidepth usage: True or False.") ) grid1.addWidget(self.multidepth_cb, 1, 0) # Depth/pass - dplabel = QtWidgets.QLabel(_tr('Depth/Pass:')) + dplabel = QtWidgets.QLabel(_('Depth/Pass:')) dplabel.setToolTip( - _tr("The depth to cut on each pass,\n" + _("The depth to cut on each pass,\n" "when multidepth is enabled.\n" "It has positive value although\n" "it is a fraction from the depth\n" @@ -4336,9 +4331,9 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): self.ois_multidepth = OptionalInputSection(self.multidepth_cb, [self.depthperpass_entry]) # Travel Z - travelzlabel = QtWidgets.QLabel(_tr('Travel Z:')) + travelzlabel = QtWidgets.QLabel(_('Travel Z:')) travelzlabel.setToolTip( - _tr("Height of the tool when\n" + _("Height of the tool when\n" "moving without cutting.") ) grid1.addWidget(travelzlabel, 3, 0) @@ -4346,9 +4341,9 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.travelz_entry, 3, 1) # Tool change: - toolchlabel = QtWidgets.QLabel(_tr("Tool change:")) + toolchlabel = QtWidgets.QLabel(_("Tool change:")) toolchlabel.setToolTip( - _tr("Include tool-change sequence\n" + _("Include tool-change sequence\n" "in G-Code (Pause for tool change).") ) self.toolchange_cb = FCCheckBox() @@ -4356,18 +4351,18 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.toolchange_cb, 4, 1) # Toolchange Z - toolchangezlabel = QtWidgets.QLabel(_tr('Toolchange Z:')) + toolchangezlabel = QtWidgets.QLabel(_('Toolchange Z:')) toolchangezlabel.setToolTip( - _tr("Toolchange Z position.") + _("Toolchange Z position.") ) grid1.addWidget(toolchangezlabel, 5, 0) self.toolchangez_entry = LengthEntry() grid1.addWidget(self.toolchangez_entry, 5, 1) # Feedrate X-Y - frlabel = QtWidgets.QLabel(_tr('Feed Rate X-Y:')) + frlabel = QtWidgets.QLabel(_('Feed Rate X-Y:')) frlabel.setToolTip( - _tr("Cutting speed in the XY\n" + _("Cutting speed in the XY\n" "plane in units per minute") ) grid1.addWidget(frlabel, 6, 0) @@ -4375,9 +4370,9 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.cncfeedrate_entry, 6, 1) # Feedrate Z (Plunge) - frz_label = QtWidgets.QLabel(_tr('Feed Rate Z:')) + frz_label = QtWidgets.QLabel(_('Feed Rate Z:')) frz_label.setToolTip( - _tr("Cutting speed in the XY\n" + _("Cutting speed in the XY\n" "plane in units per minute.\n" "It is called also Plunge.") ) @@ -4386,9 +4381,9 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.cncplunge_entry, 7, 1) # Spindle Speed - spdlabel = QtWidgets.QLabel(_tr('Spindle speed:')) + spdlabel = QtWidgets.QLabel(_('Spindle speed:')) spdlabel.setToolTip( - _tr("Speed of the spindle\n" + _("Speed of the spindle\n" "in RPM (optional)") ) grid1.addWidget(spdlabel, 8, 0) @@ -4396,14 +4391,14 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.cncspindlespeed_entry, 8, 1) # Dwell - self.dwell_cb = FCCheckBox(label=_tr('Dwell:')) + self.dwell_cb = FCCheckBox(label=_('Dwell:')) self.dwell_cb.setToolTip( - _tr("Pause to allow the spindle to reach its\n" + _("Pause to allow the spindle to reach its\n" "speed before cutting.") ) - dwelltime = QtWidgets.QLabel(_tr('Duration:')) + dwelltime = QtWidgets.QLabel(_('Duration:')) dwelltime.setToolTip( - _tr("Number of milliseconds for spindle to dwell.") + _("Number of milliseconds for spindle to dwell.") ) self.dwelltime_entry = FCEntry() grid1.addWidget(self.dwell_cb, 9, 0) @@ -4413,9 +4408,9 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): self.ois_dwell = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry]) # postprocessor selection - pp_label = QtWidgets.QLabel(_tr("Postprocessor:")) + pp_label = QtWidgets.QLabel(_("Postprocessor:")) pp_label.setToolTip( - _tr("The postprocessor file that dictates\n" + _("The postprocessor file that dictates\n" "Machine Code output.") ) grid1.addWidget(pp_label, 11, 0) @@ -4431,14 +4426,14 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Geometry Advanced Options Preferences", parent=parent) super(GeometryAdvOptPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Geometry Adv. Options"))) + self.setTitle(str(_("Geometry Adv. Options"))) # ------------------------------ ## Advanced Options # ------------------------------ - self.cncjob_label = QtWidgets.QLabel(_tr('Advanced Options:')) + self.cncjob_label = QtWidgets.QLabel(_('Advanced Options:')) self.cncjob_label.setToolTip( - _tr("Parameters to create a CNC Job object\n" + _("Parameters to create a CNC Job object\n" "tracing the contours of a Geometry object.") ) self.layout.addWidget(self.cncjob_label) @@ -4447,18 +4442,18 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): self.layout.addLayout(grid1) # Toolchange X,Y - toolchange_xy_label = QtWidgets.QLabel(_tr('Toolchange X,Y:')) + toolchange_xy_label = QtWidgets.QLabel(_('Toolchange X,Y:')) toolchange_xy_label.setToolTip( - _tr("Toolchange X,Y position.") + _("Toolchange X,Y position.") ) grid1.addWidget(toolchange_xy_label, 1, 0) self.toolchangexy_entry = FCEntry() grid1.addWidget(self.toolchangexy_entry, 1, 1) # Start move Z - startzlabel = QtWidgets.QLabel(_tr('Start move Z:')) + startzlabel = QtWidgets.QLabel(_('Start move Z:')) startzlabel.setToolTip( - _tr("Height of the tool just after starting the work.\n" + _("Height of the tool just after starting the work.\n" "Delete the value if you don't need this feature.") ) grid1.addWidget(startzlabel, 2, 0) @@ -4466,9 +4461,9 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.gstartz_entry, 2, 1) # End move Z - endzlabel = QtWidgets.QLabel(_tr('End move Z:')) + endzlabel = QtWidgets.QLabel(_('End move Z:')) endzlabel.setToolTip( - _tr("Height of the tool after\n" + _("Height of the tool after\n" "the last move at the end of the job.") ) grid1.addWidget(endzlabel, 3, 0) @@ -4476,19 +4471,23 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.gendz_entry, 3, 1) # Feedrate rapids - fr_rapid_label = QtWidgets.QLabel(_tr('Feedrate Rapids:')) + fr_rapid_label = QtWidgets.QLabel(_('Feedrate Rapids:')) fr_rapid_label.setToolTip( - _tr("Cutting speed in the XY\n" - "plane in units per minute") + _("Cutting speed in the XY plane\n" + "(in units per minute).\n" + "This is for the rapid move G00.\n" + "It is useful only for Marlin,\n" + "ignore for any other cases." + ) ) grid1.addWidget(fr_rapid_label, 4, 0) self.cncfeedrate_rapid_entry = LengthEntry() grid1.addWidget(self.cncfeedrate_rapid_entry, 4, 1) # End move extra cut - self.extracut_cb = FCCheckBox(label=_tr('Re-cut 1st pt.')) + self.extracut_cb = FCCheckBox(label=_('Re-cut 1st pt.')) self.extracut_cb.setToolTip( - _tr("In order to remove possible\n" + _("In order to remove possible\n" "copper leftovers where first cut\n" "meet with last cut, we generate an\n" "extended cut over the first cut section.") @@ -4496,9 +4495,9 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.extracut_cb, 5, 0) # Probe depth - self.pdepth_label = QtWidgets.QLabel(_tr("Probe Z depth:")) + self.pdepth_label = QtWidgets.QLabel(_("Probe Z depth:")) self.pdepth_label.setToolTip( - _tr("The maximum depth that the probe is allowed\n" + _("The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units.") ) grid1.addWidget(self.pdepth_label, 6, 0) @@ -4506,18 +4505,18 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.pdepth_entry, 6, 1) # Probe feedrate - self.feedrate_probe_label = QtWidgets.QLabel(_tr("Feedrate Probe:")) + self.feedrate_probe_label = QtWidgets.QLabel(_("Feedrate Probe:")) self.feedrate_probe_label.setToolTip( - _tr("The feedrate used while the probe is probing.") + _("The feedrate used while the probe is probing.") ) grid1.addWidget(self.feedrate_probe_label, 7, 0) self.feedrate_probe_entry = FCEntry() grid1.addWidget(self.feedrate_probe_entry, 7, 1) # Fast Move from Z Toolchange - fplungelabel = QtWidgets.QLabel(_tr('Fast Plunge:')) + fplungelabel = QtWidgets.QLabel(_('Fast Plunge:')) fplungelabel.setToolTip( - _tr("By checking this, the vertical move from\n" + _("By checking this, the vertical move from\n" "Z_Toolchange to Z_move is done with G0,\n" "meaning the fastest speed available.\n" "WARNING: the move is done at Toolchange X,Y coords.") @@ -4527,9 +4526,9 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.fplunge_cb, 8, 1) # Size of trace segment on X axis - segx_label = QtWidgets.QLabel(_tr("Seg. X size:")) + segx_label = QtWidgets.QLabel(_("Seg. X size:")) segx_label.setToolTip( - _tr("The size of the trace segment on the X axis.\n" + _("The size of the trace segment on the X axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the X axis.") ) @@ -4538,9 +4537,9 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(self.segx_entry, 9, 1) # Size of trace segment on Y axis - segy_label = QtWidgets.QLabel(_tr("Seg. Y size:")) + segy_label = QtWidgets.QLabel(_("Seg. Y size:")) segy_label.setToolTip( - _tr("The size of the trace segment on the Y axis.\n" + _("The size of the trace segment on the Y axis.\n" "Useful for auto-leveling.\n" "A value of 0 means no segmentation on the Y axis.") ) @@ -4556,10 +4555,10 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "CNC Job General Preferences", parent=None) super(CNCJobGenPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("CNC Job General"))) + self.setTitle(str(_("CNC Job General"))) ## Plot options - self.plot_options_label = QtWidgets.QLabel(_tr("Plot Options:")) + self.plot_options_label = QtWidgets.QLabel(_("Plot Options:")) self.layout.addWidget(self.plot_options_label) grid0 = QtWidgets.QGridLayout() @@ -4569,25 +4568,25 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): # Plot CB # self.plot_cb = QtWidgets.QCheckBox('Plot') - self.plot_cb = FCCheckBox(_tr('Plot Object')) + self.plot_cb = FCCheckBox(_('Plot Object')) self.plot_cb.setToolTip( "Plot (show) this object." ) grid0.addWidget(self.plot_cb, 0, 0) # Plot Kind - self.cncplot_method_label = QtWidgets.QLabel(_tr("Plot kind:")) + self.cncplot_method_label = QtWidgets.QLabel(_("Plot kind:")) self.cncplot_method_label.setToolTip( - _tr("This selects the kind of geometries on the canvas to plot.\n" + _("This selects the kind of geometries on the canvas to plot.\n" "Those can be either of type 'Travel' which means the moves\n" "above the work piece or it can be of type 'Cut',\n" "which means the moves that cut into the material.") ) self.cncplot_method_radio = RadioSet([ - {"label": _tr("All"), "value": "all"}, - {"label": _tr("Travel"), "value": "travel"}, - {"label": _tr("Cut"), "value": "cut"} + {"label": _("All"), "value": "all"}, + {"label": _("Travel"), "value": "travel"}, + {"label": _("Cut"), "value": "cut"} ], stretch=False) grid0.addWidget(self.cncplot_method_label, 1, 0) @@ -4595,9 +4594,9 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(QtWidgets.QLabel(''), 1, 2) # Number of circle steps for circular aperture linear approximation - self.steps_per_circle_label = QtWidgets.QLabel(_tr("Circle Steps:")) + self.steps_per_circle_label = QtWidgets.QLabel(_("Circle Steps:")) self.steps_per_circle_label.setToolTip( - _tr("The number of circle steps for GCode \n" + _("The number of circle steps for GCode \n" "circle and arc shapes linear approximation.") ) grid0.addWidget(self.steps_per_circle_label, 2, 0) @@ -4605,9 +4604,9 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.steps_per_circle_entry, 2, 1) # Tool dia for plot - tdlabel = QtWidgets.QLabel(_tr('Tool dia:')) + tdlabel = QtWidgets.QLabel(_('Tool dia:')) tdlabel.setToolTip( - _tr("Diameter of the tool to be\n" + _("Diameter of the tool to be\n" "rendered in the plot.") ) grid0.addWidget(tdlabel, 3, 0) @@ -4615,9 +4614,9 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.tooldia_entry, 3, 1) # Number of decimals to use in GCODE coordinates - cdeclabel = QtWidgets.QLabel(_tr('Coords dec.:')) + cdeclabel = QtWidgets.QLabel(_('Coords dec.:')) cdeclabel.setToolTip( - _tr("The number of decimals to be used for \n" + _("The number of decimals to be used for \n" "the X, Y, Z coordinates in CNC code (GCODE, etc.)") ) grid0.addWidget(cdeclabel, 4, 0) @@ -4625,9 +4624,9 @@ class CNCJobGenPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.coords_dec_entry, 4, 1) # Number of decimals to use in GCODE feedrate - frdeclabel = QtWidgets.QLabel(_tr('Feedrate dec.:')) + frdeclabel = QtWidgets.QLabel(_('Feedrate dec.:')) frdeclabel.setToolTip( - _tr("The number of decimals to be used for \n" + _("The number of decimals to be used for \n" "the Feedrate parameter in CNC code (GCODE, etc.)") ) grid0.addWidget(frdeclabel, 5, 0) @@ -4642,20 +4641,20 @@ class CNCJobOptPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "CNC Job Options Preferences", parent=None) super(CNCJobOptPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("CNC Job Options"))) + self.setTitle(str(_("CNC Job Options"))) ## Export G-Code - self.export_gcode_label = QtWidgets.QLabel(_tr("Export G-Code:")) + self.export_gcode_label = QtWidgets.QLabel(_("Export G-Code:")) self.export_gcode_label.setToolTip( - _tr("Export and save G-Code to\n" + _("Export and save G-Code to\n" "make this object to a file.") ) self.layout.addWidget(self.export_gcode_label) # Prepend to G-Code - prependlabel = QtWidgets.QLabel(_tr('Prepend to G-Code:')) + prependlabel = QtWidgets.QLabel(_('Prepend to G-Code:')) prependlabel.setToolTip( - _tr("Type here any G-Code commands you would\n" + _("Type here any G-Code commands you would\n" "like to add at the beginning of the G-Code file.") ) self.layout.addWidget(prependlabel) @@ -4664,9 +4663,9 @@ class CNCJobOptPrefGroupUI(OptionsGroupUI): self.layout.addWidget(self.prepend_text) # Append text to G-Code - appendlabel = QtWidgets.QLabel(_tr('Append to G-Code:')) + appendlabel = QtWidgets.QLabel(_('Append to G-Code:')) appendlabel.setToolTip( - _tr("Type here any G-Code commands you would\n" + _("Type here any G-Code commands you would\n" "like to append to the generated file.\n" "I.e.: M2 (End of program)") ) @@ -4683,20 +4682,20 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "CNC Job Advanced Options Preferences", parent=None) super(CNCJobAdvOptPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("CNC Job Adv. Options"))) + self.setTitle(str(_("CNC Job Adv. Options"))) ## Export G-Code - self.export_gcode_label = QtWidgets.QLabel(_tr("Export G-Code:")) + self.export_gcode_label = QtWidgets.QLabel(_("Export G-Code:")) self.export_gcode_label.setToolTip( - _tr("Export and save G-Code to\n" + _("Export and save G-Code to\n" "make this object to a file.") ) self.layout.addWidget(self.export_gcode_label) # Prepend to G-Code - toolchangelabel = QtWidgets.QLabel(_tr('Toolchange G-Code:')) + toolchangelabel = QtWidgets.QLabel(_('Toolchange G-Code:')) toolchangelabel.setToolTip( - _tr("Type here any G-Code commands you would\n" + _("Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" "This will constitute a Custom Toolchange GCode,\n" "or a Toolchange Macro.") @@ -4710,9 +4709,9 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): self.layout.addLayout(hlay) # Toolchange Replacement GCode - self.toolchange_cb = FCCheckBox(label=_tr('Use Toolchange Macro')) + self.toolchange_cb = FCCheckBox(label=_('Use Toolchange Macro')) self.toolchange_cb.setToolTip( - _tr("Check this box if you want to use\n" + _("Check this box if you want to use\n" "a Custom Toolchange GCode (macro).") ) hlay.addWidget(self.toolchange_cb) @@ -4724,28 +4723,28 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI): # Variable list self.tc_variable_combo = FCComboBox() self.tc_variable_combo.setToolTip( - _tr("A list of the FlatCAM variables that can be used\n" + _("A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" "They have to be surrounded by the '%' symbol") ) hlay1.addWidget(self.tc_variable_combo) # Populate the Combo Box - variables = [_tr('Parameters'), 'tool', 'tooldia', 't_drills', 'x_toolchange', 'y_toolchange', 'z_toolchange', + variables = [_('Parameters'), 'tool', 'tooldia', 't_drills', 'x_toolchange', 'y_toolchange', 'z_toolchange', 'z_cut', 'z_move', 'z_depthpercut', 'spindlespeed', 'dwelltime'] self.tc_variable_combo.addItems(variables) - self.tc_variable_combo.setItemData(0, _tr("FlatCAM CNC parameters"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(1, _tr("tool = tool number"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(2, _tr("tooldia = tool diameter"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(3, _tr("t_drills = for Excellon, total number of drills"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(4, _tr("x_toolchange = X coord for Toolchange"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(5, _tr("y_toolchange = Y coord for Toolchange"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(6, _tr("z_toolchange = Z coord for Toolchange"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(7, _tr("z_cut = Z coord for Toolchange"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(8, _tr("z_move = Z coord for Toolchange"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(9, _tr("z_depthpercut = the step value for multidepth cut"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(10, _tr("spindlesspeed = the value for the spindle speed"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(11, _tr("dwelltime = time to dwell to allow the spindle to reach it's set RPM"), + self.tc_variable_combo.setItemData(0, _("FlatCAM CNC parameters"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(1, _("tool = tool number"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(2, _("tooldia = tool diameter"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(3, _("t_drills = for Excellon, total number of drills"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(4, _("x_toolchange = X coord for Toolchange"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(5, _("y_toolchange = Y coord for Toolchange"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(6, _("z_toolchange = Z coord for Toolchange"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(7, _("z_cut = Z coord for Toolchange"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(8, _("z_move = Z coord for Toolchange"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(9, _("z_depthpercut = the step value for multidepth cut"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(10, _("spindlesspeed = the value for the spindle speed"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(11, _("dwelltime = time to dwell to allow the spindle to reach it's set RPM"), Qt.ToolTipRole) hlay1.addStretch() @@ -4766,12 +4765,12 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "NCC Tool Options", parent=parent) super(ToolsNCCPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("NCC Tool Options"))) + self.setTitle(str(_("NCC Tool Options"))) ## Clear non-copper regions - self.clearcopper_label = QtWidgets.QLabel(_tr("Parameters:")) + self.clearcopper_label = QtWidgets.QLabel(_("Parameters:")) self.clearcopper_label.setToolTip( - _tr("Create a Geometry object with\n" + _("Create a Geometry object with\n" "toolpaths to cut all non-copper regions.") ) self.layout.addWidget(self.clearcopper_label) @@ -4779,17 +4778,17 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI): grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) - ncctdlabel = QtWidgets.QLabel(_tr('Tools dia:')) + ncctdlabel = QtWidgets.QLabel(_('Tools dia:')) ncctdlabel.setToolTip( - _tr("Diameters of the cutting tools, separated by ','") + _("Diameters of the cutting tools, separated by ','") ) grid0.addWidget(ncctdlabel, 0, 0) self.ncc_tool_dia_entry = FCEntry() grid0.addWidget(self.ncc_tool_dia_entry, 0, 1) - nccoverlabel = QtWidgets.QLabel(_tr('Overlap:')) + nccoverlabel = QtWidgets.QLabel(_('Overlap:')) nccoverlabel.setToolTip( - _tr( "How much (fraction) of the tool width to overlap each tool pass.\n" + _( "How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" "A value here of 0.25 means 25% from the tool diameter found above.\n\n" "Adjust the value starting with lower values\n" @@ -4803,52 +4802,52 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI): self.ncc_overlap_entry = FloatEntry() grid0.addWidget(self.ncc_overlap_entry, 1, 1) - nccmarginlabel = QtWidgets.QLabel(_tr('Margin:')) + nccmarginlabel = QtWidgets.QLabel(_('Margin:')) nccmarginlabel.setToolTip( - _tr("Bounding box margin.") + _("Bounding box margin.") ) grid0.addWidget(nccmarginlabel, 2, 0) self.ncc_margin_entry = FloatEntry() grid0.addWidget(self.ncc_margin_entry, 2, 1) # Method - methodlabel = QtWidgets.QLabel(_tr('Method:')) + methodlabel = QtWidgets.QLabel(_('Method:')) methodlabel.setToolTip( - _tr("Algorithm for non-copper clearing:
" + _("Algorithm for non-copper clearing:
" "Standard: Fixed step inwards.
" "Seed-based: Outwards from seed.
" "Line-based: Parallel lines.") ) grid0.addWidget(methodlabel, 3, 0) self.ncc_method_radio = RadioSet([ - {"label": _tr("Standard"), "value": "standard"}, - {"label": _tr("Seed-based"), "value": "seed"}, - {"label": _tr("Straight lines"), "value": "lines"} + {"label": _("Standard"), "value": "standard"}, + {"label": _("Seed-based"), "value": "seed"}, + {"label": _("Straight lines"), "value": "lines"} ], orientation='vertical', stretch=False) grid0.addWidget(self.ncc_method_radio, 3, 1) # Connect lines - pathconnectlabel = QtWidgets.QLabel(_tr("Connect:")) + pathconnectlabel = QtWidgets.QLabel(_("Connect:")) pathconnectlabel.setToolTip( - _tr("Draw lines between resulting\n" + _("Draw lines between resulting\n" "segments to minimize tool lifts.") ) grid0.addWidget(pathconnectlabel, 4, 0) self.ncc_connect_cb = FCCheckBox() grid0.addWidget(self.ncc_connect_cb, 4, 1) - contourlabel = QtWidgets.QLabel(_tr("Contour:")) + contourlabel = QtWidgets.QLabel(_("Contour:")) contourlabel.setToolTip( - _tr( "Cut around the perimeter of the polygon\n" + _( "Cut around the perimeter of the polygon\n" "to trim rough edges.") ) grid0.addWidget(contourlabel, 5, 0) self.ncc_contour_cb = FCCheckBox() grid0.addWidget(self.ncc_contour_cb, 5, 1) - restlabel = QtWidgets.QLabel(_tr("Rest M.:")) + restlabel = QtWidgets.QLabel(_("Rest M.:")) restlabel.setToolTip( - _tr("If checked, use 'rest machining'.\n" + _("If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" "using the biggest tool and continue with the next tools,\n" "from bigger to smaller, to clear areas of copper that\n" @@ -4867,12 +4866,12 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Cutout Tool Options", parent=parent) super(ToolsCutoutPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Cutout Tool Options"))) + self.setTitle(str(_("Cutout Tool Options"))) ## Board cuttout - self.board_cutout_label = QtWidgets.QLabel(_tr("Parameters:")) + self.board_cutout_label = QtWidgets.QLabel(_("Parameters:")) self.board_cutout_label.setToolTip( - _tr("Create toolpaths to cut around\n" + _("Create toolpaths to cut around\n" "the PCB and separate it from\n" "the original board.") ) @@ -4881,26 +4880,26 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) - tdclabel = QtWidgets.QLabel(_tr('Tool dia:')) + tdclabel = QtWidgets.QLabel(_('Tool dia:')) tdclabel.setToolTip( - _tr( "Diameter of the cutting tool.") + _( "Diameter of the cutting tool.") ) grid0.addWidget(tdclabel, 0, 0) self.cutout_tooldia_entry = LengthEntry() grid0.addWidget(self.cutout_tooldia_entry, 0, 1) - marginlabel = QtWidgets.QLabel(_tr('Margin:')) + marginlabel = QtWidgets.QLabel(_('Margin:')) marginlabel.setToolTip( - _tr("Distance from objects at which\n" + _("Distance from objects at which\n" "to draw the cutout.") ) grid0.addWidget(marginlabel, 1, 0) self.cutout_margin_entry = LengthEntry() grid0.addWidget(self.cutout_margin_entry, 1, 1) - gaplabel = QtWidgets.QLabel(_tr('Gap size:')) + gaplabel = QtWidgets.QLabel(_('Gap size:')) gaplabel.setToolTip( - _tr("Size of the gaps in the toolpath\n" + _("Size of the gaps in the toolpath\n" "that will remain to hold the\n" "board in place.") ) @@ -4908,9 +4907,9 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI): self.cutout_gap_entry = LengthEntry() grid0.addWidget(self.cutout_gap_entry, 2, 1) - gaps_label = QtWidgets.QLabel(_tr('Gaps:')) + gaps_label = QtWidgets.QLabel(_('Gaps:')) gaps_label.setToolTip( - _tr("Number of bridge gaps used for the cutout.\n" + _("Number of bridge gaps used for the cutout.\n" "There can be maximum 8 bridges/gaps.\n" "The choices are:\n" "- lr - left + right\n" @@ -4937,12 +4936,12 @@ class Tools2sidedPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "2sided Tool Options", parent=parent) super(Tools2sidedPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("2Sided Tool Options"))) + self.setTitle(str(_("2Sided Tool Options"))) ## Board cuttout - self.dblsided_label = QtWidgets.QLabel(_tr("Parameters:")) + self.dblsided_label = QtWidgets.QLabel(_("Parameters:")) self.dblsided_label.setToolTip( - _tr("A tool to help in creating a double sided\n" + _("A tool to help in creating a double sided\n" "PCB using alignment holes.") ) self.layout.addWidget(self.dblsided_label) @@ -4952,20 +4951,20 @@ class Tools2sidedPrefGroupUI(OptionsGroupUI): ## Drill diameter for alignment holes self.drill_dia_entry = LengthEntry() - self.dd_label = QtWidgets.QLabel(_tr("Drill diam.:")) + self.dd_label = QtWidgets.QLabel(_("Drill diam.:")) self.dd_label.setToolTip( - _tr("Diameter of the drill for the " + _("Diameter of the drill for the " "alignment holes.") ) grid0.addWidget(self.dd_label, 0, 0) grid0.addWidget(self.drill_dia_entry, 0, 1) ## Axis - self.mirror_axis_radio = RadioSet([{'label': _tr('X'), 'value': 'X'}, - {'label': _tr('Y'), 'value': 'Y'}]) - self.mirax_label = QtWidgets.QLabel(_tr("Mirror Axis:")) + self.mirror_axis_radio = RadioSet([{'label': _('X'), 'value': 'X'}, + {'label': _('Y'), 'value': 'Y'}]) + self.mirax_label = QtWidgets.QLabel(_("Mirror Axis:")) self.mirax_label.setToolTip( - _tr("Mirror vertically (X) or horizontally (Y).") + _("Mirror vertically (X) or horizontally (Y).") ) # grid_lay.addRow("Mirror Axis:", self.mirror_axis) self.empty_lb1 = QtWidgets.QLabel("") @@ -4974,11 +4973,11 @@ class Tools2sidedPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.mirror_axis_radio, 2, 1) ## Axis Location - self.axis_location_radio = RadioSet([{'label': _tr('Point'), 'value': 'point'}, - {'label': _tr('Box'), 'value': 'box'}]) - self.axloc_label = QtWidgets.QLabel(_tr("Axis Ref:")) + self.axis_location_radio = RadioSet([{'label': _('Point'), 'value': 'point'}, + {'label': _('Box'), 'value': 'box'}]) + self.axloc_label = QtWidgets.QLabel(_("Axis Ref:")) self.axloc_label.setToolTip( - _tr("The axis should pass through a point or cut\n " + _("The axis should pass through a point or cut\n " "a specified box (in a Geometry object) in \n" "the middle.") ) @@ -4994,14 +4993,14 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Paint Area Tool Options", parent=parent) super(ToolsPaintPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Paint Tool Options"))) + self.setTitle(str(_("Paint Tool Options"))) # ------------------------------ ## Paint area # ------------------------------ - self.paint_label = QtWidgets.QLabel(_tr('Parameters:')) + self.paint_label = QtWidgets.QLabel(_('Parameters:')) self.paint_label.setToolTip( - _tr("Creates tool paths to cover the\n" + _("Creates tool paths to cover the\n" "whole area of a polygon (remove\n" "all copper). You will be asked\n" "to click on the desired polygon.") @@ -5012,9 +5011,9 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): self.layout.addLayout(grid0) # Tool dia - ptdlabel = QtWidgets.QLabel(_tr('Tool dia:')) + ptdlabel = QtWidgets.QLabel(_('Tool dia:')) ptdlabel.setToolTip( - _tr("Diameter of the tool to\n" + _("Diameter of the tool to\n" "be used in the operation.") ) grid0.addWidget(ptdlabel, 0, 0) @@ -5023,9 +5022,9 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.painttooldia_entry, 0, 1) # Overlap - ovlabel = QtWidgets.QLabel(_tr('Overlap:')) + ovlabel = QtWidgets.QLabel(_('Overlap:')) ovlabel.setToolTip( - _tr("How much (fraction) of the tool\n" + _("How much (fraction) of the tool\n" "width to overlap each tool pass.") ) grid0.addWidget(ovlabel, 1, 0) @@ -5033,9 +5032,9 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.paintoverlap_entry, 1, 1) # Margin - marginlabel = QtWidgets.QLabel(_tr('Margin:')) + marginlabel = QtWidgets.QLabel(_('Margin:')) marginlabel.setToolTip( - _tr("Distance by which to avoid\n" + _("Distance by which to avoid\n" "the edges of the polygon to\n" "be painted.") ) @@ -5044,24 +5043,24 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.paintmargin_entry, 2, 1) # Method - methodlabel = QtWidgets.QLabel(_tr('Method:')) + methodlabel = QtWidgets.QLabel(_('Method:')) methodlabel.setToolTip( - _tr("Algorithm to paint the polygon:
" + _("Algorithm to paint the polygon:
" "Standard: Fixed step inwards.
" "Seed-based: Outwards from seed.") ) grid0.addWidget(methodlabel, 3, 0) self.paintmethod_combo = RadioSet([ - {"label": _tr("Standard"), "value": "standard"}, - {"label": _tr("Seed-based"), "value": "seed"}, - {"label": _tr("Straight lines"), "value": "lines"} + {"label": _("Standard"), "value": "standard"}, + {"label": _("Seed-based"), "value": "seed"}, + {"label": _("Straight lines"), "value": "lines"} ], orientation='vertical', stretch=False) grid0.addWidget(self.paintmethod_combo, 3, 1) # Connect lines - pathconnectlabel = QtWidgets.QLabel(_tr("Connect:")) + pathconnectlabel = QtWidgets.QLabel(_("Connect:")) pathconnectlabel.setToolTip( - _tr("Draw lines between resulting\n" + _("Draw lines between resulting\n" "segments to minimize tool lifts.") ) grid0.addWidget(pathconnectlabel, 4, 0) @@ -5069,9 +5068,9 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.pathconnect_cb, 4, 1) # Paint contour - contourlabel = QtWidgets.QLabel(_tr("Contour:")) + contourlabel = QtWidgets.QLabel(_("Contour:")) contourlabel.setToolTip( - _tr("Cut around the perimeter of the polygon\n" + _("Cut around the perimeter of the polygon\n" "to trim rough edges.") ) grid0.addWidget(contourlabel, 5, 0) @@ -5079,14 +5078,14 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.contour_cb, 5, 1) # Polygon selection - selectlabel = QtWidgets.QLabel(_tr('Selection:')) + selectlabel = QtWidgets.QLabel(_('Selection:')) selectlabel.setToolTip( - _tr("How to select the polygons to paint.") + _("How to select the polygons to paint.") ) grid0.addWidget(selectlabel, 6, 0) self.selectmethod_combo = RadioSet([ - {"label": _tr("Single"), "value": "single"}, - {"label": _tr("All"), "value": "all"}, + {"label": _("Single"), "value": "single"}, + {"label": _("All"), "value": "all"}, # {"label": "Rectangle", "value": "rectangle"} ]) grid0.addWidget(self.selectmethod_combo, 6, 1) @@ -5099,12 +5098,12 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Cutout Tool Options", parent=parent) super(ToolsFilmPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Film Tool Options"))) + self.setTitle(str(_("Film Tool Options"))) ## Board cuttout - self.film_label = QtWidgets.QLabel(_tr("Parameters:")) + self.film_label = QtWidgets.QLabel(_("Parameters:")) self.film_label.setToolTip( - _tr("Create a PCB film from a Gerber or Geometry\n" + _("Create a PCB film from a Gerber or Geometry\n" "FlatCAM object.\n" "The file is saved in SVG format.") ) @@ -5113,11 +5112,11 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI): grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) - self.film_type_radio = RadioSet([{'label': _tr('Pos'), 'value': 'pos'}, - {'label': _tr('Neg'), 'value': 'neg'}]) - ftypelbl = QtWidgets.QLabel(_tr('Film Type:')) + self.film_type_radio = RadioSet([{'label': _('Pos'), 'value': 'pos'}, + {'label': _('Neg'), 'value': 'neg'}]) + ftypelbl = QtWidgets.QLabel(_('Film Type:')) ftypelbl.setToolTip( - _tr("Generate a Positive black film or a Negative film.\n" + _("Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" "with black on a white canvas.\n" "Negative means that it will print the features\n" @@ -5128,9 +5127,9 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.film_type_radio, 0, 1) self.film_boundary_entry = FCEntry() - self.film_boundary_label = QtWidgets.QLabel(_tr("Border:")) + self.film_boundary_label = QtWidgets.QLabel(_("Border:")) self.film_boundary_label.setToolTip( - _tr("Specify a border around the object.\n" + _("Specify a border around the object.\n" "Only for negative film.\n" "It helps if we use as a Box Object the same \n" "object as in Film Object. It will create a thick\n" @@ -5143,9 +5142,9 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI): grid0.addWidget(self.film_boundary_entry, 1, 1) self.film_scale_entry = FCEntry() - self.film_scale_label = QtWidgets.QLabel(_tr("Scale Stroke:")) + self.film_scale_label = QtWidgets.QLabel(_("Scale Stroke:")) self.film_scale_label.setToolTip( - _tr("Scale the line stroke thickness of each feature in the SVG file.\n" + _("Scale the line stroke thickness of each feature in the SVG file.\n" "It means that the line that envelope each SVG feature will be thicker or thinner,\n" "therefore the fine features may be more affected by this parameter.") ) @@ -5160,12 +5159,12 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Cutout Tool Options", parent=parent) super(ToolsPanelizePrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Panelize Tool Options"))) + self.setTitle(str(_("Panelize Tool Options"))) ## Board cuttout - self.panelize_label = QtWidgets.QLabel(_tr("Parameters:")) + self.panelize_label = QtWidgets.QLabel(_("Parameters:")) self.panelize_label.setToolTip( - _tr("Create an object that contains an array of (x, y) elements,\n" + _("Create an object that contains an array of (x, y) elements,\n" "each element is a copy of the source object spaced\n" "at a X distance, Y distance of each other.") ) @@ -5176,9 +5175,9 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): ## Spacing Columns self.pspacing_columns = FCEntry() - self.spacing_columns_label = QtWidgets.QLabel(_tr("Spacing cols:")) + self.spacing_columns_label = QtWidgets.QLabel(_("Spacing cols:")) self.spacing_columns_label.setToolTip( - _tr("Spacing between columns of the desired panel.\n" + _("Spacing between columns of the desired panel.\n" "In current units.") ) grid0.addWidget(self.spacing_columns_label, 0, 0) @@ -5186,9 +5185,9 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): ## Spacing Rows self.pspacing_rows = FCEntry() - self.spacing_rows_label = QtWidgets.QLabel(_tr("Spacing rows:")) + self.spacing_rows_label = QtWidgets.QLabel(_("Spacing rows:")) self.spacing_rows_label.setToolTip( - _tr("Spacing between rows of the desired panel.\n" + _("Spacing between rows of the desired panel.\n" "In current units.") ) grid0.addWidget(self.spacing_rows_label, 1, 0) @@ -5196,28 +5195,28 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): ## Columns self.pcolumns = FCEntry() - self.columns_label = QtWidgets.QLabel(_tr("Columns:")) + self.columns_label = QtWidgets.QLabel(_("Columns:")) self.columns_label.setToolTip( - _tr("Number of columns of the desired panel") + _("Number of columns of the desired panel") ) grid0.addWidget(self.columns_label, 2, 0) grid0.addWidget(self.pcolumns, 2, 1) ## Rows self.prows = FCEntry() - self.rows_label = QtWidgets.QLabel(_tr("Rows:")) + self.rows_label = QtWidgets.QLabel(_("Rows:")) self.rows_label.setToolTip( - _tr("Number of rows of the desired panel") + _("Number of rows of the desired panel") ) grid0.addWidget(self.rows_label, 3, 0) grid0.addWidget(self.prows, 3, 1) ## Type of resulting Panel object - self.panel_type_radio = RadioSet([{'label': _tr('Gerber'), 'value': 'gerber'}, - {'label': _tr('Geo'), 'value': 'geometry'}]) - self.panel_type_label = QtWidgets.QLabel(_tr("Panel Type:")) + self.panel_type_radio = RadioSet([{'label': _('Gerber'), 'value': 'gerber'}, + {'label': _('Geo'), 'value': 'geometry'}]) + self.panel_type_label = QtWidgets.QLabel(_("Panel Type:")) self.panel_type_label.setToolTip( - _tr( "Choose the type of object for the panel object:\n" + _( "Choose the type of object for the panel object:\n" "- Gerber\n" "- Geometry") ) @@ -5226,9 +5225,9 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): grid0.addWidget(self.panel_type_radio, 4, 1) ## Constrains - self.pconstrain_cb = FCCheckBox(_tr("Constrain within:")) + self.pconstrain_cb = FCCheckBox(_("Constrain within:")) self.pconstrain_cb.setToolTip( - _tr("Area define by DX and DY within to constrain the panel.\n" + _("Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" "Regardless of how many columns and rows are desired,\n" "the final panel will have as many columns and rows as\n" @@ -5237,18 +5236,18 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): grid0.addWidget(self.pconstrain_cb, 5, 0) self.px_width_entry = FCEntry() - self.x_width_lbl = QtWidgets.QLabel(_tr("Width (DX):")) + self.x_width_lbl = QtWidgets.QLabel(_("Width (DX):")) self.x_width_lbl.setToolTip( - _tr("The width (DX) within which the panel must fit.\n" + _("The width (DX) within which the panel must fit.\n" "In current units.") ) grid0.addWidget(self.x_width_lbl, 6, 0) grid0.addWidget(self.px_width_entry, 6, 1) self.py_height_entry = FCEntry() - self.y_height_lbl = QtWidgets.QLabel(_tr("Height (DY):")) + self.y_height_lbl = QtWidgets.QLabel(_("Height (DY):")) self.y_height_lbl.setToolTip( - _tr("The height (DY)within which the panel must fit.\n" + _("The height (DY)within which the panel must fit.\n" "In current units.") ) grid0.addWidget(self.y_height_lbl, 7, 0) @@ -5262,12 +5261,12 @@ class ToolsCalculatorsPrefGroupUI(OptionsGroupUI): # OptionsGroupUI.__init__(self, "Calculators Tool Options", parent=parent) super(ToolsCalculatorsPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Calculators Tool Options"))) + self.setTitle(str(_("Calculators Tool Options"))) ## V-shape Calculator Tool - self.vshape_tool_label = QtWidgets.QLabel(_tr("V-Shape Tool Calculator:")) + self.vshape_tool_label = QtWidgets.QLabel(_("V-Shape Tool Calculator:")) self.vshape_tool_label.setToolTip( - _tr("Calculate the tool diameter for a given V-shape tool,\n" + _("Calculate the tool diameter for a given V-shape tool,\n" "having the tip diameter, tip angle and\n" "depth-of-cut as parameters.") ) @@ -5278,9 +5277,9 @@ class ToolsCalculatorsPrefGroupUI(OptionsGroupUI): ## Tip Diameter self.tip_dia_entry = FCEntry() - self.tip_dia_label = QtWidgets.QLabel(_tr("Tip Diameter:")) + self.tip_dia_label = QtWidgets.QLabel(_("Tip Diameter:")) self.tip_dia_label.setToolTip( - _tr("This is the tool tip diameter.\n" + _("This is the tool tip diameter.\n" "It is specified by manufacturer.") ) grid0.addWidget(self.tip_dia_label, 0, 0) @@ -5288,9 +5287,9 @@ class ToolsCalculatorsPrefGroupUI(OptionsGroupUI): ## Tip angle self.tip_angle_entry = FCEntry() - self.tip_angle_label = QtWidgets.QLabel(_tr("Tip angle:")) + self.tip_angle_label = QtWidgets.QLabel(_("Tip angle:")) self.tip_angle_label.setToolTip( - _tr("This is the angle on the tip of the tool.\n" + _("This is the angle on the tip of the tool.\n" "It is specified by manufacturer.") ) grid0.addWidget(self.tip_angle_label, 1, 0) @@ -5298,18 +5297,18 @@ class ToolsCalculatorsPrefGroupUI(OptionsGroupUI): ## Depth-of-cut Cut Z self.cut_z_entry = FCEntry() - self.cut_z_label = QtWidgets.QLabel(_tr("Cut Z:")) + self.cut_z_label = QtWidgets.QLabel(_("Cut Z:")) self.cut_z_label.setToolTip( - _tr("This is depth to cut into material.\n" + _("This is depth to cut into material.\n" "In the CNCJob object it is the CutZ parameter.") ) grid0.addWidget(self.cut_z_label, 2, 0) grid0.addWidget(self.cut_z_entry, 2, 1) ## Electroplating Calculator Tool - self.plate_title_label = QtWidgets.QLabel(_tr("ElectroPlating Calculator:")) + self.plate_title_label = QtWidgets.QLabel(_("ElectroPlating Calculator:")) self.plate_title_label.setToolTip( - _tr("This calculator is useful for those who plate the via/pad/drill holes,\n" + _("This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium chloride.") ) self.layout.addWidget(self.plate_title_label) @@ -5319,34 +5318,34 @@ class ToolsCalculatorsPrefGroupUI(OptionsGroupUI): ## PCB Length self.pcblength_entry = FCEntry() - self.pcblengthlabel = QtWidgets.QLabel(_tr("Board Length:")) + self.pcblengthlabel = QtWidgets.QLabel(_("Board Length:")) - self.pcblengthlabel.setToolTip(_tr('This is the board length. In centimeters.')) + self.pcblengthlabel.setToolTip(_('This is the board length. In centimeters.')) grid1.addWidget(self.pcblengthlabel, 0, 0) grid1.addWidget(self.pcblength_entry, 0, 1) ## PCB Width self.pcbwidth_entry = FCEntry() - self.pcbwidthlabel = QtWidgets.QLabel(_tr("Board Width:")) + self.pcbwidthlabel = QtWidgets.QLabel(_("Board Width:")) - self.pcbwidthlabel.setToolTip(_tr('This is the board width.In centimeters.')) + self.pcbwidthlabel.setToolTip(_('This is the board width.In centimeters.')) grid1.addWidget(self.pcbwidthlabel, 1, 0) grid1.addWidget(self.pcbwidth_entry, 1, 1) ## Current Density - self.cdensity_label = QtWidgets.QLabel(_tr("Current Density:")) + self.cdensity_label = QtWidgets.QLabel(_("Current Density:")) self.cdensity_entry = FCEntry() - self.cdensity_label.setToolTip(_tr("Current density to pass through the board. \n" + self.cdensity_label.setToolTip(_("Current density to pass through the board. \n" "In Amps per Square Feet ASF.")) grid1.addWidget(self.cdensity_label, 2, 0) grid1.addWidget(self.cdensity_entry, 2, 1) ## PCB Copper Growth - self.growth_label = QtWidgets.QLabel(_tr("Copper Growth:")) + self.growth_label = QtWidgets.QLabel(_("Copper Growth:")) self.growth_entry = FCEntry() - self.growth_label.setToolTip(_tr("How thick the copper growth is intended to be.\n" + self.growth_label.setToolTip(_("How thick the copper growth is intended to be.\n" "In microns.")) grid1.addWidget(self.growth_label, 3, 0) grid1.addWidget(self.growth_entry, 3, 1) @@ -5359,12 +5358,12 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): super(ToolsTransformPrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("Transform Tool Options"))) + self.setTitle(str(_("Transform Tool Options"))) ## Transformations - self.transform_label = QtWidgets.QLabel(_tr("Parameters:")) + self.transform_label = QtWidgets.QLabel(_("Parameters:")) self.transform_label.setToolTip( - _tr("Various transformations that can be applied\n" + _("Various transformations that can be applied\n" "on a FlatCAM object.") ) self.layout.addWidget(self.transform_label) @@ -5374,61 +5373,61 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): ## Rotate Angle self.rotate_entry = FCEntry() - self.rotate_label = QtWidgets.QLabel(_tr("Rotate Angle:")) + self.rotate_label = QtWidgets.QLabel(_("Rotate Angle:")) self.rotate_label.setToolTip( - _tr("Angle for rotation. In degrees.") + _("Angle for rotation. In degrees.") ) grid0.addWidget(self.rotate_label, 0, 0) grid0.addWidget(self.rotate_entry, 0, 1) ## Skew/Shear Angle on X axis self.skewx_entry = FCEntry() - self.skewx_label = QtWidgets.QLabel(_tr("Skew_X angle:")) + self.skewx_label = QtWidgets.QLabel(_("Skew_X angle:")) self.skewx_label.setToolTip( - _tr("Angle for Skew/Shear on X axis. In degrees.") + _("Angle for Skew/Shear on X axis. In degrees.") ) grid0.addWidget(self.skewx_label, 1, 0) grid0.addWidget(self.skewx_entry, 1, 1) ## Skew/Shear Angle on Y axis self.skewy_entry = FCEntry() - self.skewy_label = QtWidgets.QLabel(_tr("Skew_Y angle:")) + self.skewy_label = QtWidgets.QLabel(_("Skew_Y angle:")) self.skewy_label.setToolTip( - _tr("Angle for Skew/Shear on Y axis. In degrees.") + _("Angle for Skew/Shear on Y axis. In degrees.") ) grid0.addWidget(self.skewy_label, 2, 0) grid0.addWidget(self.skewy_entry, 2, 1) ## Scale factor on X axis self.scalex_entry = FCEntry() - self.scalex_label = QtWidgets.QLabel(_tr("Scale_X factor:")) + self.scalex_label = QtWidgets.QLabel(_("Scale_X factor:")) self.scalex_label.setToolTip( - _tr("Factor for scaling on X axis.") + _("Factor for scaling on X axis.") ) grid0.addWidget(self.scalex_label, 3, 0) grid0.addWidget(self.scalex_entry, 3, 1) ## Scale factor on X axis self.scaley_entry = FCEntry() - self.scaley_label = QtWidgets.QLabel(_tr("Scale_Y factor:")) + self.scaley_label = QtWidgets.QLabel(_("Scale_Y factor:")) self.scaley_label.setToolTip( - _tr("Factor for scaling on Y axis.") + _("Factor for scaling on Y axis.") ) grid0.addWidget(self.scaley_label, 4, 0) grid0.addWidget(self.scaley_entry, 4, 1) ## Link Scale factors - self.link_cb = FCCheckBox(_tr("Link")) + self.link_cb = FCCheckBox(_("Link")) self.link_cb.setToolTip( - _tr("Scale the selected object(s)\n" + _("Scale the selected object(s)\n" "using the Scale_X factor for both axis.") ) grid0.addWidget(self.link_cb, 5, 0) ## Scale Reference - self.reference_cb = FCCheckBox(_tr("Scale Reference")) + self.reference_cb = FCCheckBox(_("Scale Reference")) self.reference_cb.setToolTip( - _tr("Scale the selected object(s)\n" + _("Scale the selected object(s)\n" "using the origin reference when checked,\n" "and the center of the biggest bounding box\n" "of the selected objects when unchecked.") @@ -5437,26 +5436,26 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): ## Offset distance on X axis self.offx_entry = FCEntry() - self.offx_label = QtWidgets.QLabel(_tr("Offset_X val:")) + self.offx_label = QtWidgets.QLabel(_("Offset_X val:")) self.offx_label.setToolTip( - _tr( "Distance to offset on X axis. In current units.") + _( "Distance to offset on X axis. In current units.") ) grid0.addWidget(self.offx_label, 6, 0) grid0.addWidget(self.offx_entry, 6, 1) ## Offset distance on Y axis self.offy_entry = FCEntry() - self.offy_label = QtWidgets.QLabel(_tr("Offset_Y val:")) + self.offy_label = QtWidgets.QLabel(_("Offset_Y val:")) self.offy_label.setToolTip( - _tr("Distance to offset on Y axis. In current units.") + _("Distance to offset on Y axis. In current units.") ) grid0.addWidget(self.offy_label, 7, 0) grid0.addWidget(self.offy_entry, 7, 1) ## Mirror (Flip) Reference Point - self.mirror_reference_cb = FCCheckBox(_tr("Mirror Reference")) + self.mirror_reference_cb = FCCheckBox(_("Mirror Reference")) self.mirror_reference_cb.setToolTip( - _tr("Flip the selected object(s)\n" + _("Flip the selected object(s)\n" "around the point in Point Entry Field.\n" "\n" "The point coordinates can be captured by\n" @@ -5467,9 +5466,9 @@ class ToolsTransformPrefGroupUI(OptionsGroupUI): "Point Entry field and click Flip on X(Y)")) grid0.addWidget(self.mirror_reference_cb, 8, 1) - self.flip_ref_label = QtWidgets.QLabel(_tr(" Mirror Ref. Point:")) + self.flip_ref_label = QtWidgets.QLabel(_(" Mirror Ref. Point:")) self.flip_ref_label.setToolTip( - _tr("Coordinates in format (x, y) used as reference for mirroring.\n" + _("Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" "the 'y' in (x, y) will be used when using Flip on Y and") ) @@ -5486,12 +5485,12 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): super(ToolsSolderpastePrefGroupUI, self).__init__(self) - self.setTitle(str(_tr("SolderPaste Tool Options"))) + self.setTitle(str(_("SolderPaste Tool Options"))) ## Solder Paste Dispensing - self.solderpastelabel = QtWidgets.QLabel(_tr("Parameters:")) + self.solderpastelabel = QtWidgets.QLabel(_("Parameters:")) self.solderpastelabel.setToolTip( - _tr("A tool to create GCode for dispensing\n" + _("A tool to create GCode for dispensing\n" "solder paste onto a PCB.") ) self.layout.addWidget(self.solderpastelabel) @@ -5500,18 +5499,18 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): self.layout.addLayout(grid0) # Nozzle Tool Diameters - nozzletdlabel = QtWidgets.QLabel(_tr('Tools dia:')) + nozzletdlabel = QtWidgets.QLabel(_('Tools dia:')) nozzletdlabel.setToolTip( - _tr("Diameters of nozzle tools, separated by ','") + _("Diameters of nozzle tools, separated by ','") ) self.nozzle_tool_dia_entry = FCEntry() grid0.addWidget(nozzletdlabel, 0, 0) grid0.addWidget(self.nozzle_tool_dia_entry, 0, 1) # New Nozzle Tool Dia - self.addtool_entry_lbl = QtWidgets.QLabel(_tr('New Nozzle Dia:')) + self.addtool_entry_lbl = QtWidgets.QLabel(_('New Nozzle Dia:')) self.addtool_entry_lbl.setToolTip( - _tr("Diameter for the new Nozzle tool to add in the Tool Table") + _("Diameter for the new Nozzle tool to add in the Tool Table") ) self.addtool_entry = FCEntry() grid0.addWidget(self.addtool_entry_lbl, 1, 0) @@ -5519,36 +5518,36 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Z dispense start self.z_start_entry = FCEntry() - self.z_start_label = QtWidgets.QLabel(_tr("Z Dispense Start:")) + self.z_start_label = QtWidgets.QLabel(_("Z Dispense Start:")) self.z_start_label.setToolTip( - _tr("The height (Z) when solder paste dispensing starts.") + _("The height (Z) when solder paste dispensing starts.") ) grid0.addWidget(self.z_start_label, 2, 0) grid0.addWidget(self.z_start_entry, 2, 1) # Z dispense self.z_dispense_entry = FCEntry() - self.z_dispense_label = QtWidgets.QLabel(_tr("Z Dispense:")) + self.z_dispense_label = QtWidgets.QLabel(_("Z Dispense:")) self.z_dispense_label.setToolTip( - _tr("The height (Z) when doing solder paste dispensing.") + _("The height (Z) when doing solder paste dispensing.") ) grid0.addWidget(self.z_dispense_label, 3, 0) grid0.addWidget(self.z_dispense_entry, 3, 1) # Z dispense stop self.z_stop_entry = FCEntry() - self.z_stop_label = QtWidgets.QLabel(_tr("Z Dispense Stop:")) + self.z_stop_label = QtWidgets.QLabel(_("Z Dispense Stop:")) self.z_stop_label.setToolTip( - _tr("The height (Z) when solder paste dispensing stops.") + _("The height (Z) when solder paste dispensing stops.") ) grid0.addWidget(self.z_stop_label, 4, 0) grid0.addWidget(self.z_stop_entry, 4, 1) # Z travel self.z_travel_entry = FCEntry() - self.z_travel_label = QtWidgets.QLabel(_tr("Z Travel:")) + self.z_travel_label = QtWidgets.QLabel(_("Z Travel:")) self.z_travel_label.setToolTip( - _tr("The height (Z) for travel between pads\n" + _("The height (Z) for travel between pads\n" "(without dispensing solder paste).") ) grid0.addWidget(self.z_travel_label, 5, 0) @@ -5556,18 +5555,18 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Z toolchange location self.z_toolchange_entry = FCEntry() - self.z_toolchange_label = QtWidgets.QLabel(_tr("Z Toolchange:")) + self.z_toolchange_label = QtWidgets.QLabel(_("Z Toolchange:")) self.z_toolchange_label.setToolTip( - _tr("The height (Z) for tool (nozzle) change.") + _("The height (Z) for tool (nozzle) change.") ) grid0.addWidget(self.z_toolchange_label, 6, 0) grid0.addWidget(self.z_toolchange_entry, 6, 1) # X,Y Toolchange location self.xy_toolchange_entry = FCEntry() - self.xy_toolchange_label = QtWidgets.QLabel(_tr("XY Toolchange:")) + self.xy_toolchange_label = QtWidgets.QLabel(_("XY Toolchange:")) self.xy_toolchange_label.setToolTip( - _tr("The X,Y location for tool (nozzle) change.\n" + _("The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers.") ) grid0.addWidget(self.xy_toolchange_label, 7, 0) @@ -5575,18 +5574,18 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Feedrate X-Y self.frxy_entry = FCEntry() - self.frxy_label = QtWidgets.QLabel(_tr("Feedrate X-Y:")) + self.frxy_label = QtWidgets.QLabel(_("Feedrate X-Y:")) self.frxy_label.setToolTip( - _tr("Feedrate (speed) while moving on the X-Y plane.") + _("Feedrate (speed) while moving on the X-Y plane.") ) grid0.addWidget(self.frxy_label, 8, 0) grid0.addWidget(self.frxy_entry, 8, 1) # Feedrate Z self.frz_entry = FCEntry() - self.frz_label = QtWidgets.QLabel(_tr("Feedrate Z:")) + self.frz_label = QtWidgets.QLabel(_("Feedrate Z:")) self.frz_label.setToolTip( - _tr("Feedrate (speed) while moving vertically\n" + _("Feedrate (speed) while moving vertically\n" "(on Z plane).") ) grid0.addWidget(self.frz_label, 9, 0) @@ -5594,9 +5593,9 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Feedrate Z Dispense self.frz_dispense_entry = FCEntry() - self.frz_dispense_label = QtWidgets.QLabel(_tr("Feedrate Z Dispense:")) + self.frz_dispense_label = QtWidgets.QLabel(_("Feedrate Z Dispense:")) self.frz_dispense_label.setToolTip( - _tr("Feedrate (speed) while moving up vertically\n" + _("Feedrate (speed) while moving up vertically\n" " to Dispense position (on Z plane).") ) grid0.addWidget(self.frz_dispense_label, 10, 0) @@ -5604,9 +5603,9 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Spindle Speed Forward self.speedfwd_entry = FCEntry() - self.speedfwd_label = QtWidgets.QLabel(_tr("Spindle Speed FWD:")) + self.speedfwd_label = QtWidgets.QLabel(_("Spindle Speed FWD:")) self.speedfwd_label.setToolTip( - _tr("The dispenser speed while pushing solder paste\n" + _("The dispenser speed while pushing solder paste\n" "through the dispenser nozzle.") ) grid0.addWidget(self.speedfwd_label, 11, 0) @@ -5614,18 +5613,18 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Dwell Forward self.dwellfwd_entry = FCEntry() - self.dwellfwd_label = QtWidgets.QLabel(_tr("Dwell FWD:")) + self.dwellfwd_label = QtWidgets.QLabel(_("Dwell FWD:")) self.dwellfwd_label.setToolTip( - _tr("Pause after solder dispensing.") + _("Pause after solder dispensing.") ) grid0.addWidget(self.dwellfwd_label, 12, 0) grid0.addWidget(self.dwellfwd_entry, 12, 1) # Spindle Speed Reverse self.speedrev_entry = FCEntry() - self.speedrev_label = QtWidgets.QLabel(_tr("Spindle Speed REV:")) + self.speedrev_label = QtWidgets.QLabel(_("Spindle Speed REV:")) self.speedrev_label.setToolTip( - _tr("The dispenser speed while retracting solder paste\n" + _("The dispenser speed while retracting solder paste\n" "through the dispenser nozzle.") ) grid0.addWidget(self.speedrev_label, 13, 0) @@ -5633,18 +5632,18 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Dwell Reverse self.dwellrev_entry = FCEntry() - self.dwellrev_label = QtWidgets.QLabel(_tr("Dwell REV:")) + self.dwellrev_label = QtWidgets.QLabel(_("Dwell REV:")) self.dwellrev_label.setToolTip( - _tr("Pause after solder paste dispenser retracted,\n" + _("Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium.") ) grid0.addWidget(self.dwellrev_label, 14, 0) grid0.addWidget(self.dwellrev_entry, 14, 1) # Postprocessors - pp_label = QtWidgets.QLabel(_tr('PostProcessors:')) + pp_label = QtWidgets.QLabel(_('PostProcessors:')) pp_label.setToolTip( - _tr("Files that control the GCode generation.") + _("Files that control the GCode generation.") ) self.pp_combo = FCComboBox() @@ -5674,13 +5673,13 @@ class FlatCAMActivityView(QtWidgets.QWidget): layout.addWidget(self.icon) self.text = QtWidgets.QLabel(self) - self.text.setText(_tr("Idle.")) + self.text.setText(_("Idle.")) layout.addWidget(self.text) def set_idle(self): self.movie.stop() - self.text.setText(_tr("Idle.")) + self.text.setText(_("Idle.")) def set_busy(self, msg): self.movie.start() @@ -5704,8 +5703,8 @@ class FlatCAMInfoBar(QtWidgets.QWidget): layout.addWidget(self.icon) self.text = QtWidgets.QLabel(self) - self.text.setText(_tr("Application started ...")) - self.text.setToolTip(_tr("Hello!")) + self.text.setText(_("Application started ...")) + self.text.setToolTip(_("Hello!")) layout.addWidget(self.text) diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 9d9d676a..fe01c741 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -27,13 +27,6 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('FlatCAMObj') -def _tr(text): - try: - return _(text) - except: - return text - - class ObjectDeleted(Exception): # Interrupts plotting process if FlatCAMObj has been deleted pass @@ -200,7 +193,7 @@ class FlatCAMObj(QtCore.QObject): log.debug("on_name_activate() --> Could not remove the old object name from auto-completer model list") self.options["name"] = self.ui.name_entry.get_value() - self.app.inform.emit(_tr("[success]Name changed from %s to %s") % (old_name, new_name)) + self.app.inform.emit(_("[success]Name changed from %s to %s") % (old_name, new_name)) def on_offset_button_click(self): self.app.report_usage("obj_on_offset_button") @@ -538,7 +531,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): # Show/Hide Advanced Options if self.app.defaults["global_app_level"] == 'b': - self.ui.level.setText(_tr( + self.ui.level.setText(_( 'Basic' )) self.ui.apertures_table_label.hide() @@ -550,7 +543,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): self.ui.follow_cb.hide() self.ui.padding_area_label.show() else: - self.ui.level.setText(_tr( + self.ui.level.setText(_( 'Advanced' )) self.ui.padding_area_label.hide() @@ -905,7 +898,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): for g in geo_obj.solid_geometry: if g: - app_obj.inform.emit(_tr( + app_obj.inform.emit(_( "[success]Isolation geometry created: %s" ) % geo_obj.options["name"]) break @@ -960,7 +953,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): for g in geo_obj.solid_geometry: if g: - app_obj.inform.emit(_tr( + app_obj.inform.emit(_( "[success]Isolation geometry created: %s" ) % geo_obj.options["name"]) break @@ -1035,7 +1028,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): factor = self.ui.scale_aperture_entry.get_value() except Exception as e: log.debug("FlatCAMGerber.on_scale_aperture_click() --> %s" % str(e)) - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL] The aperture scale factor value is missing or wrong format." )) return @@ -1050,7 +1043,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): return affinity.scale(geom, factor, factor, origin='center') if not self.ui.apertures_table.selectedItems(): - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try again." )) return @@ -1070,7 +1063,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): buff_value = self.ui.buffer_aperture_entry.get_value() except Exception as e: log.debug("FlatCAMGerber.on_scale_aperture_click() --> %s" % str(e)) - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL] The aperture buffer value is missing or wrong format." )) return @@ -1085,7 +1078,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): return geom.buffer(buff_value, join_style=2) if not self.ui.apertures_table.selectedItems(): - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try again." )) return @@ -1143,14 +1136,14 @@ class FlatCAMGerber(FlatCAMObj, Gerber): log.debug("on_new_modified_gerber()") - with self.app.proc_container.new(_tr("Generating Gerber")) as proc: + with self.app.proc_container.new(_("Generating Gerber")) as proc: self.app.progress.emit(10) ### Object creation ### ret = self.app.new_object("gerber", name, obj_init, autoselected=False) if ret == 'fail': - self.app.inform.emit(_tr( + self.app.inform.emit(_( '[ERROR_NOTCL] Cretion of Gerber failed.' )) return @@ -1158,7 +1151,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): self.app.progress.emit(100) # GUI feedback - self.app.inform.emit(_tr("[success] Created: %s") % name) + self.app.inform.emit(_("[success] Created: %s") % name) def convert_units(self, units): """ @@ -1278,7 +1271,7 @@ class FlatCAMGerber(FlatCAMObj, Gerber): else: visibility = kwargs['visible'] - with self.app.proc_container.new(_tr("Plotting Apertures")) as proc: + with self.app.proc_container.new(_("Plotting Apertures")) as proc: self.app.progress.emit(30) def job_thread(app_obj): @@ -1732,7 +1725,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): empty_1 = QtWidgets.QTableWidgetItem('') empty_1.setFlags(~QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) - label_tot_drill_count = QtWidgets.QTableWidgetItem(_tr('Total Drills')) + label_tot_drill_count = QtWidgets.QTableWidgetItem(_('Total Drills')) tot_drill_count = QtWidgets.QTableWidgetItem('%d' % self.tot_drill_cnt) label_tot_drill_count.setFlags(QtCore.Qt.ItemIsEnabled) tot_drill_count.setFlags(QtCore.Qt.ItemIsEnabled) @@ -1758,7 +1751,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): empty_3 = QtWidgets.QTableWidgetItem('') empty_3.setFlags(~QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) - label_tot_slot_count = QtWidgets.QTableWidgetItem(_tr('Total Slots')) + label_tot_slot_count = QtWidgets.QTableWidgetItem(_('Total Slots')) tot_slot_count = QtWidgets.QTableWidgetItem('%d' % self.tot_slot_cnt) label_tot_slot_count.setFlags(QtCore.Qt.ItemIsEnabled) tot_slot_count.setFlags(QtCore.Qt.ItemIsEnabled) @@ -1892,7 +1885,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): # Show/Hide Advanced Options if self.app.defaults["global_app_level"] == 'b': - self.ui.level.setText(_tr( + self.ui.level.setText(_( 'Basic' )) @@ -1908,7 +1901,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): self.ui.feedrate_probe_label.hide() self.ui.feedrate_probe_entry.hide() else: - self.ui.level.setText(_tr( + self.ui.level.setText(_( 'Advanced' )) @@ -1964,7 +1957,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): self.ui.tools_table.currentItem().setText( self.ui.tools_table.currentItem().text().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Wrong value format entered, use a number." )) self.ui.tools_table.currentItem().setText(str(self.tool_offset[dia])) @@ -2188,14 +2181,14 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): log.debug("Tools 'all' and sorted are: %s" % str(tools)) if len(tools) == 0: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Please select one or more tools from the list and try again." )) return False, "Error: No tools." for tool in tools: if tooldia > self.tools[tool]["C"]: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL] Milling tool for DRILLS is larger than hole size. Cancelled." )) return False, "Error: Milling tool is larger than hole." @@ -2210,7 +2203,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): # get the tool_table items in a list of row items tool_table_items = self.get_selected_tools_table_items() # insert an information only element in the front - tool_table_items.insert(0, [_tr("Tool_nr"), _tr("Diameter"), _tr("Drills_Nr"), _tr("Slots_Nr")]) + tool_table_items.insert(0, [_("Tool_nr"), _("Diameter"), _("Drills_Nr"), _("Slots_Nr")]) geo_obj.options['Tools_in_use'] = tool_table_items geo_obj.options['type'] = 'Excellon Geometry' @@ -2279,7 +2272,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): log.debug("Tools 'all' and sorted are: %s" % str(tools)) if len(tools) == 0: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Please select one or more tools from the list and try again." )) return False, "Error: No tools." @@ -2289,7 +2282,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): adj_toolstable_tooldia = float('%.4f' % float(tooldia)) adj_file_tooldia = float('%.4f' % float(self.tools[tool]["C"])) if adj_toolstable_tooldia > adj_file_tooldia + 0.0001: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL] Milling tool for SLOTS is larger than hole size. Cancelled." )) return False, "Error: Milling tool is larger than hole." @@ -2304,7 +2297,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): # get the tool_table items in a list of row items tool_table_items = self.get_selected_tools_table_items() # insert an information only element in the front - tool_table_items.insert(0, [_tr("Tool_nr"), _tr("Diameter"), _tr("Drills_Nr"), _tr("Slots_Nr")]) + tool_table_items.insert(0, [_("Tool_nr"), _("Diameter"), _("Drills_Nr"), _("Slots_Nr")]) geo_obj.options['Tools_in_use'] = tool_table_items geo_obj.options['type'] = 'Excellon Geometry' @@ -2394,7 +2387,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): if self.ui.tools_table.rowCount() == 3: tools.append(self.ui.tools_table.item(0, 0).text()) else: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Please select one or more tools from the list and try again." )) return @@ -2415,7 +2408,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): # get the tool_table items in a list of row items tool_table_items = self.get_selected_tools_table_items() # insert an information only element in the front - tool_table_items.insert(0, [_tr("Tool_nr"), _tr("Diameter"), _tr("Drills_Nr"), _tr("Slots_Nr")]) + tool_table_items.insert(0, [_("Tool_nr"), _("Diameter"), _("Drills_Nr"), _("Slots_Nr")]) ### Add properties to the object @@ -2452,7 +2445,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): job_obj.z_pdepth = float(self.options["z_pdepth"].replace(',', '.')) except ValueError: self.app.inform.emit( - _tr( + _( '[ERROR_NOTCL]Wrong value format for self.defaults["z_pdepth"] or self.options["z_pdepth"]' )) @@ -2464,7 +2457,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): job_obj.feedrate_rapid = float(self.options["feedrate_probe"].replace(',', '.')) except ValueError: self.app.inform.emit( - _tr( + _( '[ERROR_NOTCL]Wrong value format for self.defaults["feedrate_probe"] ' 'or self.options["feedrate_probe"]' ) @@ -2497,7 +2490,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): # To be run in separate thread def job_thread(app_obj): - with self.app.proc_container.new(_tr("Generating CNC Code")): + with self.app.proc_container.new(_("Generating CNC Code")): app_obj.new_object("cncjob", job_name, job_init) app_obj.progress.emit(100) @@ -2522,7 +2515,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon): else: coords_xy = [float(eval(coord)) for coord in self.app.defaults["excellon_toolchangexy"].split(",")] if len(coords_xy) < 2: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be " "in the format (x, y) \nbut now there is only one value, not two. " )) @@ -2870,8 +2863,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # those elements are the ones used for generating GCode self.sel_tools = {} - self.offset_item_options = [_tr("Path"), _tr("In"), _tr("Out"), _tr("Custom")] - self.type_item_options = [_tr("Iso"), _tr("Rough"), _tr("Finish")] + self.offset_item_options = [_("Path"), _("In"), _("Out"), _("Custom")] + self.type_item_options = [_("Iso"), _("Rough"), _("Finish")] self.tool_type_item_options = ["C1", "C2", "C3", "C4", "B", "V"] # flag to store if the V-Shape tool is selected in self.ui.geo_tools_table @@ -3112,9 +3105,9 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.tools.update({ self.tooluid: { 'tooldia': float(self.options["cnctooldia"]), - 'offset': _tr('Path'), + 'offset': _('Path'), 'offset_value': 0.0, - 'type': _tr('Rough'), + 'type': _('Rough'), 'tool_type': 'C1', 'data': self.default_data, 'solid_geometry': self.solid_geometry @@ -3149,13 +3142,13 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ui.geo_tools_table.setupContextMenu() self.ui.geo_tools_table.addContextMenu( - _tr("Copy"), self.on_tool_copy, icon=QtGui.QIcon("share/copy16.png")) + _("Copy"), self.on_tool_copy, icon=QtGui.QIcon("share/copy16.png")) self.ui.geo_tools_table.addContextMenu( - _tr("Delete"), lambda: self.on_tool_delete(all=None), icon=QtGui.QIcon("share/delete32.png")) + _("Delete"), lambda: self.on_tool_delete(all=None), icon=QtGui.QIcon("share/delete32.png")) # Show/Hide Advanced Options if self.app.defaults["global_app_level"] == 'b': - self.ui.level.setText(_tr( + self.ui.level.setText(_( 'Basic' )) @@ -3177,7 +3170,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ui.feedrate_probe_label.hide() self.ui.feedrate_probe_entry.hide() else: - self.ui.level.setText(_tr( + self.ui.level.setText(_( 'Advanced' )) @@ -3193,7 +3186,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): tool_offset = self.ui.geo_tools_table.cellWidget(current_row, 2) if tool_offset is not None: tool_offset_txt = tool_offset.currentText() - if tool_offset_txt == _tr('Custom'): + if tool_offset_txt == _('Custom'): self.ui.tool_offset_entry.show() self.ui.tool_offset_lbl.show() else: @@ -3227,7 +3220,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ui.tool_offset_entry.get_value().replace(',', '.') ) except ValueError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Wrong value format entered, " "use a number." ) @@ -3368,7 +3361,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): if tooldia is None: self.build_ui() - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL] Please enter the desired tool diameter in Float format." )) return @@ -3397,9 +3390,9 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.tools.update({ self.tooluid: { 'tooldia': tooldia, - 'offset': _tr('Path'), + 'offset': _('Path'), 'offset_value': 0.0, - 'type': _tr('Rough'), + 'type': _('Rough'), 'tool_type': 'C1', 'data': copy.deepcopy(self.default_data), 'solid_geometry': self.solid_geometry @@ -3443,12 +3436,12 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ser_attrs.append('tools') if change_message is False: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[success] Tool added in Tool Table." )) else: change_message = False - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Default Tool added. Wrong value format entered." )) self.build_ui() @@ -3478,7 +3471,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): max_uid += 1 self.tools[int(max_uid)] = copy.deepcopy(self.tools[tooluid_copy]) except AttributeError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[WARNING_NOTCL]Failed. Select a tool to copy." )) self.build_ui() @@ -3488,7 +3481,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # deselect the table # self.ui.geo_tools_table.clearSelection() else: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[WARNING_NOTCL]Failed. Select a tool to copy." )) self.build_ui() @@ -3517,7 +3510,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ser_attrs.append('tools') self.build_ui() - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[success] Tool was copied in Tool Table." )) @@ -3533,7 +3526,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): try: d = float(self.ui.geo_tools_table.item(current_row, 1).text().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Wrong value format entered, " "use a number." )) @@ -3550,7 +3543,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): except: pass - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[success] Tool was edited in Tool Table." )) self.build_ui() @@ -3581,7 +3574,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.tools = copy.deepcopy(temp_tools) temp_tools.clear() except AttributeError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[WARNING_NOTCL]Failed. Select a tool to delete." )) self.build_ui() @@ -3591,7 +3584,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # deselect the table # self.ui.geo_tools_table.clearSelection() else: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[WARNING_NOTCL]Failed. Select a tool to delete." )) self.build_ui() @@ -3615,7 +3608,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ser_attrs.append('tools') self.build_ui() - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[success] Tool was deleted in Tool Table." )) @@ -3720,7 +3713,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): try: vdia = float(self.ui.tipdia_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Wrong value format entered, " "use a number." )) @@ -3733,7 +3726,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): try: half_vangle = float(self.ui.tipangle_entry.get_value().replace(',', '.')) / 2 except ValueError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Wrong value format entered, " "use a number." )) @@ -3766,7 +3759,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): cb_txt = cw.currentText() if cw_col == 2: tooluid_value['offset'] = cb_txt - if cb_txt == _tr('Custom'): + if cb_txt == _('Custom'): self.ui.tool_offset_entry.show() self.ui.tool_offset_lbl.show() else: @@ -3777,8 +3770,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): elif cw_col == 3: # force toolpath type as 'Iso' if the tool type is V-Shape if self.ui.geo_tools_table.cellWidget(cw_row, 4).currentText() == 'V': - tooluid_value['type'] = _tr('Iso') - idx = self.ui.geo_tools_table.cellWidget(cw_row, 3).findText(_tr('Iso')) + tooluid_value['type'] = _('Iso') + idx = self.ui.geo_tools_table.cellWidget(cw_row, 3).findText(_('Iso')) self.ui.geo_tools_table.cellWidget(cw_row, 3).setCurrentIndex(idx) else: tooluid_value['type'] = cb_txt @@ -3787,7 +3780,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # if the tool_type selected is V-Shape then autoselect the toolpath type as Iso if cb_txt == 'V': - idx = self.ui.geo_tools_table.cellWidget(cw_row, 3).findText(_tr('Iso')) + idx = self.ui.geo_tools_table.cellWidget(cw_row, 3).findText(_('Iso')) self.ui.geo_tools_table.cellWidget(cw_row, 3).setCurrentIndex(idx) self.ui_update_v_shape(tool_type_txt=self.ui.geo_tools_table.cellWidget(cw_row, 4).currentText()) @@ -3850,7 +3843,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): offset_value_item = float(self.ui.tool_offset_entry.get_value().replace(',', '.') ) except ValueError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Wrong value format entered, " "use a number." )) @@ -4029,7 +4022,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): try: if self.special_group: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[WARNING_NOTCL]This Geometry can't be processed because it is %s geometry." ) % str(self.special_group)) return @@ -4046,7 +4039,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): try: tooldia = float(self.ui.geo_tools_table.item(x.row(), 1).text().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Wrong Tool Dia value format entered, " "use a number." )) @@ -4073,7 +4066,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.ui.geo_tools_table.clearSelection() else: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." )) @@ -4111,8 +4104,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): ymax = self.options['ymax'] except Exception as e: log.debug("FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s\n" % str(e)) - msg = _tr("[ERROR] An internal error has ocurred. See shell.\n") - msg += _tr('FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s') % str(e) + msg = _("[ERROR] An internal error has ocurred. See shell.\n") + msg += _('FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s') % str(e) msg += traceback.format_exc() self.app.inform.emit(msg) return @@ -4146,7 +4139,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): job_obj.z_pdepth = float(self.options["z_pdepth"].replace(',', '.')) except ValueError: self.app.inform.emit( - _tr( + _( '[ERROR_NOTCL]Wrong value format for self.defaults["z_pdepth"] or self.options["z_pdepth"]' )) @@ -4158,7 +4151,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): job_obj.feedrate_rapid = float(self.options["feedrate_probe"].replace(',', '.')) except ValueError: self.app.inform.emit( - _tr( + _( '[ERROR_NOTCL]Wrong value format for self.defaults["feedrate_probe"] ' 'or self.options["feedrate_probe"]' )) @@ -4258,7 +4251,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): offset_value = float(self.ui.tool_offset_entry.get_value().replace(',', '.') ) except ValueError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Wrong value format entered, " "use a number." )) @@ -4267,7 +4260,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): tool_offset = float(offset_value) else: self.app.inform.emit( - _tr( + _( "[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." ) @@ -4357,7 +4350,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): job_obj.z_pdepth = float(self.options["z_pdepth"].replace(',', '.')) except ValueError: self.app.inform.emit( - _tr( + _( '[ERROR_NOTCL]Wrong value format for self.defaults["z_pdepth"] or self.options["z_pdepth"]' )) @@ -4369,7 +4362,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): job_obj.feedrate_rapid = float(self.options["feedrate_probe"].replace(',', '.')) except ValueError: self.app.inform.emit( - _tr( + _( '[ERROR_NOTCL]Wrong value format for self.defaults["feedrate_probe"] ' 'or self.options["feedrate_probe"]' )) @@ -4381,7 +4374,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): if self.tools[tooluid_key]['solid_geometry'] is None: a += 1 if a == len(self.tools): - self.app.inform.emit(_tr( + self.app.inform.emit(_( '[ERROR_NOTCL]Cancelled. Empty file, it has no geometry...' )) return 'fail' @@ -4491,7 +4484,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): offset_value = float(self.ui.tool_offset_entry.get_value().replace(',', '.') ) except ValueError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Wrong value format entered, " "use a number." )) @@ -4500,7 +4493,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): tool_offset = float(offset_value) else: self.app.inform.emit( - _tr( + _( "[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" "Add a Tool Offset or change the Offset Type." ) @@ -4560,12 +4553,12 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): # separate solid_geometry in the self.tools dictionary def job_thread(app_obj): if self.solid_geometry: - with self.app.proc_container.new(_tr("Generating CNC Code")): + with self.app.proc_container.new(_("Generating CNC Code")): if app_obj.new_object("cncjob", outname, job_init_single_geometry) != 'fail': app_obj.inform.emit("[success]CNCjob created: %s" % outname) app_obj.progress.emit(100) else: - with self.app.proc_container.new(_tr("Generating CNC Code")): + with self.app.proc_container.new(_("Generating CNC Code")): if app_obj.new_object("cncjob", outname, job_init_multi_geometry) != 'fail': app_obj.inform.emit("[success]CNCjob created: %s" % outname) app_obj.progress.emit(100) @@ -4672,7 +4665,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): job_obj.z_pdepth = float(self.options["z_pdepth"].replace(',', '.')) except ValueError: self.app.inform.emit( - _tr( + _( '[ERROR_NOTCL]Wrong value format for self.defaults["z_pdepth"] or self.options["z_pdepth"]' )) @@ -4684,7 +4677,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): job_obj.feedrate_rapid = float(self.options["feedrate_probe"].replace(',', '.')) except ValueError: self.app.inform.emit( - _tr( + _( '[ERROR_NOTCL]Wrong value format for self.defaults["feedrate_probe"] ' 'or self.options["feedrate_probe"]' )) @@ -4711,7 +4704,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): if use_thread: # To be run in separate thread def job_thread(app_obj): - with self.app.proc_container.new(_tr("Generating CNC Code")): + with self.app.proc_container.new(_("Generating CNC Code")): app_obj.new_object("cncjob", outname, job_init) app_obj.inform.emit("[success]CNCjob created: %s" % outname) app_obj.progress.emit(100) @@ -4743,7 +4736,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): try: xfactor = float(xfactor) except: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL] Scale factor has to be a number: integer or float.")) return @@ -4753,7 +4746,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): try: yfactor = float(yfactor) except: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL] Scale factor has to be a number: integer or float." )) return @@ -4791,7 +4784,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): else: self.solid_geometry=scale_recursion(self.solid_geometry) - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[success]Geometry Scale done." )) @@ -4808,7 +4801,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): try: dx, dy = vect except TypeError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]An (x,y) pair of values are needed. " "Probable you entered only one value in the Offset field." )) @@ -4828,7 +4821,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): self.tools[tool]['solid_geometry'] = translate_recursion(self.tools[tool]['solid_geometry']) else: self.solid_geometry=translate_recursion(self.solid_geometry) - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[success]Geometry Offset done." )) @@ -4856,7 +4849,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): else: coords_xy = [float(eval(coord)) for coord in self.app.defaults["geometry_toolchangexy"].split(",")] if len(coords_xy) < 2: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be " "in the format (x, y) \nbut now there is only one value, not two. " )) @@ -4897,7 +4890,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): custom_offset = float(self.ui.tool_offset_entry.get_value().replace(',', '.') ) except ValueError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL]Wrong value format entered, " "use a number." )) @@ -5302,13 +5295,13 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): # Show/Hide Advanced Options if self.app.defaults["global_app_level"] == 'b': - self.ui.level.setText(_tr( + self.ui.level.setText(_( 'Basic' )) self.ui.cnc_frame.hide() else: - self.ui.level.setText(_tr( + self.ui.level.setText(_( 'Advanced' )) self.ui.cnc_frame.show() @@ -5376,12 +5369,12 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): filter=_filter_ ) except TypeError: - filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_tr("Export Machine Code ..."), filter=_filter_) + filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Machine Code ..."), filter=_filter_) filename = str(filename) if filename == '': - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[WARNING_NOTCL]Export Machine Code cancelled ...")) return @@ -5393,7 +5386,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): return self.app.file_saved.emit("gcode", filename) - self.app.inform.emit(_tr("[success] Machine Code file saved to: %s") % filename) + self.app.inform.emit(_("[success] Machine Code file saved to: %s") % filename) def on_modifygcode_button_click(self, *args): preamble = str(self.ui.prepend_text.get_value()) @@ -5405,7 +5398,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): self.app.gcode_edited = gc # add the tab if it was closed - self.app.ui.plot_tab_area.addTab(self.app.ui.cncjob_tab, _tr("Code Editor")) + self.app.ui.plot_tab_area.addTab(self.app.ui.cncjob_tab, _("Code Editor")) # delete the absolute and relative position and messages in the infobar self.app.ui.position_label.setText("") @@ -5424,7 +5417,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): self.app.ui.code_editor.append(proc_line) except Exception as e: log.debug('FlatCAMCNNJob.on_modifygcode_button_click() -->%s' % str(e)) - self.app.inform.emit(_tr('[ERROR]FlatCAMCNNJob.on_modifygcode_button_click() -->%s') % str(e)) + self.app.inform.emit(_('[ERROR]FlatCAMCNNJob.on_modifygcode_button_click() -->%s') % str(e)) return self.app.ui.code_editor.moveCursor(QtGui.QTextCursor.Start) @@ -5530,7 +5523,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): try: if self.special_group: - self.app.inform.emit(_tr("[WARNING_NOTCL]This CNCJob object can't be processed because " + self.app.inform.emit(_("[WARNING_NOTCL]This CNCJob object can't be processed because " "it is a %s CNCJob object.") % str(self.special_group)) return 'fail' except AttributeError: @@ -5582,7 +5575,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): # if it did not find 'G20' and it did not find 'G21' then there is an error and return if g_idx == -1: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" )) return @@ -5595,14 +5588,14 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): if 'M6' in g: m6_code = self.parse_custom_toolchange_code(self.ui.toolchange_text.get_value()) if m6_code is None or m6_code == '': - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[ERROR_NOTCL] Cancelled. The Toolchange Custom code is enabled " "but it's empty." )) return 'fail' g = g.replace('M6', m6_code) - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[success] Toolchange G-code was replaced by a custom code." )) @@ -5617,7 +5610,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): f.write(line) except FileNotFoundError: - self.app.inform.emit(_tr( + self.app.inform.emit(_( "[WARNING_NOTCL] No such file or directory" )) return @@ -5637,7 +5630,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): if self.ui.toolchange_cb.get_value(): self.ui.toolchange_cb.set_value(False) self.app.inform.emit( - _tr( + _( "[WARNING_NOTCL] The used postprocessor file has to have in it's name: 'toolchange_custom'" )) except KeyError: @@ -5649,13 +5642,13 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): if self.ui.toolchange_cb.get_value(): self.ui.toolchange_cb.set_value(False) self.app.inform.emit( - _tr( + _( "[WARNING_NOTCL] The used postprocessor file has to have in it's name: " "'toolchange_custom'" )) except KeyError: self.app.inform.emit( - _tr( + _( "[ERROR] There is no postprocessor file." )) diff --git a/FlatCAMTranslation.py b/FlatCAMTranslation.py index 042206fc..fdbf4bc4 100644 --- a/FlatCAMTranslation.py +++ b/FlatCAMTranslation.py @@ -76,7 +76,7 @@ def on_language_apply_click(app, restart=False): restart_program(app=app) -def apply_language(filename, lang=None): +def apply_language(domain, lang=None): lang_code = '' if lang is None: @@ -97,7 +97,7 @@ def apply_language(filename, lang=None): return "no language" else: try: - current_lang = gettext.translation(str(filename), localedir=languages_dir(), languages=[lang_code]) + current_lang = gettext.translation(str(domain), localedir=languages_dir(), languages=[lang_code]) current_lang.install() except Exception as e: log.debug("FlatCAMTranslation.apply_language() --> %s" % str(e)) diff --git a/ObjectCollection.py b/ObjectCollection.py index 090e6c11..cba8b3d0 100644 --- a/ObjectCollection.py +++ b/ObjectCollection.py @@ -19,13 +19,6 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ObjectCollection') -def _tr(text): - try: - return _(text) - except: - return text - - class KeySensitiveListView(QtWidgets.QTreeView): """ QtGui.QListView extended to emit a signal on key press. @@ -76,7 +69,7 @@ class KeySensitiveListView(QtWidgets.QTreeView): # file drop from outside application if drop_indicator == QtWidgets.QAbstractItemView.OnItem: if self.filename == "": - self.app.inform.emit(_tr("Open cancelled.")) + self.app.inform.emit(_("Open cancelled.")) else: if self.filename.lower().rpartition('.')[-1] in self.app.grb_list: self.app.worker_task.emit({'fcn': self.app.open_gerber, @@ -398,7 +391,7 @@ class ObjectCollection(QtCore.QAbstractItemModel): "setData() --> Could not remove the old object name from auto-completer model list") obj.build_ui() - self.app.inform.emit(_tr("Object renamed from %s to %s") % (old_name, new_name)) + self.app.inform.emit(_("Object renamed from %s to %s") % (old_name, new_name)) return True @@ -692,16 +685,16 @@ class ObjectCollection(QtCore.QAbstractItemModel): obj = current.indexes()[0].internalPointer().obj if obj.kind == 'gerber': - self.app.inform.emit(_tr('[selected]%s selected') % + self.app.inform.emit(_('[selected]%s selected') % ('green', str(obj.options['name']))) elif obj.kind == 'excellon': - self.app.inform.emit(_tr('[selected]%s selected') % + self.app.inform.emit(_('[selected]%s selected') % ('brown', str(obj.options['name']))) elif obj.kind == 'cncjob': - self.app.inform.emit(_tr('[selected]%s selected') % + self.app.inform.emit(_('[selected]%s selected') % ('blue', str(obj.options['name']))) elif obj.kind == 'geometry': - self.app.inform.emit(_tr('[selected]%s selected') % + self.app.inform.emit(_('[selected]%s selected') % ('red', str(obj.options['name']))) except IndexError: @@ -732,7 +725,7 @@ class ObjectCollection(QtCore.QAbstractItemModel): try: a_idx.build_ui() except Exception as e: - self.app.inform.emit(_tr("[ERROR] Cause of error: %s") % str(e)) + self.app.inform.emit(_("[ERROR] Cause of error: %s") % str(e)) raise def get_list(self): diff --git a/ObjectUI.py b/ObjectUI.py index 5c36ab9b..5f846a29 100644 --- a/ObjectUI.py +++ b/ObjectUI.py @@ -10,20 +10,13 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ObjectUI') -def _tr(text): - try: - return _(text) - except: - return text - - class ObjectUI(QtWidgets.QWidget): """ Base class for the UI of FlatCAM objects. Deriving classes should put UI elements in ObjectUI.custom_box (QtWidgets.QLayout). """ - def __init__(self, icon_file='share/flatcam_icon32.png', title=_tr('FlatCAM Object'), parent=None): + def __init__(self, icon_file='share/flatcam_icon32.png', title=_('FlatCAM Object'), parent=None): QtWidgets.QWidget.__init__(self, parent=parent) layout = QtWidgets.QVBoxLayout() @@ -47,7 +40,7 @@ class ObjectUI(QtWidgets.QWidget): ## App Level label self.level = QtWidgets.QLabel("") self.level.setToolTip( - _tr( + _( "BASIC is suitable for a beginner. Many parameters\n" "are hidden from the user in this mode.\n" "ADVANCED mode will make available all parameters.\n\n" @@ -69,9 +62,9 @@ class ObjectUI(QtWidgets.QWidget): ########################### #### Scale #### - self.scale_label = QtWidgets.QLabel(_tr('Scale:')) + self.scale_label = QtWidgets.QLabel(_('Scale:')) self.scale_label.setToolTip( - _tr("Change the size of the object.") + _("Change the size of the object.") ) layout.addWidget(self.scale_label) @@ -79,9 +72,9 @@ class ObjectUI(QtWidgets.QWidget): layout.addLayout(self.scale_grid) # Factor - faclabel = QtWidgets.QLabel(_tr('Factor:')) + faclabel = QtWidgets.QLabel(_('Factor:')) faclabel.setToolTip( - _tr("Factor by which to multiply\n" + _("Factor by which to multiply\n" "geometric features of this object.") ) self.scale_grid.addWidget(faclabel, 0, 0) @@ -90,26 +83,26 @@ class ObjectUI(QtWidgets.QWidget): self.scale_grid.addWidget(self.scale_entry, 0, 1) # GO Button - self.scale_button = QtWidgets.QPushButton(_tr('Scale')) + self.scale_button = QtWidgets.QPushButton(_('Scale')) self.scale_button.setToolTip( - _tr("Perform scaling operation.") + _("Perform scaling operation.") ) self.scale_button.setFixedWidth(40) self.scale_grid.addWidget(self.scale_button, 0, 2) #### Offset #### - self.offset_label = QtWidgets.QLabel(_tr('Offset:')) + self.offset_label = QtWidgets.QLabel(_('Offset:')) self.offset_label.setToolTip( - _tr("Change the position of this object.") + _("Change the position of this object.") ) layout.addWidget(self.offset_label) self.offset_grid = QtWidgets.QGridLayout() layout.addLayout(self.offset_grid) - self.offset_vectorlabel = QtWidgets.QLabel(_tr('Vector:')) + self.offset_vectorlabel = QtWidgets.QLabel(_('Vector:')) self.offset_vectorlabel.setToolTip( - _tr("Amount by which to move the object\n" + _("Amount by which to move the object\n" "in the x and y axes in (x, y) format.") ) self.offset_grid.addWidget(self.offset_vectorlabel, 0, 0) @@ -117,9 +110,9 @@ class ObjectUI(QtWidgets.QWidget): self.offsetvector_entry.setText("(0.0, 0.0)") self.offset_grid.addWidget(self.offsetvector_entry, 0, 1) - self.offset_button = QtWidgets.QPushButton(_tr('Offset')) + self.offset_button = QtWidgets.QPushButton(_('Offset')) self.offset_button.setToolTip( - _tr("Perform the offset operation.") + _("Perform the offset operation.") ) self.offset_button.setFixedWidth(40) self.offset_grid.addWidget(self.offset_button, 0, 2) @@ -133,38 +126,38 @@ class GerberObjectUI(ObjectUI): """ def __init__(self, parent=None): - ObjectUI.__init__(self, title=_tr('Gerber Object'), parent=parent) + ObjectUI.__init__(self, title=_('Gerber Object'), parent=parent) # Plot options grid0 = QtWidgets.QGridLayout() grid0.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) self.custom_box.addLayout(grid0) - self.plot_options_label = QtWidgets.QLabel(_tr("Plot Options:")) + self.plot_options_label = QtWidgets.QLabel(_("Plot Options:")) self.plot_options_label.setFixedWidth(90) grid0.addWidget(self.plot_options_label, 0, 0) # Solid CB - self.solid_cb = FCCheckBox(label=_tr('Solid ')) + self.solid_cb = FCCheckBox(label=_('Solid ')) self.solid_cb.setToolTip( - _tr("Solid color polygons.") + _("Solid color polygons.") ) self.solid_cb.setFixedWidth(50) grid0.addWidget(self.solid_cb, 0, 1) # Multicolored CB - self.multicolored_cb = FCCheckBox(label=_tr('M-Color ')) + self.multicolored_cb = FCCheckBox(label=_('M-Color ')) self.multicolored_cb.setToolTip( - _tr("Draw polygons in different colors.") + _("Draw polygons in different colors.") ) self.multicolored_cb.setFixedWidth(55) grid0.addWidget(self.multicolored_cb, 0, 2) # Plot CB - self.plot_cb = FCCheckBox(_tr('Plot')) + self.plot_cb = FCCheckBox(_('Plot')) self.plot_cb.setToolTip( - _tr("Plot (show) this object.") + _("Plot (show) this object.") ) self.plot_cb.setFixedWidth(55) grid0.addWidget(self.plot_cb, 0, 3) @@ -172,7 +165,7 @@ class GerberObjectUI(ObjectUI): ## Object name self.name_hlay = QtWidgets.QHBoxLayout() self.custom_box.addLayout(self.name_hlay) - name_label = QtWidgets.QLabel(_tr("Name:")) + name_label = QtWidgets.QLabel(_("Name:")) self.name_entry = FCEntry() self.name_entry.setFocusPolicy(QtCore.Qt.StrongFocus) self.name_hlay.addWidget(name_label) @@ -182,9 +175,9 @@ class GerberObjectUI(ObjectUI): self.custom_box.addLayout(hlay_plot) #### Gerber Apertures #### - self.apertures_table_label = QtWidgets.QLabel(_tr('Apertures:')) + self.apertures_table_label = QtWidgets.QLabel(_('Apertures:')) self.apertures_table_label.setToolTip( - _tr("Apertures Table for the Gerber Object.") + _("Apertures Table for the Gerber Object.") ) self.apertures_table_label.setFixedWidth(90) @@ -193,7 +186,7 @@ class GerberObjectUI(ObjectUI): # Aperture Table Visibility CB self.aperture_table_visibility_cb = FCCheckBox() self.aperture_table_visibility_cb.setToolTip( - _tr("Toggle the display of the Gerber Apertures Table.\n" + _("Toggle the display of the Gerber Apertures Table.\n" "When unchecked, it will delete all mark shapes\n" "that are drawn on canvas.") @@ -204,9 +197,9 @@ class GerberObjectUI(ObjectUI): hlay_plot.addStretch() # Aperture Mark all CB - self.mark_all_cb = FCCheckBox(_tr('Mark All')) + self.mark_all_cb = FCCheckBox(_('Mark All')) self.mark_all_cb.setToolTip( - _tr("When checked it will display all the apertures.\n" + _("When checked it will display all the apertures.\n" "When unchecked, it will delete all mark shapes\n" "that are drawn on canvas.") @@ -218,23 +211,23 @@ class GerberObjectUI(ObjectUI): self.custom_box.addWidget(self.apertures_table) self.apertures_table.setColumnCount(6) - self.apertures_table.setHorizontalHeaderLabels(['#', _tr('Code'), _tr('Type'), _tr('Size'), _tr('Dim'), 'M']) + self.apertures_table.setHorizontalHeaderLabels(['#', _('Code'), _('Type'), _('Size'), _('Dim'), 'M']) self.apertures_table.setSortingEnabled(False) self.apertures_table.horizontalHeaderItem(0).setToolTip( - _tr("Index")) + _("Index")) self.apertures_table.horizontalHeaderItem(1).setToolTip( - _tr("Aperture Code")) + _("Aperture Code")) self.apertures_table.horizontalHeaderItem(2).setToolTip( - _tr("Type of aperture: circular, rectangle, macros etc")) + _("Type of aperture: circular, rectangle, macros etc")) self.apertures_table.horizontalHeaderItem(4).setToolTip( - _tr("Aperture Size:")) + _("Aperture Size:")) self.apertures_table.horizontalHeaderItem(4).setToolTip( - _tr("Aperture Dimensions:\n" + _("Aperture Dimensions:\n" " - (width, height) for R, O type.\n" " - (dia, nVertices) for P type")) self.apertures_table.horizontalHeaderItem(5).setToolTip( - _tr("Mark the aperture instances on canvas.")) + _("Mark the aperture instances on canvas.")) # self.apertures_table.setColumnHidden(5, True) #### Aperture Scale #### @@ -242,9 +235,9 @@ class GerberObjectUI(ObjectUI): self.custom_box.addLayout(self.transform_aperture_grid) # Scale Aperture Factor - self.scale_aperture_label = QtWidgets.QLabel(_tr('Scale Factor:')) + self.scale_aperture_label = QtWidgets.QLabel(_('Scale Factor:')) self.scale_aperture_label.setToolTip( - _tr("Change the size of the selected apertures.\n" + _("Change the size of the selected apertures.\n" "Factor by which to multiply\n" "geometric features of this object.") ) @@ -255,17 +248,17 @@ class GerberObjectUI(ObjectUI): self.transform_aperture_grid.addWidget(self.scale_aperture_entry, 0, 1) # Scale Button - self.scale_aperture_button = QtWidgets.QPushButton(_tr('Scale')) + self.scale_aperture_button = QtWidgets.QPushButton(_('Scale')) self.scale_aperture_button.setToolTip( - _tr("Perform scaling operation on the selected apertures.") + _("Perform scaling operation on the selected apertures.") ) self.scale_aperture_button.setFixedWidth(50) self.transform_aperture_grid.addWidget(self.scale_aperture_button, 0, 2) # Buffer Aperture Factor - self.buffer_aperture_label = QtWidgets.QLabel(_tr('Buffer Factor:')) + self.buffer_aperture_label = QtWidgets.QLabel(_('Buffer Factor:')) self.buffer_aperture_label.setToolTip( - _tr("Change the size of the selected apertures.\n" + _("Change the size of the selected apertures.\n" "Factor by which to expand/shrink\n" "geometric features of this object.") ) @@ -276,9 +269,9 @@ class GerberObjectUI(ObjectUI): self.transform_aperture_grid.addWidget(self.buffer_aperture_entry, 1, 1) # Buffer Button - self.buffer_aperture_button = QtWidgets.QPushButton(_tr('Buffer')) + self.buffer_aperture_button = QtWidgets.QPushButton(_('Buffer')) self.buffer_aperture_button.setToolTip( - _tr("Perform buffer operation on the selected apertures.") + _("Perform buffer operation on the selected apertures.") ) self.buffer_aperture_button.setFixedWidth(50) self.transform_aperture_grid.addWidget(self.buffer_aperture_button, 1, 2) @@ -286,17 +279,17 @@ class GerberObjectUI(ObjectUI): new_hlay = QtWidgets.QHBoxLayout() self.custom_box.addLayout(new_hlay) - self.new_grb_label = QtWidgets.QLabel(_tr("Generate new Gerber Object:")) + self.new_grb_label = QtWidgets.QLabel(_("Generate new Gerber Object:")) self.new_grb_label.setToolTip( - _tr("Will generate a new Gerber object from the changed apertures.") + _("Will generate a new Gerber object from the changed apertures.") ) new_hlay.addWidget(self.new_grb_label) new_hlay.addStretch() - self.new_grb_button = FCButton(_tr('Go')) + self.new_grb_button = FCButton(_('Go')) self.new_grb_button.setToolTip( - _tr("Will generate a new Gerber object from the changed apertures.\n" + _("Will generate a new Gerber object from the changed apertures.\n" "This new object can then be isolated etc.")) self.new_grb_button.setFixedWidth(50) new_hlay.addWidget(self.new_grb_button) @@ -312,18 +305,18 @@ class GerberObjectUI(ObjectUI): self.buffer_aperture_button.setVisible(False) # Isolation Routing - self.isolation_routing_label = QtWidgets.QLabel(_tr("Isolation Routing:")) + self.isolation_routing_label = QtWidgets.QLabel(_("Isolation Routing:")) self.isolation_routing_label.setToolTip( - _tr("Create a Geometry object with\n" + _("Create a Geometry object with\n" "toolpaths to cut outside polygons.") ) self.custom_box.addWidget(self.isolation_routing_label) grid1 = QtWidgets.QGridLayout() self.custom_box.addLayout(grid1) - tdlabel = QtWidgets.QLabel(_tr('Tool dia:')) + tdlabel = QtWidgets.QLabel(_('Tool dia:')) tdlabel.setToolTip( - _tr("Diameter of the cutting tool.\n" + _("Diameter of the cutting tool.\n" "If you want to have an isolation path\n" "inside the actual shape of the Gerber\n" "feature, use a negative value for\n" @@ -334,9 +327,9 @@ class GerberObjectUI(ObjectUI): self.iso_tool_dia_entry = LengthEntry() grid1.addWidget(self.iso_tool_dia_entry, 0, 1) - passlabel = QtWidgets.QLabel(_tr('Passes:')) + passlabel = QtWidgets.QLabel(_('Passes:')) passlabel.setToolTip( - _tr("Width of the isolation gap in\n" + _("Width of the isolation gap in\n" "number (integer) of tool widths.") ) passlabel.setFixedWidth(90) @@ -344,9 +337,9 @@ class GerberObjectUI(ObjectUI): self.iso_width_entry = IntEntry() grid1.addWidget(self.iso_width_entry, 1, 1) - overlabel = QtWidgets.QLabel(_tr('Pass overlap:')) + overlabel = QtWidgets.QLabel(_('Pass overlap:')) overlabel.setToolTip( - _tr("How much (fraction) of the tool width to overlap each tool pass.\n" + _("How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" "A value here of 0.25 means an overlap of 25% from the tool diameter found above.") ) @@ -356,37 +349,37 @@ class GerberObjectUI(ObjectUI): grid1.addWidget(self.iso_overlap_entry, 2, 1) # Milling Type Radio Button - self.milling_type_label = QtWidgets.QLabel(_tr('Milling Type:')) + self.milling_type_label = QtWidgets.QLabel(_('Milling Type:')) self.milling_type_label.setToolTip( - _tr("Milling type:\n" + _("Milling type:\n" "- climb / best for precision milling and to reduce tool usage\n" "- conventional / useful when there is no backlash compensation") ) grid1.addWidget(self.milling_type_label, 3, 0) - self.milling_type_radio = RadioSet([{'label': _tr('Climb'), 'value': 'cl'}, - {'label': _tr('Conv.'), 'value': 'cv'}]) + self.milling_type_radio = RadioSet([{'label': _('Climb'), 'value': 'cl'}, + {'label': _('Conv.'), 'value': 'cv'}]) grid1.addWidget(self.milling_type_radio, 3, 1) # combine all passes CB - self.combine_passes_cb = FCCheckBox(label=_tr('Combine')) + self.combine_passes_cb = FCCheckBox(label=_('Combine')) self.combine_passes_cb.setToolTip( - _tr("Combine all passes into one object") + _("Combine all passes into one object") ) grid1.addWidget(self.combine_passes_cb, 4, 0) # generate follow - self.follow_cb = FCCheckBox(label=_tr('"Follow"')) + self.follow_cb = FCCheckBox(label=_('"Follow"')) self.follow_cb.setToolTip( - _tr( "Generate a 'Follow' geometry.\n" + _( "Generate a 'Follow' geometry.\n" "This means that it will cut through\n" "the middle of the trace.") ) grid1.addWidget(self.follow_cb, 4, 1) - self.gen_iso_label = QtWidgets.QLabel(_tr("Generate Isolation Geometry:")) + self.gen_iso_label = QtWidgets.QLabel(_("Generate Isolation Geometry:")) self.gen_iso_label.setToolTip( - _tr("Create a Geometry object with toolpaths to cut \n" + _("Create a Geometry object with toolpaths to cut \n" "isolation outside, inside or on both sides of the\n" "object. For a Gerber object outside means outside\n" "of the Gerber feature and inside means inside of\n" @@ -405,9 +398,9 @@ class GerberObjectUI(ObjectUI): self.padding_area_label.setFixedWidth(90) hlay_1.addWidget(self.padding_area_label) - self.generate_iso_button = QtWidgets.QPushButton(_tr('FULL Geo')) + self.generate_iso_button = QtWidgets.QPushButton(_('FULL Geo')) self.generate_iso_button.setToolTip( - _tr("Create the Geometry Object\n" + _("Create the Geometry Object\n" "for isolation routing. It contains both\n" "the interiors and exteriors geometry.") ) @@ -416,18 +409,18 @@ class GerberObjectUI(ObjectUI): # hlay_1.addStretch() - self.generate_ext_iso_button = QtWidgets.QPushButton(_tr('Ext Geo')) + self.generate_ext_iso_button = QtWidgets.QPushButton(_('Ext Geo')) self.generate_ext_iso_button.setToolTip( - _tr("Create the Geometry Object\n" + _("Create the Geometry Object\n" "for isolation routing containing\n" "only the exteriors geometry.") ) # self.generate_ext_iso_button.setFixedWidth(100) hlay_1.addWidget(self.generate_ext_iso_button) - self.generate_int_iso_button = QtWidgets.QPushButton(_tr('Int Geo')) + self.generate_int_iso_button = QtWidgets.QPushButton(_('Int Geo')) self.generate_int_iso_button.setToolTip( - _tr("Create the Geometry Object\n" + _("Create the Geometry Object\n" "for isolation routing containing\n" "only the interiors geometry.") ) @@ -445,41 +438,41 @@ class GerberObjectUI(ObjectUI): self.custom_box.addLayout(grid2) ## Clear non-copper regions - self.clearcopper_label = QtWidgets.QLabel(_tr("Clear N-copper:")) + self.clearcopper_label = QtWidgets.QLabel(_("Clear N-copper:")) self.clearcopper_label.setToolTip( - _tr("Create a Geometry object with\n" + _("Create a Geometry object with\n" "toolpaths to cut all non-copper regions.") ) self.clearcopper_label.setFixedWidth(90) grid2.addWidget(self.clearcopper_label, 0, 0) - self.generate_ncc_button = QtWidgets.QPushButton(_tr('NCC Tool')) + self.generate_ncc_button = QtWidgets.QPushButton(_('NCC Tool')) self.generate_ncc_button.setToolTip( - _tr("Create the Geometry Object\n" + _("Create the Geometry Object\n" "for non-copper routing.") ) grid2.addWidget(self.generate_ncc_button, 0, 1) ## Board cutout - self.board_cutout_label = QtWidgets.QLabel(_tr("Board cutout:")) + self.board_cutout_label = QtWidgets.QLabel(_("Board cutout:")) self.board_cutout_label.setToolTip( - _tr("Create toolpaths to cut around\n" + _("Create toolpaths to cut around\n" "the PCB and separate it from\n" "the original board.") ) grid2.addWidget(self.board_cutout_label, 1, 0) - self.generate_cutout_button = QtWidgets.QPushButton(_tr('Cutout Tool')) + self.generate_cutout_button = QtWidgets.QPushButton(_('Cutout Tool')) self.generate_cutout_button.setToolTip( - _tr("Generate the geometry for\n" + _("Generate the geometry for\n" "the board cutout.") ) grid2.addWidget(self.generate_cutout_button, 1, 1) ## Non-copper regions - self.noncopper_label = QtWidgets.QLabel(_tr("Non-copper regions:")) + self.noncopper_label = QtWidgets.QLabel(_("Non-copper regions:")) self.noncopper_label.setToolTip( - _tr("Create polygons covering the\n" + _("Create polygons covering the\n" "areas without copper on the PCB.\n" "Equivalent to the inverse of this\n" "object. Can be used to remove all\n" @@ -491,9 +484,9 @@ class GerberObjectUI(ObjectUI): self.custom_box.addLayout(grid4) # Margin - bmlabel = QtWidgets.QLabel(_tr('Boundary Margin:')) + bmlabel = QtWidgets.QLabel(_('Boundary Margin:')) bmlabel.setToolTip( - _tr("Specify the edge of the PCB\n" + _("Specify the edge of the PCB\n" "by drawing a box around all\n" "objects with this minimum\n" "distance.") @@ -504,20 +497,20 @@ class GerberObjectUI(ObjectUI): grid4.addWidget(self.noncopper_margin_entry, 0, 1) # Rounded corners - self.noncopper_rounded_cb = FCCheckBox(label=_tr("Rounded Geo")) + self.noncopper_rounded_cb = FCCheckBox(label=_("Rounded Geo")) self.noncopper_rounded_cb.setToolTip( - _tr("Resulting geometry will have rounded corners.") + _("Resulting geometry will have rounded corners.") ) self.noncopper_rounded_cb.setFixedWidth(90) grid4.addWidget(self.noncopper_rounded_cb, 1, 0) - self.generate_noncopper_button = QtWidgets.QPushButton(_tr('Generate Geo')) + self.generate_noncopper_button = QtWidgets.QPushButton(_('Generate Geo')) grid4.addWidget(self.generate_noncopper_button, 1, 1) ## Bounding box - self.boundingbox_label = QtWidgets.QLabel(_tr('Bounding Box:')) + self.boundingbox_label = QtWidgets.QLabel(_('Bounding Box:')) self.boundingbox_label.setToolTip( - _tr("Create a geometry surrounding the Gerber object.\n" + _("Create a geometry surrounding the Gerber object.\n" "Square shape.") ) self.custom_box.addWidget(self.boundingbox_label) @@ -525,9 +518,9 @@ class GerberObjectUI(ObjectUI): grid5 = QtWidgets.QGridLayout() self.custom_box.addLayout(grid5) - bbmargin = QtWidgets.QLabel(_tr('Boundary Margin:')) + bbmargin = QtWidgets.QLabel(_('Boundary Margin:')) bbmargin.setToolTip( - _tr("Distance of the edges of the box\n" + _("Distance of the edges of the box\n" "to the nearest polygon.") ) bbmargin.setFixedWidth(90) @@ -535,9 +528,9 @@ class GerberObjectUI(ObjectUI): self.bbmargin_entry = LengthEntry() grid5.addWidget(self.bbmargin_entry, 0, 1) - self.bbrounded_cb = FCCheckBox(label=_tr("Rounded Geo")) + self.bbrounded_cb = FCCheckBox(label=_("Rounded Geo")) self.bbrounded_cb.setToolTip( - _tr("If the bounding box is \n" + _("If the bounding box is \n" "to have rounded corners\n" "their radius is equal to\n" "the margin.") @@ -545,9 +538,9 @@ class GerberObjectUI(ObjectUI): self.bbrounded_cb.setFixedWidth(90) grid5.addWidget(self.bbrounded_cb, 1, 0) - self.generate_bb_button = QtWidgets.QPushButton(_tr('Generate Geo')) + self.generate_bb_button = QtWidgets.QPushButton(_('Generate Geo')) self.generate_bb_button.setToolTip( - _tr("Generate the Geometry object.") + _("Generate the Geometry object.") ) grid5.addWidget(self.generate_bb_button, 1, 1) @@ -558,7 +551,7 @@ class ExcellonObjectUI(ObjectUI): """ def __init__(self, parent=None): - ObjectUI.__init__(self, title=_tr('Excellon Object'), + ObjectUI.__init__(self, title=_('Excellon Object'), icon_file='share/drill32.png', parent=parent) @@ -566,10 +559,10 @@ class ExcellonObjectUI(ObjectUI): hlay_plot = QtWidgets.QHBoxLayout() self.custom_box.addLayout(hlay_plot) - self.plot_options_label = QtWidgets.QLabel(_tr("Plot Options:")) - self.solid_cb = FCCheckBox(label=_tr('Solid')) + self.plot_options_label = QtWidgets.QLabel(_("Plot Options:")) + self.solid_cb = FCCheckBox(label=_('Solid')) self.solid_cb.setToolTip( - _tr("Solid circles.") + _("Solid circles.") ) hlay_plot.addWidget(self.plot_options_label) hlay_plot.addStretch() @@ -578,7 +571,7 @@ class ExcellonObjectUI(ObjectUI): ## Object name self.name_hlay = QtWidgets.QHBoxLayout() self.custom_box.addLayout(self.name_hlay) - name_label = QtWidgets.QLabel(_tr("Name:")) + name_label = QtWidgets.QLabel(_("Name:")) self.name_entry = FCEntry() self.name_entry.setFocusPolicy(QtCore.Qt.StrongFocus) self.name_hlay.addWidget(name_label) @@ -597,17 +590,17 @@ class ExcellonObjectUI(ObjectUI): self.tools_box.addLayout(hlay_plot) #### Tools Drills #### - self.tools_table_label = QtWidgets.QLabel(_tr('Tools Table')) + self.tools_table_label = QtWidgets.QLabel(_('Tools Table')) self.tools_table_label.setToolTip( - _tr("Tools in this Excellon object\n" + _("Tools in this Excellon object\n" "when are used for drilling.") ) hlay_plot.addWidget(self.tools_table_label) # Plot CB - self.plot_cb = FCCheckBox(_tr('Plot Object')) + self.plot_cb = FCCheckBox(_('Plot Object')) self.plot_cb.setToolTip( - _tr("Plot (show) this object.") + _("Plot (show) this object.") ) self.plot_cb.setLayoutDirection(QtCore.Qt.RightToLeft) hlay_plot.addStretch() @@ -617,37 +610,37 @@ class ExcellonObjectUI(ObjectUI): self.tools_box.addWidget(self.tools_table) self.tools_table.setColumnCount(6) - self.tools_table.setHorizontalHeaderLabels(['#', _tr('Diameter'), _tr('Drills'), _tr('Slots'), - _tr('Offset Z'), 'P']) + self.tools_table.setHorizontalHeaderLabels(['#', _('Diameter'), _('Drills'), _('Slots'), + _('Offset Z'), 'P']) self.tools_table.setSortingEnabled(False) self.tools_table.horizontalHeaderItem(0).setToolTip( - _tr("This is the Tool Number.\n" + _("This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" "will be showed as a T1, T2 ... Tn in the Machine Code.")) self.tools_table.horizontalHeaderItem(1).setToolTip( - _tr("Tool Diameter. It's value (in current FlatCAM units) \n" + _("Tool Diameter. It's value (in current FlatCAM units) \n" "is the cut width into the material.")) self.tools_table.horizontalHeaderItem(2).setToolTip( - _tr("The number of Drill holes. Holes that are drilled with\n" + _("The number of Drill holes. Holes that are drilled with\n" "a drill bit.")) self.tools_table.horizontalHeaderItem(3).setToolTip( - _tr("The number of Slot holes. Holes that are created by\n" + _("The number of Slot holes. Holes that are created by\n" "milling them with an endmill bit.")) self.tools_table.horizontalHeaderItem(4).setToolTip( - _tr("Some drill bits (the larger ones) need to drill deeper\n" + _("Some drill bits (the larger ones) need to drill deeper\n" "to create the desired exit hole diameter due of the tip shape.\n" "The value here can compensate the Cut Z parameter.")) self.tools_table.horizontalHeaderItem(5).setToolTip( - _tr("Toggle display of the drills for the current tool.")) + _("Toggle display of the drills for the current tool.")) self.empty_label = QtWidgets.QLabel('') self.tools_box.addWidget(self.empty_label) #### Create CNC Job #### - self.cncjob_label = QtWidgets.QLabel(_tr('Create CNC Job')) + self.cncjob_label = QtWidgets.QLabel(_('Create CNC Job')) self.cncjob_label.setToolTip( - _tr("Create a CNC Job object\n" + _("Create a CNC Job object\n" "for this drill object.") ) self.tools_box.addWidget(self.cncjob_label) @@ -656,9 +649,9 @@ class ExcellonObjectUI(ObjectUI): self.tools_box.addLayout(grid1) # Cut Z - cutzlabel = QtWidgets.QLabel(_tr('Cut Z:')) + cutzlabel = QtWidgets.QLabel(_('Cut Z:')) cutzlabel.setToolTip( - _tr("Drill depth (negative)\n" + _("Drill depth (negative)\n" "below the copper surface.") ) grid1.addWidget(cutzlabel, 0, 0) @@ -666,9 +659,9 @@ class ExcellonObjectUI(ObjectUI): grid1.addWidget(self.cutz_entry, 0, 1) # Travel Z (z_move) - travelzlabel = QtWidgets.QLabel(_tr('Travel Z:')) + travelzlabel = QtWidgets.QLabel(_('Travel Z:')) travelzlabel.setToolTip( - _tr("Tool height when travelling\n" + _("Tool height when travelling\n" "across the XY plane.") ) grid1.addWidget(travelzlabel, 1, 0) @@ -676,17 +669,17 @@ class ExcellonObjectUI(ObjectUI): grid1.addWidget(self.travelz_entry, 1, 1) # Tool change: - self.toolchange_cb = FCCheckBox(_tr("Tool change")) + self.toolchange_cb = FCCheckBox(_("Tool change")) self.toolchange_cb.setToolTip( - _tr("Include tool-change sequence\n" + _("Include tool-change sequence\n" "in G-Code (Pause for tool change).") ) grid1.addWidget(self.toolchange_cb, 2, 0) # Tool change Z: - toolchzlabel = QtWidgets.QLabel(_tr("Tool change Z:")) + toolchzlabel = QtWidgets.QLabel(_("Tool change Z:")) toolchzlabel.setToolTip( - _tr("Z-axis position (height) for\n" + _("Z-axis position (height) for\n" "tool change.") ) grid1.addWidget(toolchzlabel, 3, 0) @@ -695,9 +688,9 @@ class ExcellonObjectUI(ObjectUI): self.ois_tcz_e = OptionalInputSection(self.toolchange_cb, [self.toolchangez_entry]) # Start move Z: - self.estartz_label = QtWidgets.QLabel(_tr("Start move Z:")) + self.estartz_label = QtWidgets.QLabel(_("Start move Z:")) self.estartz_label.setToolTip( - _tr("Tool height just before starting the work.\n" + _("Tool height just before starting the work.\n" "Delete the value if you don't need this feature.") ) grid1.addWidget(self.estartz_label, 4, 0) @@ -705,9 +698,9 @@ class ExcellonObjectUI(ObjectUI): grid1.addWidget(self.estartz_entry, 4, 1) # End move Z: - self.eendz_label = QtWidgets.QLabel(_tr("End move Z:")) + self.eendz_label = QtWidgets.QLabel(_("End move Z:")) self.eendz_label.setToolTip( - _tr("Z-axis position (height) for\n" + _("Z-axis position (height) for\n" "the last move.") ) grid1.addWidget(self.eendz_label, 5, 0) @@ -715,9 +708,9 @@ class ExcellonObjectUI(ObjectUI): grid1.addWidget(self.eendz_entry, 5, 1) # Excellon Feedrate - frlabel = QtWidgets.QLabel(_tr('Feedrate (Plunge):')) + frlabel = QtWidgets.QLabel(_('Feedrate (Plunge):')) frlabel.setToolTip( - _tr("Tool speed while drilling\n" + _("Tool speed while drilling\n" "(in units per minute).\n" "This is for linear move G01.") ) @@ -726,20 +719,23 @@ class ExcellonObjectUI(ObjectUI): grid1.addWidget(self.feedrate_entry, 6, 1) # Excellon Rapid Feedrate - self.feedrate_rapid_label = QtWidgets.QLabel(_tr('Feedrate Rapids:')) + self.feedrate_rapid_label = QtWidgets.QLabel(_('Feedrate Rapids:')) self.feedrate_rapid_label.setToolTip( - _tr("Tool speed while drilling\n" - "(in units per minute).\n" - "This is for the rapid move G00.") + _("Tool speed while drilling\n" + "(in units per minute).\n" + "This is for the rapid move G00.\n" + "It is useful only for Marlin,\n" + "ignore for any other cases." + ) ) grid1.addWidget(self.feedrate_rapid_label, 7, 0) self.feedrate_rapid_entry = LengthEntry() grid1.addWidget(self.feedrate_rapid_entry, 7, 1) # Spindlespeed - spdlabel = QtWidgets.QLabel(_tr('Spindle speed:')) + spdlabel = QtWidgets.QLabel(_('Spindle speed:')) spdlabel.setToolTip( - _tr("Speed of the spindle\n" + _("Speed of the spindle\n" "in RPM (optional)") ) grid1.addWidget(spdlabel, 8, 0) @@ -747,14 +743,14 @@ class ExcellonObjectUI(ObjectUI): grid1.addWidget(self.spindlespeed_entry, 8, 1) # Dwell - self.dwell_cb = FCCheckBox(_tr('Dwell:')) + self.dwell_cb = FCCheckBox(_('Dwell:')) self.dwell_cb.setToolTip( - _tr("Pause to allow the spindle to reach its\n" + _("Pause to allow the spindle to reach its\n" "speed before cutting.") ) self.dwelltime_entry = FCEntry() self.dwelltime_entry.setToolTip( - _tr("Number of milliseconds for spindle to dwell.") + _("Number of milliseconds for spindle to dwell.") ) grid1.addWidget(self.dwell_cb, 9, 0) grid1.addWidget(self.dwelltime_entry, 9, 1) @@ -762,9 +758,9 @@ class ExcellonObjectUI(ObjectUI): self.ois_dwell = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry]) # postprocessor selection - pp_excellon_label = QtWidgets.QLabel(_tr("Postprocessor:")) + pp_excellon_label = QtWidgets.QLabel(_("Postprocessor:")) pp_excellon_label.setToolTip( - _tr("The json file that dictates\n" + _("The json file that dictates\n" "gcode output.") ) self.pp_excellon_name_cb = FCComboBox() @@ -773,9 +769,9 @@ class ExcellonObjectUI(ObjectUI): grid1.addWidget(self.pp_excellon_name_cb, 10, 1) # Probe depth - self.pdepth_label = QtWidgets.QLabel(_tr("Probe Z depth:")) + self.pdepth_label = QtWidgets.QLabel(_("Probe Z depth:")) self.pdepth_label.setToolTip( - _tr("The maximum depth that the probe is allowed\n" + _("The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units.") ) grid1.addWidget(self.pdepth_label, 11, 0) @@ -785,9 +781,9 @@ class ExcellonObjectUI(ObjectUI): self.pdepth_entry.setVisible(False) # Probe feedrate - self.feedrate_probe_label = QtWidgets.QLabel(_tr("Feedrate Probe:")) + self.feedrate_probe_label = QtWidgets.QLabel(_("Feedrate Probe:")) self.feedrate_probe_label.setToolTip( - _tr("The feedrate used while the probe is probing.") + _("The feedrate used while the probe is probing.") ) grid1.addWidget(self.feedrate_probe_label, 12, 0) self.feedrate_probe_entry = FCEntry() @@ -796,23 +792,23 @@ class ExcellonObjectUI(ObjectUI): self.feedrate_probe_entry.setVisible(False) choose_tools_label = QtWidgets.QLabel( - _tr("Select from the Tools Table above\n" + _("Select from the Tools Table above\n" "the tools you want to include.") ) self.tools_box.addWidget(choose_tools_label) #### Choose what to use for Gcode creation: Drills, Slots or Both gcode_box = QtWidgets.QFormLayout() - gcode_type_label = QtWidgets.QLabel(_tr('Type: ')) + gcode_type_label = QtWidgets.QLabel(_('Type: ')) gcode_type_label.setToolTip( - _tr("Choose what to use for GCode generation:\n" + _("Choose what to use for GCode generation:\n" "'Drills', 'Slots' or 'Both'.\n" "When choosing 'Slots' or 'Both', slots will be\n" "converted to a series of drills.") ) - self.excellon_gcode_type_radio = RadioSet([{'label': _tr('Drills'), 'value': 'drills'}, - {'label': _tr('Slots'), 'value': 'slots'}, - {'label': _tr('Both'), 'value': 'both'}]) + self.excellon_gcode_type_radio = RadioSet([{'label': _('Drills'), 'value': 'drills'}, + {'label': _('Slots'), 'value': 'slots'}, + {'label': _('Both'), 'value': 'both'}]) gcode_box.addRow(gcode_type_label, self.excellon_gcode_type_radio) self.tools_box.addLayout(gcode_box) @@ -820,53 +816,53 @@ class ExcellonObjectUI(ObjectUI): self.excellon_gcode_type_radio.setVisible(False) gcode_type_label.hide() - self.generate_cnc_button = QtWidgets.QPushButton(_tr('Create GCode')) + self.generate_cnc_button = QtWidgets.QPushButton(_('Create GCode')) self.generate_cnc_button.setToolTip( - _tr("Generate the CNC Job.") + _("Generate the CNC Job.") ) self.tools_box.addWidget(self.generate_cnc_button) #### Milling Holes Drills#### - self.mill_hole_label = QtWidgets.QLabel(_tr('Mill Holes')) + self.mill_hole_label = QtWidgets.QLabel(_('Mill Holes')) self.mill_hole_label.setToolTip( - _tr("Create Geometry for milling holes.") + _("Create Geometry for milling holes.") ) self.tools_box.addWidget(self.mill_hole_label) self.choose_tools_label2 = QtWidgets.QLabel( - _tr("Select from the Tools Table above\n" + _("Select from the Tools Table above\n" " the hole dias that are to be milled.") ) self.tools_box.addWidget(self.choose_tools_label2) grid2 = QtWidgets.QGridLayout() self.tools_box.addLayout(grid2) - self.tdlabel = QtWidgets.QLabel(_tr('Drills Tool dia:')) + self.tdlabel = QtWidgets.QLabel(_('Drills Tool dia:')) self.tdlabel.setToolTip( - _tr("Diameter of the cutting tool.") + _("Diameter of the cutting tool.") ) grid2.addWidget(self.tdlabel, 0, 0) self.tooldia_entry = LengthEntry() grid2.addWidget(self.tooldia_entry, 0, 1) - self.generate_milling_button = QtWidgets.QPushButton(_tr('Mill Drills Geo')) + self.generate_milling_button = QtWidgets.QPushButton(_('Mill Drills Geo')) self.generate_milling_button.setToolTip( - _tr("Create the Geometry Object\n" + _("Create the Geometry Object\n" "for milling DRILLS toolpaths.") ) grid2.addWidget(self.generate_milling_button, 0, 2) grid3 = QtWidgets.QGridLayout() self.custom_box.addLayout(grid3) - self.stdlabel = QtWidgets.QLabel(_tr('Slots Tool dia:')) + self.stdlabel = QtWidgets.QLabel(_('Slots Tool dia:')) self.stdlabel.setToolTip( - _tr("Diameter of the cutting tool.") + _("Diameter of the cutting tool.") ) grid3.addWidget(self.stdlabel, 0, 0) self.slot_tooldia_entry = LengthEntry() grid3.addWidget(self.slot_tooldia_entry, 0, 1) - self.generate_milling_slots_button = QtWidgets.QPushButton(_tr('Mill Slots Geo')) + self.generate_milling_slots_button = QtWidgets.QPushButton(_('Mill Slots Geo')) self.generate_milling_slots_button.setToolTip( - _tr("Create the Geometry Object\n" + _("Create the Geometry Object\n" "for milling SLOTS toolpaths.") ) grid3.addWidget(self.generate_milling_slots_button, 0, 2) @@ -884,17 +880,17 @@ class GeometryObjectUI(ObjectUI): """ def __init__(self, parent=None): - super(GeometryObjectUI, self).__init__(title=_tr('Geometry Object'), + super(GeometryObjectUI, self).__init__(title=_('Geometry Object'), icon_file='share/geometry32.png', parent=parent) # Plot options - self.plot_options_label = QtWidgets.QLabel(_tr("Plot Options:")) + self.plot_options_label = QtWidgets.QLabel(_("Plot Options:")) self.custom_box.addWidget(self.plot_options_label) ## Object name self.name_hlay = QtWidgets.QHBoxLayout() self.custom_box.addLayout(self.name_hlay) - name_label = QtWidgets.QLabel(_tr("Name:")) + name_label = QtWidgets.QLabel(_("Name:")) self.name_entry = FCEntry() self.name_entry.setFocusPolicy(QtCore.Qt.StrongFocus) self.name_hlay.addWidget(name_label) @@ -913,9 +909,9 @@ class GeometryObjectUI(ObjectUI): self.geo_tools_box.addLayout(hlay_plot) #### Tools #### - self.tools_table_label = QtWidgets.QLabel(_tr('Tools Table')) + self.tools_table_label = QtWidgets.QLabel(_('Tools Table')) self.tools_table_label.setToolTip( - _tr("Tools in this Geometry object used for cutting.\n" + _("Tools in this Geometry object used for cutting.\n" "The 'Offset' entry will set an offset for the cut.\n" "'Offset' can be inside, outside, on path (none) and custom.\n" "'Type' entry is only informative and it allow to know the \n" @@ -932,9 +928,9 @@ class GeometryObjectUI(ObjectUI): # Plot CB # self.plot_cb = QtWidgets.QCheckBox('Plot') - self.plot_cb = FCCheckBox(_tr('Plot Object')) + self.plot_cb = FCCheckBox(_('Plot Object')) self.plot_cb.setToolTip( - _tr("Plot (show) this object.") + _("Plot (show) this object.") ) self.plot_cb.setLayoutDirection(QtCore.Qt.RightToLeft) hlay_plot.addStretch() @@ -946,31 +942,31 @@ class GeometryObjectUI(ObjectUI): self.geo_tools_table.setColumnCount(7) self.geo_tools_table.setColumnWidth(0, 20) - self.geo_tools_table.setHorizontalHeaderLabels(['#', _tr('Dia'), _tr('Offset'), _tr('Type'), _tr('TT'), '', 'P']) + self.geo_tools_table.setHorizontalHeaderLabels(['#', _('Dia'), _('Offset'), _('Type'), _('TT'), '', 'P']) self.geo_tools_table.setColumnHidden(5, True) # stylesheet = "::section{Background-color:rgb(239,239,245)}" # self.geo_tools_table.horizontalHeader().setStyleSheet(stylesheet) self.geo_tools_table.horizontalHeaderItem(0).setToolTip( - _tr( + _( "This is the Tool Number.\n" "When ToolChange is checked, on toolchange event this value\n" "will be showed as a T1, T2 ... Tn") ) self.geo_tools_table.horizontalHeaderItem(1).setToolTip( - _tr( + _( "Tool Diameter. It's value (in current FlatCAM units) \n" "is the cut width into the material." )) self.geo_tools_table.horizontalHeaderItem(2).setToolTip( - _tr( + _( "The value for the Offset can be:\n" "- Path -> There is no offset, the tool cut will be done through the geometry line.\n" "- In(side) -> The tool cut will follow the geometry inside. It will create a 'pocket'.\n" "- Out(side) -> The tool cut will follow the geometry line on the outside." )) self.geo_tools_table.horizontalHeaderItem(3).setToolTip( - _tr( + _( "The (Operation) Type has only informative value. Usually the UI form values \n" "are choosed based on the operation type and this will serve as a reminder.\n" "Can be 'Roughing', 'Finishing' or 'Isolation'.\n" @@ -979,7 +975,7 @@ class GeometryObjectUI(ObjectUI): "For Isolation we need a lower Feedrate as it use a milling bit with a fine tip." )) self.geo_tools_table.horizontalHeaderItem(4).setToolTip( - _tr( + _( "The Tool Type (TT) can be:\n" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular the cut width in material\n" "is exactly the tool diameter.\n" @@ -990,7 +986,7 @@ class GeometryObjectUI(ObjectUI): "Choosing the V-Shape Tool Type automatically will select the Operation Type as Isolation." )) self.geo_tools_table.horizontalHeaderItem(6).setToolTip( - _tr( + _( "Plot column. It is visible only for MultiGeo geometries, meaning geometries that holds the geometry\n" "data into the tools. For those geometries, deleting the tool will delete the geometry data also,\n" "so be WARNED. From the checkboxes on each row it can be enabled/disabled the plot on canvas\n" @@ -1004,9 +1000,9 @@ class GeometryObjectUI(ObjectUI): self.grid1 = QtWidgets.QGridLayout() self.geo_tools_box.addLayout(self.grid1) - self.tool_offset_lbl = QtWidgets.QLabel(_tr('Tool Offset:')) + self.tool_offset_lbl = QtWidgets.QLabel(_('Tool Offset:')) self.tool_offset_lbl.setToolTip( - _tr( + _( "The value to offset the cut when \n" "the Offset type selected is 'Offset'.\n" "The value can be positive for 'outside'\n" @@ -1030,9 +1026,9 @@ class GeometryObjectUI(ObjectUI): # self.addtool_label.setToolTip( # "Add/Copy/Delete a tool to the tool list." # ) - self.addtool_entry_lbl = QtWidgets.QLabel(_tr('Tool Dia:')) + self.addtool_entry_lbl = QtWidgets.QLabel(_('Tool Dia:')) self.addtool_entry_lbl.setToolTip( - _tr( + _( "Diameter for the new tool" ) ) @@ -1046,25 +1042,25 @@ class GeometryObjectUI(ObjectUI): grid2 = QtWidgets.QGridLayout() self.geo_tools_box.addLayout(grid2) - self.addtool_btn = QtWidgets.QPushButton(_tr('Add')) + self.addtool_btn = QtWidgets.QPushButton(_('Add')) self.addtool_btn.setToolTip( - _tr( + _( "Add a new tool to the Tool Table\n" "with the diameter specified above." ) ) - self.copytool_btn = QtWidgets.QPushButton(_tr('Copy')) + self.copytool_btn = QtWidgets.QPushButton(_('Copy')) self.copytool_btn.setToolTip( - _tr( + _( "Copy a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." ) ) - self.deltool_btn = QtWidgets.QPushButton(_tr('Delete')) + self.deltool_btn = QtWidgets.QPushButton(_('Delete')) self.deltool_btn.setToolTip( - _tr( + _( "Delete a selection of tools in the Tool Table\n" "by first selecting a row in the Tool Table." ) @@ -1081,9 +1077,9 @@ class GeometryObjectUI(ObjectUI): # Create CNC Job #----------------------------------- #### Tools Data #### - self.tool_data_label = QtWidgets.QLabel(_tr('Tool Data')) + self.tool_data_label = QtWidgets.QLabel(_('Tool Data')) self.tool_data_label.setToolTip( - _tr( + _( "The data used for creating GCode.\n" "Each tool store it's own set of such data." ) @@ -1094,9 +1090,9 @@ class GeometryObjectUI(ObjectUI): self.geo_tools_box.addLayout(self.grid3) # Tip Dia - self.tipdialabel = QtWidgets.QLabel(_tr('V-Tip Dia:')) + self.tipdialabel = QtWidgets.QLabel(_('V-Tip Dia:')) self.tipdialabel.setToolTip( - _tr( + _( "The tip diameter for V-Shape Tool" ) ) @@ -1105,9 +1101,9 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(self.tipdia_entry, 1, 1) # Tip Angle - self.tipanglelabel = QtWidgets.QLabel(_tr('V-Tip Angle:')) + self.tipanglelabel = QtWidgets.QLabel(_('V-Tip Angle:')) self.tipanglelabel.setToolTip( - _tr( + _( "The tip angle for V-Shape Tool.\n" "In degree." ) @@ -1117,9 +1113,9 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(self.tipangle_entry, 2, 1) # Cut Z - cutzlabel = QtWidgets.QLabel(_tr('Cut Z:')) + cutzlabel = QtWidgets.QLabel(_('Cut Z:')) cutzlabel.setToolTip( - _tr( + _( "Cutting depth (negative)\n" "below the copper surface." ) @@ -1129,9 +1125,9 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(self.cutz_entry, 3, 1) # Multi-pass - self.mpass_cb = FCCheckBox(_tr("Multi-Depth:")) + self.mpass_cb = FCCheckBox(_("Multi-Depth:")) self.mpass_cb.setToolTip( - _tr( + _( "Use multiple passes to limit\n" "the cut depth in each pass. Will\n" "cut multiple times until Cut Z is\n" @@ -1144,7 +1140,7 @@ class GeometryObjectUI(ObjectUI): self.maxdepth_entry = LengthEntry() self.maxdepth_entry.setToolTip( - _tr( + _( "Depth of each pass (positive)." ) ) @@ -1153,9 +1149,9 @@ class GeometryObjectUI(ObjectUI): self.ois_mpass_geo = OptionalInputSection(self.mpass_cb, [self.maxdepth_entry]) # Travel Z - travelzlabel = QtWidgets.QLabel(_tr('Travel Z:')) + travelzlabel = QtWidgets.QLabel(_('Travel Z:')) travelzlabel.setToolTip( - _tr( + _( "Height of the tool when\n" "moving without cutting." ) @@ -1166,16 +1162,16 @@ class GeometryObjectUI(ObjectUI): # Tool change: - self.toolchzlabel = QtWidgets.QLabel(_tr("Tool change Z:")) + self.toolchzlabel = QtWidgets.QLabel(_("Tool change Z:")) self.toolchzlabel.setToolTip( - _tr( + _( "Z-axis position (height) for\n" "tool change." ) ) - self.toolchangeg_cb = FCCheckBox(_tr("Tool change")) + self.toolchangeg_cb = FCCheckBox(_("Tool change")) self.toolchangeg_cb.setToolTip( - _tr( + _( "Include tool-change sequence\n" "in the Machine Code (Pause for tool change)." ) @@ -1199,9 +1195,9 @@ class GeometryObjectUI(ObjectUI): # self.grid3.addWidget(self.gstartz_entry, 8, 1) # The Z value for the end move - self.endzlabel = QtWidgets.QLabel(_tr('End move Z:')) + self.endzlabel = QtWidgets.QLabel(_('End move Z:')) self.endzlabel.setToolTip( - _tr( + _( "This is the height (Z) at which the CNC\n" "will go as the last move." ) @@ -1211,9 +1207,9 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(self.gendz_entry, 9, 1) # Feedrate X-Y - frlabel = QtWidgets.QLabel(_tr('Feed Rate X-Y:')) + frlabel = QtWidgets.QLabel(_('Feed Rate X-Y:')) frlabel.setToolTip( - _tr( + _( "Cutting speed in the XY\n" "plane in units per minute" ) @@ -1223,9 +1219,9 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(self.cncfeedrate_entry, 10, 1) # Feedrate Z (Plunge) - frzlabel = QtWidgets.QLabel(_tr('Feed Rate Z (Plunge):')) + frzlabel = QtWidgets.QLabel(_('Feed Rate Z (Plunge):')) frzlabel.setToolTip( - _tr( + _( "Cutting speed in the Z\n" "plane in units per minute" ) @@ -1235,12 +1231,15 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(self.cncplunge_entry, 11, 1) # Feedrate rapids - self.fr_rapidlabel = QtWidgets.QLabel(_tr('Feed Rate Rapids:')) + self.fr_rapidlabel = QtWidgets.QLabel(_('Feed Rate Rapids:')) self.fr_rapidlabel.setToolTip( - _tr( - "Cutting speed in the XY\n" - "plane in units per minute\n" - "for the rapid movements" + _( + "Cutting speed in the XY\n" + "plane in units per minute\n" + "(in units per minute).\n" + "This is for the rapid move G00.\n" + "It is useful only for Marlin,\n" + "ignore for any other cases." ) ) self.grid3.addWidget(self.fr_rapidlabel, 12, 0) @@ -1248,9 +1247,9 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(self.cncfeedrate_rapid_entry, 12, 1) # Cut over 1st point in path - self.extracut_cb = FCCheckBox(_tr('Cut over 1st pt')) + self.extracut_cb = FCCheckBox(_('Cut over 1st pt')) self.extracut_cb.setToolTip( - _tr( + _( "In order to remove possible\n" "copper leftovers where first cut\n" "meet with last cut, we generate an\n" @@ -1260,9 +1259,9 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(self.extracut_cb, 13, 0) # Spindlespeed - spdlabel = QtWidgets.QLabel(_tr('Spindle speed:')) + spdlabel = QtWidgets.QLabel(_('Spindle speed:')) spdlabel.setToolTip( - _tr( + _( "Speed of the spindle in RPM (optional).\n" "If LASER postprocessor is used,\n" "this value is the power of laser." @@ -1273,16 +1272,16 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(self.cncspindlespeed_entry, 14, 1) # Dwell - self.dwell_cb = FCCheckBox(_tr('Dwell:')) + self.dwell_cb = FCCheckBox(_('Dwell:')) self.dwell_cb.setToolTip( - _tr( + _( "Pause to allow the spindle to reach its\n" "speed before cutting." ) ) self.dwelltime_entry = FCEntry() self.dwelltime_entry.setToolTip( - _tr( + _( "Number of milliseconds for spindle to dwell." ) ) @@ -1292,9 +1291,9 @@ class GeometryObjectUI(ObjectUI): self.ois_dwell_geo = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry]) # postprocessor selection - pp_label = QtWidgets.QLabel(_tr("PostProcessor:")) + pp_label = QtWidgets.QLabel(_("PostProcessor:")) pp_label.setToolTip( - _tr( + _( "The Postprocessor file that dictates\n" "the Machine Code (like GCode, RML, HPGL) output." ) @@ -1305,9 +1304,9 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(self.pp_geometry_name_cb, 16, 1) # Probe depth - self.pdepth_label = QtWidgets.QLabel(_tr("Probe Z depth:")) + self.pdepth_label = QtWidgets.QLabel(_("Probe Z depth:")) self.pdepth_label.setToolTip( - _tr( + _( "The maximum depth that the probe is allowed\n" "to probe. Negative value, in current units." ) @@ -1319,9 +1318,9 @@ class GeometryObjectUI(ObjectUI): self.pdepth_entry.setVisible(False) # Probe feedrate - self.feedrate_probe_label = QtWidgets.QLabel(_tr("Feedrate Probe:")) + self.feedrate_probe_label = QtWidgets.QLabel(_("Feedrate Probe:")) self.feedrate_probe_label.setToolTip( - _tr( + _( "The feedrate used while the probe is probing." ) ) @@ -1332,7 +1331,7 @@ class GeometryObjectUI(ObjectUI): self.feedrate_probe_entry.setVisible(False) warning_lbl = QtWidgets.QLabel( - _tr( + _( "Add at least one tool in the tool-table.\n" "Click the header to select all, or Ctrl + LMB\n" "for custom selection of tools." @@ -1340,9 +1339,9 @@ class GeometryObjectUI(ObjectUI): self.grid3.addWidget(warning_lbl, 19, 0, 1, 2) # Button - self.generate_cnc_button = QtWidgets.QPushButton(_tr('Generate')) + self.generate_cnc_button = QtWidgets.QPushButton(_('Generate')) self.generate_cnc_button.setToolTip( - _tr( + _( "Generate the CNC Job object." ) ) @@ -1351,9 +1350,9 @@ class GeometryObjectUI(ObjectUI): #------------------------------ # Paint area #------------------------------ - self.paint_label = QtWidgets.QLabel(_tr('Paint Area:')) + self.paint_label = QtWidgets.QLabel(_('Paint Area:')) self.paint_label.setToolTip( - _tr( + _( "Creates tool paths to cover the\n" "whole area of a polygon (remove\n" "all copper). You will be asked\n" @@ -1363,9 +1362,9 @@ class GeometryObjectUI(ObjectUI): self.geo_tools_box.addWidget(self.paint_label) # GO Button - self.paint_tool_button = QtWidgets.QPushButton(_tr('Paint Tool')) + self.paint_tool_button = QtWidgets.QPushButton(_('Paint Tool')) self.paint_tool_button.setToolTip( - _tr( + _( "Launch Paint Tool in Tools Tab." ) ) @@ -1383,7 +1382,7 @@ class CNCObjectUI(ObjectUI): be placed in ``self.custom_box`` to preserve the layout. """ - ObjectUI.__init__(self, title=_tr('CNC Job Object'), icon_file='share/cnc32.png', parent=parent) + ObjectUI.__init__(self, title=_('CNC Job Object'), icon_file='share/cnc32.png', parent=parent) # Scale and offset ans skew are not available for CNCJob objects. # Hiding from the GUI. @@ -1399,12 +1398,12 @@ class CNCObjectUI(ObjectUI): self.offset_button.hide() ## Plot options - self.plot_options_label = QtWidgets.QLabel(_tr("Plot Options:")) + self.plot_options_label = QtWidgets.QLabel(_("Plot Options:")) self.custom_box.addWidget(self.plot_options_label) - self.cncplot_method_label = QtWidgets.QLabel(_tr("Plot kind:")) + self.cncplot_method_label = QtWidgets.QLabel(_("Plot kind:")) self.cncplot_method_label.setToolTip( - _tr( + _( "This selects the kind of geometries on the canvas to plot.\n" "Those can be either of type 'Travel' which means the moves\n" "above the work piece or it can be of type 'Cut',\n" @@ -1413,30 +1412,30 @@ class CNCObjectUI(ObjectUI): ) self.cncplot_method_combo = RadioSet([ - {"label": _tr("All"), "value": "all"}, - {"label": _tr("Travel"), "value": "travel"}, - {"label": _tr("Cut"), "value": "cut"} + {"label": _("All"), "value": "all"}, + {"label": _("Travel"), "value": "travel"}, + {"label": _("Cut"), "value": "cut"} ], stretch=False) ## Object name self.name_hlay = QtWidgets.QHBoxLayout() self.custom_box.addLayout(self.name_hlay) - name_label = QtWidgets.QLabel(_tr("Name:")) + name_label = QtWidgets.QLabel(_("Name:")) self.name_entry = FCEntry() self.name_entry.setFocusPolicy(QtCore.Qt.StrongFocus) self.name_hlay.addWidget(name_label) self.name_hlay.addWidget(self.name_entry) - self.t_distance_label = QtWidgets.QLabel(_tr("Travelled dist.:")) + self.t_distance_label = QtWidgets.QLabel(_("Travelled dist.:")) self.t_distance_label.setToolTip( - _tr( + _( "This is the total travelled distance on X-Y plane.\n" "In current units." ) ) self.t_distance_entry = FCEntry() self.t_distance_entry.setToolTip( - _tr( + _( "This is the total travelled distance on X-Y plane.\n" "In current units." ) @@ -1465,9 +1464,9 @@ class CNCObjectUI(ObjectUI): self.custom_box.addLayout(hlay) # CNC Tools Table for plot - self.cnc_tools_table_label = QtWidgets.QLabel(_tr('CNC Tools Table')) + self.cnc_tools_table_label = QtWidgets.QLabel(_('CNC Tools Table')) self.cnc_tools_table_label.setToolTip( - _tr( + _( "Tools in this CNCJob object used for cutting.\n" "The tool diameter is used for plotting on canvas.\n" "The 'Offset' entry will set an offset for the cut.\n" @@ -1483,9 +1482,9 @@ class CNCObjectUI(ObjectUI): # Plot CB # self.plot_cb = QtWidgets.QCheckBox('Plot') - self.plot_cb = FCCheckBox(_tr('Plot Object')) + self.plot_cb = FCCheckBox(_('Plot Object')) self.plot_cb.setToolTip( - _tr( + _( "Plot (show) this object." ) ) @@ -1501,33 +1500,33 @@ class CNCObjectUI(ObjectUI): # self.cnc_tools_table.setColumnHidden(3, True) self.cnc_tools_table.setColumnCount(7) self.cnc_tools_table.setColumnWidth(0, 20) - self.cnc_tools_table.setHorizontalHeaderLabels(['#', _tr('Dia'), _tr('Offset'), _tr('Type'), _tr('TT'), '', - _tr('P')]) + self.cnc_tools_table.setHorizontalHeaderLabels(['#', _('Dia'), _('Offset'), _('Type'), _('TT'), '', + _('P')]) self.cnc_tools_table.setColumnHidden(5, True) # stylesheet = "::section{Background-color:rgb(239,239,245)}" # self.cnc_tools_table.horizontalHeader().setStyleSheet(stylesheet) # Update plot button - self.updateplot_button = QtWidgets.QPushButton(_tr('Update Plot')) + self.updateplot_button = QtWidgets.QPushButton(_('Update Plot')) self.updateplot_button.setToolTip( - _tr("Update the plot.") + _("Update the plot.") ) self.custom_box.addWidget(self.updateplot_button) ################## ## Export G-Code ################## - self.export_gcode_label = QtWidgets.QLabel(_tr("Export CNC Code:")) + self.export_gcode_label = QtWidgets.QLabel(_("Export CNC Code:")) self.export_gcode_label.setToolTip( - _tr("Export and save G-Code to\n" + _("Export and save G-Code to\n" "make this object to a file.") ) self.custom_box.addWidget(self.export_gcode_label) # Prepend text to GCode - prependlabel = QtWidgets.QLabel(_tr('Prepend to CNC Code:')) + prependlabel = QtWidgets.QLabel(_('Prepend to CNC Code:')) prependlabel.setToolTip( - _tr( + _( "Type here any G-Code commands you would\n" "like to add to the beginning of the generated file." ) @@ -1538,9 +1537,9 @@ class CNCObjectUI(ObjectUI): self.custom_box.addWidget(self.prepend_text) # Append text to GCode - appendlabel = QtWidgets.QLabel(_tr('Append to CNC Code')) + appendlabel = QtWidgets.QLabel(_('Append to CNC Code')) appendlabel.setToolTip( - _tr( + _( "Type here any G-Code commands you would\n" "like to append to the generated file.\n" "I.e.: M2 (End of program)" @@ -1559,9 +1558,9 @@ class CNCObjectUI(ObjectUI): self.cnc_frame.setLayout(self.cnc_box) # Toolchange Custom G-Code - self.toolchangelabel = QtWidgets.QLabel(_tr('Toolchange G-Code:')) + self.toolchangelabel = QtWidgets.QLabel(_('Toolchange G-Code:')) self.toolchangelabel.setToolTip( - _tr( + _( "Type here any G-Code commands you would\n" "like to be executed when Toolchange event is encountered.\n" "This will constitute a Custom Toolchange GCode,\n" @@ -1581,9 +1580,9 @@ class CNCObjectUI(ObjectUI): self.cnc_box.addLayout(cnclay) # Toolchange Replacement Enable - self.toolchange_cb = FCCheckBox(label=_tr('Use Toolchange Macro')) + self.toolchange_cb = FCCheckBox(label=_('Use Toolchange Macro')) self.toolchange_cb.setToolTip( - _tr( + _( "Check this box if you want to use\n" "a Custom Toolchange GCode (macro)." ) @@ -1599,7 +1598,7 @@ class CNCObjectUI(ObjectUI): # Variable list self.tc_variable_combo = FCComboBox() self.tc_variable_combo.setToolTip( - _tr( + _( "A list of the FlatCAM variables that can be used\n" "in the Toolchange event.\n" "They have to be surrounded by the '%' symbol" @@ -1608,21 +1607,21 @@ class CNCObjectUI(ObjectUI): cnclay1.addWidget(self.tc_variable_combo) # Populate the Combo Box - variables = [_tr('Parameters'), 'tool', 'tooldia', 't_drills', 'x_toolchange', 'y_toolchange', 'z_toolchange', + variables = [_('Parameters'), 'tool', 'tooldia', 't_drills', 'x_toolchange', 'y_toolchange', 'z_toolchange', 'z_cut', 'z_move', 'z_depthpercut', 'spindlespeed', 'dwelltime'] self.tc_variable_combo.addItems(variables) - self.tc_variable_combo.setItemData(0, _tr("FlatCAM CNC parameters"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(1, _tr("tool = tool number"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(2, _tr("tooldia = tool diameter"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(3, _tr("t_drills = for Excellon, total number of drills"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(4, _tr("x_toolchange = X coord for Toolchange"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(5, _tr("y_toolchange = Y coord for Toolchange"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(6, _tr("z_toolchange = Z coord for Toolchange"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(7, _tr("z_cut = Z coord for Toolchange"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(8, _tr("z_move = Z coord for Toolchange"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(9, _tr("z_depthpercut = the step value for multidepth cut"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(10, _tr("spindlesspeed = the value for the spindle speed"), Qt.ToolTipRole) - self.tc_variable_combo.setItemData(11, _tr("dwelltime = time to dwell to allow the spindle to reach it's set RPM"), + self.tc_variable_combo.setItemData(0, _("FlatCAM CNC parameters"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(1, _("tool = tool number"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(2, _("tooldia = tool diameter"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(3, _("t_drills = for Excellon, total number of drills"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(4, _("x_toolchange = X coord for Toolchange"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(5, _("y_toolchange = Y coord for Toolchange"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(6, _("z_toolchange = Z coord for Toolchange"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(7, _("z_cut = Z coord for Toolchange"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(8, _("z_move = Z coord for Toolchange"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(9, _("z_depthpercut = the step value for multidepth cut"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(10, _("spindlesspeed = the value for the spindle speed"), Qt.ToolTipRole) + self.tc_variable_combo.setItemData(11, _("dwelltime = time to dwell to allow the spindle to reach it's set RPM"), Qt.ToolTipRole) cnclay1.addStretch() @@ -1640,18 +1639,18 @@ class CNCObjectUI(ObjectUI): self.custom_box.addLayout(h_lay) # Edit GCode Button - self.modify_gcode_button = QtWidgets.QPushButton(_tr('View CNC Code')) + self.modify_gcode_button = QtWidgets.QPushButton(_('View CNC Code')) self.modify_gcode_button.setToolTip( - _tr( + _( "Opens TAB to view/modify/print G-Code\n" "file." ) ) # GO Button - self.export_gcode_button = QtWidgets.QPushButton(_tr('Save CNC Code')) + self.export_gcode_button = QtWidgets.QPushButton(_('Save CNC Code')) self.export_gcode_button.setToolTip( - _tr( + _( "Opens dialog to save G-Code\n" "file." ) diff --git a/README.md b/README.md index bd708c3e..5f986dbe 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,12 @@ CAD program, and create G-Code for Isolation routing. ================================================= +10.03.2019 + +- added a fix in the Gerber parser when adding the geometry in the self.apertures dict for the case that the current aperture is None (Allegro does that) +- finished support for internationalization by adding a set of .po/.mo files for the English language. Unfortunately the final action can be done only when Beta will be out of Beta (no more changes) or when I will decide to stop working on this app. +- changed the tooltip for 'feedrate_rapids' parameter to point out that this parameter is useful only for the Marlin postprocessor + 8.03.2019 - fixed issue when doing th CTRL (or SHIFT) + LMB, the focus is automatically moved to Project Tab diff --git a/camlib.py b/camlib.py index 13b26851..5a84571c 100644 --- a/camlib.py +++ b/camlib.py @@ -75,13 +75,6 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('camlib') -def _tr(text): - try: - return _(text) - except: - return text - - class ParseError(Exception): pass @@ -206,7 +199,7 @@ class Geometry(object): if isinstance(self.solid_geometry, list): return len(self.solid_geometry) == 0 - self.app.inform.emit(_tr("[ERROR_NOTCL] self.solid_geometry is neither BaseGeometry or list.")) + self.app.inform.emit(_("[ERROR_NOTCL] self.solid_geometry is neither BaseGeometry or list.")) return def subtract_polygon(self, points): @@ -1393,9 +1386,9 @@ class Geometry(object): self.tools[tool]['solid_geometry'] = mirror_geom(self.tools[tool]['solid_geometry']) else: self.solid_geometry = mirror_geom(self.solid_geometry) - self.app.inform.emit(_tr('[success]Object was mirrored ...')) + self.app.inform.emit(_('[success]Object was mirrored ...')) except AttributeError: - self.app.inform.emit(_tr("[ERROR_NOTCL] Failed to mirror. No object selected")) + self.app.inform.emit(_("[ERROR_NOTCL] Failed to mirror. No object selected")) def rotate(self, angle, point): """ @@ -1431,9 +1424,9 @@ class Geometry(object): self.tools[tool]['solid_geometry'] = rotate_geom(self.tools[tool]['solid_geometry']) else: self.solid_geometry = rotate_geom(self.solid_geometry) - self.app.inform.emit(_tr('[success]Object was rotated ...')) + self.app.inform.emit(_('[success]Object was rotated ...')) except AttributeError: - self.app.inform.emit(_tr("[ERROR_NOTCL] Failed to rotate. No object selected")) + self.app.inform.emit(_("[ERROR_NOTCL] Failed to rotate. No object selected")) def skew(self, angle_x, angle_y, point): """ @@ -1467,9 +1460,9 @@ class Geometry(object): self.tools[tool]['solid_geometry'] = skew_geom(self.tools[tool]['solid_geometry']) else: self.solid_geometry = skew_geom(self.solid_geometry) - self.app.inform.emit(_tr('[success]Object was skewed ...')) + self.app.inform.emit(_('[success]Object was skewed ...')) except AttributeError: - self.app.inform.emit(_tr("[ERROR_NOTCL] Failed to skew. No object selected")) + self.app.inform.emit(_("[ERROR_NOTCL] Failed to skew. No object selected")) # if type(self.solid_geometry) == list: # self.solid_geometry = [affinity.skew(g, angle_x, angle_y, origin=(px, py)) @@ -2594,6 +2587,18 @@ class Gerber (Geometry): # NOTE: Letting it continue allows it to react to the # operation code. + # we do this for the case that a region is done without having defined any aperture + # Allegro does that + if current_aperture: + last_path_aperture = current_aperture + + if last_path_aperture is None: + if '0' not in self.apertures: + self.apertures['0'] = {} + self.apertures['0']['solid_geometry'] = [] + self.apertures['0']['type'] = 'REG' + last_path_aperture = '0' + # Parse coordinates if match.group(2) is not None: linear_x = parse_gerber_number(match.group(2), @@ -2645,8 +2650,8 @@ class Gerber (Geometry): pass last_path_aperture = current_aperture else: - self.app.inform.emit(_tr("[WARNING] Coordinates missing, line ignored: %s") % str(gline)) - self.app.inform.emit(_tr("[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!")) + self.app.inform.emit(_("[WARNING] Coordinates missing, line ignored: %s") % str(gline)) + self.app.inform.emit(_("[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!")) elif current_operation_code == 2: if len(path) > 1: @@ -2675,7 +2680,7 @@ class Gerber (Geometry): geo = Polygon(path) except ValueError: log.warning("Problem %s %s" % (gline, line_num)) - self.app.inform.emit(_tr("[ERROR] Region does not have enough points. " + self.app.inform.emit(_("[ERROR] Region does not have enough points. " "File will be processed but there are parser errors. " "Line number: %s") % str(line_num)) else: @@ -2705,8 +2710,8 @@ class Gerber (Geometry): if linear_x is not None and linear_y is not None: path = [[linear_x, linear_y]] # Start new path else: - self.app.inform.emit(_tr("[WARNING] Coordinates missing, line ignored: %s") % str(gline)) - self.app.inform.emit(_tr("[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!")) + self.app.inform.emit(_("[WARNING] Coordinates missing, line ignored: %s") % str(gline)) + self.app.inform.emit(_("[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!")) # Flash # Not allowed in region mode. @@ -3029,7 +3034,7 @@ class Gerber (Geometry): log.error("Gerber PARSING FAILED. Line %d: %s" % (line_num, gline)) loc = 'Gerber Line #%d Gerber Line Content: %s\n' % (line_num, gline) + repr(err) - self.app.inform.emit(_tr("[ERROR]Gerber Parser ERROR.\n%s:") % loc) + self.app.inform.emit(_("[ERROR]Gerber Parser ERROR.\n%s:") % loc) @staticmethod def create_flash_geometry(location, aperture, steps_per_circle=None): @@ -3207,7 +3212,7 @@ class Gerber (Geometry): try: xfactor = float(xfactor) except: - self.app.inform.emit(_tr("[ERROR_NOTCL] Scale factor has to be a number: integer or float.")) + self.app.inform.emit(_("[ERROR_NOTCL] Scale factor has to be a number: integer or float.")) return if yfactor is None: @@ -3216,7 +3221,7 @@ class Gerber (Geometry): try: yfactor = float(yfactor) except: - self.app.inform.emit(_tr("[ERROR_NOTCL] Scale factor has to be a number: integer or float.")) + self.app.inform.emit(_("[ERROR_NOTCL] Scale factor has to be a number: integer or float.")) return if point is None: @@ -3245,7 +3250,7 @@ class Gerber (Geometry): except Exception as e: log.debug('FlatCAMGeometry.scale() --> %s' % str(e)) - self.app.inform.emit(_tr("[success]Gerber Scale done.")) + self.app.inform.emit(_("[success]Gerber Scale done.")) ## solid_geometry ??? @@ -3278,7 +3283,7 @@ class Gerber (Geometry): try: dx, dy = vect except TypeError: - self.app.inform.emit(_tr("[ERROR_NOTCL]An (x,y) pair of values are needed. " + self.app.inform.emit(_("[ERROR_NOTCL]An (x,y) pair of values are needed. " "Probable you entered only one value in the Offset field.")) return @@ -3302,7 +3307,7 @@ class Gerber (Geometry): except Exception as e: log.debug('FlatCAMGeometry.offset() --> %s' % str(e)) - self.app.inform.emit(_tr("[success]Gerber Offset done.")) + self.app.inform.emit(_("[success]Gerber Offset done.")) def mirror(self, axis, point): """ @@ -3678,7 +3683,7 @@ class Excellon(Geometry): # and we need to exit from here if self.detect_gcode_re.search(eline): log.warning("This is GCODE mark: %s" % eline) - self.app.inform.emit(_tr('[ERROR_NOTCL] This is GCODE mark: %s') % eline) + self.app.inform.emit(_('[ERROR_NOTCL] This is GCODE mark: %s') % eline) return # Header Begin (M48) # @@ -4207,8 +4212,8 @@ class Excellon(Geometry): log.info("Zeros: %s, Units %s." % (self.zeros, self.units)) except Exception as e: log.error("Excellon PARSING FAILED. Line %d: %s" % (line_num, eline)) - msg = _tr("[ERROR_NOTCL] An internal error has ocurred. See shell.\n") - msg += _tr('[ERROR] Excellon Parser error.\nParsing Failed. Line %d: %s\n') % (line_num, eline) + msg = _("[ERROR_NOTCL] An internal error has ocurred. See shell.\n") + msg += _('[ERROR] Excellon Parser error.\nParsing Failed. Line %d: %s\n') % (line_num, eline) msg += traceback.format_exc() self.app.inform.emit(msg) @@ -4285,7 +4290,7 @@ class Excellon(Geometry): for drill in self.drills: # poly = drill['point'].buffer(self.tools[drill['tool']]["C"]/2.0) if drill['tool'] is '': - self.app.inform.emit(_tr("[WARNING] Excellon.create_geometry() -> a drill location was skipped " + self.app.inform.emit(_("[WARNING] Excellon.create_geometry() -> a drill location was skipped " "due of not having a tool associated.\n" "Check the resulting GCode.")) log.debug("Excellon.create_geometry() -> a drill location was skipped " @@ -4821,7 +4826,7 @@ class CNCjob(Geometry): try: value = getattr(self, command) except AttributeError: - self.app.inform.emit(_tr("[ERROR] There is no such parameter: %s") % str(match)) + self.app.inform.emit(_("[ERROR] There is no such parameter: %s") % str(match)) log.debug("CNCJob.parse_custom_toolchange_code() --> AttributeError ") return 'fail' text = text.replace(match, str(value)) @@ -4886,14 +4891,14 @@ class CNCjob(Geometry): :rtype: None """ if drillz > 0: - self.app.inform.emit(_tr("[WARNING] The Cut Z parameter has positive value. " + self.app.inform.emit(_("[WARNING] The Cut Z parameter has positive value. " "It is the depth value to drill into material.\n" "The Cut Z parameter needs to have a negative value, assuming it is a typo " "therefore the app will convert the value to negative. " "Check the resulting CNC code (Gcode etc).")) self.z_cut = -drillz elif drillz == 0: - self.app.inform.emit(_tr("[WARNING] The Cut Z parameter is zero. " + self.app.inform.emit(_("[WARNING] The Cut Z parameter is zero. " "There will be no cut, skipping %s file") % exobj.options['name']) return 'fail' else: @@ -4907,7 +4912,7 @@ class CNCjob(Geometry): else: self.xy_toolchange = [float(eval(a)) for a in toolchangexy.split(",")] if len(self.xy_toolchange) < 2: - self.app.inform.emit(_tr("[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be " + self.app.inform.emit(_("[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be " "in the format (x, y) \nbut now there is only one value, not two. ")) return 'fail' except Exception as e: @@ -5109,7 +5114,7 @@ class CNCjob(Geometry): else: log.debug("camlib.CNCJob.generate_from_excellon_by_tool() --> " "The loaded Excellon file has no drills ...") - self.app.inform.emit(_tr('[ERROR_NOTCL]The loaded Excellon file has no drills ...')) + self.app.inform.emit(_('[ERROR_NOTCL]The loaded Excellon file has no drills ...')) return 'fail' log.debug("The total travel distance with OR-TOOLS Metaheuristics is: %s" % str(measured_distance)) @@ -5199,12 +5204,12 @@ class CNCjob(Geometry): else: log.debug("camlib.CNCJob.generate_from_excellon_by_tool() --> " "The loaded Excellon file has no drills ...") - self.app.inform.emit(_tr('[ERROR_NOTCL]The loaded Excellon file has no drills ...')) + self.app.inform.emit(_('[ERROR_NOTCL]The loaded Excellon file has no drills ...')) return 'fail' log.debug("The total travel distance with OR-TOOLS Basic Algorithm is: %s" % str(measured_distance)) else: - self.app.inform.emit(_tr("[ERROR_NOTCL] Wrong optimization type selected.")) + self.app.inform.emit(_("[ERROR_NOTCL] Wrong optimization type selected.")) return 'fail' else: log.debug("Using Travelling Salesman drill path optimization.") @@ -5250,7 +5255,7 @@ class CNCjob(Geometry): else: log.debug("camlib.CNCJob.generate_from_excellon_by_tool() --> " "The loaded Excellon file has no drills ...") - self.app.inform.emit(_tr('[ERROR_NOTCL]The loaded Excellon file has no drills ...')) + self.app.inform.emit(_('[ERROR_NOTCL]The loaded Excellon file has no drills ...')) return 'fail' log.debug("The total travel distance with Travelling Salesman Algorithm is: %s" % str(measured_distance)) @@ -5338,7 +5343,7 @@ class CNCjob(Geometry): else: self.xy_toolchange = [float(eval(a)) for a in toolchangexy.split(",")] if len(self.xy_toolchange) < 2: - self.app.inform.emit(_tr("[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be " + self.app.inform.emit(_("[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be " "in the format (x, y) \nbut now there is only one value, not two. ")) return 'fail' except Exception as e: @@ -5349,35 +5354,35 @@ class CNCjob(Geometry): self.f_plunge = self.app.defaults["geometry_f_plunge"] if self.z_cut is None: - self.app.inform.emit(_tr("[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad combinations of " + self.app.inform.emit(_("[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad combinations of " "other parameters.")) return 'fail' if self.z_cut > 0: - self.app.inform.emit(_tr("[WARNING] The Cut Z parameter has positive value. " + self.app.inform.emit(_("[WARNING] The Cut Z parameter has positive value. " "It is the depth value to cut into material.\n" "The Cut Z parameter needs to have a negative value, assuming it is a typo " "therefore the app will convert the value to negative." "Check the resulting CNC code (Gcode etc).")) self.z_cut = -self.z_cut elif self.z_cut == 0: - self.app.inform.emit(_tr("[WARNING] The Cut Z parameter is zero. " + self.app.inform.emit(_("[WARNING] The Cut Z parameter is zero. " "There will be no cut, skipping %s file") % self.options['name']) return 'fail' if self.z_move is None: - self.app.inform.emit(_tr("[ERROR_NOTCL] Travel Z parameter is None or zero.")) + self.app.inform.emit(_("[ERROR_NOTCL] Travel Z parameter is None or zero.")) return 'fail' if self.z_move < 0: - self.app.inform.emit(_tr("[WARNING] The Travel Z parameter has negative value. " + self.app.inform.emit(_("[WARNING] The Travel Z parameter has negative value. " "It is the height value to travel between cuts.\n" "The Z Travel parameter needs to have a positive value, assuming it is a typo " "therefore the app will convert the value to positive." "Check the resulting CNC code (Gcode etc).")) self.z_move = -self.z_move elif self.z_move == 0: - self.app.inform.emit(_tr("[WARNING] The Z Travel parameter is zero. " + self.app.inform.emit(_("[WARNING] The Z Travel parameter is zero. " "This is dangerous, skipping %s file") % self.options['name']) return 'fail' @@ -5507,13 +5512,13 @@ class CNCjob(Geometry): """ if not isinstance(geometry, Geometry): - self.app.inform.emit(_tr("[ERROR]Expected a Geometry, got %s") % type(geometry)) + self.app.inform.emit(_("[ERROR]Expected a Geometry, got %s") % type(geometry)) return 'fail' log.debug("Generate_from_geometry_2()") # if solid_geometry is empty raise an exception if not geometry.solid_geometry: - self.app.inform.emit(_tr("[ERROR_NOTCL]Trying to generate a CNC Job " + self.app.inform.emit(_("[ERROR_NOTCL]Trying to generate a CNC Job " "from a Geometry object without solid_geometry.")) temp_solid_geometry = [] @@ -5552,7 +5557,7 @@ class CNCjob(Geometry): # if the offset is less than half of the total length or less than half of the total width of the # solid geometry it's obvious we can't do the offset if -offset > ((c - a) / 2) or -offset > ((d - b) / 2): - self.app.inform.emit(_tr("[ERROR_NOTCL]The Tool Offset value is too negative to use " + self.app.inform.emit(_("[ERROR_NOTCL]The Tool Offset value is too negative to use " "for the current_geometry.\n" "Raise the value (in module) and try again.")) return 'fail' @@ -5609,7 +5614,7 @@ class CNCjob(Geometry): else: self.xy_toolchange = [float(eval(a)) for a in toolchangexy.split(",")] if len(self.xy_toolchange) < 2: - self.app.inform.emit(_tr("[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be " + self.app.inform.emit(_("[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be " "in the format (x, y) \nbut now there is only one value, not two. ")) return 'fail' except Exception as e: @@ -5620,35 +5625,35 @@ class CNCjob(Geometry): self.f_plunge = self.app.defaults["geometry_f_plunge"] if self.z_cut is None: - self.app.inform.emit(_tr("[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad combinations of " + self.app.inform.emit(_("[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad combinations of " "other parameters.")) return 'fail' if self.z_cut > 0: - self.app.inform.emit(_tr("[WARNING] The Cut Z parameter has positive value. " + self.app.inform.emit(_("[WARNING] The Cut Z parameter has positive value. " "It is the depth value to cut into material.\n" "The Cut Z parameter needs to have a negative value, assuming it is a typo " "therefore the app will convert the value to negative." "Check the resulting CNC code (Gcode etc).")) self.z_cut = -self.z_cut elif self.z_cut == 0: - self.app.inform.emit(_tr("[WARNING] The Cut Z parameter is zero. " + self.app.inform.emit(_("[WARNING] The Cut Z parameter is zero. " "There will be no cut, skipping %s file") % geometry.options['name']) return 'fail' if self.z_move is None: - self.app.inform.emit(_tr("[ERROR_NOTCL] Travel Z parameter is None or zero.")) + self.app.inform.emit(_("[ERROR_NOTCL] Travel Z parameter is None or zero.")) return 'fail' if self.z_move < 0: - self.app.inform.emit(_tr("[WARNING] The Travel Z parameter has negative value. " + self.app.inform.emit(_("[WARNING] The Travel Z parameter has negative value. " "It is the height value to travel between cuts.\n" "The Z Travel parameter needs to have a positive value, assuming it is a typo " "therefore the app will convert the value to positive." "Check the resulting CNC code (Gcode etc).")) self.z_move = -self.z_move elif self.z_move == 0: - self.app.inform.emit(_tr("[WARNING] The Z Travel parameter is zero. " + self.app.inform.emit(_("[WARNING] The Z Travel parameter is zero. " "This is dangerous, skipping %s file") % self.options['name']) return 'fail' @@ -5774,7 +5779,7 @@ class CNCjob(Geometry): if not kwargs: log.debug("camlib.generate_from_solderpaste_geo() --> No tool in the solderpaste geometry.") - self.app.inform.emit(_tr("[ERROR_NOTCL] There is no tool data in the SolderPaste geometry.")) + self.app.inform.emit(_("[ERROR_NOTCL] There is no tool data in the SolderPaste geometry.")) # this is the tool diameter, it is used as such to accommodate the postprocessor who need the tool diameter diff --git a/flatcamTools/ToolCalculators.py b/flatcamTools/ToolCalculators.py index 3f5cbc5d..6294a0f6 100644 --- a/flatcamTools/ToolCalculators.py +++ b/flatcamTools/ToolCalculators.py @@ -9,19 +9,12 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolCalculators') -def _tr(text): - try: - return _(text) - except: - return text - - class ToolCalculator(FlatCAMTool): - toolName = _tr("Calculators") - v_shapeName = _tr("V-Shape Tool Calculator") - unitsName = _tr("Units Calculator") - eplateName = _tr("ElectroPlating Calculator") + toolName = _("Calculators") + v_shapeName = _("V-Shape Tool Calculator") + unitsName = _("Units Calculator") + eplateName = _("ElectroPlating Calculator") def __init__(self, app): FlatCAMTool.__init__(self, app) @@ -62,12 +55,12 @@ class ToolCalculator(FlatCAMTool): self.inch_entry = FCEntry() # self.inch_entry.setFixedWidth(70) self.inch_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.inch_entry.setToolTip(_tr("Here you enter the value to be converted from INCH to MM")) + self.inch_entry.setToolTip(_("Here you enter the value to be converted from INCH to MM")) self.mm_entry = FCEntry() # self.mm_entry.setFixedWidth(130) self.mm_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.mm_entry.setToolTip(_tr("Here you enter the value to be converted from MM to INCH")) + self.mm_entry.setToolTip(_("Here you enter the value to be converted from MM to INCH")) grid_units_layout.addWidget(self.mm_entry, 1, 0) grid_units_layout.addWidget(self.inch_entry, 1, 1) @@ -88,32 +81,32 @@ class ToolCalculator(FlatCAMTool): form_layout = QtWidgets.QFormLayout() self.layout.addLayout(form_layout) - self.tipDia_label = QtWidgets.QLabel(_tr("Tip Diameter:")) + self.tipDia_label = QtWidgets.QLabel(_("Tip Diameter:")) self.tipDia_entry = FCEntry() # self.tipDia_entry.setFixedWidth(70) self.tipDia_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.tipDia_label.setToolTip(_tr('This is the diameter of the tool tip.\n' + self.tipDia_label.setToolTip(_('This is the diameter of the tool tip.\n' 'The manufacturer specifies it.')) self.tipAngle_label = QtWidgets.QLabel("Tip Angle:") self.tipAngle_entry = FCEntry() # self.tipAngle_entry.setFixedWidth(70) self.tipAngle_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.tipAngle_label.setToolTip(_tr("This is the angle of the tip of the tool.\n" + self.tipAngle_label.setToolTip(_("This is the angle of the tip of the tool.\n" "It is specified by manufacturer.")) self.cutDepth_label = QtWidgets.QLabel("Cut Z:") self.cutDepth_entry = FCEntry() # self.cutDepth_entry.setFixedWidth(70) self.cutDepth_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.cutDepth_label.setToolTip(_tr("This is the depth to cut into the material.\n" + self.cutDepth_label.setToolTip(_("This is the depth to cut into the material.\n" "In the CNCJob is the CutZ parameter.")) self.effectiveToolDia_label = QtWidgets.QLabel("Tool Diameter:") self.effectiveToolDia_entry = FCEntry() # self.effectiveToolDia_entry.setFixedWidth(70) self.effectiveToolDia_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.effectiveToolDia_label.setToolTip(_tr("This is the tool diameter to be entered into\n" + self.effectiveToolDia_label.setToolTip(_("This is the tool diameter to be entered into\n" "FlatCAM Gerber section.\n" "In the CNCJob section it is called >Tool dia<.")) # self.effectiveToolDia_entry.setEnabled(False) @@ -125,10 +118,10 @@ class ToolCalculator(FlatCAMTool): form_layout.addRow(self.effectiveToolDia_label, self.effectiveToolDia_entry) ## Buttons - self.calculate_vshape_button = QtWidgets.QPushButton(_tr("Calculate")) + self.calculate_vshape_button = QtWidgets.QPushButton(_("Calculate")) # self.calculate_button.setFixedWidth(70) self.calculate_vshape_button.setToolTip( - _tr("Calculate either the Cut Z or the effective tool diameter,\n " + _("Calculate either the Cut Z or the effective tool diameter,\n " "depending on which is desired and which is known. ") ) self.empty_label = QtWidgets.QLabel(" ") @@ -146,7 +139,7 @@ class ToolCalculator(FlatCAMTool): ## Title of the ElectroPlating Tools Calculator plate_title_label = QtWidgets.QLabel("%s" % self.eplateName) plate_title_label.setToolTip( - _tr("This calculator is useful for those who plate the via/pad/drill holes,\n" + _("This calculator is useful for those who plate the via/pad/drill holes,\n" "using a method like grahite ink or calcium hypophosphite ink or palladium chloride.") ) self.layout.addWidget(plate_title_label) @@ -155,48 +148,48 @@ class ToolCalculator(FlatCAMTool): plate_form_layout = QtWidgets.QFormLayout() self.layout.addLayout(plate_form_layout) - self.pcblengthlabel = QtWidgets.QLabel(_tr("Board Length:")) + self.pcblengthlabel = QtWidgets.QLabel(_("Board Length:")) self.pcblength_entry = FCEntry() # self.pcblengthlabel.setFixedWidth(70) self.pcblength_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.pcblengthlabel.setToolTip(_tr('This is the board length. In centimeters.')) + self.pcblengthlabel.setToolTip(_('This is the board length. In centimeters.')) - self.pcbwidthlabel = QtWidgets.QLabel(_tr("Board Width:")) + self.pcbwidthlabel = QtWidgets.QLabel(_("Board Width:")) self.pcbwidth_entry = FCEntry() # self.pcbwidthlabel.setFixedWidth(70) self.pcbwidth_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.pcbwidthlabel.setToolTip(_tr('This is the board width.In centimeters.')) + self.pcbwidthlabel.setToolTip(_('This is the board width.In centimeters.')) - self.cdensity_label = QtWidgets.QLabel(_tr("Current Density:")) + self.cdensity_label = QtWidgets.QLabel(_("Current Density:")) self.cdensity_entry = FCEntry() # self.cdensity_entry.setFixedWidth(70) self.cdensity_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.cdensity_label.setToolTip(_tr("Current density to pass through the board. \n" + self.cdensity_label.setToolTip(_("Current density to pass through the board. \n" "In Amps per Square Feet ASF.")) - self.growth_label = QtWidgets.QLabel(_tr("Copper Growth:")) + self.growth_label = QtWidgets.QLabel(_("Copper Growth:")) self.growth_entry = FCEntry() # self.growth_entry.setFixedWidth(70) self.growth_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.growth_label.setToolTip(_tr("How thick the copper growth is intended to be.\n" + self.growth_label.setToolTip(_("How thick the copper growth is intended to be.\n" "In microns.")) # self.growth_entry.setEnabled(False) - self.cvaluelabel = QtWidgets.QLabel(_tr("Current Value:")) + self.cvaluelabel = QtWidgets.QLabel(_("Current Value:")) self.cvalue_entry = FCEntry() # self.cvaluelabel.setFixedWidth(70) self.cvalue_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.cvaluelabel.setToolTip(_tr('This is the current intensity value\n' + self.cvaluelabel.setToolTip(_('This is the current intensity value\n' 'to be set on the Power Supply. In Amps.')) self.cvalue_entry.setDisabled(True) - self.timelabel = QtWidgets.QLabel(_tr("Time:")) + self.timelabel = QtWidgets.QLabel(_("Time:")) self.time_entry = FCEntry() # self.timelabel.setFixedWidth(70) self.time_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.timelabel.setToolTip(_tr('This is the calculated time required for the procedure.\n' + self.timelabel.setToolTip(_('This is the calculated time required for the procedure.\n' 'In minutes.')) self.time_entry.setDisabled(True) @@ -208,10 +201,10 @@ class ToolCalculator(FlatCAMTool): plate_form_layout.addRow(self.timelabel, self.time_entry) ## Buttons - self.calculate_plate_button = QtWidgets.QPushButton(_tr("Calculate")) + self.calculate_plate_button = QtWidgets.QPushButton(_("Calculate")) # self.calculate_button.setFixedWidth(70) self.calculate_plate_button.setToolTip( - _tr("Calculate the current intensity value and the procedure time,\n " + _("Calculate the current intensity value and the procedure time,\n " "depending on the parameters above") ) self.empty_label_2 = QtWidgets.QLabel(" ") @@ -298,7 +291,7 @@ class ToolCalculator(FlatCAMTool): try: tip_diameter = float(self.tipDia_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return @@ -309,7 +302,7 @@ class ToolCalculator(FlatCAMTool): try: half_tip_angle = float(self.tipAngle_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return half_tip_angle /= 2 @@ -321,7 +314,7 @@ class ToolCalculator(FlatCAMTool): try: cut_depth = float(self.cutDepth_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return @@ -336,7 +329,7 @@ class ToolCalculator(FlatCAMTool): try: mm_val = float(self.mm_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return self.inch_entry.set_value('%.6f' % (mm_val / 25.4)) @@ -349,7 +342,7 @@ class ToolCalculator(FlatCAMTool): try: inch_val = float(self.inch_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return self.mm_entry.set_value('%.6f' % (inch_val * 25.4)) @@ -363,7 +356,7 @@ class ToolCalculator(FlatCAMTool): try: length = float(self.pcblength_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return @@ -374,7 +367,7 @@ class ToolCalculator(FlatCAMTool): try: width = float(self.pcbwidth_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return @@ -385,7 +378,7 @@ class ToolCalculator(FlatCAMTool): try: density = float(self.cdensity_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return @@ -396,7 +389,7 @@ class ToolCalculator(FlatCAMTool): try: copper = float(self.growth_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return diff --git a/flatcamTools/ToolCutOut.py b/flatcamTools/ToolCutOut.py index 449d444e..903950cd 100644 --- a/flatcamTools/ToolCutOut.py +++ b/flatcamTools/ToolCutOut.py @@ -8,16 +8,9 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolCutOut') -def _tr(text): - try: - return _(text) - except: - return text - - class CutOut(FlatCAMTool): - toolName = _tr("Cutout PCB") + toolName = _("Cutout PCB") gapFinished = pyqtSignal() def __init__(self, app): @@ -53,9 +46,9 @@ class CutOut(FlatCAMTool): # self.type_obj_combo.setItemIcon(1, QtGui.QIcon("share/drill16.png")) self.type_obj_combo.setItemIcon(2, QtGui.QIcon("share/geometry16.png")) - self.type_obj_combo_label = QtWidgets.QLabel(_tr("Obj Type:")) + self.type_obj_combo_label = QtWidgets.QLabel(_("Obj Type:")) self.type_obj_combo_label.setToolTip( - _tr("Specify the type of object to be cutout.\n" + _("Specify the type of object to be cutout.\n" "It can be of type: Gerber or Geometry.\n" "What is selected here will dictate the kind\n" "of objects that will populate the 'Object' combobox.") @@ -69,26 +62,26 @@ class CutOut(FlatCAMTool): self.obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) self.obj_combo.setCurrentIndex(1) - self.object_label = QtWidgets.QLabel(_tr("Object:")) + self.object_label = QtWidgets.QLabel(_("Object:")) self.object_label.setToolTip( - _tr("Object to be cutout. ") + _("Object to be cutout. ") ) form_layout.addRow(self.object_label, self.obj_combo) # Tool Diameter self.dia = FCEntry() - self.dia_label = QtWidgets.QLabel(_tr("Tool Dia:")) + self.dia_label = QtWidgets.QLabel(_("Tool Dia:")) self.dia_label.setToolTip( - _tr( "Diameter of the tool used to cutout\n" + _( "Diameter of the tool used to cutout\n" "the PCB shape out of the surrounding material.") ) form_layout.addRow(self.dia_label, self.dia) # Margin self.margin = FCEntry() - self.margin_label = QtWidgets.QLabel(_tr("Margin:")) + self.margin_label = QtWidgets.QLabel(_("Margin:")) self.margin_label.setToolTip( - _tr( "Margin over bounds. A positive value here\n" + _( "Margin over bounds. A positive value here\n" "will make the cutout of the PCB further from\n" "the actual PCB border") ) @@ -96,9 +89,9 @@ class CutOut(FlatCAMTool): # Gapsize self.gapsize = FCEntry() - self.gapsize_label = QtWidgets.QLabel(_tr("Gap size:")) + self.gapsize_label = QtWidgets.QLabel(_("Gap size:")) self.gapsize_label.setToolTip( - _tr( "The size of the bridge gaps in the cutout\n" + _( "The size of the bridge gaps in the cutout\n" "used to keep the board connected to\n" "the surrounding material (the one \n" "from which the PCB is cutout).") @@ -114,9 +107,9 @@ class CutOut(FlatCAMTool): # 8 - 2*left + 2*right +2*top + 2*bottom ## Title2 - title_param_label = QtWidgets.QLabel("%s" % _tr('A. Automatic Bridge Gaps')) + title_param_label = QtWidgets.QLabel("%s" % _('A. Automatic Bridge Gaps')) title_param_label.setToolTip( - _tr("This section handle creation of automatic bridge gaps.") + _("This section handle creation of automatic bridge gaps.") ) self.layout.addWidget(title_param_label) @@ -125,9 +118,9 @@ class CutOut(FlatCAMTool): self.layout.addLayout(form_layout_2) # Gaps - gaps_label = QtWidgets.QLabel(_tr('Gaps:')) + gaps_label = QtWidgets.QLabel(_('Gaps:')) gaps_label.setToolTip( - _tr("Number of gaps used for the Automatic cutout.\n" + _("Number of gaps used for the Automatic cutout.\n" "There can be maximum 8 bridges/gaps.\n" "The choices are:\n" "- lr - left + right\n" @@ -150,18 +143,18 @@ class CutOut(FlatCAMTool): hlay = QtWidgets.QHBoxLayout() self.layout.addLayout(hlay) - title_ff_label = QtWidgets.QLabel("%s" % _tr('FreeForm:')) + title_ff_label = QtWidgets.QLabel("%s" % _('FreeForm:')) title_ff_label.setToolTip( - _tr("The cutout shape can be of ny shape.\n" + _("The cutout shape can be of ny shape.\n" "Useful when the PCB has a non-rectangular shape.") ) hlay.addWidget(title_ff_label) hlay.addStretch() - self.ff_cutout_object_btn = QtWidgets.QPushButton(_tr("Generate Geo")) + self.ff_cutout_object_btn = QtWidgets.QPushButton(_("Generate Geo")) self.ff_cutout_object_btn.setToolTip( - _tr("Cutout the selected object.\n" + _("Cutout the selected object.\n" "The cutout shape can be of any shape.\n" "Useful when the PCB has a non-rectangular shape.") ) @@ -170,18 +163,18 @@ class CutOut(FlatCAMTool): hlay2 = QtWidgets.QHBoxLayout() self.layout.addLayout(hlay2) - title_rct_label = QtWidgets.QLabel("%s" % _tr('Rectangular:')) + title_rct_label = QtWidgets.QLabel("%s" % _('Rectangular:')) title_rct_label.setToolTip( - _tr("The resulting cutout shape is\n" + _("The resulting cutout shape is\n" "always a rectangle shape and it will be\n" "the bounding box of the Object.") ) hlay2.addWidget(title_rct_label) hlay2.addStretch() - self.rect_cutout_object_btn = QtWidgets.QPushButton(_tr("Generate Geo")) + self.rect_cutout_object_btn = QtWidgets.QPushButton(_("Generate Geo")) self.rect_cutout_object_btn.setToolTip( - _tr("Cutout the selected object.\n" + _("Cutout the selected object.\n" "The resulting cutout shape is\n" "always a rectangle shape and it will be\n" "the bounding box of the Object.") @@ -189,9 +182,9 @@ class CutOut(FlatCAMTool): hlay2.addWidget(self.rect_cutout_object_btn) ## Title5 - title_manual_label = QtWidgets.QLabel("%s" % _tr('B. Manual Bridge Gaps')) + title_manual_label = QtWidgets.QLabel("%s" % _('B. Manual Bridge Gaps')) title_manual_label.setToolTip( - _tr("This section handle creation of manual bridge gaps.\n" + _("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. ") ) @@ -207,9 +200,9 @@ class CutOut(FlatCAMTool): self.man_object_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex())) self.man_object_combo.setCurrentIndex(1) - self.man_object_label = QtWidgets.QLabel(_tr("Geo Obj:")) + self.man_object_label = QtWidgets.QLabel(_("Geo Obj:")) self.man_object_label.setToolTip( - _tr("Geometry object used to create the manual cutout.") + _("Geometry object used to create the manual cutout.") ) self.man_object_label.setFixedWidth(60) # e_lab_0 = QtWidgets.QLabel('') @@ -220,9 +213,9 @@ class CutOut(FlatCAMTool): hlay3 = QtWidgets.QHBoxLayout() self.layout.addLayout(hlay3) - self.man_geo_label = QtWidgets.QLabel(_tr("Manual Geo:")) + self.man_geo_label = QtWidgets.QLabel(_("Manual Geo:")) self.man_geo_label.setToolTip( - _tr("If the object to be cutout is a Gerber\n" + _("If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" "to be used as the cutout, if one doesn't exist yet.\n" "Select the source Gerber file in the top object combobox.") @@ -230,9 +223,9 @@ class CutOut(FlatCAMTool): hlay3.addWidget(self.man_geo_label) hlay3.addStretch() - self.man_geo_creation_btn = QtWidgets.QPushButton(_tr("Generate Geo")) + self.man_geo_creation_btn = QtWidgets.QPushButton(_("Generate Geo")) self.man_geo_creation_btn.setToolTip( - _tr("If the object to be cutout is a Gerber\n" + _("If the object to be cutout is a Gerber\n" "first create a Geometry that surrounds it,\n" "to be used as the cutout, if one doesn't exist yet.\n" "Select the source Gerber file in the top object combobox.") @@ -242,18 +235,18 @@ class CutOut(FlatCAMTool): hlay4 = QtWidgets.QHBoxLayout() self.layout.addLayout(hlay4) - self.man_bridge_gaps_label = QtWidgets.QLabel(_tr("Manual Add Bridge Gaps:")) + self.man_bridge_gaps_label = QtWidgets.QLabel(_("Manual Add Bridge Gaps:")) self.man_bridge_gaps_label.setToolTip( - _tr("Use the left mouse button (LMB) click\n" + _("Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" "the surrounding material.") ) hlay4.addWidget(self.man_bridge_gaps_label) hlay4.addStretch() - self.man_gaps_creation_btn = QtWidgets.QPushButton(_tr("Generate Gap")) + self.man_gaps_creation_btn = QtWidgets.QPushButton(_("Generate Gap")) self.man_gaps_creation_btn.setToolTip( - _tr("Use the left mouse button (LMB) click\n" + _("Use the left mouse button (LMB) click\n" "to create a bridge gap to separate the PCB from\n" "the surrounding material.\n" "The LMB click has to be done on the perimeter of\n" @@ -326,11 +319,11 @@ class CutOut(FlatCAMTool): try: cutout_obj = self.app.collection.get_by_name(str(name)) except: - self.app.inform.emit(_tr("[ERROR_NOTCL]Could not retrieve object: %s") % name) + self.app.inform.emit(_("[ERROR_NOTCL]Could not retrieve object: %s") % name) return "Could not retrieve object: %s" % name if cutout_obj is None: - self.app.inform.emit(_tr("[ERROR_NOTCL]There is no object selected for Cutout.\nSelect one and try again.")) + self.app.inform.emit(_("[ERROR_NOTCL]There is no object selected for Cutout.\nSelect one and try again.")) return try: @@ -340,13 +333,13 @@ class CutOut(FlatCAMTool): try: dia = float(self.dia.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " "Add it and retry.")) return if 0 in {dia}: - self.app.inform.emit(_tr("[WARNING_NOTCL]Tool Diameter is zero value. Change it to a positive integer.")) + self.app.inform.emit(_("[WARNING_NOTCL]Tool Diameter is zero value. Change it to a positive integer.")) return "Tool Diameter is zero value. Change it to a positive integer." try: @@ -356,7 +349,7 @@ class CutOut(FlatCAMTool): try: margin = float(self.margin.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Margin value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Margin value is missing or wrong format. " "Add it and retry.")) return @@ -367,23 +360,23 @@ class CutOut(FlatCAMTool): try: gapsize = float(self.gapsize.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Gap size value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Gap size value is missing or wrong format. " "Add it and retry.")) return try: gaps = self.gaps.get_value() except TypeError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Number of gaps value is missing. Add it and retry.")) + self.app.inform.emit(_("[WARNING_NOTCL] Number of gaps value is missing. Add it and retry.")) return if gaps not in ['LR', 'TB', '2LR', '2TB', '4', '8']: - self.app.inform.emit(_tr("[WARNING_NOTCL] Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8. " + self.app.inform.emit(_("[WARNING_NOTCL] Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. ")) return if cutout_obj.multigeo is True: - self.app.inform.emit(_tr("[ERROR]Cutout operation cannot be done on a multi-geo Geometry.\n" + self.app.inform.emit(_("[ERROR]Cutout operation cannot be done on a multi-geo Geometry.\n" "Optionally, this Multi-geo Geometry can be converted to Single-geo Geometry,\n" "and after that perform Cutout.")) return @@ -449,7 +442,7 @@ class CutOut(FlatCAMTool): ymax + gapsize) cutout_obj.plot() - self.app.inform.emit(_tr("[success] Any form CutOut operation finished.")) + self.app.inform.emit(_("[success] Any form CutOut operation finished.")) self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) self.app.should_we_save = True @@ -465,11 +458,11 @@ class CutOut(FlatCAMTool): try: cutout_obj = self.app.collection.get_by_name(str(name)) except: - self.app.inform.emit(_tr("[ERROR_NOTCL]Could not retrieve object: %s") % name) + self.app.inform.emit(_("[ERROR_NOTCL]Could not retrieve object: %s") % name) return "Could not retrieve object: %s" % name if cutout_obj is None: - self.app.inform.emit(_tr("[ERROR_NOTCL]Object not found: %s") % cutout_obj) + self.app.inform.emit(_("[ERROR_NOTCL]Object not found: %s") % cutout_obj) try: dia = float(self.dia.get_value()) @@ -478,12 +471,12 @@ class CutOut(FlatCAMTool): try: dia = float(self.dia.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " "Add it and retry.")) return if 0 in {dia}: - self.app.inform.emit(_tr("[ERROR_NOTCL]Tool Diameter is zero value. Change it to a positive integer.")) + self.app.inform.emit(_("[ERROR_NOTCL]Tool Diameter is zero value. Change it to a positive integer.")) return "Tool Diameter is zero value. Change it to a positive integer." try: @@ -493,7 +486,7 @@ class CutOut(FlatCAMTool): try: margin = float(self.margin.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Margin value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Margin value is missing or wrong format. " "Add it and retry.")) return @@ -504,23 +497,23 @@ class CutOut(FlatCAMTool): try: gapsize = float(self.gapsize.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Gap size value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Gap size value is missing or wrong format. " "Add it and retry.")) return try: gaps = self.gaps.get_value() except TypeError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Number of gaps value is missing. Add it and retry.")) + self.app.inform.emit(_("[WARNING_NOTCL] Number of gaps value is missing. Add it and retry.")) return if gaps not in ['LR', 'TB', '2LR', '2TB', '4', '8']: - self.app.inform.emit(_tr("[WARNING_NOTCL] Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8. " + self.app.inform.emit(_("[WARNING_NOTCL] Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. ")) return if cutout_obj.multigeo is True: - self.app.inform.emit(_tr("[ERROR]Cutout operation cannot be done on a multi-geo Geometry.\n" + self.app.inform.emit(_("[ERROR]Cutout operation cannot be done on a multi-geo Geometry.\n" "Optionally, this Multi-geo Geometry can be converted to Single-geo Geometry,\n" "and after that perform Cutout.")) return @@ -583,12 +576,12 @@ class CutOut(FlatCAMTool): ymax + gapsize) cutout_obj.plot() - self.app.inform.emit(_tr("[success] Any form CutOut operation finished.")) + self.app.inform.emit(_("[success] Any form CutOut operation finished.")) self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) self.app.should_we_save = True def on_manual_gap_click(self): - self.app.inform.emit(_tr("Click on the selected geometry object perimeter to create a bridge gap ...")) + self.app.inform.emit(_("Click on the selected geometry object perimeter to create a bridge gap ...")) self.app.geo_editor.tool_shape.enabled = True try: @@ -598,12 +591,12 @@ class CutOut(FlatCAMTool): try: self.cutting_dia = float(self.dia.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " "Add it and retry.")) return if 0 in {self.cutting_dia}: - self.app.inform.emit(_tr("[ERROR_NOTCL]Tool Diameter is zero value. Change it to a positive integer.")) + self.app.inform.emit(_("[ERROR_NOTCL]Tool Diameter is zero value. Change it to a positive integer.")) return "Tool Diameter is zero value. Change it to a positive integer." try: @@ -613,7 +606,7 @@ class CutOut(FlatCAMTool): try: self.cutting_gapsize = float(self.gapsize.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Gap size value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Gap size value is missing or wrong format. " "Add it and retry.")) return @@ -629,7 +622,7 @@ class CutOut(FlatCAMTool): def doit(self, event): # do paint single only for left mouse clicks if event.button == 1: - self.app.inform.emit(_tr("Making manual bridge gap...")) + self.app.inform.emit(_("Making manual bridge gap...")) pos = self.app.plotcanvas.vispy_canvas.translate_coords(event.pos) self.on_manual_cutout(click_pos=pos) @@ -652,11 +645,11 @@ class CutOut(FlatCAMTool): try: cutout_obj = self.app.collection.get_by_name(str(name)) except: - self.app.inform.emit(_tr("[ERROR_NOTCL]Could not retrieve Geoemtry object: %s") % name) + self.app.inform.emit(_("[ERROR_NOTCL]Could not retrieve Geoemtry object: %s") % name) return "Could not retrieve object: %s" % name if cutout_obj is None: - self.app.inform.emit(_tr("[ERROR_NOTCL]Geometry object for manual cutout not found: %s") % cutout_obj) + self.app.inform.emit(_("[ERROR_NOTCL]Geometry object for manual cutout not found: %s") % cutout_obj) return # use the snapped position as reference @@ -666,7 +659,7 @@ class CutOut(FlatCAMTool): cutout_obj.subtract_polygon(cut_poly) cutout_obj.plot() - self.app.inform.emit(_tr("[success] Added manual Bridge Gap.")) + self.app.inform.emit(_("[success] Added manual Bridge Gap.")) self.app.should_we_save = True @@ -683,16 +676,16 @@ class CutOut(FlatCAMTool): try: cutout_obj = self.app.collection.get_by_name(str(name)) except: - self.app.inform.emit(_tr("[ERROR_NOTCL]Could not retrieve Gerber object: %s") % name) + self.app.inform.emit(_("[ERROR_NOTCL]Could not retrieve Gerber object: %s") % name) return "Could not retrieve object: %s" % name if cutout_obj is None: - self.app.inform.emit(_tr("[ERROR_NOTCL]There is no Gerber object selected for Cutout.\n" + self.app.inform.emit(_("[ERROR_NOTCL]There is no Gerber object selected for Cutout.\n" "Select one and try again.")) return if not isinstance(cutout_obj, FlatCAMGerber): - self.app.inform.emit(_tr("[ERROR_NOTCL]The selected object has to be of Gerber type.\n" + self.app.inform.emit(_("[ERROR_NOTCL]The selected object has to be of Gerber type.\n" "Select a Gerber file and try again.")) return @@ -703,12 +696,12 @@ class CutOut(FlatCAMTool): try: dia = float(self.dia.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " "Add it and retry.")) return if 0 in {dia}: - self.app.inform.emit(_tr("[ERROR_NOTCL]Tool Diameter is zero value. Change it to a positive integer.")) + self.app.inform.emit(_("[ERROR_NOTCL]Tool Diameter is zero value. Change it to a positive integer.")) return "Tool Diameter is zero value. Change it to a positive integer." try: @@ -718,7 +711,7 @@ class CutOut(FlatCAMTool): try: margin = float(self.margin.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Margin value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Margin value is missing or wrong format. " "Add it and retry.")) return diff --git a/flatcamTools/ToolDblSided.py b/flatcamTools/ToolDblSided.py index 3a3d817e..3e00ffae 100644 --- a/flatcamTools/ToolDblSided.py +++ b/flatcamTools/ToolDblSided.py @@ -11,16 +11,9 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolDblSided') -def _tr(text): - try: - return _(text) - except: - return text - - class DblSidedTool(FlatCAMTool): - toolName = _tr("2-Sided PCB") + toolName = _("2-Sided PCB") def __init__(self, app): FlatCAMTool.__init__(self, app) @@ -54,9 +47,9 @@ class DblSidedTool(FlatCAMTool): "Gerber to be mirrored." ) - self.mirror_gerber_button = QtWidgets.QPushButton(_tr("Mirror")) + self.mirror_gerber_button = QtWidgets.QPushButton(_("Mirror")) self.mirror_gerber_button.setToolTip( - _tr("Mirrors (flips) the specified object around \n" + _("Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" "object, but modifies it.") ) @@ -75,12 +68,12 @@ class DblSidedTool(FlatCAMTool): self.excobj_label = QtWidgets.QLabel("EXCELLON:") self.excobj_label.setToolTip( - _tr("Excellon Object to be mirrored.") + _("Excellon Object to be mirrored.") ) - self.mirror_exc_button = QtWidgets.QPushButton(_tr("Mirror")) + self.mirror_exc_button = QtWidgets.QPushButton(_("Mirror")) self.mirror_exc_button.setToolTip( - _tr("Mirrors (flips) the specified object around \n" + _("Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" "object, but modifies it.") ) @@ -99,12 +92,12 @@ class DblSidedTool(FlatCAMTool): self.geoobj_label = QtWidgets.QLabel("GEOMETRY:") self.geoobj_label.setToolTip( - _tr("Geometry Obj to be mirrored.") + _("Geometry Obj to be mirrored.") ) - self.mirror_geo_button = QtWidgets.QPushButton(_tr("Mirror")) + self.mirror_geo_button = QtWidgets.QPushButton(_("Mirror")) self.mirror_geo_button.setToolTip( - _tr("Mirrors (flips) the specified object around \n" + _("Mirrors (flips) the specified object around \n" "the specified axis. Does not create a new \n" "object, but modifies it.") ) @@ -118,9 +111,9 @@ class DblSidedTool(FlatCAMTool): ## Axis self.mirror_axis = RadioSet([{'label': 'X', 'value': 'X'}, {'label': 'Y', 'value': 'Y'}]) - self.mirax_label = QtWidgets.QLabel(_tr("Mirror Axis:")) + self.mirax_label = QtWidgets.QLabel(_("Mirror Axis:")) self.mirax_label.setToolTip( - _tr("Mirror vertically (X) or horizontally (Y).") + _("Mirror vertically (X) or horizontally (Y).") ) # grid_lay.addRow("Mirror Axis:", self.mirror_axis) self.empty_lb1 = QtWidgets.QLabel("") @@ -131,9 +124,9 @@ class DblSidedTool(FlatCAMTool): ## Axis Location self.axis_location = RadioSet([{'label': 'Point', 'value': 'point'}, {'label': 'Box', 'value': 'box'}]) - self.axloc_label = QtWidgets.QLabel(_tr("Axis Ref:")) + self.axloc_label = QtWidgets.QLabel(_("Axis Ref:")) self.axloc_label.setToolTip( - _tr("The axis should pass through a point or cut\n " + _("The axis should pass through a point or cut\n " "a specified box (in a FlatCAM object) through \n" "the center.") ) @@ -146,17 +139,17 @@ class DblSidedTool(FlatCAMTool): ## Point/Box self.point_box_container = QtWidgets.QVBoxLayout() - self.pb_label = QtWidgets.QLabel("%s" % _tr('Point/Box Reference:')) + self.pb_label = QtWidgets.QLabel("%s" % _('Point/Box Reference:')) self.pb_label.setToolTip( - _tr("If 'Point' is selected above it store the coordinates (x, y) through which\n" + _("If 'Point' is selected above it store the coordinates (x, y) through which\n" "the mirroring axis passes.\n" "If 'Box' is selected above, select here a FlatCAM object (Gerber, Exc or Geo).\n" "Through the center of this object pass the mirroring axis selected above.") ) - self.add_point_button = QtWidgets.QPushButton(_tr("Add")) + self.add_point_button = QtWidgets.QPushButton(_("Add")) self.add_point_button.setToolTip( - _tr("Add the coordinates in format (x, y) through which the mirroring axis \n " + _("Add the coordinates in format (x, y) through which the mirroring axis \n " "selected in 'MIRROR AXIS' pass.\n" "The (x, y) coordinates are captured by pressing SHIFT key\n" "and left mouse button click on canvas or you can enter the coords manually.") @@ -176,9 +169,9 @@ class DblSidedTool(FlatCAMTool): self.box_combo.setCurrentIndex(1) self.box_combo_type = QtWidgets.QComboBox() - self.box_combo_type.addItem(_tr("Gerber Reference Box Object")) - self.box_combo_type.addItem(_tr("Excellon Reference Box Object")) - self.box_combo_type.addItem(_tr("Geometry Reference Box Object")) + self.box_combo_type.addItem(_("Gerber Reference Box Object")) + self.box_combo_type.addItem(_("Excellon Reference Box Object")) + self.box_combo_type.addItem(_("Geometry Reference Box Object")) self.point_box_container.addWidget(self.box_combo_type) self.point_box_container.addWidget(self.box_combo) @@ -187,9 +180,9 @@ class DblSidedTool(FlatCAMTool): ## Alignment holes - self.ah_label = QtWidgets.QLabel("" % _tr('>Alignment Drill Coordinates:')) + self.ah_label = QtWidgets.QLabel("" % _('>Alignment Drill Coordinates:')) self.ah_label.setToolTip( - _tr( "Alignment holes (x1, y1), (x2, y2), ... " + _( "Alignment holes (x1, y1), (x2, y2), ... " "on one side of the mirror axis. For each set of (x, y) coordinates\n" "entered here, a pair of drills will be created:\n\n" "- one drill at the coordinates from the field\n" @@ -202,9 +195,9 @@ class DblSidedTool(FlatCAMTool): self.alignment_holes = EvalEntry() - self.add_drill_point_button = QtWidgets.QPushButton(_tr("Add")) + self.add_drill_point_button = QtWidgets.QPushButton(_("Add")) self.add_drill_point_button.setToolTip( - _tr("Add alignment drill holes coords in the format: (x1, y1), (x2, y2), ... \n" + _("Add alignment drill holes coords in the format: (x1, y1), (x2, y2), ... \n" "on one side of the mirror axis.\n\n" "The coordinates set can be obtained:\n" "- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" @@ -218,9 +211,9 @@ class DblSidedTool(FlatCAMTool): grid_lay1.addWidget(self.add_drill_point_button, 0, 3) ## Drill diameter for alignment holes - self.dt_label = QtWidgets.QLabel("%s:" % _tr('Alignment Drill Diameter')) + self.dt_label = QtWidgets.QLabel("%s:" % _('Alignment Drill Diameter')) self.dt_label.setToolTip( - _tr("Diameter of the drill for the " + _("Diameter of the drill for the " "alignment holes.") ) self.layout.addWidget(self.dt_label) @@ -229,27 +222,27 @@ class DblSidedTool(FlatCAMTool): self.layout.addLayout(grid_lay2) self.drill_dia = FCEntry() - self.dd_label = QtWidgets.QLabel(_tr("Drill diam.:")) + self.dd_label = QtWidgets.QLabel(_("Drill diam.:")) self.dd_label.setToolTip( - _tr("Diameter of the drill for the " + _("Diameter of the drill for the " "alignment holes.") ) grid_lay2.addWidget(self.dd_label, 0, 0) grid_lay2.addWidget(self.drill_dia, 0, 1) ## Buttons - self.create_alignment_hole_button = QtWidgets.QPushButton(_tr("Create Excellon Object")) + self.create_alignment_hole_button = QtWidgets.QPushButton(_("Create Excellon Object")) self.create_alignment_hole_button.setToolTip( - _tr("Creates an Excellon Object containing the\n" + _("Creates an Excellon Object containing the\n" "specified alignment holes and their mirror\n" "images.") ) # self.create_alignment_hole_button.setFixedWidth(40) grid_lay2.addWidget(self.create_alignment_hole_button, 1,0, 1, 2) - self.reset_button = QtWidgets.QPushButton(_tr("Reset")) + self.reset_button = QtWidgets.QPushButton(_("Reset")) self.reset_button.setToolTip( - _tr("Resets all the fields.") + _("Resets all the fields.") ) self.reset_button.setFixedWidth(40) grid_lay2.addWidget(self.reset_button, 1, 2) @@ -291,7 +284,7 @@ class DblSidedTool(FlatCAMTool): FlatCAMTool.run(self) self.set_tool_ui() - self.app.ui.notebook.setTabText(2, _tr("2-Sided Tool")) + self.app.ui.notebook.setTabText(2, _("2-Sided Tool")) def set_tool_ui(self): self.reset_fields() @@ -316,7 +309,7 @@ class DblSidedTool(FlatCAMTool): try: px, py = self.point_entry.get_value() except TypeError: - self.app.inform.emit(_tr("[WARNING_NOTCL] 'Point' reference is selected and 'Point' coordinates " + self.app.inform.emit(_("[WARNING_NOTCL] 'Point' reference is selected and 'Point' coordinates " "are missing. Add them and retry.")) return else: @@ -335,7 +328,7 @@ class DblSidedTool(FlatCAMTool): bb_obj = model_index.internalPointer().obj except AttributeError: self.app.inform.emit( - _tr("[WARNING_NOTCL] There is no Box reference object loaded. Load one and retry.")) + _("[WARNING_NOTCL] There is no Box reference object loaded. Load one and retry.")) return xmin, ymin, xmax, ymax = bb_obj.bounds() @@ -352,19 +345,19 @@ class DblSidedTool(FlatCAMTool): dia = float(self.drill_dia.get_value().replace(',', '.')) self.drill_dia.set_value(dia) except ValueError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " + self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " "Add it and retry.")) return if dia is '': - self.app.inform.emit(_tr("[WARNING_NOTCL]No value or wrong format in Drill Dia entry. Add it and retry.")) + self.app.inform.emit(_("[WARNING_NOTCL]No value or wrong format in Drill Dia entry. Add it and retry.")) return tools = {"1": {"C": dia}} # holes = self.alignment_holes.get_value() holes = eval('[{}]'.format(self.alignment_holes.text())) if not holes: - self.app.inform.emit(_tr("[WARNING_NOTCL] There are no Alignment Drill Coordinates to use. Add them and retry.")) + self.app.inform.emit(_("[WARNING_NOTCL] There are no Alignment Drill Coordinates to use. Add them and retry.")) return drills = [] @@ -386,7 +379,7 @@ class DblSidedTool(FlatCAMTool): self.app.new_object("excellon", "Alignment Drills", obj_init) self.drill_values = '' - self.app.inform.emit(_tr("[success] Excellon object with alignment drills created...")) + self.app.inform.emit(_("[success] Excellon object with alignment drills created...")) def on_mirror_gerber(self): selection_index = self.gerber_object_combo.currentIndex() @@ -395,11 +388,11 @@ class DblSidedTool(FlatCAMTool): try: fcobj = model_index.internalPointer().obj except Exception as e: - self.app.inform.emit(_tr("[WARNING_NOTCL] There is no Gerber object loaded ...")) + self.app.inform.emit(_("[WARNING_NOTCL] There is no Gerber object loaded ...")) return if not isinstance(fcobj, FlatCAMGerber): - self.app.inform.emit(_tr("[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored.")) + self.app.inform.emit(_("[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored.")) return axis = self.mirror_axis.get_value() @@ -409,7 +402,7 @@ class DblSidedTool(FlatCAMTool): try: px, py = self.point_entry.get_value() except TypeError: - self.app.inform.emit(_tr("[WARNING_NOTCL] 'Point' coordinates missing. " + self.app.inform.emit(_("[WARNING_NOTCL] 'Point' coordinates missing. " "Using Origin (0, 0) as mirroring reference.")) px, py = (0, 0) @@ -419,7 +412,7 @@ class DblSidedTool(FlatCAMTool): try: bb_obj = model_index_box.internalPointer().obj except Exception as e: - self.app.inform.emit(_tr("[WARNING_NOTCL] There is no Box object loaded ...")) + self.app.inform.emit(_("[WARNING_NOTCL] There is no Box object loaded ...")) return xmin, ymin, xmax, ymax = bb_obj.bounds() @@ -429,7 +422,7 @@ class DblSidedTool(FlatCAMTool): fcobj.mirror(axis, [px, py]) self.app.object_changed.emit(fcobj) fcobj.plot() - self.app.inform.emit(_tr("[success] Gerber %s was mirrored...") % str(fcobj.options['name'])) + self.app.inform.emit(_("[success] Gerber %s was mirrored...") % str(fcobj.options['name'])) def on_mirror_exc(self): selection_index = self.exc_object_combo.currentIndex() @@ -438,11 +431,11 @@ class DblSidedTool(FlatCAMTool): try: fcobj = model_index.internalPointer().obj except Exception as e: - self.app.inform.emit(_tr("[WARNING_NOTCL] There is no Excellon object loaded ...")) + self.app.inform.emit(_("[WARNING_NOTCL] There is no Excellon object loaded ...")) return if not isinstance(fcobj, FlatCAMExcellon): - self.app.inform.emit(_tr("[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored.")) + self.app.inform.emit(_("[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored.")) return axis = self.mirror_axis.get_value() @@ -453,7 +446,7 @@ class DblSidedTool(FlatCAMTool): px, py = self.point_entry.get_value() except Exception as e: log.debug("DblSidedTool.on_mirror_geo() --> %s" % str(e)) - self.app.inform.emit(_tr("[WARNING_NOTCL] There are no Point coordinates in the Point field. " + self.app.inform.emit(_("[WARNING_NOTCL] There are no Point coordinates in the Point field. " "Add coords and try again ...")) return else: @@ -463,7 +456,7 @@ class DblSidedTool(FlatCAMTool): bb_obj = model_index_box.internalPointer().obj except Exception as e: log.debug("DblSidedTool.on_mirror_geo() --> %s" % str(e)) - self.app.inform.emit(_tr("[WARNING_NOTCL] There is no Box object loaded ...")) + self.app.inform.emit(_("[WARNING_NOTCL] There is no Box object loaded ...")) return xmin, ymin, xmax, ymax = bb_obj.bounds() @@ -473,7 +466,7 @@ class DblSidedTool(FlatCAMTool): fcobj.mirror(axis, [px, py]) self.app.object_changed.emit(fcobj) fcobj.plot() - self.app.inform.emit(_tr("[success] Excellon %s was mirrored...") % str(fcobj.options['name'])) + self.app.inform.emit(_("[success] Excellon %s was mirrored...") % str(fcobj.options['name'])) def on_mirror_geo(self): selection_index = self.geo_object_combo.currentIndex() @@ -482,11 +475,11 @@ class DblSidedTool(FlatCAMTool): try: fcobj = model_index.internalPointer().obj except Exception as e: - self.app.inform.emit(_tr("[WARNING_NOTCL] There is no Geometry object loaded ...")) + self.app.inform.emit(_("[WARNING_NOTCL] There is no Geometry object loaded ...")) return if not isinstance(fcobj, FlatCAMGeometry): - self.app.inform.emit(_tr("[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored.")) + self.app.inform.emit(_("[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored.")) return axis = self.mirror_axis.get_value() @@ -500,7 +493,7 @@ class DblSidedTool(FlatCAMTool): try: bb_obj = model_index_box.internalPointer().obj except Exception as e: - self.app.inform.emit(_tr("[WARNING_NOTCL] There is no Box object loaded ...")) + self.app.inform.emit(_("[WARNING_NOTCL] There is no Box object loaded ...")) return xmin, ymin, xmax, ymax = bb_obj.bounds() @@ -510,7 +503,7 @@ class DblSidedTool(FlatCAMTool): fcobj.mirror(axis, [px, py]) self.app.object_changed.emit(fcobj) fcobj.plot() - self.app.inform.emit(_tr("[success] Geometry %s was mirrored...") % str(fcobj.options['name'])) + self.app.inform.emit(_("[success] Geometry %s was mirrored...") % str(fcobj.options['name'])) def on_point_add(self): val = self.app.defaults["global_point_clipboard_format"] % (self.app.pos[0], self.app.pos[1]) diff --git a/flatcamTools/ToolFilm.py b/flatcamTools/ToolFilm.py index c1e6eb90..c88b74ba 100644 --- a/flatcamTools/ToolFilm.py +++ b/flatcamTools/ToolFilm.py @@ -8,16 +8,9 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolFilm') -def _tr(text): - try: - return _(text) - except: - return text - - class Film(FlatCAMTool): - toolName = _tr("Film PCB") + toolName = _("Film PCB") def __init__(self, app): FlatCAMTool.__init__(self, app) @@ -48,9 +41,9 @@ class Film(FlatCAMTool): self.tf_type_obj_combo.setItemIcon(0, QtGui.QIcon("share/flatcam_icon16.png")) self.tf_type_obj_combo.setItemIcon(2, QtGui.QIcon("share/geometry16.png")) - self.tf_type_obj_combo_label = QtWidgets.QLabel(_tr("Object Type:")) + self.tf_type_obj_combo_label = QtWidgets.QLabel(_("Object Type:")) self.tf_type_obj_combo_label.setToolTip( - _tr("Specify the type of object for which to create the film.\n" + _("Specify the type of object for which to create the film.\n" "The object can be of type: Gerber or Geometry.\n" "The selection here decide the type of objects that will be\n" "in the Film Object combobox.") @@ -63,9 +56,9 @@ class Film(FlatCAMTool): self.tf_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) self.tf_object_combo.setCurrentIndex(1) - self.tf_object_label = QtWidgets.QLabel(_tr("Film Object:")) + self.tf_object_label = QtWidgets.QLabel(_("Film Object:")) self.tf_object_label.setToolTip( - _tr("Object for which to create the film.") + _("Object for which to create the film.") ) tf_form_layout.addRow(self.tf_object_label, self.tf_object_combo) @@ -81,9 +74,9 @@ class Film(FlatCAMTool): self.tf_type_box_combo.setItemIcon(0, QtGui.QIcon("share/flatcam_icon16.png")) self.tf_type_box_combo.setItemIcon(2, QtGui.QIcon("share/geometry16.png")) - self.tf_type_box_combo_label = QtWidgets.QLabel(_tr("Box Type:")) + self.tf_type_box_combo_label = QtWidgets.QLabel(_("Box Type:")) self.tf_type_box_combo_label.setToolTip( - _tr("Specify the type of object to be used as an container for\n" + _("Specify the type of object to be used as an container for\n" "film creation. It can be: Gerber or Geometry type." "The selection here decide the type of objects that will be\n" "in the Box Object combobox.") @@ -96,9 +89,9 @@ class Film(FlatCAMTool): self.tf_box_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) self.tf_box_combo.setCurrentIndex(1) - self.tf_box_combo_label = QtWidgets.QLabel(_tr("Box Object:")) + self.tf_box_combo_label = QtWidgets.QLabel(_("Box Object:")) self.tf_box_combo_label.setToolTip( - _tr("The actual object that is used a container for the\n " + _("The actual object that is used a container for the\n " "selected object for which we create the film.\n" "Usually it is the PCB outline but it can be also the\n" "same object for which the film is created.") @@ -108,9 +101,9 @@ class Film(FlatCAMTool): # Film Type self.film_type = RadioSet([{'label': 'Positive', 'value': 'pos'}, {'label': 'Negative', 'value': 'neg'}]) - self.film_type_label = QtWidgets.QLabel(_tr("Film Type:")) + self.film_type_label = QtWidgets.QLabel(_("Film Type:")) self.film_type_label.setToolTip( - _tr("Generate a Positive black film or a Negative film.\n" + _("Generate a Positive black film or a Negative film.\n" "Positive means that it will print the features\n" "with black on a white canvas.\n" "Negative means that it will print the features\n" @@ -122,9 +115,9 @@ class Film(FlatCAMTool): # Boundary for negative film generation self.boundary_entry = FCEntry() - self.boundary_label = QtWidgets.QLabel(_tr("Border:")) + self.boundary_label = QtWidgets.QLabel(_("Border:")) self.boundary_label.setToolTip( - _tr("Specify a border around the object.\n" + _("Specify a border around the object.\n" "Only for negative film.\n" "It helps if we use as a Box Object the same \n" "object as in Film Object. It will create a thick\n" @@ -136,9 +129,9 @@ class Film(FlatCAMTool): tf_form_layout.addRow(self.boundary_label, self.boundary_entry) self.film_scale_entry = FCEntry() - self.film_scale_label = QtWidgets.QLabel(_tr("Scale Stroke:")) + self.film_scale_label = QtWidgets.QLabel(_("Scale Stroke:")) self.film_scale_label.setToolTip( - _tr("Scale the line stroke thickness of each feature in the SVG file.\n" + _("Scale the line stroke thickness of each feature in the SVG file.\n" "It means that the line that envelope each SVG feature will be thicker or thinner,\n" "therefore the fine features may be more affected by this parameter.") ) @@ -149,9 +142,9 @@ class Film(FlatCAMTool): self.layout.addLayout(hlay) hlay.addStretch() - self.film_object_button = QtWidgets.QPushButton(_tr("Save Film")) + self.film_object_button = QtWidgets.QPushButton(_("Save Film")) self.film_object_button.setToolTip( - _tr("Create a Film for the selected object, within\n" + _("Create a Film for the selected object, within\n" "the specified box. Does not create a new \n " "FlatCAM object, but directly save it in SVG format\n" "which can be opened with Inkscape.") @@ -192,7 +185,7 @@ class Film(FlatCAMTool): FlatCAMTool.run(self) self.set_tool_ui() - self.app.ui.notebook.setTabText(2, _tr("Film Tool")) + self.app.ui.notebook.setTabText(2, _("Film Tool")) def install(self, icon=None, separator=None, **kwargs): FlatCAMTool.install(self, icon, separator, shortcut='ALT+L', **kwargs) @@ -213,13 +206,13 @@ class Film(FlatCAMTool): try: name = self.tf_object_combo.currentText() except: - self.app.inform.emit(_tr("[ERROR_NOTCL] No FlatCAM object selected. Load an object for Film and retry.")) + self.app.inform.emit(_("[ERROR_NOTCL] No FlatCAM object selected. Load an object for Film and retry.")) return try: boxname = self.tf_box_combo.currentText() except: - self.app.inform.emit(_tr("[ERROR_NOTCL] No FlatCAM object selected. Load an object for Box and retry.")) + self.app.inform.emit(_("[ERROR_NOTCL] No FlatCAM object selected. Load an object for Box and retry.")) return try: @@ -229,51 +222,51 @@ class Film(FlatCAMTool): try: border = float(self.boundary_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return try: scale_stroke_width = int(self.film_scale_entry.get_value()) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return if border is None: border = 0 - self.app.inform.emit(_tr("Generating Film ...")) + self.app.inform.emit(_("Generating Film ...")) if self.film_type.get_value() == "pos": try: filename, _ = QtWidgets.QFileDialog.getSaveFileName( - caption=_tr("Export SVG positive"), + caption=_("Export SVG positive"), directory=self.app.get_last_save_folder() + '/' + name, filter="*.svg") except TypeError: - filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_tr("Export SVG positive")) + filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export SVG positive")) filename = str(filename) if str(filename) == "": - self.app.inform.emit(_tr("[WARNING_NOTCL]Export SVG positive cancelled.")) + self.app.inform.emit(_("[WARNING_NOTCL]Export SVG positive cancelled.")) return else: self.app.export_svg_black(name, boxname, filename, scale_factor=scale_stroke_width) else: try: filename, _ = QtWidgets.QFileDialog.getSaveFileName( - caption=_tr("Export SVG negative"), + caption=_("Export SVG negative"), directory=self.app.get_last_save_folder() + '/' + name, filter="*.svg") except TypeError: - filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_tr("Export SVG negative")) + filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export SVG negative")) filename = str(filename) if str(filename) == "": - self.app.inform.emit(_tr("[WARNING_NOTCL]Export SVG negative cancelled.")) + self.app.inform.emit(_("[WARNING_NOTCL]Export SVG negative cancelled.")) return else: self.app.export_svg_negative(name, boxname, filename, border, scale_factor=scale_stroke_width) diff --git a/flatcamTools/ToolImage.py b/flatcamTools/ToolImage.py index 009fe98c..a41449e9 100644 --- a/flatcamTools/ToolImage.py +++ b/flatcamTools/ToolImage.py @@ -8,22 +8,15 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolImage') -def _tr(text): - try: - return _(text) - except: - return text - - class ToolImage(FlatCAMTool): - toolName = _tr("Image as Object") + toolName = _("Image as Object") def __init__(self, app): FlatCAMTool.__init__(self, app) # Title - title_label = QtWidgets.QLabel("%s" % _tr('Image to PCB')) + title_label = QtWidgets.QLabel("%s" % _('Image to PCB')) title_label.setStyleSheet(""" QLabel { @@ -45,9 +38,9 @@ class ToolImage(FlatCAMTool): self.tf_type_obj_combo.setItemIcon(0, QtGui.QIcon("share/flatcam_icon16.png")) self.tf_type_obj_combo.setItemIcon(1, QtGui.QIcon("share/geometry16.png")) - self.tf_type_obj_combo_label = QtWidgets.QLabel(_tr("Object Type:")) + self.tf_type_obj_combo_label = QtWidgets.QLabel(_("Object Type:")) self.tf_type_obj_combo_label.setToolTip( - _tr( "Specify the type of object to create from the image.\n" + _( "Specify the type of object to create from the image.\n" "It can be of type: Gerber or Geometry.") ) @@ -55,16 +48,16 @@ class ToolImage(FlatCAMTool): # DPI value of the imported image self.dpi_entry = IntEntry() - self.dpi_label = QtWidgets.QLabel(_tr("DPI value:")) + self.dpi_label = QtWidgets.QLabel(_("DPI value:")) self.dpi_label.setToolTip( - _tr( "Specify a DPI value for the image.") + _( "Specify a DPI value for the image.") ) ti_form_layout.addRow(self.dpi_label, self.dpi_entry) self.emty_lbl = QtWidgets.QLabel("") self.layout.addWidget(self.emty_lbl) - self.detail_label = QtWidgets.QLabel("%s:" % _tr('Level of detail')) + self.detail_label = QtWidgets.QLabel("%s:" % _('Level of detail')) self.layout.addWidget(self.detail_label) ti2_form_layout = QtWidgets.QFormLayout() @@ -73,18 +66,18 @@ class ToolImage(FlatCAMTool): # Type of image interpretation self.image_type = RadioSet([{'label': 'B/W', 'value': 'black'}, {'label': 'Color', 'value': 'color'}]) - self.image_type_label = QtWidgets.QLabel("%s:" % _tr('Image type')) + self.image_type_label = QtWidgets.QLabel("%s:" % _('Image type')) self.image_type_label.setToolTip( - _tr("Choose a method for the image interpretation.\n" + _("Choose a method for the image interpretation.\n" "B/W means a black & white image. Color means a colored image.") ) ti2_form_layout.addRow(self.image_type_label, self.image_type) # Mask value of the imported image when image monochrome self.mask_bw_entry = IntEntry() - self.mask_bw_label = QtWidgets.QLabel("%s B/W:" % _tr('Mask value')) + self.mask_bw_label = QtWidgets.QLabel("%s B/W:" % _('Mask value')) self.mask_bw_label.setToolTip( - _tr("Mask for monochrome image.\n" + _("Mask for monochrome image.\n" "Takes values between [0 ... 255].\n" "Decides the level of details to include\n" "in the resulting geometry.\n" @@ -95,9 +88,9 @@ class ToolImage(FlatCAMTool): # Mask value of the imported image for RED color when image color self.mask_r_entry = IntEntry() - self.mask_r_label = QtWidgets.QLabel("%s R:" % _tr('Mask value')) + self.mask_r_label = QtWidgets.QLabel("%s R:" % _('Mask value')) self.mask_r_label.setToolTip( - _tr("Mask for RED color.\n" + _("Mask for RED color.\n" "Takes values between [0 ... 255].\n" "Decides the level of details to include\n" "in the resulting geometry.") @@ -106,9 +99,9 @@ class ToolImage(FlatCAMTool): # Mask value of the imported image for GREEN color when image color self.mask_g_entry = IntEntry() - self.mask_g_label = QtWidgets.QLabel("%s G:" % _tr('Mask value')) + self.mask_g_label = QtWidgets.QLabel("%s G:" % _('Mask value')) self.mask_g_label.setToolTip( - _tr("Mask for GREEN color.\n" + _("Mask for GREEN color.\n" "Takes values between [0 ... 255].\n" "Decides the level of details to include\n" "in the resulting geometry.") @@ -117,9 +110,9 @@ class ToolImage(FlatCAMTool): # Mask value of the imported image for BLUE color when image color self.mask_b_entry = IntEntry() - self.mask_b_label = QtWidgets.QLabel("%s B:" % _tr('Mask value')) + self.mask_b_label = QtWidgets.QLabel("%s B:" % _('Mask value')) self.mask_b_label.setToolTip( - _tr("Mask for BLUE color.\n" + _("Mask for BLUE color.\n" "Takes values between [0 ... 255].\n" "Decides the level of details to include\n" "in the resulting geometry.") @@ -131,9 +124,9 @@ class ToolImage(FlatCAMTool): self.layout.addLayout(hlay) hlay.addStretch() - self.import_button = QtWidgets.QPushButton(_tr("Import image")) + self.import_button = QtWidgets.QPushButton(_("Import image")) self.import_button.setToolTip( - _tr("Open a image of raster type and then import it in FlatCAM.") + _("Open a image of raster type and then import it in FlatCAM.") ) hlay.addWidget(self.import_button) @@ -159,7 +152,7 @@ class ToolImage(FlatCAMTool): FlatCAMTool.run(self) self.set_tool_ui() - self.app.ui.notebook.setTabText(2, _tr("Image Tool")) + self.app.ui.notebook.setTabText(2, _("Image Tool")) def install(self, icon=None, separator=None, **kwargs): FlatCAMTool.install(self, icon, separator, **kwargs) @@ -189,10 +182,10 @@ class ToolImage(FlatCAMTool): "Jpeg File (*.JPG);;" \ "All Files (*.*)" try: - filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption=_tr("Import IMAGE"), + filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption=_("Import IMAGE"), directory=self.app.get_last_folder(), filter=filter) except TypeError: - filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption=_tr("Import IMAGE"), filter=filter) + filename, _ = QtWidgets.QFileDialog.getOpenFileName(caption=_("Import IMAGE"), filter=filter) filename = str(filename) type = self.tf_type_obj_combo.get_value().lower() @@ -202,7 +195,7 @@ class ToolImage(FlatCAMTool): self.mask_b_entry.get_value()] if filename == "": - self.app.inform.emit(_tr("Open cancelled.")) + self.app.inform.emit(_("Open cancelled.")) else: self.app.worker_task.emit({'fcn': self.app.import_image, 'params': [filename, type, dpi, mode, mask]}) diff --git a/flatcamTools/ToolMeasurement.py b/flatcamTools/ToolMeasurement.py index 0a5a27c2..caad61c1 100644 --- a/flatcamTools/ToolMeasurement.py +++ b/flatcamTools/ToolMeasurement.py @@ -11,16 +11,9 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolMeasurement') -def _tr(text): - try: - return _(text) - except: - return text - - class Measurement(FlatCAMTool): - toolName = _tr("Measurement") + toolName = _("Measurement") def __init__(self, app): FlatCAMTool.__init__(self, app) @@ -41,51 +34,51 @@ class Measurement(FlatCAMTool): form_layout_child_2 = QtWidgets.QFormLayout() form_layout_child_3 = QtWidgets.QFormLayout() - self.start_label = QtWidgets.QLabel("%s %s:" % (_tr('Start'), _tr('Coords'))) - self.start_label.setToolTip(_tr("This is measuring Start point coordinates.")) + self.start_label = QtWidgets.QLabel("%s %s:" % (_('Start'), _('Coords'))) + self.start_label.setToolTip(_("This is measuring Start point coordinates.")) - self.stop_label = QtWidgets.QLabel("%s %s:" % (_tr('Stop'), _tr('Coords'))) - self.stop_label.setToolTip(_tr("This is the measuring Stop point coordinates.")) + self.stop_label = QtWidgets.QLabel("%s %s:" % (_('Stop'), _('Coords'))) + self.stop_label.setToolTip(_("This is the measuring Stop point coordinates.")) self.distance_x_label = QtWidgets.QLabel("Dx:") - self.distance_x_label.setToolTip(_tr("This is the distance measured over the X axis.")) + self.distance_x_label.setToolTip(_("This is the distance measured over the X axis.")) self.distance_y_label = QtWidgets.QLabel("Dy:") - self.distance_y_label.setToolTip(_tr("This is the distance measured over the Y axis.")) + self.distance_y_label.setToolTip(_("This is the distance measured over the Y axis.")) - self.total_distance_label = QtWidgets.QLabel("%s:" % _tr('DISTANCE')) - self.total_distance_label.setToolTip(_tr("This is the point to point Euclidian distance.")) + self.total_distance_label = QtWidgets.QLabel("%s:" % _('DISTANCE')) + self.total_distance_label.setToolTip(_("This is the point to point Euclidian distance.")) self.units_entry_1 = FCEntry() - self.units_entry_1.setToolTip(_tr("Those are the units in which the distance is measured.")) + self.units_entry_1.setToolTip(_("Those are the units in which the distance is measured.")) self.units_entry_1.setDisabled(True) self.units_entry_1.setFocusPolicy(QtCore.Qt.NoFocus) self.units_entry_1.setFrame(False) self.units_entry_1.setFixedWidth(30) self.units_entry_2 = FCEntry() - self.units_entry_2.setToolTip(_tr("Those are the units in which the distance is measured.")) + self.units_entry_2.setToolTip(_("Those are the units in which the distance is measured.")) self.units_entry_2.setDisabled(True) self.units_entry_2.setFocusPolicy(QtCore.Qt.NoFocus) self.units_entry_2.setFrame(False) self.units_entry_2.setFixedWidth(30) self.units_entry_3 = FCEntry() - self.units_entry_3.setToolTip(_tr("Those are the units in which the distance is measured.")) + self.units_entry_3.setToolTip(_("Those are the units in which the distance is measured.")) self.units_entry_3.setDisabled(True) self.units_entry_3.setFocusPolicy(QtCore.Qt.NoFocus) self.units_entry_3.setFrame(False) self.units_entry_3.setFixedWidth(30) self.units_entry_4 = FCEntry() - self.units_entry_4.setToolTip(_tr("Those are the units in which the distance is measured.")) + self.units_entry_4.setToolTip(_("Those are the units in which the distance is measured.")) self.units_entry_4.setDisabled(True) self.units_entry_4.setFocusPolicy(QtCore.Qt.NoFocus) self.units_entry_4.setFrame(False) self.units_entry_4.setFixedWidth(30) self.units_entry_5 = FCEntry() - self.units_entry_5.setToolTip(_tr("Those are the units in which the distance is measured.")) + self.units_entry_5.setToolTip(_("Those are the units in which the distance is measured.")) self.units_entry_5.setDisabled(True) self.units_entry_5.setFocusPolicy(QtCore.Qt.NoFocus) self.units_entry_5.setFrame(False) @@ -93,32 +86,32 @@ class Measurement(FlatCAMTool): self.start_entry = FCEntry() self.start_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.start_entry.setToolTip(_tr("This is measuring Start point coordinates.")) + self.start_entry.setToolTip(_("This is measuring Start point coordinates.")) self.start_entry.setFixedWidth(100) self.stop_entry = FCEntry() self.stop_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.stop_entry.setToolTip(_tr("This is the measuring Stop point coordinates.")) + self.stop_entry.setToolTip(_("This is the measuring Stop point coordinates.")) self.stop_entry.setFixedWidth(100) self.distance_x_entry = FCEntry() self.distance_x_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.distance_x_entry.setToolTip(_tr("This is the distance measured over the X axis.")) + self.distance_x_entry.setToolTip(_("This is the distance measured over the X axis.")) self.distance_x_entry.setFixedWidth(100) self.distance_y_entry = FCEntry() self.distance_y_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.distance_y_entry.setToolTip(_tr("This is the distance measured over the Y axis.")) + self.distance_y_entry.setToolTip(_("This is the distance measured over the Y axis.")) self.distance_y_entry.setFixedWidth(100) self.total_distance_entry = FCEntry() self.total_distance_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) - self.total_distance_entry.setToolTip(_tr("This is the point to point Euclidian distance.")) + self.total_distance_entry.setToolTip(_("This is the point to point Euclidian distance.")) self.total_distance_entry.setFixedWidth(100) - self.measure_btn = QtWidgets.QPushButton(_tr("Measure")) + self.measure_btn = QtWidgets.QPushButton(_("Measure")) self.measure_btn.setFixedWidth(70) self.layout.addWidget(self.measure_btn) @@ -177,7 +170,7 @@ class Measurement(FlatCAMTool): self.toggle() self.set_tool_ui() - self.app.ui.notebook.setTabText(2, _tr("Meas. Tool")) + self.app.ui.notebook.setTabText(2, _("Meas. Tool")) def install(self, icon=None, separator=None, **kwargs): FlatCAMTool.install(self, icon, separator, shortcut='CTRL+M', **kwargs) @@ -270,7 +263,7 @@ class Measurement(FlatCAMTool): self.units_entry_4.set_value(str(self.units)) self.units_entry_5.set_value(str(self.units)) - self.app.inform.emit(_tr("MEASURING: Click on the Start point ...")) + self.app.inform.emit(_("MEASURING: Click on the Start point ...")) def on_key_release_meas(self, event): if event.key == 'escape': @@ -299,7 +292,7 @@ class Measurement(FlatCAMTool): pos = pos_canvas[0], pos_canvas[1] self.point1 = pos self.start_entry.set_value("(%.4f, %.4f)" % pos) - self.app.inform.emit(_tr("MEASURING: Click on the Destination point ...")) + self.app.inform.emit(_("MEASURING: Click on the Destination point ...")) if self.clicked_meas == 1: try: @@ -320,7 +313,7 @@ class Measurement(FlatCAMTool): self.stop_entry.set_value("(%.4f, %.4f)" % pos) - self.app.inform.emit(_tr("MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f") % + self.app.inform.emit(_("MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f") % (abs(dx), abs(dy), abs(d))) self.distance_x_entry.set_value('%.4f' % abs(dx)) diff --git a/flatcamTools/ToolMove.py b/flatcamTools/ToolMove.py index d1241ff2..321f213c 100644 --- a/flatcamTools/ToolMove.py +++ b/flatcamTools/ToolMove.py @@ -10,16 +10,9 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolMove') -def _tr(text): - try: - return _(text) - except: - return text - - class ToolMove(FlatCAMTool): - toolName = _tr("Move") + toolName = _("Move") def __init__(self, app): FlatCAMTool.__init__(self, app) @@ -74,14 +67,14 @@ class ToolMove(FlatCAMTool): self.app.command_active = "Move" if self.app.collection.get_selected(): - self.app.inform.emit(_tr("MOVE: Click on the Start point ...")) + self.app.inform.emit(_("MOVE: Click on the Start point ...")) # draw the selection box self.draw_sel_bbox() else: self.setVisible(False) # signal that there is no command active self.app.command_active = None - self.app.inform.emit(_tr("[WARNING_NOTCL] MOVE action cancelled. No object(s) to move.")) + self.app.inform.emit(_("[WARNING_NOTCL] MOVE action cancelled. No object(s) to move.")) def on_left_click(self, event): # mouse click will be accepted only if the left button is clicked @@ -103,7 +96,7 @@ class ToolMove(FlatCAMTool): else: self.point2 = copy(self.point1) self.point1 = pos - self.app.inform.emit(_tr("MOVE: Click on the Destination point ...")) + self.app.inform.emit(_("MOVE: Click on the Destination point ...")) if self.clicked_move == 1: try: @@ -121,14 +114,14 @@ class ToolMove(FlatCAMTool): dx = pos[0] - self.point1[0] dy = pos[1] - self.point1[1] - proc = self.app.proc_container.new(_tr("Moving ...")) + proc = self.app.proc_container.new(_("Moving ...")) def job_move(app_obj): obj_list = self.app.collection.get_selected() try: if not obj_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No object(s) selected.")) + self.app.inform.emit(_("[WARNING_NOTCL] No object(s) selected.")) return "fail" else: for sel_obj in obj_list: @@ -151,13 +144,13 @@ class ToolMove(FlatCAMTool): # self.app.collection.set_active(sel_obj.options['name']) except Exception as e: proc.done() - self.app.inform.emit(_tr('[ERROR_NOTCL] ' + self.app.inform.emit(_('[ERROR_NOTCL] ' 'ToolMove.on_left_click() --> %s') % str(e)) return "fail" proc.done() # delete the selection bounding box self.delete_shape() - self.app.inform.emit(_tr('[success]%s object was moved ...') % + self.app.inform.emit(_('[success]%s object was moved ...') % str(sel_obj.kind).capitalize()) self.app.worker_task.emit({'fcn': job_move, 'params': [self]}) @@ -167,7 +160,7 @@ class ToolMove(FlatCAMTool): return except TypeError: - self.app.inform.emit(_tr('[ERROR_NOTCL] ' + self.app.inform.emit(_('[ERROR_NOTCL] ' 'ToolMove.on_left_click() --> Error when mouse left click.')) return @@ -195,7 +188,7 @@ class ToolMove(FlatCAMTool): def on_key_press(self, event): if event.key == 'escape': # abort the move action - self.app.inform.emit(_tr("[WARNING_NOTCL]Move action cancelled.")) + self.app.inform.emit(_("[WARNING_NOTCL]Move action cancelled.")) self.toggle() return @@ -207,7 +200,7 @@ class ToolMove(FlatCAMTool): obj_list = self.app.collection.get_selected() if not obj_list: - self.app.inform.emit(_tr("[WARNING_NOTCL]Object(s) not selected")) + self.app.inform.emit(_("[WARNING_NOTCL]Object(s) not selected")) self.toggle() else: # if we have an object selected then we can safely activate the mouse events diff --git a/flatcamTools/ToolNonCopperClear.py b/flatcamTools/ToolNonCopperClear.py index d21ab8bd..26135fc3 100644 --- a/flatcamTools/ToolNonCopperClear.py +++ b/flatcamTools/ToolNonCopperClear.py @@ -8,16 +8,9 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolNonCopperClear') -def _tr(text): - try: - return _(text) - except: - return text - - class NonCopperClear(FlatCAMTool, Gerber): - toolName = _tr("Non-Copper Clearing") + toolName = _("Non-Copper Clearing") def __init__(self, app): self.app = app @@ -55,7 +48,7 @@ class NonCopperClear(FlatCAMTool, Gerber): self.object_label = QtWidgets.QLabel("Gerber:") self.object_label.setToolTip( - _tr("Gerber object to be cleared of excess copper. ") + _("Gerber object to be cleared of excess copper. ") ) e_lab_0 = QtWidgets.QLabel('') @@ -63,9 +56,9 @@ class NonCopperClear(FlatCAMTool, Gerber): form_layout.addRow(e_lab_0) #### Tools #### - self.tools_table_label = QtWidgets.QLabel('%s' % _tr('Tools Table')) + self.tools_table_label = QtWidgets.QLabel('%s' % _('Tools Table')) self.tools_table_label.setToolTip( - _tr("Tools pool from which the algorithm\n" + _("Tools pool from which the algorithm\n" "will pick the ones used for copper clearing.") ) self.tools_box.addWidget(self.tools_table_label) @@ -74,13 +67,13 @@ class NonCopperClear(FlatCAMTool, Gerber): self.tools_box.addWidget(self.tools_table) self.tools_table.setColumnCount(4) - self.tools_table.setHorizontalHeaderLabels(['#', _tr('Diameter'), 'TT', '']) + self.tools_table.setHorizontalHeaderLabels(['#', _('Diameter'), 'TT', '']) self.tools_table.setColumnHidden(3, True) self.tools_table.setSortingEnabled(False) # self.tools_table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.tools_table.horizontalHeaderItem(0).setToolTip( - _tr("This is the Tool Number.\n" + _("This is the Tool Number.\n" "Non copper clearing will start with the tool with the biggest \n" "diameter, continuing until there are no more tools.\n" "Only tools that create NCC clearing geometry will still be present\n" @@ -88,11 +81,11 @@ class NonCopperClear(FlatCAMTool, Gerber): "this function will not be able to create painting geometry.") ) self.tools_table.horizontalHeaderItem(1).setToolTip( - _tr("Tool Diameter. It's value (in current FlatCAM units) \n" + _("Tool Diameter. It's value (in current FlatCAM units) \n" "is the cut width into the material.")) self.tools_table.horizontalHeaderItem(2).setToolTip( - _tr("The Tool Type (TT) can be:
" + _("The Tool Type (TT) can be:
" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular,
" "the cut width in material is exactly the tool diameter.
" "- Ball -> informative only and make reference to the Ball type endmill.
" @@ -111,9 +104,9 @@ class NonCopperClear(FlatCAMTool, Gerber): hlay = QtWidgets.QHBoxLayout() self.tools_box.addLayout(hlay) - self.addtool_entry_lbl = QtWidgets.QLabel('%s:' % _tr('Tool Dia')) + self.addtool_entry_lbl = QtWidgets.QLabel('%s:' % _('Tool Dia')) self.addtool_entry_lbl.setToolTip( - _tr("Diameter for the new tool to add in the Tool Table") + _("Diameter for the new tool to add in the Tool Table") ) self.addtool_entry = FCEntry() @@ -125,9 +118,9 @@ class NonCopperClear(FlatCAMTool, Gerber): grid2 = QtWidgets.QGridLayout() self.tools_box.addLayout(grid2) - self.addtool_btn = QtWidgets.QPushButton(_tr('Add')) + self.addtool_btn = QtWidgets.QPushButton(_('Add')) self.addtool_btn.setToolTip( - _tr("Add a new tool to the Tool Table\n" + _("Add a new tool to the Tool Table\n" "with the diameter specified above.") ) @@ -137,9 +130,9 @@ class NonCopperClear(FlatCAMTool, Gerber): # "by first selecting a row in the Tool Table." # ) - self.deltool_btn = QtWidgets.QPushButton(_tr('Delete')) + self.deltool_btn = QtWidgets.QPushButton(_('Delete')) self.deltool_btn.setToolTip( - _tr("Delete a selection of tools in the Tool Table\n" + _("Delete a selection of tools in the Tool Table\n" "by first selecting a row(s) in the Tool Table.") ) @@ -156,9 +149,9 @@ class NonCopperClear(FlatCAMTool, Gerber): e_lab_1 = QtWidgets.QLabel('') grid3.addWidget(e_lab_1, 0, 0) - nccoverlabel = QtWidgets.QLabel(_tr('Overlap:')) + nccoverlabel = QtWidgets.QLabel(_('Overlap:')) nccoverlabel.setToolTip( - _tr("How much (fraction) of the tool width to overlap each tool pass.\n" + _("How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" "A value here of 0.25 means 25% from the tool diameter found above.\n\n" "Adjust the value starting with lower values\n" @@ -172,18 +165,18 @@ class NonCopperClear(FlatCAMTool, Gerber): self.ncc_overlap_entry = FCEntry() grid3.addWidget(self.ncc_overlap_entry, 1, 1) - nccmarginlabel = QtWidgets.QLabel(_tr('Margin:')) + nccmarginlabel = QtWidgets.QLabel(_('Margin:')) nccmarginlabel.setToolTip( - _tr("Bounding box margin.") + _("Bounding box margin.") ) grid3.addWidget(nccmarginlabel, 2, 0) self.ncc_margin_entry = FCEntry() grid3.addWidget(self.ncc_margin_entry, 2, 1) # Method - methodlabel = QtWidgets.QLabel(_tr('Method:')) + methodlabel = QtWidgets.QLabel(_('Method:')) methodlabel.setToolTip( - _tr("Algorithm for non-copper clearing:
" + _("Algorithm for non-copper clearing:
" "Standard: Fixed step inwards.
" "Seed-based: Outwards from seed.
" "Line-based: Parallel lines.") @@ -197,27 +190,27 @@ class NonCopperClear(FlatCAMTool, Gerber): grid3.addWidget(self.ncc_method_radio, 3, 1) # Connect lines - pathconnectlabel = QtWidgets.QLabel(_tr("Connect:")) + pathconnectlabel = QtWidgets.QLabel(_("Connect:")) pathconnectlabel.setToolTip( - _tr("Draw lines between resulting\n" + _("Draw lines between resulting\n" "segments to minimize tool lifts.") ) grid3.addWidget(pathconnectlabel, 4, 0) self.ncc_connect_cb = FCCheckBox() grid3.addWidget(self.ncc_connect_cb, 4, 1) - contourlabel = QtWidgets.QLabel(_tr("Contour:")) + contourlabel = QtWidgets.QLabel(_("Contour:")) contourlabel.setToolTip( - _tr("Cut around the perimeter of the polygon\n" + _("Cut around the perimeter of the polygon\n" "to trim rough edges.") ) grid3.addWidget(contourlabel, 5, 0) self.ncc_contour_cb = FCCheckBox() grid3.addWidget(self.ncc_contour_cb, 5, 1) - restlabel = QtWidgets.QLabel(_tr("Rest M.:")) + restlabel = QtWidgets.QLabel(_("Rest M.:")) restlabel.setToolTip( - _tr("If checked, use 'rest machining'.\n" + _("If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" "using the biggest tool and continue with the next tools,\n" "from bigger to smaller, to clear areas of copper that\n" @@ -229,9 +222,9 @@ class NonCopperClear(FlatCAMTool, Gerber): self.ncc_rest_cb = FCCheckBox() grid3.addWidget(self.ncc_rest_cb, 6, 1) - self.generate_ncc_button = QtWidgets.QPushButton(_tr('Generate Geometry')) + self.generate_ncc_button = QtWidgets.QPushButton(_('Generate Geometry')) self.generate_ncc_button.setToolTip( - _tr("Create the Geometry Object\n" + _("Create the Geometry Object\n" "for non-copper routing.") ) self.tools_box.addWidget(self.generate_ncc_button) @@ -271,7 +264,7 @@ class NonCopperClear(FlatCAMTool, Gerber): self.set_tool_ui() self.build_ui() - self.app.ui.notebook.setTabText(2, _tr("NCC Tool")) + self.app.ui.notebook.setTabText(2, _("NCC Tool")) def set_tool_ui(self): self.tools_frame.show() @@ -466,16 +459,16 @@ class NonCopperClear(FlatCAMTool, Gerber): try: tool_dia = float(self.addtool_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return if tool_dia is None: self.build_ui() - self.app.inform.emit(_tr("[WARNING_NOTCL] Please enter a tool diameter to add, in Float format.")) + self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter to add, in Float format.")) return if tool_dia == 0: - self.app.inform.emit(_tr("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) + self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) return # construct a list of all 'tooluid' in the self.tools @@ -499,12 +492,12 @@ class NonCopperClear(FlatCAMTool, Gerber): if float('%.4f' % tool_dia) in tool_dias: if muted is None: - self.app.inform.emit(_tr("[WARNING_NOTCL]Adding tool cancelled. Tool already in Tool Table.")) + self.app.inform.emit(_("[WARNING_NOTCL]Adding tool cancelled. Tool already in Tool Table.")) self.tools_table.itemChanged.connect(self.on_tool_edit) return else: if muted is None: - self.app.inform.emit(_tr("[success] New tool added to Tool Table.")) + self.app.inform.emit(_("[success] New tool added to Tool Table.")) self.ncc_tools.update({ int(self.tooluid): { 'tooldia': float('%.4f' % tool_dia), @@ -537,7 +530,7 @@ class NonCopperClear(FlatCAMTool, Gerber): try: new_tool_dia = float(self.tools_table.item(row, 1).text().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL] Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " "use a number.")) return @@ -546,7 +539,7 @@ class NonCopperClear(FlatCAMTool, Gerber): # identify the tool that was edited and get it's tooluid if new_tool_dia not in tool_dias: self.ncc_tools[tooluid]['tooldia'] = new_tool_dia - self.app.inform.emit(_tr("[success] Tool from Tool Table was edited.")) + self.app.inform.emit(_("[success] Tool from Tool Table was edited.")) self.build_ui() return else: @@ -557,7 +550,7 @@ class NonCopperClear(FlatCAMTool, Gerber): break restore_dia_item = self.tools_table.item(row, 1) restore_dia_item.setText(str(old_tool_dia)) - self.app.inform.emit(_tr("[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table.")) + self.app.inform.emit(_("[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table.")) self.build_ui() def on_tool_delete(self, rows_to_delete=None, all=None): @@ -596,12 +589,12 @@ class NonCopperClear(FlatCAMTool, Gerber): self.ncc_tools.pop(t, None) except AttributeError: - self.app.inform.emit(_tr("[WARNING_NOTCL]Delete failed. Select a tool to delete.")) + self.app.inform.emit(_("[WARNING_NOTCL]Delete failed. Select a tool to delete.")) return except Exception as e: log.debug(str(e)) - self.app.inform.emit(_tr("[success] Tool(s) deleted from Tool Table.")) + self.app.inform.emit(_("[success] Tool(s) deleted from Tool Table.")) self.build_ui() def on_ncc(self): @@ -613,7 +606,7 @@ class NonCopperClear(FlatCAMTool, Gerber): try: over = float(self.ncc_overlap_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return over = over if over else self.app.defaults["tools_nccoverlap"] @@ -625,7 +618,7 @@ class NonCopperClear(FlatCAMTool, Gerber): try: margin = float(self.ncc_margin_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return margin = margin if margin else self.app.defaults["tools_nccmargin"] @@ -647,14 +640,14 @@ class NonCopperClear(FlatCAMTool, Gerber): try: self.ncc_obj = self.app.collection.get_by_name(self.obj_name) except: - self.app.inform.emit(_tr("[ERROR_NOTCL]Could not retrieve object: %s") % self.obj_name) + self.app.inform.emit(_("[ERROR_NOTCL]Could not retrieve object: %s") % self.obj_name) return "Could not retrieve object: %s" % self.obj_name # Prepare non-copper polygons try: bounding_box = self.ncc_obj.solid_geometry.envelope.buffer(distance=margin, join_style=JOIN_STYLE.mitre) except AttributeError: - self.app.inform.emit(_tr("[ERROR_NOTCL]No Gerber file available.")) + self.app.inform.emit(_("[ERROR_NOTCL]No Gerber file available.")) return # calculate the empty area by subtracting the solid_geometry from the object bounding box geometry @@ -692,7 +685,7 @@ class NonCopperClear(FlatCAMTool, Gerber): sorted_tools.sort(reverse=True) # Do job in background - proc = self.app.proc_container.new(_tr("Clearing Non-Copper areas.")) + proc = self.app.proc_container.new(_("Clearing Non-Copper areas.")) def initialize(geo_obj, app_obj): assert isinstance(geo_obj, FlatCAMGeometry), \ @@ -710,7 +703,7 @@ class NonCopperClear(FlatCAMTool, Gerber): current_uid = int(1) for tool in sorted_tools: - self.app.inform.emit(_tr('[success] Non-Copper Clearing with ToolDia = %s started.') % str(tool)) + self.app.inform.emit(_('[success] Non-Copper Clearing with ToolDia = %s started.') % str(tool)) cleared_geo[:] = [] # Get remaining tools offset @@ -779,14 +772,14 @@ class NonCopperClear(FlatCAMTool, Gerber): app_obj.new_object("geometry", name, initialize) except Exception as e: proc.done() - self.app.inform.emit(_tr('[ERROR_NOTCL] NCCTool.clear_non_copper() --> %s') % str(e)) + self.app.inform.emit(_('[ERROR_NOTCL] NCCTool.clear_non_copper() --> %s') % str(e)) return proc.done() if app_obj.poly_not_cleared is False: - self.app.inform.emit(_tr('[success] NCC Tool finished.')) + self.app.inform.emit(_('[success] NCC Tool finished.')) else: - self.app.inform.emit(_tr('[WARNING_NOTCL] NCC Tool finished but some PCB features could not be cleared. ' + self.app.inform.emit(_('[WARNING_NOTCL] NCC Tool finished but some PCB features could not be cleared. ' 'Check the result.')) # reset the variable for next use app_obj.poly_not_cleared = False @@ -794,7 +787,7 @@ class NonCopperClear(FlatCAMTool, Gerber): # focus on Selected Tab self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab) self.tools_frame.hide() - self.app.ui.notebook.setTabText(2, _tr("Tools")) + self.app.ui.notebook.setTabText(2, _("Tools")) # Promise object with the new name self.app.collection.promise(name) @@ -814,7 +807,7 @@ class NonCopperClear(FlatCAMTool, Gerber): sorted_tools.sort(reverse=True) # Do job in background - proc = self.app.proc_container.new(_tr("Clearing Non-Copper areas.")) + proc = self.app.proc_container.new(_("Clearing Non-Copper areas.")) def initialize_rm(geo_obj, app_obj): assert isinstance(geo_obj, FlatCAMGeometry), \ @@ -832,7 +825,7 @@ class NonCopperClear(FlatCAMTool, Gerber): # Generate area for each tool while sorted_tools: tool = sorted_tools.pop(0) - self.app.inform.emit(_tr('[success] Non-Copper Rest Clearing with ToolDia = %s started.') % str(tool)) + self.app.inform.emit(_('[success] Non-Copper Rest Clearing with ToolDia = %s started.') % str(tool)) tool_used = tool - 1e-12 cleared_geo[:] = [] @@ -930,7 +923,7 @@ class NonCopperClear(FlatCAMTool, Gerber): app_obj.new_object("geometry", name, initialize_rm) except Exception as e: proc.done() - self.app.inform.emit(_tr('[ERROR_NOTCL] NCCTool.clear_non_copper_rest() --> %s') % str(e)) + self.app.inform.emit(_('[ERROR_NOTCL] NCCTool.clear_non_copper_rest() --> %s') % str(e)) return if app_obj.poly_not_cleared is True: @@ -938,7 +931,7 @@ class NonCopperClear(FlatCAMTool, Gerber): # focus on Selected Tab self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab) else: - self.app.inform.emit(_tr('[ERROR_NOTCL] NCC Tool finished but could not clear the object ' + self.app.inform.emit(_('[ERROR_NOTCL] NCC Tool finished but could not clear the object ' 'with current settings.')) # focus on Project Tab self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py index 21595dee..04d803d1 100644 --- a/flatcamTools/ToolPaint.py +++ b/flatcamTools/ToolPaint.py @@ -7,16 +7,9 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolPaint') -def _tr(text): - try: - return _(text) - except: - return text - - class ToolPaint(FlatCAMTool, Gerber): - toolName = _tr("Paint Area") + toolName = _("Paint Area") def __init__(self, app): self.app = app @@ -52,18 +45,18 @@ class ToolPaint(FlatCAMTool, Gerber): self.object_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex())) self.object_combo.setCurrentIndex(1) - self.object_label = QtWidgets.QLabel(_tr("Geometry:")) + self.object_label = QtWidgets.QLabel(_("Geometry:")) self.object_label.setToolTip( - _tr("Geometry object to be painted. ") + _("Geometry object to be painted. ") ) e_lab_0 = QtWidgets.QLabel('') form_layout.addRow(self.object_label, self.object_combo) form_layout.addRow(e_lab_0) #### Tools #### - self.tools_table_label = QtWidgets.QLabel('%s' % _tr('Tools Table')) + self.tools_table_label = QtWidgets.QLabel('%s' % _('Tools Table')) self.tools_table_label.setToolTip( - _tr("Tools pool from which the algorithm\n" + _("Tools pool from which the algorithm\n" "will pick the ones used for painting.") ) self.tools_box.addWidget(self.tools_table_label) @@ -72,13 +65,13 @@ class ToolPaint(FlatCAMTool, Gerber): self.tools_box.addWidget(self.tools_table) self.tools_table.setColumnCount(4) - self.tools_table.setHorizontalHeaderLabels(['#', _tr('Diameter'), 'TT', '']) + self.tools_table.setHorizontalHeaderLabels(['#', _('Diameter'), 'TT', '']) self.tools_table.setColumnHidden(3, True) # self.tools_table.setSortingEnabled(False) # self.tools_table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.tools_table.horizontalHeaderItem(0).setToolTip( - _tr("This is the Tool Number.\n" + _("This is the Tool Number.\n" "Painting will start with the tool with the biggest diameter,\n" "continuing until there are no more tools.\n" "Only tools that create painting geometry will still be present\n" @@ -86,11 +79,11 @@ class ToolPaint(FlatCAMTool, Gerber): "this function will not be able to create painting geometry.") ) self.tools_table.horizontalHeaderItem(1).setToolTip( - _tr("Tool Diameter. It's value (in current FlatCAM units) \n" + _("Tool Diameter. It's value (in current FlatCAM units) \n" "is the cut width into the material.")) self.tools_table.horizontalHeaderItem(2).setToolTip( - _tr("The Tool Type (TT) can be:
" + _("The Tool Type (TT) can be:
" "- Circular with 1 ... 4 teeth -> it is informative only. Being circular,
" "the cut width in material is exactly the tool diameter.
" "- Ball -> informative only and make reference to the Ball type endmill.
" @@ -109,9 +102,9 @@ class ToolPaint(FlatCAMTool, Gerber): hlay = QtWidgets.QHBoxLayout() self.tools_box.addLayout(hlay) - self.addtool_entry_lbl = QtWidgets.QLabel('%s:' % _tr('Tool Dia')) + self.addtool_entry_lbl = QtWidgets.QLabel('%s:' % _('Tool Dia')) self.addtool_entry_lbl.setToolTip( - _tr("Diameter for the new tool.") + _("Diameter for the new tool.") ) self.addtool_entry = FCEntry() @@ -123,9 +116,9 @@ class ToolPaint(FlatCAMTool, Gerber): grid2 = QtWidgets.QGridLayout() self.tools_box.addLayout(grid2) - self.addtool_btn = QtWidgets.QPushButton(_tr('Add')) + self.addtool_btn = QtWidgets.QPushButton(_('Add')) self.addtool_btn.setToolTip( - _tr("Add a new tool to the Tool Table\n" + _("Add a new tool to the Tool Table\n" "with the diameter specified above.") ) @@ -135,9 +128,9 @@ class ToolPaint(FlatCAMTool, Gerber): # "by first selecting a row in the Tool Table." # ) - self.deltool_btn = QtWidgets.QPushButton(_tr('Delete')) + self.deltool_btn = QtWidgets.QPushButton(_('Delete')) self.deltool_btn.setToolTip( - _tr("Delete a selection of tools in the Tool Table\n" + _("Delete a selection of tools in the Tool Table\n" "by first selecting a row(s) in the Tool Table.") ) @@ -152,9 +145,9 @@ class ToolPaint(FlatCAMTool, Gerber): self.tools_box.addLayout(grid3) # Overlap - ovlabel = QtWidgets.QLabel(_tr('Overlap:')) + ovlabel = QtWidgets.QLabel(_('Overlap:')) ovlabel.setToolTip( - _tr("How much (fraction) of the tool width to overlap each tool pass.\n" + _("How much (fraction) of the tool width to overlap each tool pass.\n" "Example:\n" "A value here of 0.25 means 25% from the tool diameter found above.\n\n" "Adjust the value starting with lower values\n" @@ -169,9 +162,9 @@ class ToolPaint(FlatCAMTool, Gerber): grid3.addWidget(self.paintoverlap_entry, 1, 1) # Margin - marginlabel = QtWidgets.QLabel(_tr('Margin:')) + marginlabel = QtWidgets.QLabel(_('Margin:')) marginlabel.setToolTip( - _tr("Distance by which to avoid\n" + _("Distance by which to avoid\n" "the edges of the polygon to\n" "be painted.") ) @@ -180,9 +173,9 @@ class ToolPaint(FlatCAMTool, Gerber): grid3.addWidget(self.paintmargin_entry, 2, 1) # Method - methodlabel = QtWidgets.QLabel(_tr('Method:')) + methodlabel = QtWidgets.QLabel(_('Method:')) methodlabel.setToolTip( - _tr("Algorithm for non-copper clearing:
" + _("Algorithm for non-copper clearing:
" "Standard: Fixed step inwards.
" "Seed-based: Outwards from seed.
" "Line-based: Parallel lines.") @@ -196,27 +189,27 @@ class ToolPaint(FlatCAMTool, Gerber): grid3.addWidget(self.paintmethod_combo, 3, 1) # Connect lines - pathconnectlabel = QtWidgets.QLabel(_tr("Connect:")) + pathconnectlabel = QtWidgets.QLabel(_("Connect:")) pathconnectlabel.setToolTip( - _tr("Draw lines between resulting\n" + _("Draw lines between resulting\n" "segments to minimize tool lifts.") ) grid3.addWidget(pathconnectlabel, 4, 0) self.pathconnect_cb = FCCheckBox() grid3.addWidget(self.pathconnect_cb, 4, 1) - contourlabel = QtWidgets.QLabel(_tr("Contour:")) + contourlabel = QtWidgets.QLabel(_("Contour:")) contourlabel.setToolTip( - _tr("Cut around the perimeter of the polygon\n" + _("Cut around the perimeter of the polygon\n" "to trim rough edges.") ) grid3.addWidget(contourlabel, 5, 0) self.paintcontour_cb = FCCheckBox() grid3.addWidget(self.paintcontour_cb, 5, 1) - restlabel = QtWidgets.QLabel(_tr("Rest M.:")) + restlabel = QtWidgets.QLabel(_("Rest M.:")) restlabel.setToolTip( - _tr("If checked, use 'rest machining'.\n" + _("If checked, use 'rest machining'.\n" "Basically it will clear copper outside PCB features,\n" "using the biggest tool and continue with the next tools,\n" "from bigger to smaller, to clear areas of copper that\n" @@ -229,9 +222,9 @@ class ToolPaint(FlatCAMTool, Gerber): grid3.addWidget(self.rest_cb, 6, 1) # Polygon selection - selectlabel = QtWidgets.QLabel(_tr('Selection:')) + selectlabel = QtWidgets.QLabel(_('Selection:')) selectlabel.setToolTip( - _tr("How to select the polygons to paint.
" + _("How to select the polygons to paint.
" "Options:
" "- Single: left mouse click on the polygon to be painted.
" "- All: paint all polygons.") @@ -246,9 +239,9 @@ class ToolPaint(FlatCAMTool, Gerber): grid3.addWidget(self.selectmethod_combo, 7, 1) # GO Button - self.generate_paint_button = QtWidgets.QPushButton(_tr('Create Paint Geometry')) + self.generate_paint_button = QtWidgets.QPushButton(_('Create Paint Geometry')) self.generate_paint_button.setToolTip( - _tr("After clicking here, click inside
" + _("After clicking here, click inside
" "the polygon you wish to be painted if Single is selected.
" "If All is selected then the Paint will start after click.
" "A new Geometry object with the tool
" @@ -329,7 +322,7 @@ class ToolPaint(FlatCAMTool, Gerber): FlatCAMTool.run(self) self.set_tool_ui() - self.app.ui.notebook.setTabText(2, _tr("Paint Tool")) + self.app.ui.notebook.setTabText(2, _("Paint Tool")) def on_radio_selection(self): if self.selectmethod_combo.get_value() == 'single': @@ -526,13 +519,13 @@ class ToolPaint(FlatCAMTool, Gerber): try: tool_dia = float(self.addtool_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return if tool_dia is None: self.build_ui() - self.app.inform.emit(_tr("[WARNING_NOTCL] Please enter a tool diameter to add, in Float format.")) + self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter to add, in Float format.")) return # construct a list of all 'tooluid' in the self.tools @@ -556,12 +549,12 @@ class ToolPaint(FlatCAMTool, Gerber): if float('%.4f' % tool_dia) in tool_dias: if muted is None: - self.app.inform.emit(_tr("[WARNING_NOTCL]Adding tool cancelled. Tool already in Tool Table.")) + self.app.inform.emit(_("[WARNING_NOTCL]Adding tool cancelled. Tool already in Tool Table.")) self.tools_table.itemChanged.connect(self.on_tool_edit) return else: if muted is None: - self.app.inform.emit(_tr("[success] New tool added to Tool Table.")) + self.app.inform.emit(_("[success] New tool added to Tool Table.")) self.paint_tools.update({ int(self.tooluid): { 'tooldia': float('%.4f' % tool_dia), @@ -596,7 +589,7 @@ class ToolPaint(FlatCAMTool, Gerber): try: new_tool_dia = float(self.tools_table.item(row, 1).text().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return tooluid = int(self.tools_table.item(row, 3).text()) @@ -604,7 +597,7 @@ class ToolPaint(FlatCAMTool, Gerber): # identify the tool that was edited and get it's tooluid if new_tool_dia not in tool_dias: self.paint_tools[tooluid]['tooldia'] = new_tool_dia - self.app.inform.emit(_tr("[success] Tool from Tool Table was edited.")) + self.app.inform.emit(_("[success] Tool from Tool Table was edited.")) self.build_ui() return else: @@ -615,7 +608,7 @@ class ToolPaint(FlatCAMTool, Gerber): break restore_dia_item = self.tools_table.item(row, 1) restore_dia_item.setText(str(old_tool_dia)) - self.app.inform.emit(_tr("[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table.")) + self.app.inform.emit(_("[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table.")) self.build_ui() # def on_tool_copy(self, all=None): @@ -712,18 +705,18 @@ class ToolPaint(FlatCAMTool, Gerber): self.paint_tools.pop(t, None) except AttributeError: - self.app.inform.emit(_tr("[WARNING_NOTCL]Delete failed. Select a tool to delete.")) + self.app.inform.emit(_("[WARNING_NOTCL]Delete failed. Select a tool to delete.")) return except Exception as e: log.debug(str(e)) - self.app.inform.emit(_tr("[success] Tool(s) deleted from Tool Table.")) + self.app.inform.emit(_("[success] Tool(s) deleted from Tool Table.")) self.build_ui() def on_paint_button_click(self): - self.app.report_usage(_tr("geometry_on_paint_button")) + self.app.report_usage(_("geometry_on_paint_button")) - self.app.inform.emit(_tr("[WARNING_NOTCL]Click inside the desired polygon.")) + self.app.inform.emit(_("[WARNING_NOTCL]Click inside the desired polygon.")) try: overlap = float(self.paintoverlap_entry.get_value()) except ValueError: @@ -731,7 +724,7 @@ class ToolPaint(FlatCAMTool, Gerber): try: overlap = float(self.paintoverlap_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return @@ -745,17 +738,17 @@ class ToolPaint(FlatCAMTool, Gerber): try: self.paint_obj = self.app.collection.get_by_name(str(self.obj_name)) except: - self.app.inform.emit(_tr("[ERROR_NOTCL]Could not retrieve object: %s") % self.obj_name) + self.app.inform.emit(_("[ERROR_NOTCL]Could not retrieve object: %s") % self.obj_name) return if self.paint_obj is None: - self.app.inform.emit(_tr("[ERROR_NOTCL]Object not found: %s") % self.paint_obj) + self.app.inform.emit(_("[ERROR_NOTCL]Object not found: %s") % self.paint_obj) return # test if the Geometry Object is multigeo and return Fail if True because # for now Paint don't work on MultiGeo if self.paint_obj.multigeo is True: - self.app.inform.emit(_tr("[ERROR_NOTCL] Can't do Paint on MultiGeo geometries ...")) + self.app.inform.emit(_("[ERROR_NOTCL] Can't do Paint on MultiGeo geometries ...")) return 'Fail' o_name = '%s_multitool_paint' % (self.obj_name) @@ -768,7 +761,7 @@ class ToolPaint(FlatCAMTool, Gerber): contour=contour) if select_method == "single": - self.app.inform.emit(_tr("[WARNING_NOTCL]Click inside the desired polygon.")) + self.app.inform.emit(_("[WARNING_NOTCL]Click inside the desired polygon.")) # use the first tool in the tool table; get the diameter tooldia = float('%.4f' % float(self.tools_table.item(0, 1).text())) @@ -777,7 +770,7 @@ class ToolPaint(FlatCAMTool, Gerber): def doit(event): # do paint single only for left mouse clicks if event.button == 1: - self.app.inform.emit(_tr("Painting polygon...")) + self.app.inform.emit(_("Painting polygon...")) self.app.plotcanvas.vis_disconnect('mouse_press', doit) pos = self.app.plotcanvas.vispy_canvas.translate_coords(event.pos) self.paint_poly(self.paint_obj, @@ -822,17 +815,17 @@ class ToolPaint(FlatCAMTool, Gerber): try: paint_margin = float(self.paintmargin_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return # No polygon? if poly is None: self.app.log.warning('No polygon found.') - self.app.inform.emit(_tr('[WARNING] No polygon found.')) + self.app.inform.emit(_('[WARNING] No polygon found.')) return - proc = self.app.proc_container.new(_tr("Painting polygon.")) + proc = self.app.proc_container.new(_("Painting polygon.")) name = outname if outname else self.obj_name + "_paint" @@ -874,7 +867,7 @@ class ToolPaint(FlatCAMTool, Gerber): geo_obj.solid_geometry += list(cp.get_objects()) return cp else: - self.app.inform.emit(_tr('[ERROR_NOTCL] Geometry could not be painted completely')) + self.app.inform.emit(_('[ERROR_NOTCL] Geometry could not be painted completely')) return None geo_obj.solid_geometry = [] @@ -900,7 +893,7 @@ class ToolPaint(FlatCAMTool, Gerber): except Exception as e: log.debug("Could not Paint the polygons. %s" % str(e)) self.app.inform.emit( - _tr("[ERROR] Could not do Paint. Try a different combination of parameters. " + _("[ERROR] Could not do Paint. Try a different combination of parameters. " "Or a different strategy of paint\n%s") % str(e)) return @@ -942,13 +935,13 @@ class ToolPaint(FlatCAMTool, Gerber): app_obj.new_object("geometry", name, gen_paintarea) except Exception as e: proc.done() - self.app.inform.emit(_tr('[ERROR_NOTCL] PaintTool.paint_poly() --> %s') % str(e)) + self.app.inform.emit(_('[ERROR_NOTCL] PaintTool.paint_poly() --> %s') % str(e)) return proc.done() # focus on Selected Tab self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab) - self.app.inform.emit(_tr("Polygon Paint started ...")) + self.app.inform.emit(_("Polygon Paint started ...")) # Promise object with the new name self.app.collection.promise(name) @@ -977,11 +970,11 @@ class ToolPaint(FlatCAMTool, Gerber): try: paint_margin = float(self.paintmargin_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return - proc = self.app.proc_container.new(_tr("Painting polygon...")) + proc = self.app.proc_container.new(_("Painting polygon...")) name = outname if outname else self.obj_name + "_paint" over = overlap conn = connect @@ -1096,7 +1089,7 @@ class ToolPaint(FlatCAMTool, Gerber): except Exception as e: log.debug("Could not Paint the polygons. %s" % str(e)) self.app.inform.emit( - _tr("[ERROR] Could not do Paint All. Try a different combination of parameters. " + _("[ERROR] Could not do Paint All. Try a different combination of parameters. " "Or a different Method of paint\n%s") % str(e)) return @@ -1120,7 +1113,7 @@ class ToolPaint(FlatCAMTool, Gerber): if geo_obj.tools[tooluid]['solid_geometry']: has_solid_geo += 1 if has_solid_geo == 0: - self.app.inform.emit(_tr("[ERROR] There is no Painting Geometry in the file.\n" + self.app.inform.emit(_("[ERROR] There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted geometry.\n" "Change the painting parameters and try again.")) return @@ -1129,7 +1122,7 @@ class ToolPaint(FlatCAMTool, Gerber): # print("Indexing...", end=' ') # geo_obj.make_index() - self.app.inform.emit(_tr("[success] Paint All Done.")) + self.app.inform.emit(_("[success] Paint All Done.")) # Initializes the new geometry object def gen_paintarea_rest_machining(geo_obj, app_obj): @@ -1185,7 +1178,7 @@ class ToolPaint(FlatCAMTool, Gerber): except Exception as e: log.debug("Could not Paint the polygons. %s" % str(e)) self.app.inform.emit( - _tr("[ERROR] Could not do Paint All. Try a different combination of parameters. " + _("[ERROR] Could not do Paint All. Try a different combination of parameters. " "Or a different Method of paint\n%s") % str(e)) return @@ -1215,7 +1208,7 @@ class ToolPaint(FlatCAMTool, Gerber): if geo_obj.tools[tooluid]['solid_geometry']: has_solid_geo += 1 if has_solid_geo == 0: - self.app.inform.emit(_tr("[ERROR_NOTCL] There is no Painting Geometry in the file.\n" + self.app.inform.emit(_("[ERROR_NOTCL] There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted geometry.\n" "Change the painting parameters and try again.")) return @@ -1224,7 +1217,7 @@ class ToolPaint(FlatCAMTool, Gerber): # print("Indexing...", end=' ') # geo_obj.make_index() - self.app.inform.emit(_tr("[success] Paint All with Rest-Machining done.")) + self.app.inform.emit(_("[success] Paint All with Rest-Machining done.")) def job_thread(app_obj): try: @@ -1240,7 +1233,7 @@ class ToolPaint(FlatCAMTool, Gerber): # focus on Selected Tab self.app.ui.notebook.setCurrentWidget(self.app.ui.selected_tab) - self.app.inform.emit(_tr("Polygon Paint started ...")) + self.app.inform.emit(_("Polygon Paint started ...")) # Promise object with the new name self.app.collection.promise(name) diff --git a/flatcamTools/ToolPanelize.py b/flatcamTools/ToolPanelize.py index 78bc680f..ac847307 100644 --- a/flatcamTools/ToolPanelize.py +++ b/flatcamTools/ToolPanelize.py @@ -8,16 +8,9 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolPanelize') -def _tr(text): - try: - return _(text) - except: - return text - - class Panelize(FlatCAMTool): - toolName = _tr("Panelize PCB") + toolName = _("Panelize PCB") def __init__(self, app): super(Panelize, self).__init__(self) @@ -48,9 +41,9 @@ class Panelize(FlatCAMTool): self.type_obj_combo.setItemIcon(1, QtGui.QIcon("share/drill16.png")) self.type_obj_combo.setItemIcon(2, QtGui.QIcon("share/geometry16.png")) - self.type_obj_combo_label = QtWidgets.QLabel(_tr("Object Type:")) + self.type_obj_combo_label = QtWidgets.QLabel(_("Object Type:")) self.type_obj_combo_label.setToolTip( - _tr("Specify the type of object to be panelized\n" + _("Specify the type of object to be panelized\n" "It can be of type: Gerber, Excellon or Geometry.\n" "The selection here decide the type of objects that will be\n" "in the Object combobox.") @@ -63,9 +56,9 @@ class Panelize(FlatCAMTool): self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) self.object_combo.setCurrentIndex(1) - self.object_label = QtWidgets.QLabel(_tr("Object:")) + self.object_label = QtWidgets.QLabel(_("Object:")) self.object_label.setToolTip( - _tr("Object to be panelized. This means that it will\n" + _("Object to be panelized. This means that it will\n" "be duplicated in an array of rows and columns.") ) form_layout.addRow(self.object_label, self.object_combo) @@ -81,9 +74,9 @@ class Panelize(FlatCAMTool): self.type_box_combo.setItemIcon(0, QtGui.QIcon("share/flatcam_icon16.png")) self.type_box_combo.setItemIcon(2, QtGui.QIcon("share/geometry16.png")) - self.type_box_combo_label = QtWidgets.QLabel(_tr("Box Type:")) + self.type_box_combo_label = QtWidgets.QLabel(_("Box Type:")) self.type_box_combo_label.setToolTip( - _tr("Specify the type of object to be used as an container for\n" + _("Specify the type of object to be used as an container for\n" "panelization. It can be: Gerber or Geometry type.\n" "The selection here decide the type of objects that will be\n" "in the Box Object combobox.") @@ -96,53 +89,53 @@ class Panelize(FlatCAMTool): self.box_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) self.box_combo.setCurrentIndex(1) - self.box_combo_label = QtWidgets.QLabel(_tr("Box Object:")) + self.box_combo_label = QtWidgets.QLabel(_("Box Object:")) self.box_combo_label.setToolTip( - _tr("The actual object that is used a container for the\n " + _("The actual object that is used a container for the\n " "selected object that is to be panelized.") ) form_layout.addRow(self.box_combo_label, self.box_combo) ## Spacing Columns self.spacing_columns = FCEntry() - self.spacing_columns_label = QtWidgets.QLabel(_tr("Spacing cols:")) + self.spacing_columns_label = QtWidgets.QLabel(_("Spacing cols:")) self.spacing_columns_label.setToolTip( - _tr("Spacing between columns of the desired panel.\n" + _("Spacing between columns of the desired panel.\n" "In current units.") ) form_layout.addRow(self.spacing_columns_label, self.spacing_columns) ## Spacing Rows self.spacing_rows = FCEntry() - self.spacing_rows_label = QtWidgets.QLabel(_tr("Spacing rows:")) + self.spacing_rows_label = QtWidgets.QLabel(_("Spacing rows:")) self.spacing_rows_label.setToolTip( - _tr("Spacing between rows of the desired panel.\n" + _("Spacing between rows of the desired panel.\n" "In current units.") ) form_layout.addRow(self.spacing_rows_label, self.spacing_rows) ## Columns self.columns = FCEntry() - self.columns_label = QtWidgets.QLabel(_tr("Columns:")) + self.columns_label = QtWidgets.QLabel(_("Columns:")) self.columns_label.setToolTip( - _tr("Number of columns of the desired panel") + _("Number of columns of the desired panel") ) form_layout.addRow(self.columns_label, self.columns) ## Rows self.rows = FCEntry() - self.rows_label = QtWidgets.QLabel(_tr("Rows:")) + self.rows_label = QtWidgets.QLabel(_("Rows:")) self.rows_label.setToolTip( - _tr("Number of rows of the desired panel") + _("Number of rows of the desired panel") ) form_layout.addRow(self.rows_label, self.rows) ## Type of resulting Panel object self.panel_type_radio = RadioSet([{'label': 'Gerber', 'value': 'gerber'}, {'label': 'Geometry', 'value': 'geometry'}]) - self.panel_type_label = QtWidgets.QLabel(_tr("Panel Type:")) + self.panel_type_label = QtWidgets.QLabel(_("Panel Type:")) self.panel_type_label.setToolTip( - _tr("Choose the type of object for the panel object:\n" + _("Choose the type of object for the panel object:\n" "- Geometry\n" "- Gerber") ) @@ -150,9 +143,9 @@ class Panelize(FlatCAMTool): form_layout.addRow(self.panel_type_radio) ## Constrains - self.constrain_cb = FCCheckBox(_tr("Constrain panel within:")) + self.constrain_cb = FCCheckBox(_("Constrain panel within:")) self.constrain_cb.setToolTip( - _tr("Area define by DX and DY within to constrain the panel.\n" + _("Area define by DX and DY within to constrain the panel.\n" "DX and DY values are in current units.\n" "Regardless of how many columns and rows are desired,\n" "the final panel will have as many columns and rows as\n" @@ -161,17 +154,17 @@ class Panelize(FlatCAMTool): form_layout.addRow(self.constrain_cb) self.x_width_entry = FCEntry() - self.x_width_lbl = QtWidgets.QLabel(_tr("Width (DX):")) + self.x_width_lbl = QtWidgets.QLabel(_("Width (DX):")) self.x_width_lbl.setToolTip( - _tr("The width (DX) within which the panel must fit.\n" + _("The width (DX) within which the panel must fit.\n" "In current units.") ) form_layout.addRow(self.x_width_lbl, self.x_width_entry) self.y_height_entry = FCEntry() - self.y_height_lbl = QtWidgets.QLabel(_tr("Height (DY):")) + self.y_height_lbl = QtWidgets.QLabel(_("Height (DY):")) self.y_height_lbl.setToolTip( - _tr("The height (DY)within which the panel must fit.\n" + _("The height (DY)within which the panel must fit.\n" "In current units.") ) form_layout.addRow(self.y_height_lbl, self.y_height_entry) @@ -184,9 +177,9 @@ class Panelize(FlatCAMTool): self.layout.addLayout(hlay_2) hlay_2.addStretch() - self.panelize_object_button = QtWidgets.QPushButton(_tr("Panelize Object")) + self.panelize_object_button = QtWidgets.QPushButton(_("Panelize Object")) self.panelize_object_button.setToolTip( - _tr("Panelize the specified object around the specified box.\n" + _("Panelize the specified object around the specified box.\n" "In other words it creates multiple copies of the source object,\n" "arranged in a 2D array of rows and columns.") ) @@ -282,13 +275,13 @@ class Panelize(FlatCAMTool): try: obj = self.app.collection.get_by_name(str(name)) except: - self.app.inform.emit(_tr("[ERROR_NOTCL]Could not retrieve object: %s") % name) + self.app.inform.emit(_("[ERROR_NOTCL]Could not retrieve object: %s") % name) return "Could not retrieve object: %s" % name panel_obj = obj if panel_obj is None: - self.app.inform.emit(_tr("[ERROR_NOTCL]Object not found: %s") % panel_obj) + self.app.inform.emit(_("[ERROR_NOTCL]Object not found: %s") % panel_obj) return "Object not found: %s" % panel_obj boxname = self.box_combo.currentText() @@ -296,11 +289,11 @@ class Panelize(FlatCAMTool): try: box = self.app.collection.get_by_name(boxname) except: - self.app.inform.emit(_tr("[ERROR_NOTCL]Could not retrieve object: %s") % boxname) + self.app.inform.emit(_("[ERROR_NOTCL]Could not retrieve object: %s") % boxname) return "Could not retrieve object: %s" % boxname if box is None: - self.app.inform.emit(_tr("[WARNING]No object Box. Using instead %s") % panel_obj) + self.app.inform.emit(_("[WARNING]No object Box. Using instead %s") % panel_obj) box = panel_obj self.outname = name + '_panelized' @@ -312,7 +305,7 @@ class Panelize(FlatCAMTool): try: spacing_columns = float(self.spacing_columns.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return spacing_columns = spacing_columns if spacing_columns is not None else 0 @@ -324,7 +317,7 @@ class Panelize(FlatCAMTool): try: spacing_rows = float(self.spacing_rows.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return spacing_rows = spacing_rows if spacing_rows is not None else 0 @@ -337,7 +330,7 @@ class Panelize(FlatCAMTool): rows = float(self.rows.get_value().replace(',', '.')) rows = int(rows) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return rows = rows if rows is not None else 1 @@ -350,7 +343,7 @@ class Panelize(FlatCAMTool): columns = float(self.columns.get_value().replace(',', '.')) columns = int(columns) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return columns = columns if columns is not None else 1 @@ -362,7 +355,7 @@ class Panelize(FlatCAMTool): try: constrain_dx = float(self.x_width_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return @@ -373,7 +366,7 @@ class Panelize(FlatCAMTool): try: constrain_dy = float(self.y_height_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return @@ -381,7 +374,7 @@ class Panelize(FlatCAMTool): if 0 in {columns, rows}: - self.app.inform.emit(_tr("[ERROR_NOTCL]Columns or Rows are zero value. Change them to a positive integer.")) + self.app.inform.emit(_("[ERROR_NOTCL]Columns or Rows are zero value. Change them to a positive integer.")) return "Columns or Rows are zero value. Change them to a positive integer." xmin, ymin, xmax, ymax = box.bounds() @@ -485,7 +478,7 @@ class Panelize(FlatCAMTool): def panelize_2(): if panel_obj is not None: - self.app.inform.emit(_tr("Generating panel ... Please wait.")) + self.app.inform.emit(_("Generating panel ... Please wait.")) self.app.progress.emit(0) @@ -588,18 +581,18 @@ class Panelize(FlatCAMTool): plot=True, autoselected=True) if self.constrain_flag is False: - self.app.inform.emit(_tr("[success]Panel done...")) + self.app.inform.emit(_("[success]Panel done...")) else: self.constrain_flag = False - self.app.inform.emit(_tr("[WARNING] Too big for the constrain area. Final panel has %s columns and %s rows") % + self.app.inform.emit(_("[WARNING] Too big for the constrain area. Final panel has %s columns and %s rows") % (columns, rows)) - proc = self.app.proc_container.new(_tr("Generating panel ... Please wait.")) + proc = self.app.proc_container.new(_("Generating panel ... Please wait.")) def job_thread(app_obj): try: panelize_2() - self.app.inform.emit(_tr("[success]Panel created successfully.")) + self.app.inform.emit(_("[success]Panel created successfully.")) except Exception as e: proc.done() log.debug(str(e)) diff --git a/flatcamTools/ToolProperties.py b/flatcamTools/ToolProperties.py index d0127876..d76ed14c 100644 --- a/flatcamTools/ToolProperties.py +++ b/flatcamTools/ToolProperties.py @@ -8,16 +8,9 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolProperties') -def _tr(text): - try: - return _(text) - except: - return text - - class Properties(FlatCAMTool): - toolName = _tr("Properties") + toolName = _("Properties") def __init__(self, app): FlatCAMTool.__init__(self, app) @@ -91,15 +84,15 @@ class Properties(FlatCAMTool): def properties(self): obj_list = self.app.collection.get_selected() if not obj_list: - self.app.inform.emit(_tr("[ERROR_NOTCL] Properties Tool was not displayed. No object selected.")) - self.app.ui.notebook.setTabText(2, _tr("Tools")) + self.app.inform.emit(_("[ERROR_NOTCL] Properties Tool was not displayed. No object selected.")) + self.app.ui.notebook.setTabText(2, _("Tools")) self.properties_frame.hide() self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) return for obj in obj_list: self.addItems(obj) - self.app.inform.emit(_tr("[success] Object Properties are displayed.")) - self.app.ui.notebook.setTabText(2, _tr("Properties Tool")) + self.app.inform.emit(_("[success] Object Properties are displayed.")) + self.app.ui.notebook.setTabText(2, _("Properties Tool")) def addItems(self, obj): parent = self.treeWidget.invisibleRootItem() diff --git a/flatcamTools/ToolShell.py b/flatcamTools/ToolShell.py index 4add34c2..6ce45006 100644 --- a/flatcamTools/ToolShell.py +++ b/flatcamTools/ToolShell.py @@ -18,13 +18,6 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolShell') -def _tr(text): - try: - return _(text) - except: - return text - - class TermWidget(QWidget): """ Widget wich represents terminal. It only displays text and allows to enter text. @@ -69,9 +62,9 @@ class TermWidget(QWidget): self._edit.setTextColor(Qt.white) self._edit.setTextBackgroundColor(Qt.darkGreen) if detail is None: - self._edit.setPlainText(_tr("...proccessing...")) + self._edit.setPlainText(_("...proccessing...")) else: - self._edit.setPlainText(_tr("...proccessing... [%s]") % detail) + self._edit.setPlainText(_("...proccessing... [%s]") % detail) self._edit.setDisabled(True) self._edit.setFocus() diff --git a/flatcamTools/ToolSolderPaste.py b/flatcamTools/ToolSolderPaste.py index ec84cc4e..4b6c4f31 100644 --- a/flatcamTools/ToolSolderPaste.py +++ b/flatcamTools/ToolSolderPaste.py @@ -22,15 +22,8 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolSolderPaste') -def _tr(text): - try: - return _(text) - except: - return text - - class SolderPaste(FlatCAMTool): - toolName = _tr("Solder Paste Tool") + toolName = _("Solder Paste Tool") def __init__(self, app): FlatCAMTool.__init__(self, app) @@ -58,14 +51,14 @@ class SolderPaste(FlatCAMTool): self.object_label = QtWidgets.QLabel("Gerber: ") self.object_label.setToolTip( - _tr("Gerber Solder paste object. ") + _("Gerber Solder paste object. ") ) obj_form_layout.addRow(self.object_label, self.obj_combo) #### Tools #### - self.tools_table_label = QtWidgets.QLabel('%s' % _tr('Tools Table')) + self.tools_table_label = QtWidgets.QLabel('%s' % _('Tools Table')) self.tools_table_label.setToolTip( - _tr("Tools pool from which the algorithm\n" + _("Tools pool from which the algorithm\n" "will pick the ones used for dispensing solder paste.") ) self.layout.addWidget(self.tools_table_label) @@ -74,29 +67,29 @@ class SolderPaste(FlatCAMTool): self.layout.addWidget(self.tools_table) self.tools_table.setColumnCount(3) - self.tools_table.setHorizontalHeaderLabels(['#', _tr('Diameter'), '']) + self.tools_table.setHorizontalHeaderLabels(['#', _('Diameter'), '']) self.tools_table.setColumnHidden(2, True) self.tools_table.setSortingEnabled(False) # self.tools_table.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows) self.tools_table.horizontalHeaderItem(0).setToolTip( - _tr("This is the Tool Number.\n" + _("This is the Tool Number.\n" "The solder dispensing will start with the tool with the biggest \n" "diameter, continuing until there are no more Nozzle tools.\n" "If there are no longer tools but there are still pads not covered\n " "with solder paste, the app will issue a warning message box.") ) self.tools_table.horizontalHeaderItem(1).setToolTip( - _tr( "Nozzle tool Diameter. It's value (in current FlatCAM units)\n" + _( "Nozzle tool Diameter. It's value (in current FlatCAM units)\n" "is the width of the solder paste dispensed.")) #### Add a new Tool #### hlay_tools = QtWidgets.QHBoxLayout() self.layout.addLayout(hlay_tools) - self.addtool_entry_lbl = QtWidgets.QLabel('%s:' % _tr('New Nozzle Tool')) + self.addtool_entry_lbl = QtWidgets.QLabel('%s:' % _('New Nozzle Tool')) self.addtool_entry_lbl.setToolTip( - _tr("Diameter for the new Nozzle tool to add in the Tool Table") + _("Diameter for the new Nozzle tool to add in the Tool Table") ) self.addtool_entry = FCEntry() @@ -108,21 +101,21 @@ class SolderPaste(FlatCAMTool): grid0 = QtWidgets.QGridLayout() self.layout.addLayout(grid0) - self.addtool_btn = QtWidgets.QPushButton(_tr('Add')) + self.addtool_btn = QtWidgets.QPushButton(_('Add')) self.addtool_btn.setToolTip( - _tr("Add a new nozzle tool to the Tool Table\n" + _("Add a new nozzle tool to the Tool Table\n" "with the diameter specified above.") ) - self.deltool_btn = QtWidgets.QPushButton(_tr('Delete')) + self.deltool_btn = QtWidgets.QPushButton(_('Delete')) self.deltool_btn.setToolTip( - _tr( "Delete a selection of tools in the Tool Table\n" + _( "Delete a selection of tools in the Tool Table\n" "by first selecting a row(s) in the Tool Table.") ) - self.soldergeo_btn = QtWidgets.QPushButton(_tr("Generate Geo")) + self.soldergeo_btn = QtWidgets.QPushButton(_("Generate Geo")) self.soldergeo_btn.setToolTip( - _tr("Generate solder paste dispensing geometry.") + _("Generate solder paste dispensing geometry.") ) grid0.addWidget(self.addtool_btn, 0, 0) @@ -135,12 +128,12 @@ class SolderPaste(FlatCAMTool): grid0_1 = QtWidgets.QGridLayout() self.layout.addLayout(grid0_1) - step1_lbl = QtWidgets.QLabel("%s:" % _tr('STEP 1')) + step1_lbl = QtWidgets.QLabel("%s:" % _('STEP 1')) step1_lbl.setToolTip( - _tr("First step is to select a number of nozzle tools for usage\n" + _("First step is to select a number of nozzle tools for usage\n" "and then optionally modify the GCode parameters bellow.") ) - step1_description_lbl = QtWidgets.QLabel(_tr("Select tools.\n" + step1_description_lbl = QtWidgets.QLabel(_("Select tools.\n" "Modify parameters.")) grid0_1.addWidget(step1_lbl, 0, 0, alignment=Qt.AlignTop) @@ -159,120 +152,120 @@ class SolderPaste(FlatCAMTool): # Z dispense start self.z_start_entry = FCEntry() - self.z_start_label = QtWidgets.QLabel(_tr("Z Dispense Start:")) + self.z_start_label = QtWidgets.QLabel(_("Z Dispense Start:")) self.z_start_label.setToolTip( - _tr("The height (Z) when solder paste dispensing starts.") + _("The height (Z) when solder paste dispensing starts.") ) self.gcode_form_layout.addRow(self.z_start_label, self.z_start_entry) # Z dispense self.z_dispense_entry = FCEntry() - self.z_dispense_label = QtWidgets.QLabel(_tr("Z Dispense:")) + self.z_dispense_label = QtWidgets.QLabel(_("Z Dispense:")) self.z_dispense_label.setToolTip( - _tr("The height (Z) when doing solder paste dispensing.") + _("The height (Z) when doing solder paste dispensing.") ) self.gcode_form_layout.addRow(self.z_dispense_label, self.z_dispense_entry) # Z dispense stop self.z_stop_entry = FCEntry() - self.z_stop_label = QtWidgets.QLabel(_tr("Z Dispense Stop:")) + self.z_stop_label = QtWidgets.QLabel(_("Z Dispense Stop:")) self.z_stop_label.setToolTip( - _tr("The height (Z) when solder paste dispensing stops.") + _("The height (Z) when solder paste dispensing stops.") ) self.gcode_form_layout.addRow(self.z_stop_label, self.z_stop_entry) # Z travel self.z_travel_entry = FCEntry() - self.z_travel_label = QtWidgets.QLabel(_tr("Z Travel:")) + self.z_travel_label = QtWidgets.QLabel(_("Z Travel:")) self.z_travel_label.setToolTip( - _tr( "The height (Z) for travel between pads\n" + _( "The height (Z) for travel between pads\n" "(without dispensing solder paste).") ) self.gcode_form_layout.addRow(self.z_travel_label, self.z_travel_entry) # Z toolchange location self.z_toolchange_entry = FCEntry() - self.z_toolchange_label = QtWidgets.QLabel(_tr("Z Toolchange:")) + self.z_toolchange_label = QtWidgets.QLabel(_("Z Toolchange:")) self.z_toolchange_label.setToolTip( - _tr( "The height (Z) for tool (nozzle) change.") + _( "The height (Z) for tool (nozzle) change.") ) self.gcode_form_layout.addRow(self.z_toolchange_label, self.z_toolchange_entry) # X,Y Toolchange location self.xy_toolchange_entry = FCEntry() - self.xy_toolchange_label = QtWidgets.QLabel(_tr("XY Toolchange:")) + self.xy_toolchange_label = QtWidgets.QLabel(_("XY Toolchange:")) self.xy_toolchange_label.setToolTip( - _tr("The X,Y location for tool (nozzle) change.\n" + _("The X,Y location for tool (nozzle) change.\n" "The format is (x, y) where x and y are real numbers.") ) self.gcode_form_layout.addRow(self.xy_toolchange_label, self.xy_toolchange_entry) # Feedrate X-Y self.frxy_entry = FCEntry() - self.frxy_label = QtWidgets.QLabel(_tr("Feedrate X-Y:")) + self.frxy_label = QtWidgets.QLabel(_("Feedrate X-Y:")) self.frxy_label.setToolTip( - _tr( "Feedrate (speed) while moving on the X-Y plane.") + _( "Feedrate (speed) while moving on the X-Y plane.") ) self.gcode_form_layout.addRow(self.frxy_label, self.frxy_entry) # Feedrate Z self.frz_entry = FCEntry() - self.frz_label = QtWidgets.QLabel(_tr("Feedrate Z:")) + self.frz_label = QtWidgets.QLabel(_("Feedrate Z:")) self.frz_label.setToolTip( - _tr("Feedrate (speed) while moving vertically\n" + _("Feedrate (speed) while moving vertically\n" "(on Z plane).") ) self.gcode_form_layout.addRow(self.frz_label, self.frz_entry) # Feedrate Z Dispense self.frz_dispense_entry = FCEntry() - self.frz_dispense_label = QtWidgets.QLabel(_tr("Feedrate Z Dispense:")) + self.frz_dispense_label = QtWidgets.QLabel(_("Feedrate Z Dispense:")) self.frz_dispense_label.setToolTip( - _tr( "Feedrate (speed) while moving up vertically\n" + _( "Feedrate (speed) while moving up vertically\n" " to Dispense position (on Z plane).") ) self.gcode_form_layout.addRow(self.frz_dispense_label, self.frz_dispense_entry) # Spindle Speed Forward self.speedfwd_entry = FCEntry() - self.speedfwd_label = QtWidgets.QLabel(_tr("Spindle Speed FWD:")) + self.speedfwd_label = QtWidgets.QLabel(_("Spindle Speed FWD:")) self.speedfwd_label.setToolTip( - _tr( "The dispenser speed while pushing solder paste\n" + _( "The dispenser speed while pushing solder paste\n" "through the dispenser nozzle.") ) self.gcode_form_layout.addRow(self.speedfwd_label, self.speedfwd_entry) # Dwell Forward self.dwellfwd_entry = FCEntry() - self.dwellfwd_label = QtWidgets.QLabel(_tr("Dwell FWD:")) + self.dwellfwd_label = QtWidgets.QLabel(_("Dwell FWD:")) self.dwellfwd_label.setToolTip( - _tr("Pause after solder dispensing.") + _("Pause after solder dispensing.") ) self.gcode_form_layout.addRow(self.dwellfwd_label, self.dwellfwd_entry) # Spindle Speed Reverse self.speedrev_entry = FCEntry() - self.speedrev_label = QtWidgets.QLabel(_tr("Spindle Speed REV:")) + self.speedrev_label = QtWidgets.QLabel(_("Spindle Speed REV:")) self.speedrev_label.setToolTip( - _tr( "The dispenser speed while retracting solder paste\n" + _( "The dispenser speed while retracting solder paste\n" "through the dispenser nozzle.") ) self.gcode_form_layout.addRow(self.speedrev_label, self.speedrev_entry) # Dwell Reverse self.dwellrev_entry = FCEntry() - self.dwellrev_label = QtWidgets.QLabel(_tr("Dwell REV:")) + self.dwellrev_label = QtWidgets.QLabel(_("Dwell REV:")) self.dwellrev_label.setToolTip( - _tr("Pause after solder paste dispenser retracted,\n" + _("Pause after solder paste dispenser retracted,\n" "to allow pressure equilibrium.") ) self.gcode_form_layout.addRow(self.dwellrev_label, self.dwellrev_entry) # Postprocessors - pp_label = QtWidgets.QLabel(_tr('PostProcessors:')) + pp_label = QtWidgets.QLabel(_('PostProcessors:')) pp_label.setToolTip( - _tr("Files that control the GCode generation.") + _("Files that control the GCode generation.") ) self.pp_combo = FCComboBox() @@ -283,9 +276,9 @@ class SolderPaste(FlatCAMTool): grid1 = QtWidgets.QGridLayout() self.gcode_box.addLayout(grid1) - self.solder_gcode_btn = QtWidgets.QPushButton(_tr("Generate GCode")) + self.solder_gcode_btn = QtWidgets.QPushButton(_("Generate GCode")) self.solder_gcode_btn.setToolTip( - _tr( "Generate GCode for Solder Paste dispensing\n" + _( "Generate GCode for Solder Paste dispensing\n" "on PCB pads.") ) @@ -301,9 +294,9 @@ class SolderPaste(FlatCAMTool): grid2 = QtWidgets.QGridLayout() self.generation_box.addLayout(grid2) - step2_lbl = QtWidgets.QLabel("%s" % _tr('STEP 2:')) + step2_lbl = QtWidgets.QLabel("%s" % _('STEP 2:')) step2_lbl.setToolTip( - _tr("Second step is to create a solder paste dispensing\n" + _("Second step is to create a solder paste dispensing\n" "geometry out of an Solder Paste Mask Gerber file.") ) grid2.addWidget(step2_lbl, 0, 0) @@ -319,9 +312,9 @@ class SolderPaste(FlatCAMTool): self.geo_obj_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex())) self.geo_obj_combo.setCurrentIndex(1) - self.geo_object_label = QtWidgets.QLabel(_tr("Geo Result:")) + self.geo_object_label = QtWidgets.QLabel(_("Geo Result:")) self.geo_object_label.setToolTip( - _tr( "Geometry Solder Paste object.\n" + _( "Geometry Solder Paste object.\n" "The name of the object has to end in:\n" "'_solderpaste' as a protection.") ) @@ -330,9 +323,9 @@ class SolderPaste(FlatCAMTool): grid3 = QtWidgets.QGridLayout() self.generation_box.addLayout(grid3) - step3_lbl = QtWidgets.QLabel("%s" % _tr('STEP 3:')) + step3_lbl = QtWidgets.QLabel("%s" % _('STEP 3:')) step3_lbl.setToolTip( - _tr( "Third step is to select a solder paste dispensing geometry,\n" + _( "Third step is to select a solder paste dispensing geometry,\n" "and then generate a CNCJob object.\n\n" "REMEMBER: if you want to create a CNCJob with new parameters,\n" "first you need to generate a geometry with those new params,\n" @@ -352,9 +345,9 @@ class SolderPaste(FlatCAMTool): self.cnc_obj_combo.setRootModelIndex(self.app.collection.index(3, 0, QtCore.QModelIndex())) self.cnc_obj_combo.setCurrentIndex(1) - self.cnc_object_label = QtWidgets.QLabel(_tr("CNC Result:")) + self.cnc_object_label = QtWidgets.QLabel(_("CNC Result:")) self.cnc_object_label.setToolTip( - _tr( "CNCJob Solder paste object.\n" + _( "CNCJob Solder paste object.\n" "In order to enable the GCode save section,\n" "the name of the object has to end in:\n" "'_solderpaste' as a protection.") @@ -364,21 +357,21 @@ class SolderPaste(FlatCAMTool): grid4 = QtWidgets.QGridLayout() self.generation_box.addLayout(grid4) - self.solder_gcode_view_btn = QtWidgets.QPushButton(_tr("View GCode")) + self.solder_gcode_view_btn = QtWidgets.QPushButton(_("View GCode")) self.solder_gcode_view_btn.setToolTip( - _tr("View the generated GCode for Solder Paste dispensing\n" + _("View the generated GCode for Solder Paste dispensing\n" "on PCB pads.") ) - self.solder_gcode_save_btn = QtWidgets.QPushButton(_tr("Save GCode")) + self.solder_gcode_save_btn = QtWidgets.QPushButton(_("Save GCode")) self.solder_gcode_save_btn.setToolTip( - _tr( "Save the generated GCode for Solder Paste dispensing\n" + _( "Save the generated GCode for Solder Paste dispensing\n" "on PCB pads, to a file.") ) - step4_lbl = QtWidgets.QLabel("%s" % _tr('STEP 4:')) + step4_lbl = QtWidgets.QLabel("%s" % _('STEP 4:')) step4_lbl.setToolTip( - _tr( "Fourth step (and last) is to select a CNCJob made from \n" + _( "Fourth step (and last) is to select a CNCJob made from \n" "a solder paste dispensing geometry, and then view/save it's GCode.") ) @@ -406,7 +399,7 @@ class SolderPaste(FlatCAMTool): self.flat_geometry = [] # action to be added in the combobox context menu - self.combo_context_del_action = QtWidgets.QAction(QtGui.QIcon('share/trash16.png'), _tr("Delete Object")) + self.combo_context_del_action = QtWidgets.QAction(QtGui.QIcon('share/trash16.png'), _("Delete Object")) ## Signals self.combo_context_del_action.triggered.connect(self.on_delete_object) @@ -468,9 +461,9 @@ class SolderPaste(FlatCAMTool): self.tools_table.setupContextMenu() self.tools_table.addContextMenu( - _tr("Add"), lambda: self.on_tool_add(dia=None, muted=None), icon=QtGui.QIcon("share/plus16.png")) + _("Add"), lambda: self.on_tool_add(dia=None, muted=None), icon=QtGui.QIcon("share/plus16.png")) self.tools_table.addContextMenu( - _tr("Delete"), lambda: + _("Delete"), lambda: self.on_tool_delete(rows_to_delete=None, all=None), icon=QtGui.QIcon("share/delete32.png")) try: @@ -745,16 +738,16 @@ class SolderPaste(FlatCAMTool): try: tool_dia = float(self.addtool_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return if tool_dia is None: self.build_ui() - self.app.inform.emit(_tr("[WARNING_NOTCL] Please enter a tool diameter to add, in Float format.")) + self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter to add, in Float format.")) return if tool_dia == 0: - self.app.inform.emit(_tr("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) + self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format.")) return # construct a list of all 'tooluid' in the self.tooltable_tools @@ -778,12 +771,12 @@ class SolderPaste(FlatCAMTool): if float('%.4f' % tool_dia) in tool_dias: if muted is None: - self.app.inform.emit(_tr("[WARNING_NOTCL] Adding Nozzle tool cancelled. Tool already in Tool Table.")) + self.app.inform.emit(_("[WARNING_NOTCL] Adding Nozzle tool cancelled. Tool already in Tool Table.")) self.tools_table.itemChanged.connect(self.on_tool_edit) return else: if muted is None: - self.app.inform.emit(_tr("[success] New Nozzle tool added to Tool Table.")) + self.app.inform.emit(_("[success] New Nozzle tool added to Tool Table.")) self.tooltable_tools.update({ int(self.tooluid): { 'tooldia': float('%.4f' % tool_dia), @@ -816,7 +809,7 @@ class SolderPaste(FlatCAMTool): try: new_tool_dia = float(self.tools_table.item(row, 1).text().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered, " "use a number.")) return @@ -825,7 +818,7 @@ class SolderPaste(FlatCAMTool): # identify the tool that was edited and get it's tooluid if new_tool_dia not in tool_dias: self.tooltable_tools[tooluid]['tooldia'] = new_tool_dia - self.app.inform.emit(_tr("[success] Nozzle tool from Tool Table was edited.")) + self.app.inform.emit(_("[success] Nozzle tool from Tool Table was edited.")) self.build_ui() return else: @@ -836,7 +829,7 @@ class SolderPaste(FlatCAMTool): break restore_dia_item = self.tools_table.item(row, 1) restore_dia_item.setText(str(old_tool_dia)) - self.app.inform.emit(_tr("[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table.")) + self.app.inform.emit(_("[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table.")) self.build_ui() def on_tool_delete(self, rows_to_delete=None, all=None): @@ -881,12 +874,12 @@ class SolderPaste(FlatCAMTool): self.tooltable_tools.pop(t, None) except AttributeError: - self.app.inform.emit(_tr("[WARNING_NOTCL] Delete failed. Select a Nozzle tool to delete.")) + self.app.inform.emit(_("[WARNING_NOTCL] Delete failed. Select a Nozzle tool to delete.")) return except Exception as e: log.debug(str(e)) - self.app.inform.emit(_tr("[success] Nozzle tool(s) deleted from Tool Table.")) + self.app.inform.emit(_("[success] Nozzle tool(s) deleted from Tool Table.")) self.build_ui() def on_rmb_combo(self, pos, combo): @@ -941,7 +934,7 @@ class SolderPaste(FlatCAMTool): """ name = self.obj_combo.currentText() if name == '': - self.app.inform.emit(_tr("[WARNING_NOTCL] No SolderPaste mask Gerber object loaded.")) + self.app.inform.emit(_("[WARNING_NOTCL] No SolderPaste mask Gerber object loaded.")) return obj = self.app.collection.get_by_name(name) @@ -958,7 +951,7 @@ class SolderPaste(FlatCAMTool): :param work_object: the source Gerber object from which the geometry is created :return: a Geometry type object """ - proc = self.app.proc_container.new(_tr("Creating Solder Paste dispensing geometry.")) + proc = self.app.proc_container.new(_("Creating Solder Paste dispensing geometry.")) obj = work_object # Sort tools in descending order @@ -970,7 +963,7 @@ class SolderPaste(FlatCAMTool): sorted_tools.sort(reverse=True) if not sorted_tools: - self.app.inform.emit(_tr("[WARNING_NOTCL] No Nozzle tools in the tool table.")) + self.app.inform.emit(_("[WARNING_NOTCL] No Nozzle tools in the tool table.")) return 'fail' def flatten(geometry=None, reset=True, pathonly=False): @@ -1096,16 +1089,16 @@ class SolderPaste(FlatCAMTool): if not geo_obj.tools[tooluid_key]['solid_geometry']: a += 1 if a == len(geo_obj.tools): - self.app.inform.emit(_tr('[ERROR_NOTCL] Cancelled. Empty file, it has no geometry...')) + self.app.inform.emit(_('[ERROR_NOTCL] Cancelled. Empty file, it has no geometry...')) return 'fail' - app_obj.inform.emit(_tr("[success] Solder Paste geometry generated successfully...")) + app_obj.inform.emit(_("[success] Solder Paste geometry generated successfully...")) return # if we still have geometry not processed at the end of the tools then we failed # some or all the pads are not covered with solder paste if work_geo: - app_obj.inform.emit(_tr("[WARNING_NOTCL] Some or all pads have no solder " + app_obj.inform.emit(_("[WARNING_NOTCL] Some or all pads have no solder " "due of inadequate nozzle diameters...")) return 'fail' @@ -1119,7 +1112,7 @@ class SolderPaste(FlatCAMTool): return proc.done() - self.app.inform.emit(_tr("Generating Solder Paste dispensing geometry...")) + self.app.inform.emit(_("Generating Solder Paste dispensing geometry...")) # Promise object with the new name self.app.collection.promise(name) @@ -1139,11 +1132,11 @@ class SolderPaste(FlatCAMTool): obj = self.app.collection.get_by_name(name) if name == '': - self.app.inform.emit(_tr("[WARNING_NOTCL] There is no Geometry object available.")) + self.app.inform.emit(_("[WARNING_NOTCL] There is no Geometry object available.")) return 'fail' if obj.special_group != 'solder_paste_tool': - self.app.inform.emit(_tr("[WARNING_NOTCL] This Geometry can't be processed. NOT a solder_paste_tool geometry.")) + self.app.inform.emit(_("[WARNING_NOTCL] This Geometry can't be processed. NOT a solder_paste_tool geometry.")) return 'fail' a = 0 @@ -1151,7 +1144,7 @@ class SolderPaste(FlatCAMTool): if obj.tools[tooluid_key]['solid_geometry'] is None: a += 1 if a == len(obj.tools): - self.app.inform.emit(_tr('[ERROR_NOTCL] Cancelled. Empty file, it has no geometry...')) + self.app.inform.emit(_('[ERROR_NOTCL] Cancelled. Empty file, it has no geometry...')) return 'fail' # use the name of the first tool selected in self.geo_tools_table which has the diameter passed as tool_dia @@ -1248,7 +1241,7 @@ class SolderPaste(FlatCAMTool): def job_thread(app_obj): with self.app.proc_container.new("Generating CNC Code"): if app_obj.new_object("cncjob", name, job_init) != 'fail': - app_obj.inform.emit(_tr("[success] ToolSolderPaste CNCjob created: %s") % name) + app_obj.inform.emit(_("[success] ToolSolderPaste CNCjob created: %s") % name) app_obj.progress.emit(100) # Create a promise with the name @@ -1280,11 +1273,11 @@ class SolderPaste(FlatCAMTool): try: if obj.special_group != 'solder_paste_tool': - self.app.inform.emit(_tr("[WARNING_NOTCL] This CNCJob object can't be processed. " + self.app.inform.emit(_("[WARNING_NOTCL] This CNCJob object can't be processed. " "NOT a solder_paste_tool CNCJob object.")) return except AttributeError: - self.app.inform.emit(_tr("[WARNING_NOTCL] This CNCJob object can't be processed. " + self.app.inform.emit(_("[WARNING_NOTCL] This CNCJob object can't be processed. " "NOT a solder_paste_tool CNCJob object.")) return @@ -1307,7 +1300,7 @@ class SolderPaste(FlatCAMTool): try: lines = StringIO(gcode) except: - self.app.inform.emit(_tr("[ERROR_NOTCL] No Gcode in the object...")) + self.app.inform.emit(_("[ERROR_NOTCL] No Gcode in the object...")) return try: @@ -1316,7 +1309,7 @@ class SolderPaste(FlatCAMTool): self.app.ui.code_editor.append(proc_line) except Exception as e: log.debug('ToolSolderPaste.on_view_gcode() -->%s' % str(e)) - self.app.inform.emit(_tr('[ERROR] ToolSolderPaste.on_view_gcode() -->%s') % str(e)) + self.app.inform.emit(_('[ERROR] ToolSolderPaste.on_view_gcode() -->%s') % str(e)) return self.app.ui.code_editor.moveCursor(QtGui.QTextCursor.Start) @@ -1335,7 +1328,7 @@ class SolderPaste(FlatCAMTool): obj = self.app.collection.get_by_name(name) if obj.special_group != 'solder_paste_tool': - self.app.inform.emit(_tr("[WARNING_NOTCL] This CNCJob object can't be processed. " + self.app.inform.emit(_("[WARNING_NOTCL] This CNCJob object can't be processed. " "NOT a solder_paste_tool CNCJob object.")) return @@ -1353,7 +1346,7 @@ class SolderPaste(FlatCAMTool): filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export Machine Code ...", filter=_filter_) if filename == '': - self.app.inform.emit(_tr("[WARNING_NOTCL] Export Machine Code cancelled ...")) + self.app.inform.emit(_("[WARNING_NOTCL] Export Machine Code cancelled ...")) return gcode = '(G-CODE GENERATED BY FLATCAM v%s - www.flatcam.org - Version Date: %s)\n' % \ @@ -1379,11 +1372,11 @@ class SolderPaste(FlatCAMTool): for line in lines: f.write(line) except FileNotFoundError: - self.app.inform.emit(_tr("[WARNING_NOTCL] No such file or directory")) + self.app.inform.emit(_("[WARNING_NOTCL] No such file or directory")) return self.app.file_saved.emit("gcode", filename) - self.app.inform.emit(_tr("[success] Solder paste dispenser GCode file saved to: %s") % filename) + self.app.inform.emit(_("[success] Solder paste dispenser GCode file saved to: %s") % filename) def reset_fields(self): self.obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) diff --git a/flatcamTools/ToolTransform.py b/flatcamTools/ToolTransform.py index 38b7434e..b32867cb 100644 --- a/flatcamTools/ToolTransform.py +++ b/flatcamTools/ToolTransform.py @@ -9,21 +9,14 @@ import FlatCAMTranslation as fcTranslate fcTranslate.apply_language('ToolTransform') -def _tr(text): - try: - return _(text) - except: - return text - - class ToolTransform(FlatCAMTool): - toolName = _tr("Object Transform") - rotateName = _tr("Rotate") - skewName = _tr("Skew/Shear") - scaleName = _tr("Scale") - flipName = _tr("Mirror (Flip)") - offsetName = _tr("Offset") + toolName = _("Object Transform") + rotateName = _("Rotate") + skewName = _("Skew/Shear") + scaleName = _("Scale") + flipName = _("Mirror (Flip)") + offsetName = _("Offset") def __init__(self, app): FlatCAMTool.__init__(self, app) @@ -63,9 +56,9 @@ class ToolTransform(FlatCAMTool): self.transform_lay.addLayout(form_layout) form_child = QtWidgets.QHBoxLayout() - self.rotate_label = QtWidgets.QLabel(_tr("Angle:")) + self.rotate_label = QtWidgets.QLabel(_("Angle:")) self.rotate_label.setToolTip( - _tr("Angle for Rotation action, in degrees.\n" + _("Angle for Rotation action, in degrees.\n" "Float number between -360 and 359.\n" "Positive numbers for CW motion.\n" "Negative numbers for CCW motion.") @@ -77,9 +70,9 @@ class ToolTransform(FlatCAMTool): self.rotate_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.rotate_button = FCButton() - self.rotate_button.set_value(_tr("Rotate")) + self.rotate_button.set_value(_("Rotate")) self.rotate_button.setToolTip( - _tr("Rotate the selected object(s).\n" + _("Rotate the selected object(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected objects.") ) @@ -102,9 +95,9 @@ class ToolTransform(FlatCAMTool): form1_child_1 = QtWidgets.QHBoxLayout() form1_child_2 = QtWidgets.QHBoxLayout() - self.skewx_label = QtWidgets.QLabel(_tr("Angle X:")) + self.skewx_label = QtWidgets.QLabel(_("Angle X:")) self.skewx_label.setToolTip( - _tr("Angle for Skew action, in degrees.\n" + _("Angle for Skew action, in degrees.\n" "Float number between -360 and 359.") ) self.skewx_label.setFixedWidth(50) @@ -113,16 +106,16 @@ class ToolTransform(FlatCAMTool): # self.skewx_entry.setFixedWidth(60) self.skewx_button = FCButton() - self.skewx_button.set_value(_tr("Skew X")) + self.skewx_button.set_value(_("Skew X")) self.skewx_button.setToolTip( - _tr("Skew/shear the selected object(s).\n" + _("Skew/shear the selected object(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected objects.")) self.skewx_button.setFixedWidth(60) - self.skewy_label = QtWidgets.QLabel(_tr("Angle Y:")) + self.skewy_label = QtWidgets.QLabel(_("Angle Y:")) self.skewy_label.setToolTip( - _tr("Angle for Skew action, in degrees.\n" + _("Angle for Skew action, in degrees.\n" "Float number between -360 and 359.") ) self.skewy_label.setFixedWidth(50) @@ -131,9 +124,9 @@ class ToolTransform(FlatCAMTool): # self.skewy_entry.setFixedWidth(60) self.skewy_button = FCButton() - self.skewy_button.set_value(_tr("Skew Y")) + self.skewy_button.set_value(_("Skew Y")) self.skewy_button.setToolTip( - _tr("Skew/shear the selected object(s).\n" + _("Skew/shear the selected object(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected objects.")) self.skewy_button.setFixedWidth(60) @@ -159,9 +152,9 @@ class ToolTransform(FlatCAMTool): form2_child_1 = QtWidgets.QHBoxLayout() form2_child_2 = QtWidgets.QHBoxLayout() - self.scalex_label = QtWidgets.QLabel(_tr("Factor X:")) + self.scalex_label = QtWidgets.QLabel(_("Factor X:")) self.scalex_label.setToolTip( - _tr("Factor for Scale action over X axis.") + _("Factor for Scale action over X axis.") ) self.scalex_label.setFixedWidth(50) self.scalex_entry = FCEntry() @@ -169,16 +162,16 @@ class ToolTransform(FlatCAMTool): # self.scalex_entry.setFixedWidth(60) self.scalex_button = FCButton() - self.scalex_button.set_value(_tr("Scale X")) + self.scalex_button.set_value(_("Scale X")) self.scalex_button.setToolTip( - _tr("Scale the selected object(s).\n" + _("Scale the selected object(s).\n" "The point of reference depends on \n" "the Scale reference checkbox state.")) self.scalex_button.setFixedWidth(60) - self.scaley_label = QtWidgets.QLabel(_tr("Factor Y:")) + self.scaley_label = QtWidgets.QLabel(_("Factor Y:")) self.scaley_label.setToolTip( - _tr("Factor for Scale action over Y axis.") + _("Factor for Scale action over Y axis.") ) self.scaley_label.setFixedWidth(50) self.scaley_entry = FCEntry() @@ -186,26 +179,26 @@ class ToolTransform(FlatCAMTool): # self.scaley_entry.setFixedWidth(60) self.scaley_button = FCButton() - self.scaley_button.set_value(_tr("Scale Y")) + self.scaley_button.set_value(_("Scale Y")) self.scaley_button.setToolTip( - _tr("Scale the selected object(s).\n" + _("Scale the selected object(s).\n" "The point of reference depends on \n" "the Scale reference checkbox state.")) self.scaley_button.setFixedWidth(60) self.scale_link_cb = FCCheckBox() self.scale_link_cb.set_value(True) - self.scale_link_cb.setText(_tr("Link")) + self.scale_link_cb.setText(_("Link")) self.scale_link_cb.setToolTip( - _tr("Scale the selected object(s)\n" + _("Scale the selected object(s)\n" "using the Scale Factor X for both axis.")) self.scale_link_cb.setFixedWidth(50) self.scale_zero_ref_cb = FCCheckBox() self.scale_zero_ref_cb.set_value(True) - self.scale_zero_ref_cb.setText(_tr("Scale Reference")) + self.scale_zero_ref_cb.setText(_("Scale Reference")) self.scale_zero_ref_cb.setToolTip( - _tr("Scale the selected object(s)\n" + _("Scale the selected object(s)\n" "using the origin reference when checked,\n" "and the center of the biggest bounding box\n" "of the selected objects when unchecked.")) @@ -233,9 +226,9 @@ class ToolTransform(FlatCAMTool): form3_child_1 = QtWidgets.QHBoxLayout() form3_child_2 = QtWidgets.QHBoxLayout() - self.offx_label = QtWidgets.QLabel(_tr("Value X:")) + self.offx_label = QtWidgets.QLabel(_("Value X:")) self.offx_label.setToolTip( - _tr("Value for Offset action on X axis.") + _("Value for Offset action on X axis.") ) self.offx_label.setFixedWidth(50) self.offx_entry = FCEntry() @@ -243,16 +236,16 @@ class ToolTransform(FlatCAMTool): # self.offx_entry.setFixedWidth(60) self.offx_button = FCButton() - self.offx_button.set_value(_tr("Offset X")) + self.offx_button.set_value(_("Offset X")) self.offx_button.setToolTip( - _tr("Offset the selected object(s).\n" + _("Offset the selected object(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected objects.\n")) self.offx_button.setFixedWidth(60) - self.offy_label = QtWidgets.QLabel(_tr("Value Y:")) + self.offy_label = QtWidgets.QLabel(_("Value Y:")) self.offy_label.setToolTip( - _tr("Value for Offset action on Y axis.") + _("Value for Offset action on Y axis.") ) self.offy_label.setFixedWidth(50) self.offy_entry = FCEntry() @@ -260,9 +253,9 @@ class ToolTransform(FlatCAMTool): # self.offy_entry.setFixedWidth(60) self.offy_button = FCButton() - self.offy_button.set_value(_tr("Offset Y")) + self.offy_button.set_value(_("Offset Y")) self.offy_button.setToolTip( - _tr("Offset the selected object(s).\n" + _("Offset the selected object(s).\n" "The point of reference is the middle of\n" "the bounding box for all selected objects.\n")) self.offy_button.setFixedWidth(60) @@ -290,26 +283,26 @@ class ToolTransform(FlatCAMTool): form4_child_1 = QtWidgets.QHBoxLayout() self.flipx_button = FCButton() - self.flipx_button.set_value(_tr("Flip on X")) + self.flipx_button.set_value(_("Flip on X")) self.flipx_button.setToolTip( - _tr("Flip the selected object(s) over the X axis.\n" + _("Flip the selected object(s) over the X axis.\n" "Does not create a new object.\n ") ) self.flipx_button.setFixedWidth(60) self.flipy_button = FCButton() - self.flipy_button.set_value(_tr("Flip on Y")) + self.flipy_button.set_value(_("Flip on Y")) self.flipy_button.setToolTip( - _tr("Flip the selected object(s) over the X axis.\n" + _("Flip the selected object(s) over the X axis.\n" "Does not create a new object.\n ") ) self.flipy_button.setFixedWidth(60) self.flip_ref_cb = FCCheckBox() self.flip_ref_cb.set_value(True) - self.flip_ref_cb.setText(_tr("Ref Pt")) + self.flip_ref_cb.setText(_("Ref Pt")) self.flip_ref_cb.setToolTip( - _tr("Flip the selected object(s)\n" + _("Flip the selected object(s)\n" "around the point in Point Entry Field.\n" "\n" "The point coordinates can be captured by\n" @@ -320,9 +313,9 @@ class ToolTransform(FlatCAMTool): "Point Entry field and click Flip on X(Y)")) self.flip_ref_cb.setFixedWidth(50) - self.flip_ref_label = QtWidgets.QLabel(_tr("Point:")) + self.flip_ref_label = QtWidgets.QLabel(_("Point:")) self.flip_ref_label.setToolTip( - _tr("Coordinates in format (x, y) used as reference for mirroring.\n" + _("Coordinates in format (x, y) used as reference for mirroring.\n" "The 'x' in (x, y) will be used when using Flip on X and\n" "the 'y' in (x, y) will be used when using Flip on Y and") ) @@ -332,9 +325,9 @@ class ToolTransform(FlatCAMTool): # self.flip_ref_entry.setFixedWidth(60) self.flip_ref_button = FCButton() - self.flip_ref_button.set_value(_tr("Add")) + self.flip_ref_button.set_value(_("Add")) self.flip_ref_button.setToolTip( - _tr("The point coordinates can be captured by\n" + _("The point coordinates can be captured by\n" "left click on canvas together with pressing\n" "SHIFT key. Then click Add button to insert.")) self.flip_ref_button.setFixedWidth(60) @@ -390,7 +383,7 @@ class ToolTransform(FlatCAMTool): FlatCAMTool.run(self) self.set_tool_ui() - self.app.ui.notebook.setTabText(2, _tr("Transform Tool")) + self.app.ui.notebook.setTabText(2, _("Transform Tool")) def install(self, icon=None, separator=None, **kwargs): FlatCAMTool.install(self, icon, separator, shortcut='ALT+R', **kwargs) @@ -460,7 +453,7 @@ class ToolTransform(FlatCAMTool): try: value = float(self.rotate_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Rotate, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Rotate, " "use a number.")) return self.app.worker_task.emit({'fcn': self.on_rotate_action, @@ -494,7 +487,7 @@ class ToolTransform(FlatCAMTool): try: value = float(self.skewx_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Skew X, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Skew X, " "use a number.")) return @@ -512,7 +505,7 @@ class ToolTransform(FlatCAMTool): try: value = float(self.skewy_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Skew Y, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Skew Y, " "use a number.")) return @@ -530,7 +523,7 @@ class ToolTransform(FlatCAMTool): try: xvalue = float(self.scalex_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Scale X, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Scale X, " "use a number.")) return @@ -564,7 +557,7 @@ class ToolTransform(FlatCAMTool): try: yvalue = float(self.scaley_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Scale Y, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Scale Y, " "use a number.")) return @@ -593,7 +586,7 @@ class ToolTransform(FlatCAMTool): try: value = float(self.offx_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Offset X, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Offset X, " "use a number.")) return @@ -611,7 +604,7 @@ class ToolTransform(FlatCAMTool): try: value = float(self.offy_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_tr("[ERROR_NOTCL]Wrong value format entered for Offset Y, " + self.app.inform.emit(_("[ERROR_NOTCL]Wrong value format entered for Offset Y, " "use a number.")) return @@ -629,10 +622,10 @@ class ToolTransform(FlatCAMTool): ymaxlist = [] if not obj_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No object selected. Please Select an object to rotate!")) + self.app.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an object to rotate!")) return else: - with self.app.proc_container.new(_tr("Appying Rotate")): + with self.app.proc_container.new(_("Appying Rotate")): try: # first get a bounding box to fit all for obj in obj_list: @@ -657,7 +650,7 @@ class ToolTransform(FlatCAMTool): px = 0.5 * (xminimal + xmaximal) py = 0.5 * (yminimal + ymaximal) if isinstance(sel_obj, FlatCAMCNCjob): - self.app.inform.emit(_tr("CNCJob objects can't be rotated.")) + self.app.inform.emit(_("CNCJob objects can't be rotated.")) else: sel_obj.rotate(-num, point=(px, py)) sel_obj.plot() @@ -666,11 +659,11 @@ class ToolTransform(FlatCAMTool): # add information to the object that it was changed and how much sel_obj.options['rotate'] = num - self.app.inform.emit(_tr('[success]Rotate done ...')) + self.app.inform.emit(_('[success]Rotate done ...')) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_tr("[ERROR_NOTCL] Due of %s, rotation movement was not executed.") % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, rotation movement was not executed.") % str(e)) return def on_flip(self, axis): @@ -681,10 +674,10 @@ class ToolTransform(FlatCAMTool): ymaxlist = [] if not obj_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No object selected. Please Select an object to flip!")) + self.app.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an object to flip!")) return else: - with self.app.proc_container.new(_tr("Applying Flip")): + with self.app.proc_container.new(_("Applying Flip")): try: # get mirroring coords from the point entry if self.flip_ref_cb.isChecked(): @@ -716,7 +709,7 @@ class ToolTransform(FlatCAMTool): # execute mirroring for obj in obj_list: if isinstance(obj, FlatCAMCNCjob): - self.app.inform.emit(_tr("CNCJob objects can't be mirrored/flipped.")) + self.app.inform.emit(_("CNCJob objects can't be mirrored/flipped.")) else: if axis is 'X': obj.mirror('X', (px, py)) @@ -727,7 +720,7 @@ class ToolTransform(FlatCAMTool): else: obj.options['mirror_y'] = True obj.plot() - self.app.inform.emit(_tr('[success]Flip on the Y axis done ...')) + self.app.inform.emit(_('[success]Flip on the Y axis done ...')) elif axis is 'Y': obj.mirror('Y', (px, py)) # add information to the object that it was changed and how much @@ -737,12 +730,12 @@ class ToolTransform(FlatCAMTool): else: obj.options['mirror_x'] = True obj.plot() - self.app.inform.emit(_tr('[success]Flip on the X axis done ...')) + self.app.inform.emit(_('[success]Flip on the X axis done ...')) self.app.object_changed.emit(obj) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_tr("[ERROR_NOTCL] Due of %s, Flip action was not executed.") % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Flip action was not executed.") % str(e)) return def on_skew(self, axis, num): @@ -751,10 +744,10 @@ class ToolTransform(FlatCAMTool): yminlist = [] if not obj_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No object selected. Please Select an object to shear/skew!")) + self.app.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an object to shear/skew!")) return else: - with self.app.proc_container.new(_tr("Applying Skew")): + with self.app.proc_container.new(_("Applying Skew")): try: # first get a bounding box to fit all for obj in obj_list: @@ -773,7 +766,7 @@ class ToolTransform(FlatCAMTool): for obj in obj_list: if isinstance(obj, FlatCAMCNCjob): - self.app.inform.emit(_tr("CNCJob objects can't be skewed.")) + self.app.inform.emit(_("CNCJob objects can't be skewed.")) else: if axis is 'X': obj.skew(num, 0, point=(xminimal, yminimal)) @@ -785,11 +778,11 @@ class ToolTransform(FlatCAMTool): obj.options['skew_y'] = num obj.plot() self.app.object_changed.emit(obj) - self.app.inform.emit(_tr('[success]Skew on the %s axis done ...') % str(axis)) + self.app.inform.emit(_('[success]Skew on the %s axis done ...') % str(axis)) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_tr("[ERROR_NOTCL] Due of %s, Skew action was not executed.") % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Skew action was not executed.") % str(e)) return def on_scale(self, axis, xfactor, yfactor, point=None): @@ -800,10 +793,10 @@ class ToolTransform(FlatCAMTool): ymaxlist = [] if not obj_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No object selected. Please Select an object to scale!")) + self.app.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an object to scale!")) return else: - with self.app.proc_container.new(_tr("Applying Scale")): + with self.app.proc_container.new(_("Applying Scale")): try: # first get a bounding box to fit all for obj in obj_list: @@ -833,7 +826,7 @@ class ToolTransform(FlatCAMTool): for obj in obj_list: if isinstance(obj, FlatCAMCNCjob): - self.app.inform.emit(_tr("CNCJob objects can't be scaled.")) + self.app.inform.emit(_("CNCJob objects can't be scaled.")) else: obj.scale(xfactor, yfactor, point=(px, py)) # add information to the object that it was changed and how much @@ -841,10 +834,10 @@ class ToolTransform(FlatCAMTool): obj.options['scale_y'] = yfactor obj.plot() self.app.object_changed.emit(obj) - self.app.inform.emit(_tr('[success] Scale on the %s axis done ...') % str(axis)) + self.app.inform.emit(_('[success] Scale on the %s axis done ...') % str(axis)) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_tr("[ERROR_NOTCL] Due of %s, Scale action was not executed.") % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Scale action was not executed.") % str(e)) return def on_offset(self, axis, num): @@ -853,10 +846,10 @@ class ToolTransform(FlatCAMTool): yminlist = [] if not obj_list: - self.app.inform.emit(_tr("[WARNING_NOTCL] No object selected. Please Select an object to offset!")) + self.app.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an object to offset!")) return else: - with self.app.proc_container.new(_tr("Applying Offset")): + with self.app.proc_container.new(_("Applying Offset")): try: # first get a bounding box to fit all for obj in obj_list: @@ -874,7 +867,7 @@ class ToolTransform(FlatCAMTool): for obj in obj_list: if isinstance(obj, FlatCAMCNCjob): - self.app.inform.emit(_tr("CNCJob objects can't be offseted.")) + self.app.inform.emit(_("CNCJob objects can't be offseted.")) else: if axis is 'X': obj.offset((num, 0)) @@ -886,11 +879,11 @@ class ToolTransform(FlatCAMTool): obj.options['offset_y'] = num obj.plot() self.app.object_changed.emit(obj) - self.app.inform.emit(_tr('[success]Offset on the %s axis done ...') % str(axis)) + self.app.inform.emit(_('[success]Offset on the %s axis done ...') % str(axis)) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_tr("[ERROR_NOTCL] Due of %s, Offset action was not executed.") % str(e)) + self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Offset action was not executed.") % str(e)) return # end of file diff --git a/locale/de/LC_MESSAGES/ToolMeasurement.mo b/locale/de/LC_MESSAGES/ToolMeasurement.mo deleted file mode 100644 index 4504f620..00000000 Binary files a/locale/de/LC_MESSAGES/ToolMeasurement.mo and /dev/null differ diff --git a/locale/de/LC_MESSAGES/ToolMeasurement.po b/locale/de/LC_MESSAGES/ToolMeasurement.po deleted file mode 100644 index 1b39297a..00000000 --- a/locale/de/LC_MESSAGES/ToolMeasurement.po +++ /dev/null @@ -1,92 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR ORGANIZATION -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: 2019-03-07 23:07+0200\n" -"PO-Revision-Date: 2019-03-07 23:19+0200\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.2.1\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Language: en\n" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:28 -msgid "Measurement" -msgstr "Measurement" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -msgid "Start" -msgstr "Start" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Coords" -msgstr "Coords" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:50 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:101 -msgid "This is measuring Start point coordinates." -msgstr "This is measuring Start point coordinates." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Stop" -msgstr "Stop" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:53 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:106 -msgid "This is the measuring Stop point coordinates." -msgstr "This is the measuring Stop point coordinates." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:56 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:111 -msgid "This is the distance measured over the X axis." -msgstr "This is the distance measured over the X axis." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:59 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:117 -msgid "This is the distance measured over the Y axis." -msgstr "This is the distance measured over the Y axis." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:61 -msgid "DISTANCE" -msgstr "DISTANCE" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:62 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:123 -msgid "This is the point to point Euclidian distance." -msgstr "This is the point to point Euclidian distance." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:65 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:72 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:79 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:86 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:93 -msgid "Those are the units in which the distance is measured." -msgstr "Those are the units in which the distance is measured." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:126 -msgid "Measure" -msgstr "Measure" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:185 -msgid "Meas. Tool" -msgstr "Meas. Tool" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:278 -msgid "MEASURING: Click on the Start point ..." -msgstr "MEASURING: Click on the Start point ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:307 -msgid "MEASURING: Click on the Destination point ..." -msgstr "MEASURING: Click on the Destination point ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:328 -msgid "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" -msgstr "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" diff --git a/locale/en/LC_MESSAGES/FlatCAMApp.mo b/locale/en/LC_MESSAGES/FlatCAMApp.mo new file mode 100644 index 00000000..5aa9510f Binary files /dev/null and b/locale/en/LC_MESSAGES/FlatCAMApp.mo differ diff --git a/locale/en/LC_MESSAGES/FlatCAMApp.po b/locale/en/LC_MESSAGES/FlatCAMApp.po new file mode 100644 index 00000000..65eb75d6 --- /dev/null +++ b/locale/en/LC_MESSAGES/FlatCAMApp.po @@ -0,0 +1,942 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 02:00+0200\n" +"PO-Revision-Date: 2019-03-10 02:37+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:854 +msgid "[ERROR] Could not find the Language files. The App strings are missing." +msgstr "" +"[ERROR] Could not find the Language files. The App strings are missing." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1676 +msgid "Open cancelled." +msgstr "Open cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1690 +msgid "Open Config file failed." +msgstr "Open Config file failed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1871 +msgid "" +"[WARNING_NOTCL] Editing a MultiGeo Geometry is not possible for the moment." +msgstr "" +"[WARNING_NOTCL] Editing a MultiGeo Geometry is not possible for the moment." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1892 +msgid "[WARNING_NOTCL]Select a Geometry or Excellon Object to edit." +msgstr "[WARNING_NOTCL]Select a Geometry or Excellon Object to edit." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1903 +msgid "[WARNING_NOTCL]Editor is activated ..." +msgstr "[WARNING_NOTCL]Editor is activated ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1938 +msgid "[WARNING] Object empty after edit." +msgstr "[WARNING] Object empty after edit." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1947 +msgid "[WARNING_NOTCL]Select a Geometry or Excellon Object to update." +msgstr "[WARNING_NOTCL]Select a Geometry or Excellon Object to update." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1960 +msgid "[selected] %s is updated, returning to App..." +msgstr "[selected] %s is updated, returning to App..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2283 +msgid "[ERROR] Could not load defaults file." +msgstr "[ERROR] Could not load defaults file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2295 +msgid "[ERROR] Failed to parse defaults file." +msgstr "[ERROR] Failed to parse defaults file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2324 +msgid "[WARNING_NOTCL]FlatCAM preferences import cancelled." +msgstr "[WARNING_NOTCL]FlatCAM preferences import cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2332 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2806 +msgid "[ERROR_NOTCL] Could not load defaults file." +msgstr "[ERROR_NOTCL] Could not load defaults file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2340 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2815 +msgid "[ERROR_NOTCL] Failed to parse defaults file." +msgstr "[ERROR_NOTCL] Failed to parse defaults file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2343 +msgid "[success]Imported Defaults from %s" +msgstr "[success]Imported Defaults from %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2363 +msgid "[WARNING_NOTCL]FlatCAM preferences export cancelled." +msgstr "[WARNING_NOTCL]FlatCAM preferences export cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2379 +msgid "[ERROR_NOTCL]Could not load defaults file." +msgstr "[ERROR_NOTCL]Could not load defaults file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2398 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2829 +msgid "[ERROR_NOTCL] Failed to write defaults to file." +msgstr "[ERROR_NOTCL] Failed to write defaults to file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2450 +msgid "[ERROR_NOTCL]Failed to open recent files file for writing." +msgstr "[ERROR_NOTCL]Failed to open recent files file for writing." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2535 +msgid "[ERROR_NOTCL] An internal error has ocurred. See shell.\n" +msgstr "[ERROR_NOTCL] An internal error has ocurred. See shell.\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2536 +msgid "" +"Object (%s) failed because: %s \n" +"\n" +msgstr "" +"Object (%s) failed because: %s \n" +"\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2556 +msgid "Converting units to " +msgstr "Converting units to " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2617 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2620 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2623 +msgid "[selected]%s created/selected: %s" +msgstr "[selected]%s created/selected: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2861 +msgid "[success]Defaults saved." +msgstr "[success]Defaults saved." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2882 +msgid "[ERROR_NOTCL] Could not load factory defaults file." +msgstr "[ERROR_NOTCL] Could not load factory defaults file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2891 +msgid "[ERROR_NOTCL] Failed to parse factory defaults file." +msgstr "[ERROR_NOTCL] Failed to parse factory defaults file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2905 +msgid "[ERROR_NOTCL] Failed to write factory defaults to file." +msgstr "[ERROR_NOTCL] Failed to write factory defaults to file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2909 +msgid "Factory defaults saved." +msgstr "Factory defaults saved." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2915 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2918 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5176 +msgid "Save changes" +msgstr "Save changes" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2967 +msgid "" +"[ERROR] Failed join. The Geometry objects are of different types.\n" +"At least one is MultiGeo type and the other is SingleGeo type. A possibility " +"is to convert from one to another and retry joining \n" +"but in the case of converting from MultiGeo to SingleGeo, informations may " +"be lost and the result may not be what was expected. \n" +"Check the generated GCODE." +msgstr "" +"[ERROR] Failed join. The Geometry objects are of different types.\n" +"At least one is MultiGeo type and the other is SingleGeo type. A possibility " +"is to convert from one to another and retry joining \n" +"but in the case of converting from MultiGeo to SingleGeo, informations may " +"be lost and the result may not be what was expected. \n" +"Check the generated GCODE." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3008 +msgid "[ERROR_NOTCL]Failed. Excellon joining works only on Excellon objects." +msgstr "[ERROR_NOTCL]Failed. Excellon joining works only on Excellon objects." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3030 +msgid "[ERROR_NOTCL]Failed. Gerber joining works only on Gerber objects." +msgstr "[ERROR_NOTCL]Failed. Gerber joining works only on Gerber objects." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3045 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3070 +msgid "[ERROR_NOTCL]Failed. Select a Geometry Object and try again." +msgstr "[ERROR_NOTCL]Failed. Select a Geometry Object and try again." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3049 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3074 +msgid "[ERROR_NOTCL]Expected a FlatCAMGeometry, got %s" +msgstr "[ERROR_NOTCL]Expected a FlatCAMGeometry, got %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3062 +msgid "[success] A Geometry object was converted to MultiGeo type." +msgstr "[success] A Geometry object was converted to MultiGeo type." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3088 +msgid "[success] A Geometry object was converted to SingleGeo type." +msgstr "[success] A Geometry object was converted to SingleGeo type." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3272 +msgid "[success]Converted units to %s" +msgstr "[success]Converted units to %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3283 +msgid "[WARNING_NOTCL]Units conversion cancelled." +msgstr "[WARNING_NOTCL]Units conversion cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3907 +msgid "[WARNING_NOTCL]Export Code cancelled." +msgstr "[WARNING_NOTCL]Export Code cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3917 +msgid "[WARNING] No such file or directory" +msgstr "[WARNING] No such file or directory" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3924 +msgid "Saved to: %s" +msgstr "Saved to: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3987 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4019 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4030 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4041 +msgid "" +"[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " +"format." +msgstr "" +"[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " +"format." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3992 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4024 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4035 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4046 +msgid "[WARNING_NOTCL] Adding Tool cancelled ..." +msgstr "[WARNING_NOTCL] Adding Tool cancelled ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3995 +msgid "" +"Adding Tool works only when Advanced is checked.\n" +"Go to Preferences -> General - Show Advanced Options." +msgstr "" +"Adding Tool works only when Advanced is checked.\n" +"Go to Preferences -> General - Show Advanced Options." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4100 +msgid "Object(s) deleted ..." +msgstr "Object(s) deleted ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4104 +msgid "Failed. No object(s) selected..." +msgstr "Failed. No object(s) selected..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4106 +msgid "Save the work in Editor and try again ..." +msgstr "Save the work in Editor and try again ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4119 +msgid "Click to set the origin ..." +msgstr "Click to set the origin ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4131 +msgid "Jump to ..." +msgstr "Jump to ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4132 +msgid "Enter the coordinates in format X,Y:" +msgstr "Enter the coordinates in format X,Y:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4139 +msgid "Wrong coordinates. Enter coordinates in format: X,Y" +msgstr "Wrong coordinates. Enter coordinates in format: X,Y" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4154 +msgid "Done." +msgstr "Done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4286 +msgid "[success] Origin set ..." +msgstr "[success] Origin set ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4324 +msgid "[WARNING_NOTCL] No object selected to Flip on Y axis." +msgstr "[WARNING_NOTCL] No object selected to Flip on Y axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4349 +msgid "[success] Flip on Y axis done." +msgstr "[success] Flip on Y axis done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4351 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4391 +msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." +msgstr "[ERROR_NOTCL] Due of %s, Flip action was not executed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4364 +msgid "[WARNING_NOTCL] No object selected to Flip on X axis." +msgstr "[WARNING_NOTCL] No object selected to Flip on X axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4389 +msgid "[success] Flip on X axis done." +msgstr "[success] Flip on X axis done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4404 +msgid "[WARNING_NOTCL] No object selected to Rotate." +msgstr "[WARNING_NOTCL] No object selected to Rotate." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4407 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4452 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4483 +msgid "Enter the Angle value:" +msgstr "Enter the Angle value:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4407 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4452 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4483 +msgid "Transform" +msgstr "Transform" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4437 +msgid "[success] Rotation done." +msgstr "[success] Rotation done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4439 +msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." +msgstr "[ERROR_NOTCL] Due of %s, rotation movement was not executed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4450 +msgid "[WARNING_NOTCL] No object selected to Skew/Shear on X axis." +msgstr "[WARNING_NOTCL] No object selected to Skew/Shear on X axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4471 +msgid "[success] Skew on X axis done." +msgstr "[success] Skew on X axis done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4481 +msgid "[WARNING_NOTCL] No object selected to Skew/Shear on Y axis." +msgstr "[WARNING_NOTCL] No object selected to Skew/Shear on Y axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4502 +msgid "[success] Skew on Y axis done." +msgstr "[success] Skew on Y axis done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4598 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4625 +msgid "" +"[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float " +"format." +msgstr "" +"[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float " +"format." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4604 +msgid "[success] New Grid added ..." +msgstr "[success] New Grid added ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4607 +msgid "[WARNING_NOTCL] Grid already exists ..." +msgstr "[WARNING_NOTCL] Grid already exists ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4610 +msgid "[WARNING_NOTCL] Adding New Grid cancelled ..." +msgstr "[WARNING_NOTCL] Adding New Grid cancelled ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4632 +msgid "[ERROR_NOTCL] Grid Value does not exist ..." +msgstr "[ERROR_NOTCL] Grid Value does not exist ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4635 +msgid "[success] Grid Value deleted ..." +msgstr "[success] Grid Value deleted ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4638 +msgid "[WARNING_NOTCL] Delete Grid value cancelled ..." +msgstr "[WARNING_NOTCL] Delete Grid value cancelled ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4677 +msgid "[WARNING_NOTCL]No object selected to copy it's name" +msgstr "[WARNING_NOTCL]No object selected to copy it's name" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4681 +msgid "Name copied on clipboard ..." +msgstr "Name copied on clipboard ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4976 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4979 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4982 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4985 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4999 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5002 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5005 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5008 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5047 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5050 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5053 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5056 +msgid "[selected]%s selected" +msgstr "[selected]%s selected" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5173 +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?" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5191 +msgid "[success] New Project created..." +msgstr "[success] New Project created..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5272 +msgid "" +"[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file." +msgstr "" +"[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5279 +msgid "" +"[WARNING_NOTCL] There is no selected object for which to see it's source " +"file code." +msgstr "" +"[WARNING_NOTCL] There is no selected object for which to see it's source " +"file code." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5283 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6723 +msgid "Code Editor" +msgstr "Code Editor" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5296 +msgid "[ERROR]App.on_view_source() -->%s" +msgstr "[ERROR]App.on_view_source() -->%s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5342 +msgid "[WARNING_NOTCL]Open Gerber cancelled." +msgstr "[WARNING_NOTCL]Open Gerber cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5371 +msgid "[WARNING_NOTCL]Open Excellon cancelled." +msgstr "[WARNING_NOTCL]Open Excellon cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5401 +msgid "[WARNING_NOTCL]Open G-Code cancelled." +msgstr "[WARNING_NOTCL]Open G-Code cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5430 +msgid "[WARNING_NOTCL]Open Project cancelled." +msgstr "[WARNING_NOTCL]Open Project cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5455 +msgid "[WARNING_NOTCL]Open COnfig cancelled." +msgstr "[WARNING_NOTCL]Open COnfig cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5470 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5667 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7583 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7603 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7624 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7646 +msgid "[WARNING_NOTCL] No object selected." +msgstr "[WARNING_NOTCL] No object selected." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5471 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5668 +msgid "Please Select a Geometry object to export" +msgstr "Please Select a Geometry object to export" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5482 +msgid "[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used." +msgstr "[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5504 +msgid "[WARNING_NOTCL]Export SVG cancelled." +msgstr "[WARNING_NOTCL]Export SVG cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5518 +msgid "[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4" +msgstr "[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5528 +msgid "Export PNG Image" +msgstr "Export PNG Image" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5533 +msgid "Export PNG cancelled." +msgstr "Export PNG cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5550 +msgid "" +"[WARNING_NOTCL] No object selected. Please select an Gerber object to export." +msgstr "" +"[WARNING_NOTCL] No object selected. Please select an Gerber object to export." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5555 +msgid "" +"[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "" +"[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5567 +msgid "Save Gerber source file" +msgstr "Save Gerber source file" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5572 +msgid "[WARNING_NOTCL]Save Gerber source file cancelled." +msgstr "[WARNING_NOTCL]Save Gerber source file cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5589 +msgid "" +"[WARNING_NOTCL] No object selected. Please select an Excellon object to " +"export." +msgstr "" +"[WARNING_NOTCL] No object selected. Please select an Excellon object to " +"export." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5594 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5633 +msgid "" +"[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" +"[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5606 +msgid "Save Excellon source file" +msgstr "Save Excellon source file" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5611 +msgid "[WARNING_NOTCL]Saving Excellon source file cancelled." +msgstr "[WARNING_NOTCL]Saving Excellon source file cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5628 +msgid "" +"[WARNING_NOTCL] No object selected. Please Select an Excellon object to " +"export." +msgstr "" +"[WARNING_NOTCL] No object selected. Please Select an Excellon object to " +"export." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5645 +msgid "Export Excellon" +msgstr "Export Excellon" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5650 +msgid "[WARNING_NOTCL]Export Excellon cancelled." +msgstr "[WARNING_NOTCL]Export Excellon cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5678 +msgid "[ERROR_NOTCL] Only Geometry objects can be used." +msgstr "[ERROR_NOTCL] Only Geometry objects can be used." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5695 +msgid "Export DXF" +msgstr "Export DXF" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5700 +msgid "[WARNING_NOTCL] Export DXF cancelled." +msgstr "[WARNING_NOTCL] Export DXF cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5729 +msgid "[WARNING_NOTCL]Open SVG cancelled." +msgstr "[WARNING_NOTCL]Open SVG cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5748 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5751 +msgid "Import DXF" +msgstr "Import DXF" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5759 +msgid "[WARNING_NOTCL]Open DXF cancelled." +msgstr "[WARNING_NOTCL]Open DXF cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5777 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5780 +msgid "Open TCL script" +msgstr "Open TCL script" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5788 +msgid "[WARNING_NOTCL]Open TCL script cancelled." +msgstr "[WARNING_NOTCL]Open TCL script cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5840 +msgid "Save Project As ..." +msgstr "Save Project As ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5845 +msgid "[WARNING_NOTCL]Save Project cancelled." +msgstr "[WARNING_NOTCL]Save Project cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5900 +msgid "Exporting SVG" +msgstr "Exporting SVG" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5933 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6038 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6152 +msgid "[success] SVG file exported to %s" +msgstr "[success] SVG file exported to %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5964 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6084 +msgid "[WARNING_NOTCL]No object Box. Using instead %s" +msgstr "[WARNING_NOTCL]No object Box. Using instead %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6041 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6155 +msgid "Generating Film ... Please wait." +msgstr "Generating Film ... Please wait." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6302 +msgid "[success] Excellon file exported to %s" +msgstr "[success] Excellon file exported to %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6309 +msgid "Exporting Excellon" +msgstr "Exporting Excellon" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6314 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6321 +msgid "[ERROR_NOTCL] Could not export Excellon file." +msgstr "[ERROR_NOTCL] Could not export Excellon file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6360 +msgid "[success] DXF file exported to %s" +msgstr "[success] DXF file exported to %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6366 +msgid "Exporting DXF" +msgstr "Exporting DXF" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6371 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6378 +msgid "[[WARNING_NOTCL]] Could not export DXF file." +msgstr "[[WARNING_NOTCL]] Could not export DXF file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6398 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6440 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6481 +msgid "" +"[ERROR_NOTCL] Not supported type is picked as parameter. Only Geometry and " +"Gerber are supported" +msgstr "" +"[ERROR_NOTCL] Not supported type is picked as parameter. Only Geometry and " +"Gerber are supported" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6408 +msgid "Importing SVG" +msgstr "Importing SVG" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6419 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6461 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6501 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6577 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6644 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6709 +msgid "[success] Opened: %s" +msgstr "[success] Opened: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6450 +msgid "Importing DXF" +msgstr "Importing DXF" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6489 +msgid "Importing Image" +msgstr "Importing Image" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6530 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6532 +msgid "[ERROR_NOTCL] Failed to open file: %s" +msgstr "[ERROR_NOTCL] Failed to open file: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6535 +msgid "[ERROR_NOTCL] Failed to parse file: %s. %s" +msgstr "[ERROR_NOTCL] Failed to parse file: %s. %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6541 +msgid "[ERROR] An internal error has ocurred. See shell.\n" +msgstr "[ERROR] An internal error has ocurred. See shell.\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6550 +msgid "" +"[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation." +msgstr "" +"[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6558 +msgid "Opening Gerber" +msgstr "Opening Gerber" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6568 +msgid "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." +msgstr "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6603 +msgid "[ERROR_NOTCL] This is not Excellon file." +msgstr "[ERROR_NOTCL] This is not Excellon file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6606 +msgid "[ERROR_NOTCL] Cannot open file: %s" +msgstr "[ERROR_NOTCL] Cannot open file: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6611 +msgid "[ERROR_NOTCL] An internal error has occurred. See shell.\n" +msgstr "[ERROR_NOTCL] An internal error has occurred. See shell.\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6627 +msgid "[ERROR_NOTCL] No geometry found in file: %s" +msgstr "[ERROR_NOTCL] No geometry found in file: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6630 +msgid "Opening Excellon." +msgstr "Opening Excellon." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6637 +msgid "[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file." +msgstr "" +"[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6676 +msgid "[ERROR_NOTCL] Failed to open %s" +msgstr "[ERROR_NOTCL] Failed to open %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6686 +msgid "[ERROR_NOTCL] This is not GCODE" +msgstr "[ERROR_NOTCL] This is not GCODE" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6692 +msgid "Opening G-Code." +msgstr "Opening G-Code." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6700 +msgid "" +"[ERROR_NOTCL] Failed to create CNCJob Object. Probable not a GCode file.\n" +" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " +"processing" +msgstr "" +"[ERROR_NOTCL] Failed to create CNCJob Object. Probable not a GCode file.\n" +" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during " +"processing" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6740 +msgid "[ERROR_NOTCL] Failed to open config file: %s" +msgstr "[ERROR_NOTCL] Failed to open config file: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6765 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6782 +msgid "[ERROR_NOTCL] Failed to open project file: %s" +msgstr "[ERROR_NOTCL] Failed to open project file: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6772 +msgid "[ERROR_NOTCL] Failed to parse project file: %s" +msgstr "[ERROR_NOTCL] Failed to parse project file: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6808 +msgid "[success] Project loaded from: %s" +msgstr "[success] Project loaded from: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6938 +msgid "Available commands:\n" +msgstr "Available commands:\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6940 +msgid "" +"\n" +"\n" +"Type help for usage.\n" +" Example: help open_gerber" +msgstr "" +"\n" +"\n" +"Type help for usage.\n" +" Example: help open_gerber" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7088 +msgid "Shows list of commands." +msgstr "Shows list of commands." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7141 +msgid "[ERROR_NOTCL] Failed to load recent item list." +msgstr "[ERROR_NOTCL] Failed to load recent item list." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7148 +msgid "[ERROR_NOTCL] Failed to parse recent item list." +msgstr "[ERROR_NOTCL] Failed to parse recent item list." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7209 +msgid "Shortcut Key List" +msgstr "Shortcut Key List" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7216 +msgid "" +"\n" +"

Selected Tab - Choose an Item from " +"Project Tab

\n" +"\n" +"

Details:
\n" +"The normal flow when working in FlatCAM is the following:

\n" +"\n" +"
    \n" +"\t
  1. Loat/Import a Gerber, Excellon, Gcode, " +"DXF, Raster Image or SVG file into FlatCAM using either the menu's, " +"toolbars, key shortcuts or even dragging and dropping the files on the GUI." +"
    \n" +"\t
    \n" +"\tYou can also load a FlatCAM project by double clicking on " +"the project file, drag & drop of the file into the FLATCAM GUI or " +"through the menu/toolbar links offered within the app.

    \n" +"\t 
  2. \n" +"\t
  3. Once an object is available in the " +"Project Tab, by selecting it and then focusing on SELECTED TAB (more simpler is to double click the object name in the Project Tab), " +"SELECTED TAB will be updated with the object properties " +"according to it's kind: Gerber, Excellon, Geometry or CNCJob object.
    \n" +"\t
    \n" +"\tIf the selection of the object is done on the canvas by single click " +"instead, and the SELECTED TAB is in focus, again the object " +"properties will be displayed into the Selected Tab. Alternatively, double " +"clicking on the object on the canvas will bring the SELECTED TAB and populate it even if it was out of focus.
    \n" +"\t
    \n" +"\tYou can change the parameters in this screen and the flow direction is " +"like this:
    \n" +"\t
    \n" +"\tGerber/Excellon Object -> Change Param -> Generate " +"Geometry -> Geometry Object -> Add tools (change " +"param in Selected Tab) -> Generate CNCJob -> CNCJob Object -> Verify GCode (through Edit CNC Code) and/or append/prepend to " +"GCode (again, done in SELECTED TAB) -> Save GCode
  4. \n" +"
\n" +"\n" +"

A list of key shortcuts is available " +"through an menu entry in Help -> Shortcuts List or " +"through it's own key shortcut: F3.

\n" +"\n" +" " +msgstr "" +"\n" +"

Selected Tab - Choose an Item from " +"Project Tab

\n" +"\n" +"

Details:
\n" +"The normal flow when working in FlatCAM is the following:

\n" +"\n" +"
    \n" +"\t
  1. Loat/Import a Gerber, Excellon, Gcode, " +"DXF, Raster Image or SVG file into FlatCAM using either the menu's, " +"toolbars, key shortcuts or even dragging and dropping the files on the GUI." +"
    \n" +"\t
    \n" +"\tYou can also load a FlatCAM project by double clicking on " +"the project file, drag & drop of the file into the FLATCAM GUI or " +"through the menu/toolbar links offered within the app.

    \n" +"\t 
  2. \n" +"\t
  3. Once an object is available in the " +"Project Tab, by selecting it and then focusing on SELECTED TAB (more simpler is to double click the object name in the Project Tab), " +"SELECTED TAB will be updated with the object properties " +"according to it's kind: Gerber, Excellon, Geometry or CNCJob object.
    \n" +"\t
    \n" +"\tIf the selection of the object is done on the canvas by single click " +"instead, and the SELECTED TAB is in focus, again the object " +"properties will be displayed into the Selected Tab. Alternatively, double " +"clicking on the object on the canvas will bring the SELECTED TAB and populate it even if it was out of focus.
    \n" +"\t
    \n" +"\tYou can change the parameters in this screen and the flow direction is " +"like this:
    \n" +"\t
    \n" +"\tGerber/Excellon Object -> Change Param -> Generate " +"Geometry -> Geometry Object -> Add tools (change " +"param in Selected Tab) -> Generate CNCJob -> CNCJob Object -> Verify GCode (through Edit CNC Code) and/or append/prepend to " +"GCode (again, done in SELECTED TAB) -> Save GCode
  4. \n" +"
\n" +"\n" +"

A list of key shortcuts is available " +"through an menu entry in Help -> Shortcuts List or " +"through it's own key shortcut: F3.

\n" +"\n" +" " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7320 +msgid "[WARNING_NOTCL] Failed checking for latest version. Could not connect." +msgstr "[WARNING_NOTCL] Failed checking for latest version. Could not connect." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7327 +msgid "[ERROR_NOTCL] Could not parse information about latest version." +msgstr "[ERROR_NOTCL] Could not parse information about latest version." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7337 +msgid "[success] FlatCAM is up to date!" +msgstr "[success] FlatCAM is up to date!" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7342 +msgid "Newer Version Available" +msgstr "Newer Version Available" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7343 +msgid "" +"There is a newer version of FlatCAM available for download:

%s
%s" +msgstr "" +"There is a newer version of FlatCAM available for download:

%s
%s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7364 +msgid "[success]All plots disabled." +msgstr "[success]All plots disabled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7370 +msgid "[success]All non selected plots disabled." +msgstr "[success]All non selected plots disabled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7376 +msgid "[success]All plots enabled." +msgstr "[success]All plots enabled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7486 +msgid "Saving FlatCAM Project" +msgstr "Saving FlatCAM Project" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7507 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7538 +msgid "[success] Project saved to: %s" +msgstr "[success] Project saved to: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7525 +msgid "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it." +msgstr "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7532 +msgid "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it." +msgstr "" +"[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7540 +msgid "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it." +msgstr "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it." diff --git a/locale/en/LC_MESSAGES/FlatCAMEditor.mo b/locale/en/LC_MESSAGES/FlatCAMEditor.mo new file mode 100644 index 00000000..a79f3a6f Binary files /dev/null and b/locale/en/LC_MESSAGES/FlatCAMEditor.mo differ diff --git a/locale/en/LC_MESSAGES/FlatCAMEditor.po b/locale/en/LC_MESSAGES/FlatCAMEditor.po new file mode 100644 index 00000000..00eb5c4a --- /dev/null +++ b/locale/en/LC_MESSAGES/FlatCAMEditor.po @@ -0,0 +1,1194 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 02:10+0200\n" +"PO-Revision-Date: 2019-03-10 02:39+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:78 +msgid "Buffer distance:" +msgstr "Buffer distance:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:79 +msgid "Buffer corner:" +msgstr "Buffer corner:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:81 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded for exterior buffer.\n" +" - 'Square:' the corner is met in a sharp angle for exterior buffer.\n" +" - 'Beveled:' the corner is a line that directly connects the features " +"meeting in the corner" +msgstr "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded for exterior buffer.\n" +" - 'Square:' the corner is met in a sharp angle for exterior buffer.\n" +" - 'Beveled:' the corner is a line that directly connects the features " +"meeting in the corner" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:87 +msgid "Round" +msgstr "Round" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:88 +msgid "Square" +msgstr "Square" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:89 +msgid "Beveled" +msgstr "Beveled" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:96 +msgid "Buffer Interior" +msgstr "Buffer Interior" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:98 +msgid "Buffer Exterior" +msgstr "Buffer Exterior" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:104 +msgid "Full Buffer" +msgstr "Full Buffer" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:125 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2625 +msgid "Buffer Tool" +msgstr "Buffer Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:136 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:153 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:170 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2643 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2669 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2695 +msgid "" +"[WARNING_NOTCL] Buffer distance value is missing or wrong format. Add it and " +"retry." +msgstr "" +"[WARNING_NOTCL] Buffer distance value is missing or wrong format. Add it and " +"retry." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:418 +msgid "Tool dia:" +msgstr "Tool dia:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:420 +msgid "" +"Diameter of the tool to\n" +"be used in the operation." +msgstr "" +"Diameter of the tool to\n" +"be used in the operation." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:429 +msgid "Overlap:" +msgstr "Overlap:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:431 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:447 +msgid "Margin:" +msgstr "Margin:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:449 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:458 +msgid "Method:" +msgstr "Method:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:460 +msgid "" +"Algorithm to paint the polygon:
Standard: Fixed step inwards." +"
Seed-based: Outwards from seed." +msgstr "" +"Algorithm to paint the polygon:
Standard: Fixed step inwards." +"
Seed-based: Outwards from seed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:466 +msgid "Standard" +msgstr "Standard" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:467 +msgid "Seed-based" +msgstr "Seed-based" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:468 +msgid "Straight lines" +msgstr "Straight lines" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:473 +msgid "Connect:" +msgstr "Connect:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:475 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:482 +msgid "Contour:" +msgstr "Contour:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:484 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:496 +msgid "Paint" +msgstr "Paint" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:514 +msgid "Paint Tool" +msgstr "Paint Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:550 +msgid "[WARNING_NOTCL] Paint cancelled. No shape selected." +msgstr "[WARNING_NOTCL] Paint cancelled. No shape selected." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:561 +msgid "" +"[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and " +"retry." +msgstr "" +"[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and " +"retry." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:572 +msgid "" +"[WARNING_NOTCL] Overlap value is missing or wrong format. Add it and retry." +msgstr "" +"[WARNING_NOTCL] Overlap value is missing or wrong format. Add it and retry." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:584 +msgid "" +"[WARNING_NOTCL] Margin distance value is missing or wrong format. Add it and " +"retry." +msgstr "" +"[WARNING_NOTCL] Margin distance value is missing or wrong format. Add it and " +"retry." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:593 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2650 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2676 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2702 +msgid "Tools" +msgstr "Tools" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:604 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:977 +msgid "Transform Tool" +msgstr "Transform Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:605 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:666 +msgid "Rotate" +msgstr "Rotate" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:606 +msgid "Skew/Shear" +msgstr "Skew/Shear" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:607 +msgid "Scale" +msgstr "Scale" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:608 +msgid "Mirror (Flip)" +msgstr "Mirror (Flip)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:609 +msgid "Offset" +msgstr "Offset" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:620 +msgid "Editor %s" +msgstr "Editor %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:652 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4853 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4889 +msgid "Angle:" +msgstr "Angle:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:654 +msgid "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." +msgstr "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:668 +msgid "" +"Rotate the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Rotate the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:691 +msgid "Angle X:" +msgstr "Angle X:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:693 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:711 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." +msgstr "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:702 +msgid "Skew X" +msgstr "Skew X" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:704 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:722 +msgid "" +"Skew/shear the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" +"Skew/shear the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:709 +msgid "Angle Y:" +msgstr "Angle Y:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:720 +msgid "Skew Y" +msgstr "Skew Y" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:748 +msgid "Factor X:" +msgstr "Factor X:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:750 +msgid "Factor for Scale action over X axis." +msgstr "Factor for Scale action over X axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:758 +msgid "Scale X" +msgstr "Scale X" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:760 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:777 +msgid "" +"Scale the selected shape(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Scale the selected shape(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:765 +msgid "Factor Y:" +msgstr "Factor Y:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:767 +msgid "Factor for Scale action over Y axis." +msgstr "Factor for Scale action over Y axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:775 +msgid "Scale Y" +msgstr "Scale Y" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:784 +msgid "Link" +msgstr "Link" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:786 +msgid "" +"Scale the selected shape(s)\n" +"using the Scale Factor X for both axis." +msgstr "" +"Scale the selected shape(s)\n" +"using the Scale Factor X for both axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:792 +msgid "Scale Reference" +msgstr "Scale Reference" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:794 +msgid "" +"Scale the selected shape(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected shapes when unchecked." +msgstr "" +"Scale the selected shape(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected shapes when unchecked." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:822 +msgid "Value X:" +msgstr "Value X:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:824 +msgid "Value for Offset action on X axis." +msgstr "Value for Offset action on X axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:832 +msgid "Offset X" +msgstr "Offset X" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:834 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:852 +msgid "" +"Offset the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes.\n" +msgstr "" +"Offset the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes.\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:840 +msgid "Value Y:" +msgstr "Value Y:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:842 +msgid "Value for Offset action on Y axis." +msgstr "Value for Offset action on Y axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:850 +msgid "Offset Y" +msgstr "Offset Y" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:881 +msgid "Flip on X" +msgstr "Flip on X" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:883 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:891 +msgid "" +"Flip the selected shape(s) over the X axis.\n" +"Does not create a new shape." +msgstr "" +"Flip the selected shape(s) over the X axis.\n" +"Does not create a new shape." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:889 +msgid "Flip on Y" +msgstr "Flip on Y" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:898 +msgid "Ref Pt" +msgstr "Ref Pt" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:900 +msgid "" +"Flip the selected shape(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Flip the selected shape(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:912 +msgid "Point:" +msgstr "Point:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:914 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y." +msgstr "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:924 +msgid "Add" +msgstr "Add" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:926 +msgid "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." +msgstr "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1041 +msgid "[WARNING_NOTCL] Transformation cancelled. No shape selected." +msgstr "[WARNING_NOTCL] Transformation cancelled. No shape selected." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1062 +msgid "[ERROR_NOTCL]Wrong value format entered for Rotate, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Rotate, use a number." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1099 +msgid "[ERROR_NOTCL]Wrong value format entered for Skew X, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Skew X, use a number." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1120 +msgid "[ERROR_NOTCL]Wrong value format entered for Skew Y, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Skew Y, use a number." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1141 +msgid "[ERROR_NOTCL]Wrong value format entered for Scale X, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Scale X, use a number." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1178 +msgid "[ERROR_NOTCL]Wrong value format entered for Scale Y, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Scale Y, use a number." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1210 +msgid "[ERROR_NOTCL]Wrong value format entered for Offset X, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Offset X, use a number." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1231 +msgid "[ERROR_NOTCL]Wrong value format entered for Offset Y, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Offset Y, use a number." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1249 +msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!" +msgstr "[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1252 +msgid "Appying Rotate" +msgstr "Appying Rotate" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1280 +msgid "[success] Done. Rotate completed." +msgstr "[success] Done. Rotate completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1285 +msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." +msgstr "[ERROR_NOTCL] Due of %s, rotation movement was not executed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1296 +msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to flip!" +msgstr "[WARNING_NOTCL] No shape selected. Please Select a shape to flip!" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1299 +msgid "Applying Flip" +msgstr "Applying Flip" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1329 +msgid "[success] Flip on the Y axis done ..." +msgstr "[success] Flip on the Y axis done ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1332 +msgid "[success] Flip on the X axis done ..." +msgstr "[success] Flip on the X axis done ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1342 +msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." +msgstr "[ERROR_NOTCL] Due of %s, Flip action was not executed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1351 +msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!" +msgstr "" +"[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1354 +msgid "Applying Skew" +msgstr "Applying Skew" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1379 +msgid "[success] Skew on the %s axis done ..." +msgstr "[success] Skew on the %s axis done ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1383 +msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." +msgstr "[ERROR_NOTCL] Due of %s, Skew action was not executed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1394 +msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to scale!" +msgstr "[WARNING_NOTCL] No shape selected. Please Select a shape to scale!" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1397 +msgid "Applying Scale" +msgstr "Applying Scale" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1430 +msgid "[success] Scale on the %s axis done ..." +msgstr "[success] Scale on the %s axis done ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1433 +msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." +msgstr "[ERROR_NOTCL] Due of %s, Scale action was not executed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1442 +msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to offset!" +msgstr "[WARNING_NOTCL] No shape selected. Please Select a shape to offset!" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1445 +msgid "Applying Offset" +msgstr "Applying Offset" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1469 +msgid "[success] Offset on the %s axis done ..." +msgstr "[success] Offset on the %s axis done ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1473 +msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." +msgstr "[ERROR_NOTCL] Due of %s, Offset action was not executed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1477 +msgid "Rotate ..." +msgstr "Rotate ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1478 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1535 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1552 +msgid "Enter an Angle Value (degrees):" +msgstr "Enter an Angle Value (degrees):" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1487 +msgid "[success] Geometry shape rotate done..." +msgstr "[success] Geometry shape rotate done..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1492 +msgid "[WARNING_NOTCL] Geometry shape rotate cancelled..." +msgstr "[WARNING_NOTCL] Geometry shape rotate cancelled..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1498 +msgid "Offset on X axis ..." +msgstr "Offset on X axis ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1499 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1518 +msgid "Enter a distance Value (%s):" +msgstr "Enter a distance Value (%s):" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1508 +msgid "[success] Geometry shape offset on X axis done..." +msgstr "[success] Geometry shape offset on X axis done..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1512 +msgid "[WARNING_NOTCL] Geometry shape offset X cancelled..." +msgstr "[WARNING_NOTCL] Geometry shape offset X cancelled..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1517 +msgid "Offset on Y axis ..." +msgstr "Offset on Y axis ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1527 +msgid "[success] Geometry shape offset on Y axis done..." +msgstr "[success] Geometry shape offset on Y axis done..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1531 +msgid "[WARNING_NOTCL] Geometry shape offset Y cancelled..." +msgstr "[WARNING_NOTCL] Geometry shape offset Y cancelled..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1534 +msgid "Skew on X axis ..." +msgstr "Skew on X axis ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1544 +msgid "[success] Geometry shape skew on X axis done..." +msgstr "[success] Geometry shape skew on X axis done..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1548 +msgid "[WARNING_NOTCL] Geometry shape skew X cancelled..." +msgstr "[WARNING_NOTCL] Geometry shape skew X cancelled..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1551 +msgid "Skew on Y axis ..." +msgstr "Skew on Y axis ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1561 +msgid "[success] Geometry shape skew on Y axis done..." +msgstr "[success] Geometry shape skew on Y axis done..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1565 +msgid "[WARNING_NOTCL] Geometry shape skew Y cancelled..." +msgstr "[WARNING_NOTCL] Geometry shape skew Y cancelled..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1896 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1935 +msgid "Click on CENTER ..." +msgstr "Click on CENTER ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1903 +msgid "Click on Circle perimeter point to complete ..." +msgstr "Click on Circle perimeter point to complete ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1927 +msgid "[success]Done. Adding Circle completed." +msgstr "[success]Done. Adding Circle completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1954 +msgid "Click on Start arc point ..." +msgstr "Click on Start arc point ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1958 +msgid "Click on End arc point to complete ..." +msgstr "Click on End arc point to complete ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2113 +msgid "[success]Done. Arc completed." +msgstr "[success]Done. Arc completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2125 +msgid "Click on 1st corner ..." +msgstr "Click on 1st corner ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2165 +msgid "Click on 1st point ..." +msgstr "Click on 1st point ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2172 +msgid "Click on next Point or click Right mouse button to complete ..." +msgstr "Click on next Point or click Right mouse button to complete ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2195 +msgid "[success]Done. Polygon completed." +msgstr "[success]Done. Polygon completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2214 +msgid "[success]Done. Path completed." +msgstr "[success]Done. Path completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2474 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4036 +msgid "[WARNING_NOTCL] Move cancelled. No shape selected." +msgstr "[WARNING_NOTCL] Move cancelled. No shape selected." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2478 +msgid "Click on reference point." +msgstr "Click on reference point." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2481 +msgid "Click on destination point." +msgstr "Click on destination point." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2512 +msgid "[success]Done. Geometry(s) Move completed." +msgstr "[success]Done. Geometry(s) Move completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2557 +msgid "[success]Done. Geometry(s) Copy completed." +msgstr "[success]Done. Geometry(s) Copy completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2569 +msgid "Click on the Destination point..." +msgstr "Click on the Destination point..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2583 +msgid "" +"[ERROR]Font not supported. Only Regular, Bold, Italic and BoldItalic are " +"supported. Error: %s" +msgstr "" +"[ERROR]Font not supported. Only Regular, Bold, Italic and BoldItalic are " +"supported. Error: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2593 +msgid "[success]Done. Adding Text completed." +msgstr "[success]Done. Adding Text completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2621 +msgid "Create buffer geometry ..." +msgstr "Create buffer geometry ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2632 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2658 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2684 +msgid "[WARNING_NOTCL] Buffer cancelled. No shape selected." +msgstr "[WARNING_NOTCL] Buffer cancelled. No shape selected." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2654 +msgid "[success]Done. Buffer Tool completed." +msgstr "[success]Done. Buffer Tool completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2680 +msgid "[success]Done. Buffer Int Tool completed." +msgstr "[success]Done. Buffer Int Tool completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2706 +msgid "[success]Done. Buffer Ext Tool completed." +msgstr "[success]Done. Buffer Ext Tool completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2739 +msgid "Create Paint geometry ..." +msgstr "Create Paint geometry ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2753 +msgid "Shape transformations ..." +msgstr "Shape transformations ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2778 +msgid "[WARNING_NOTCL] To add a drill first select a tool" +msgstr "[WARNING_NOTCL] To add a drill first select a tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2787 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2877 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3150 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3175 +msgid "Click on target location ..." +msgstr "Click on target location ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2827 +msgid "[success]Done. Drill added." +msgstr "[success]Done. Drill added." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2869 +msgid "[WARNING_NOTCL] To add an Drill Array first select a tool in Tool Table" +msgstr "" +"[WARNING_NOTCL] To add an Drill Array first select a tool in Tool Table" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2894 +msgid "Click on the Drill Circular Array Start position" +msgstr "Click on the Drill Circular Array Start position" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2916 +msgid "" +"[ERROR_NOTCL] The value is not Float. Check for comma instead of dot " +"separator." +msgstr "" +"[ERROR_NOTCL] The value is not Float. Check for comma instead of dot " +"separator." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2919 +msgid "[ERROR_NOTCL] The value is mistyped. Check the value." +msgstr "[ERROR_NOTCL] The value is mistyped. Check the value." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3012 +msgid "[WARNING_NOTCL]Too many drills for the selected spacing angle." +msgstr "[WARNING_NOTCL]Too many drills for the selected spacing angle." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3029 +msgid "[success]Done. Drill Array added." +msgstr "[success]Done. Drill Array added." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3040 +msgid "Click on the Drill(s) to resize ..." +msgstr "Click on the Drill(s) to resize ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3060 +msgid "" +"[ERROR_NOTCL]Resize drill(s) failed. Please enter a diameter for resize." +msgstr "" +"[ERROR_NOTCL]Resize drill(s) failed. Please enter a diameter for resize." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3132 +msgid "[success]Done. Drill Resize completed." +msgstr "[success]Done. Drill Resize completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3152 +msgid "Click on reference location ..." +msgstr "Click on reference location ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3207 +msgid "[success]Done. Drill(s) Move completed." +msgstr "[success]Done. Drill(s) Move completed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3260 +msgid "[success]Done. Drill(s) copied." +msgstr "[success]Done. Drill(s) copied." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3910 +msgid "[success]Done." +msgstr "[success]Done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4043 +msgid "[WARNING_NOTCL] Copy cancelled. No shape selected." +msgstr "[WARNING_NOTCL] Copy cancelled. No shape selected." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4050 +msgid "Click on target point." +msgstr "Click on target point." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4291 +msgid "" +"[WARNING_NOTCL]A selection of at least 2 geo items is required to do " +"Intersection." +msgstr "" +"[WARNING_NOTCL]A selection of at least 2 geo items is required to do " +"Intersection." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4329 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4366 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4438 +msgid "" +"[ERROR_NOTCL]Negative buffer value is not accepted. Use Buffer interior to " +"generate an 'inside' shape" +msgstr "" +"[ERROR_NOTCL]Negative buffer value is not accepted. Use Buffer interior to " +"generate an 'inside' shape" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4337 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4375 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4446 +msgid "[WARNING_NOTCL] Nothing selected for buffering." +msgstr "[WARNING_NOTCL] Nothing selected for buffering." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4341 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4379 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4450 +msgid "[WARNING_NOTCL] Invalid distance for buffering." +msgstr "[WARNING_NOTCL] Invalid distance for buffering." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4351 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4459 +msgid "" +"[ERROR_NOTCL]Failed, the result is empty. Choose a different buffer value." +msgstr "" +"[ERROR_NOTCL]Failed, the result is empty. Choose a different buffer value." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4359 +msgid "[success]Full buffer geometry created." +msgstr "[success]Full buffer geometry created." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4388 +msgid "" +"[ERROR_NOTCL]Failed, the result is empty. Choose a smaller buffer value." +msgstr "" +"[ERROR_NOTCL]Failed, the result is empty. Choose a smaller buffer value." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4400 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4471 +msgid "[success]Exterior buffer geometry created." +msgstr "[success]Exterior buffer geometry created." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4535 +msgid "[WARNING_NOTCL]Nothing selected for painting." +msgstr "[WARNING_NOTCL]Nothing selected for painting." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4541 +msgid "[WARNING] Invalid value for {}" +msgstr "[WARNING] Invalid value for {}" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4547 +msgid "" +"[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 " +"(100%)." +msgstr "" +"[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 " +"(100%)." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4606 +msgid "" +"[ERROR] Could not do Paint. Try a different combination of parameters. Or a " +"different method of Paint\n" +"%s" +msgstr "" +"[ERROR] Could not do Paint. Try a different combination of parameters. Or a " +"different method of Paint\n" +"%s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4617 +msgid "[success] Paint done." +msgstr "[success] Paint done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4649 +msgid "Excellon Editor" +msgstr "Excellon Editor" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4656 +msgid "Name:" +msgstr "Name:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4676 +msgid "Tools Table" +msgstr "Tools Table" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4678 +msgid "" +"Tools in this Excellon object\n" +"when are used for drilling." +msgstr "" +"Tools in this Excellon object\n" +"when are used for drilling." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4687 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5747 +msgid "Diameter" +msgstr "Diameter" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4695 +msgid "Add/Delete Tool" +msgstr "Add/Delete Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4697 +msgid "" +"Add/Delete a tool to the tool list\n" +"for this Excellon object." +msgstr "" +"Add/Delete a tool to the tool list\n" +"for this Excellon object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4705 +msgid "Tool Dia:" +msgstr "Tool Dia:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4707 +msgid "Diameter for the new tool" +msgstr "Diameter for the new tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4716 +msgid "Add Tool" +msgstr "Add Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4718 +msgid "" +"Add a new tool to the tool list\n" +"with the diameter specified above." +msgstr "" +"Add a new tool to the tool list\n" +"with the diameter specified above." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4728 +msgid "Delete Tool" +msgstr "Delete Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4730 +msgid "" +"Delete a tool in the tool list\n" +"by selecting a row in the tool table." +msgstr "" +"Delete a tool in the tool list\n" +"by selecting a row in the tool table." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4748 +msgid "Resize Drill(s)" +msgstr "Resize Drill(s)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4750 +msgid "Resize a drill or a selection of drills." +msgstr "Resize a drill or a selection of drills." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4757 +msgid "Resize Dia:" +msgstr "Resize Dia:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4759 +msgid "Diameter to resize to." +msgstr "Diameter to resize to." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4767 +msgid "Resize" +msgstr "Resize" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4769 +msgid "Resize drill(s)" +msgstr "Resize drill(s)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4791 +msgid "Add Drill Array" +msgstr "Add Drill Array" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4793 +msgid "Add an array of drills (linear or circular array)" +msgstr "Add an array of drills (linear or circular array)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4799 +msgid "" +"Select the type of drills array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" +"Select the type of drills array to create.\n" +"It can be Linear X(Y) or Circular" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4802 +msgid "Linear" +msgstr "Linear" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4803 +msgid "Circular" +msgstr "Circular" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4810 +msgid "Nr of drills:" +msgstr "Nr of drills:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4812 +msgid "Specify how many drills to be in the array." +msgstr "Specify how many drills to be in the array." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4829 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4874 +msgid "Direction:" +msgstr "Direction:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4831 +msgid "" +"Direction on which the linear array is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the array inclination" +msgstr "" +"Direction on which the linear array is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the array inclination" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4840 +msgid "Angle" +msgstr "Angle" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4844 +msgid "Pitch:" +msgstr "Pitch:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4846 +msgid "Pitch = Distance between elements of the array." +msgstr "Pitch = Distance between elements of the array." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4855 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4876 +msgid "" +"Direction for circular array.Can be CW = clockwise or CCW = counter " +"clockwise." +msgstr "" +"Direction for circular array.Can be CW = clockwise or CCW = counter " +"clockwise." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4891 +msgid "Angle at which each element in circular array is placed." +msgstr "Angle at which each element in circular array is placed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5212 +msgid "Total Drills" +msgstr "Total Drills" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5244 +msgid "Total Slots" +msgstr "Total Slots" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5318 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered, use a number." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5331 +msgid "" +"[WARNING_NOTCL]Tool already in the original or actual tool list.\n" +"Save and reedit Excellon if you need to add this tool. " +msgstr "" +"[WARNING_NOTCL]Tool already in the original or actual tool list.\n" +"Save and reedit Excellon if you need to add this tool. " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5340 +msgid "[success]Added new tool with dia: %s %s" +msgstr "[success]Added new tool with dia: %s %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5371 +msgid "[WARNING_NOTCL]Select a tool in Tool Table" +msgstr "[WARNING_NOTCL]Select a tool in Tool Table" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5404 +msgid "[success]Deleted tool with dia: %s %s" +msgstr "[success]Deleted tool with dia: %s %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5801 +msgid "" +"[ERROR_NOTCL] There are no Tools definitions in the file. Aborting Excellon " +"creation." +msgstr "" +"[ERROR_NOTCL] There are no Tools definitions in the file. Aborting Excellon " +"creation." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5804 +msgid "[ERROR] An internal error has ocurred. See shell.\n" +msgstr "[ERROR] An internal error has ocurred. See shell.\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5810 +msgid "Creating Excellon." +msgstr "Creating Excellon." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5819 +msgid "[success]Excellon editing finished." +msgstr "[success]Excellon editing finished." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5836 +msgid "[WARNING_NOTCL]Cancelled. There is no Tool/Drill selected" +msgstr "[WARNING_NOTCL]Cancelled. There is no Tool/Drill selected" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:6318 +msgid "[success]Done. Drill(s) deleted." +msgstr "[success]Done. Drill(s) deleted." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:6388 +msgid "Click on the circular array Center position" +msgstr "Click on the circular array Center position" diff --git a/locale/en/LC_MESSAGES/FlatCAMGUI.mo b/locale/en/LC_MESSAGES/FlatCAMGUI.mo new file mode 100644 index 00000000..eaf0cfcc Binary files /dev/null and b/locale/en/LC_MESSAGES/FlatCAMGUI.mo differ diff --git a/locale/en/LC_MESSAGES/FlatCAMGUI.po b/locale/en/LC_MESSAGES/FlatCAMGUI.po new file mode 100644 index 00000000..52c89a78 --- /dev/null +++ b/locale/en/LC_MESSAGES/FlatCAMGUI.po @@ -0,0 +1,4830 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 02:07+0200\n" +"PO-Revision-Date: 2019-03-10 02:39+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:48 +msgid "&New Project ...\tCTRL+N" +msgstr "&New Project ...\tCTRL+N" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:50 +msgid "Will create a new, blank project" +msgstr "Will create a new, blank project" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:55 +msgid "&New" +msgstr "&New" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:58 +msgid "&New Geometry\tN" +msgstr "&New Geometry\tN" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:60 +msgid "Will create a new, empty Geometry Object." +msgstr "Will create a new, empty Geometry Object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:62 +msgid "New Excellon\tL" +msgstr "New Excellon\tL" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:64 +msgid "Will create a new, empty Excellon Object." +msgstr "Will create a new, empty Excellon Object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:67 +msgid "Open" +msgstr "Open" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:72 +msgid "Open &Gerber ...\tCTRL+G" +msgstr "Open &Gerber ...\tCTRL+G" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:79 +msgid "Open &Excellon ...\tCTRL+E" +msgstr "Open &Excellon ...\tCTRL+E" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:84 +msgid "Open G-&Code ..." +msgstr "Open G-&Code ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:88 +msgid "Open &Project ..." +msgstr "Open &Project ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:94 +msgid "Open Config ..." +msgstr "Open Config ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:98 +msgid "Recent files" +msgstr "Recent files" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:104 +msgid "Run Script ...\tSHIFT+S" +msgstr "Run Script ...\tSHIFT+S" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:107 +msgid "" +"Will run the opened Tcl Script thus\n" +"enabling the automation of certain\n" +"functions of FlatCAM." +msgstr "" +"Will run the opened Tcl Script thus\n" +"enabling the automation of certain\n" +"functions of FlatCAM." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:117 +msgid "Import" +msgstr "Import" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:119 +msgid "&SVG as Geometry Object ..." +msgstr "&SVG as Geometry Object ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:122 +msgid "&SVG as Gerber Object ..." +msgstr "&SVG as Gerber Object ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:127 +msgid "&DXF as Geometry Object ..." +msgstr "&DXF as Geometry Object ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:130 +msgid "&DXF as Gerber Object ..." +msgstr "&DXF as Gerber Object ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:135 +msgid "Export" +msgstr "Export" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:138 +msgid "Export &SVG ..." +msgstr "Export &SVG ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:141 +msgid "Export DXF ..." +msgstr "Export DXF ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:146 +msgid "Export &PNG ..." +msgstr "Export &PNG ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:148 +msgid "" +"Will export an image in PNG format,\n" +"the saved image will contain the visual \n" +"information currently in FlatCAM Plot Area." +msgstr "" +"Will export an image in PNG format,\n" +"the saved image will contain the visual \n" +"information currently in FlatCAM Plot Area." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:156 +msgid "Export &Excellon ..." +msgstr "Export &Excellon ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:159 +msgid "" +"Will export an Excellon Object as Excellon file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Excellon Export." +msgstr "" +"Will export an Excellon Object as Excellon file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Excellon Export." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:170 +msgid "Save &Defaults" +msgstr "Save &Defaults" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:176 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:453 +msgid "Save" +msgstr "Save" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:178 +msgid "&Save Project ..." +msgstr "&Save Project ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:183 +msgid "Save Project &As ...\tCTRL+S" +msgstr "Save Project &As ...\tCTRL+S" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:187 +msgid "Save Project C&opy ..." +msgstr "Save Project C&opy ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:195 +msgid "E&xit" +msgstr "E&xit" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:201 +msgid "&Edit" +msgstr "&Edit" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:204 +msgid "Edit Object\tE" +msgstr "Edit Object\tE" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:205 +msgid "Save && Close Editor\tCTRL+S" +msgstr "Save && Close Editor\tCTRL+S" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:208 +msgid "Conversion" +msgstr "Conversion" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:210 +msgid "&Join Geo/Gerber/Exc -> Geo" +msgstr "&Join Geo/Gerber/Exc -> Geo" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:212 +msgid "" +"Merge a selection of objects, which can be of type:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometry\n" +"into a new combo Geometry object." +msgstr "" +"Merge a selection of objects, which can be of type:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometry\n" +"into a new combo Geometry object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:219 +msgid "Join Excellon(s) -> Excellon" +msgstr "Join Excellon(s) -> Excellon" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:221 +msgid "Merge a selection of Excellon objects into a new combo Excellon object." +msgstr "" +"Merge a selection of Excellon objects into a new combo Excellon object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:224 +msgid "Join Gerber(s) -> Gerber" +msgstr "Join Gerber(s) -> Gerber" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:226 +msgid "Merge a selection of Gerber objects into a new combo Gerber object." +msgstr "Merge a selection of Gerber objects into a new combo Gerber object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:231 +msgid "Convert Single to MultiGeo" +msgstr "Convert Single to MultiGeo" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:233 +msgid "" +"Will convert a Geometry object from single_geometry type\n" +"to a multi_geometry type." +msgstr "" +"Will convert a Geometry object from single_geometry type\n" +"to a multi_geometry type." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:237 +msgid "Convert Multi to SingleGeo" +msgstr "Convert Multi to SingleGeo" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:239 +msgid "" +"Will convert a Geometry object from multi_geometry type\n" +"to a single_geometry type." +msgstr "" +"Will convert a Geometry object from multi_geometry type\n" +"to a single_geometry type." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:246 +msgid "&Copy Object\tCTRL+C" +msgstr "&Copy Object\tCTRL+C" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:248 +msgid "Copy as &Geom" +msgstr "Copy as &Geom" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:251 +msgid "&Delete\tDEL" +msgstr "&Delete\tDEL" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:255 +msgid "Se&t Origin\tO" +msgstr "Se&t Origin\tO" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:256 +msgid "Jump to Location\tJ" +msgstr "Jump to Location\tJ" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:261 +msgid "Toggle Units\tQ" +msgstr "Toggle Units\tQ" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:263 +msgid "&Select All\tCTRL+A" +msgstr "&Select All\tCTRL+A" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:267 +msgid "&Preferences\tSHIFT+P" +msgstr "&Preferences\tSHIFT+P" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:270 +msgid "&Options" +msgstr "&Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:285 +msgid "&Rotate Selection\tSHIFT+(R)" +msgstr "&Rotate Selection\tSHIFT+(R)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:290 +msgid "&Skew on X axis\tSHIFT+X" +msgstr "&Skew on X axis\tSHIFT+X" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:292 +msgid "S&kew on Y axis\tSHIFT+Y" +msgstr "S&kew on Y axis\tSHIFT+Y" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:297 +msgid "Flip on &X axis\tX" +msgstr "Flip on &X axis\tX" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:299 +msgid "Flip on &Y axis\tY" +msgstr "Flip on &Y axis\tY" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:304 +msgid "View source\tALT+S" +msgstr "View source\tALT+S" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:309 +msgid "&View" +msgstr "&View" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:310 +msgid "Enable all plots\tALT+1" +msgstr "Enable all plots\tALT+1" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:312 +msgid "Disable all plots\tALT+2" +msgstr "Disable all plots\tALT+2" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:314 +msgid "Disable non-selected\tALT+3" +msgstr "Disable non-selected\tALT+3" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:317 +msgid "&Zoom Fit\tV" +msgstr "&Zoom Fit\tV" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:318 +msgid "&Zoom In\t-" +msgstr "&Zoom In\t-" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:319 +msgid "&Zoom Out\t=" +msgstr "&Zoom Out\t=" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:323 +msgid "Toggle Code Editor\tCTRL+E" +msgstr "Toggle Code Editor\tCTRL+E" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:326 +msgid "&Toggle FullScreen\tALT+F10" +msgstr "&Toggle FullScreen\tALT+F10" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:328 +msgid "&Toggle Plot Area\tCTRL+F10" +msgstr "&Toggle Plot Area\tCTRL+F10" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:330 +msgid "&Toggle Project/Sel/Tool\t`" +msgstr "&Toggle Project/Sel/Tool\t`" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:333 +msgid "&Toggle Grid Snap\tG" +msgstr "&Toggle Grid Snap\tG" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:335 +msgid "&Toggle Axis\tSHIFT+G" +msgstr "&Toggle Axis\tSHIFT+G" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:338 +msgid "Toggle Workspace\tSHIFT+W" +msgstr "Toggle Workspace\tSHIFT+W" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:344 +msgid "&Command Line\tS" +msgstr "&Command Line\tS" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:348 +msgid "Help\tF1" +msgstr "Help\tF1" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:349 +msgid "FlatCAM.org" +msgstr "FlatCAM.org" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:352 +msgid "Shortcuts List\tF3" +msgstr "Shortcuts List\tF3" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:353 +msgid "YouTube Channel\tF4" +msgstr "YouTube Channel\tF4" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:355 +msgid "About" +msgstr "About" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:366 +msgid "Add Circle\tO" +msgstr "Add Circle\tO" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:368 +msgid "Add Arc\tA" +msgstr "Add Arc\tA" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:371 +msgid "Add Rectangle\tR" +msgstr "Add Rectangle\tR" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:374 +msgid "Add Polygon\tN" +msgstr "Add Polygon\tN" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:376 +msgid "Add Path\tP" +msgstr "Add Path\tP" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:378 +msgid "Add Text\tT" +msgstr "Add Text\tT" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:381 +msgid "Polygon Union\tU" +msgstr "Polygon Union\tU" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:383 +msgid "Polygon Intersection\tE" +msgstr "Polygon Intersection\tE" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:385 +msgid "Polygon Subtraction\tS" +msgstr "Polygon Subtraction\tS" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:389 +msgid "Cut Path\tX" +msgstr "Cut Path\tX" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:391 +msgid "Copy Geom\tC" +msgstr "Copy Geom\tC" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:393 +msgid "Delete Shape\tDEL" +msgstr "Delete Shape\tDEL" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:396 +msgid "Move\tM" +msgstr "Move\tM" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:398 +msgid "Buffer Tool\tB" +msgstr "Buffer Tool\tB" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:401 +msgid "Paint Tool\tI" +msgstr "Paint Tool\tI" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:404 +msgid "Transform Tool\tALT+R" +msgstr "Transform Tool\tALT+R" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:408 +msgid "Toggle Corner Snap\tK" +msgstr "Toggle Corner Snap\tK" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:411 +msgid ">Excellon Editor<" +msgstr ">Excellon Editor<" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:415 +msgid "Add Drill Array\tA" +msgstr "Add Drill Array\tA" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:417 +msgid "Add Drill\tD" +msgstr "Add Drill\tD" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:421 +msgid "Resize Drill(S)\tR" +msgstr "Resize Drill(S)\tR" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:423 +msgid "Copy\tC" +msgstr "Copy\tC" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:425 +msgid "Delete\tDEL" +msgstr "Delete\tDEL" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:430 +msgid "Move Drill(s)\tM" +msgstr "Move Drill(s)\tM" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:444 +msgid "Enable Plot" +msgstr "Enable Plot" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:445 +msgid "Disable Plot" +msgstr "Disable Plot" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:447 +msgid "Generate CNC" +msgstr "Generate CNC" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:448 +msgid "View Source" +msgstr "View Source" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:450 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1378 +msgid "Edit" +msgstr "Edit" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:451 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1376 +msgid "Copy" +msgstr "Copy" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:452 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1377 +msgid "Delete" +msgstr "Delete" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:456 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1384 +msgid "Properties" +msgstr "Properties" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:485 +msgid "File Toolbar" +msgstr "File Toolbar" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:489 +msgid "Edit Toolbar" +msgstr "Edit Toolbar" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:493 +msgid "View Toolbar" +msgstr "View Toolbar" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:497 +msgid "Shell Toolbar" +msgstr "Shell Toolbar" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:501 +msgid "Tools Toolbar" +msgstr "Tools Toolbar" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:505 +msgid "Excellon Editor Toolbar" +msgstr "Excellon Editor Toolbar" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:509 +msgid "Geometry Editor Toolbar" +msgstr "Geometry Editor Toolbar" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:513 +msgid "Grid Toolbar" +msgstr "Grid Toolbar" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:529 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1578 +msgid "Open Gerber" +msgstr "Open Gerber" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:530 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1579 +msgid "Open Excellon" +msgstr "Open Excellon" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:532 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1581 +msgid "Open project" +msgstr "Open project" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:533 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1582 +msgid "Save project" +msgstr "Save project" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:536 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1585 +msgid "New Blank Geometry" +msgstr "New Blank Geometry" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:537 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1586 +msgid "New Blank Excellon" +msgstr "New Blank Excellon" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:539 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1588 +msgid "Editor" +msgstr "Editor" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:541 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1590 +msgid "Save Object and close the Editor" +msgstr "Save Object and close the Editor" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:545 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1594 +msgid "&Delete" +msgstr "&Delete" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:548 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1597 +msgid "&Replot" +msgstr "&Replot" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:549 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1598 +msgid "&Clear plot" +msgstr "&Clear plot" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:550 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1599 +msgid "Zoom In" +msgstr "Zoom In" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:551 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1600 +msgid "Zoom Out" +msgstr "Zoom Out" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:552 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1358 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1601 +msgid "Zoom Fit" +msgstr "Zoom Fit" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:557 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1606 +msgid "&Command Line" +msgstr "&Command Line" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:560 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1609 +msgid "2Sided Tool" +msgstr "2Sided Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:561 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1610 +msgid "&Cutout Tool" +msgstr "&Cutout Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:562 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1611 +msgid "NCC Tool" +msgstr "NCC Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:563 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1612 +msgid "Paint Tool" +msgstr "Paint Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:566 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1615 +msgid "Panel Tool" +msgstr "Panel Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:567 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1616 +msgid "Film Tool" +msgstr "Film Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:568 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1618 +msgid "SolderPaste Tool" +msgstr "SolderPaste Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:571 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1622 +msgid "Calculators Tool" +msgstr "Calculators Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:572 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1623 +msgid "Transform Tool" +msgstr "Transform Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:575 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:589 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1626 +msgid "Select" +msgstr "Select" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:576 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1627 +msgid "Add Drill Hole" +msgstr "Add Drill Hole" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:579 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1630 +msgid "Resize Drill" +msgstr "Resize Drill" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:582 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1633 +msgid "Copy Drill" +msgstr "Copy Drill" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:583 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1635 +msgid "Delete Drill" +msgstr "Delete Drill" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:586 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1638 +msgid "Move Drill" +msgstr "Move Drill" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:590 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1642 +msgid "Add Circle" +msgstr "Add Circle" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:591 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1643 +msgid "Add Arc" +msgstr "Add Arc" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:593 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1645 +msgid "Add Rectangle" +msgstr "Add Rectangle" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:596 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1648 +msgid "Add Path" +msgstr "Add Path" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:597 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1650 +msgid "Add Polygon" +msgstr "Add Polygon" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:599 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1652 +msgid "Add Text" +msgstr "Add Text" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:600 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1654 +msgid "Add Buffer" +msgstr "Add Buffer" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:601 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1655 +msgid "Paint Shape" +msgstr "Paint Shape" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:604 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1658 +msgid "Polygon Union" +msgstr "Polygon Union" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:606 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1660 +msgid "Polygon Intersection" +msgstr "Polygon Intersection" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:608 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1662 +msgid "Polygon Subtraction" +msgstr "Polygon Subtraction" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:611 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1665 +msgid "Cut Path" +msgstr "Cut Path" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:612 +msgid "Copy Shape(s)" +msgstr "Copy Shape(s)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:615 +msgid "Delete Shape '-'" +msgstr "Delete Shape '-'" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:617 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1670 +msgid "Transformations" +msgstr "Transformations" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:619 +msgid "Move Objects " +msgstr "Move Objects " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:625 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1679 +msgid "Snap to grid" +msgstr "Snap to grid" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:628 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1682 +msgid "Grid X snapping distance" +msgstr "Grid X snapping distance" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:633 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1687 +msgid "Grid Y snapping distance" +msgstr "Grid Y snapping distance" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:639 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1693 +msgid "" +"When active, value on Grid_X\n" +"is copied to the Grid_Y value." +msgstr "" +"When active, value on Grid_X\n" +"is copied to the Grid_Y value." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:645 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1699 +msgid "Snap to corner" +msgstr "Snap to corner" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:649 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1703 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2792 +msgid "Max. magnet distance" +msgstr "Max. magnet distance" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:663 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1352 +msgid "Project" +msgstr "Project" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:672 +msgid "Selected" +msgstr "Selected" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:676 +msgid "tool_tab" +msgstr "tool_tab" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:679 +msgid "Tool" +msgstr "Tool" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:691 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:699 +msgid "Plot Area" +msgstr "Plot Area" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:723 +msgid "General" +msgstr "General" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:732 +msgid "APP. DEFAULTS" +msgstr "APP. DEFAULTS" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:733 +msgid "PROJ. OPTIONS " +msgstr "PROJ. OPTIONS " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:744 +msgid "GERBER" +msgstr "GERBER" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:753 +msgid "EXCELLON" +msgstr "EXCELLON" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:762 +msgid "GEOMETRY" +msgstr "GEOMETRY" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:772 +msgid "CNC-JOB" +msgstr "CNC-JOB" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:781 +msgid "TOOLS" +msgstr "TOOLS" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:798 +msgid "Import Preferences" +msgstr "Import Preferences" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:801 +msgid "" +"Import a full set of FlatCAM settings from a file\n" +"previously saved on HDD.\n" +"\n" +"FlatCAM automatically save a 'factory_defaults' file\n" +"on the first start. Do not delete that file." +msgstr "" +"Import a full set of FlatCAM settings from a file\n" +"previously saved on HDD.\n" +"\n" +"FlatCAM automatically save a 'factory_defaults' file\n" +"on the first start. Do not delete that file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:808 +msgid "Export Preferences" +msgstr "Export Preferences" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:811 +msgid "" +"Export a full set of FlatCAM settings in a file\n" +"that is saved on HDD." +msgstr "" +"Export a full set of FlatCAM settings in a file\n" +"that is saved on HDD." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:816 +msgid "Open Pref Folder" +msgstr "Open Pref Folder" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:819 +msgid "Open the folder where FlatCAM save the preferences files." +msgstr "Open the folder where FlatCAM save the preferences files." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:827 +msgid "Save Preferences" +msgstr "Save Preferences" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:830 +msgid "" +"Save the current settings in the 'current_defaults' file\n" +"which is the file storing the working default preferences." +msgstr "" +"Save the current settings in the 'current_defaults' file\n" +"which is the file storing the working default preferences." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:844 +msgid "Shortcut Key List" +msgstr "Shortcut Key List" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:855 +msgid "" +"General Shortcut list
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
F3\n" +"  SHOW SHORTCUT LIST
  
1 Switch to Project Tab
2 Switch to Selected Tab
3 Switch to Tool Tab
  
E Edit Object (if selected)
G Grid On/Off
J Jump to Coordinates
L New Excellon
M Move Obj
N New Geometry
O Set Origin
Q Change Units
P Open Properties Tool
R Rotate by 90 degree CW
S Shell Toggle
T Add a Tool (when in Geometry Selected Tab " +"or in Tools NCC or Tools Paint)
V Zoom Fit
X Flip on X_axis
Y Flip on Y_axis
'=' Zoom Out
'-' Zoom In
  
CTRL+A Select All
CTRL+C Copy Obj
CTRL+E Open Excellon File
CTRL+G Open Gerber File
CTRL+N New Project
CTRL+M Measurement Tool
CTRL+O Open Project
CTRL+S Save Project As
CTRL+F10 Toggle Plot Area
  
SHIFT+C Copy Obj_Name
SHIFT+E Toggle Code Editor
SHIFT+G Toggle the axis
SHIFT+P Open Preferences Window
SHIFT+R Rotate by 90 degree CCW
SHIFT+S Run a Script
SHIFT+W Toggle the workspace
SHIFT+X Skew on X axis
SHIFT+Y Skew on Y axis
  
ALT+C Calculators Tool
ALT+D 2-Sided PCB Tool
ALT+K Solder Paste Dispensing Tool
ALT+L Film PCB Tool
ALT+N Non-Copper Clearing Tool
ALT+P Paint Area Tool
ALT+R Transformations Tool
ALT+S View File Source
ALT+U Cutout PCB Tool
ALT+1 Enable all Plots
ALT+2 Disable all Plots
ALT+3 Disable Non-selected Plots
ALT+F10 Toggle Full Screen
  
F1 Open Online Manual
F4 Open Online Tutorials
Del Delete Object
Del Alternate: Delete Tool
'`' (left to Key_1)Toogle Notebook Area (Left " +"Side)
SPACE En(Dis)able Obj Plot
Escape Deselects all objects
\n" +" \n" +" " +msgstr "" +"General Shortcut list
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
F3\n" +"  SHOW SHORTCUT LIST
  
1 Switch to Project Tab
2 Switch to Selected Tab
3 Switch to Tool Tab
  
E Edit Object (if selected)
G Grid On/Off
J Jump to Coordinates
L New Excellon
M Move Obj
N New Geometry
O Set Origin
Q Change Units
P Open Properties Tool
R Rotate by 90 degree CW
S Shell Toggle
T Add a Tool (when in Geometry Selected Tab " +"or in Tools NCC or Tools Paint)
V Zoom Fit
X Flip on X_axis
Y Flip on Y_axis
'=' Zoom Out
'-' Zoom In
  
CTRL+A Select All
CTRL+C Copy Obj
CTRL+E Open Excellon File
CTRL+G Open Gerber File
CTRL+N New Project
CTRL+M Measurement Tool
CTRL+O Open Project
CTRL+S Save Project As
CTRL+F10 Toggle Plot Area
  
SHIFT+C Copy Obj_Name
SHIFT+E Toggle Code Editor
SHIFT+G Toggle the axis
SHIFT+P Open Preferences Window
SHIFT+R Rotate by 90 degree CCW
SHIFT+S Run a Script
SHIFT+W Toggle the workspace
SHIFT+X Skew on X axis
SHIFT+Y Skew on Y axis
  
ALT+C Calculators Tool
ALT+D 2-Sided PCB Tool
ALT+K Solder Paste Dispensing Tool
ALT+L Film PCB Tool
ALT+N Non-Copper Clearing Tool
ALT+P Paint Area Tool
ALT+R Transformations Tool
ALT+S View File Source
ALT+U Cutout PCB Tool
ALT+1 Enable all Plots
ALT+2 Disable all Plots
ALT+3 Disable Non-selected Plots
ALT+F10 Toggle Full Screen
  
F1 Open Online Manual
F4 Open Online Tutorials
Del Delete Object
Del Alternate: Delete Tool
'`' (left to Key_1)Toogle Notebook Area (Left " +"Side)
SPACE En(Dis)able Obj Plot
Escape Deselects all objects
\n" +" \n" +" " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1132 +msgid "" +"Editor Shortcut list
\n" +"
\n" +" GEOMETRY EDITOR
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
A\n" +"  Draw an Arc
B Buffer Tool
C Copy Geo Item
E Polygon Intersection Tool
I Paint Tool
J Jump to Location (x, y)
K Toggle Corner Snap
M Move Geo Item
N Draw a Polygon
O Draw a Circle
P Draw a Path
R Draw Rectangle
S Polygon Substraction Tool
T Add Text Tool
U Polygon Union Tool
X Flip shape on X axis
Y Flip shape on Y axis
  
SHIFT+X Skew shape on X axis
SHIFT+Y Skew shape on Y axis
  
ALT+R Editor Transformation Tool
ALT+X Offset shape on X axis
ALT+Y Offset shape on Y axis
  
CTRL+M Measurement Tool
CTRL+S Save Object and Exit Editor
CTRL+X Polygon Cut Tool
  
Space Rotate Geometry
ENTER Finish drawing for certain tools
ESC Abort and return to Select
Del Delete Shape
\n" +"
\n" +"
\n" +" EXCELLON EDITOR
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
A\n" +"  Add Drill Array
C Copy Drill(s)
D Add Drill
J Jump to Location (x, y)
M Move Drill(s)
R Resize Drill(s)
T Add a new Tool
  
Del Delete Drill(s)
Del Alternate: Delete Tool(s)
  
ESC Abort and return to Select
CTRL+S Save Object and Exit Editor
\n" +" " +msgstr "" +"Editor Shortcut list
\n" +"
\n" +" GEOMETRY EDITOR
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
A\n" +"  Draw an Arc
B Buffer Tool
C Copy Geo Item
E Polygon Intersection Tool
I Paint Tool
J Jump to Location (x, y)
K Toggle Corner Snap
M Move Geo Item
N Draw a Polygon
O Draw a Circle
P Draw a Path
R Draw Rectangle
S Polygon Substraction Tool
T Add Text Tool
U Polygon Union Tool
X Flip shape on X axis
Y Flip shape on Y axis
  
SHIFT+X Skew shape on X axis
SHIFT+Y Skew shape on Y axis
  
ALT+R Editor Transformation Tool
ALT+X Offset shape on X axis
ALT+Y Offset shape on Y axis
  
CTRL+M Measurement Tool
CTRL+S Save Object and Exit Editor
CTRL+X Polygon Cut Tool
  
Space Rotate Geometry
ENTER Finish drawing for certain tools
ESC Abort and return to Select
Del Delete Shape
\n" +"
\n" +"
\n" +" EXCELLON EDITOR
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
A\n" +"  Add Drill Array
C Copy Drill(s)
D Add Drill
J Jump to Location (x, y)
M Move Drill(s)
R Resize Drill(s)
T Add a new Tool
  
Del Delete Drill(s)
Del Alternate: Delete Tool(s)
  
ESC Abort and return to Select
CTRL+S Save Object and Exit Editor
\n" +" " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1346 +msgid "Disable" +msgstr "Disable" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1348 +msgid "New" +msgstr "New" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1349 +msgid "Geometry" +msgstr "Geometry" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1350 +msgid "Excellon" +msgstr "Excellon" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1355 +msgid "Grids" +msgstr "Grids" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1357 +msgid "View" +msgstr "View" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1359 +msgid "Clear Plot" +msgstr "Clear Plot" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1360 +msgid "Replot" +msgstr "Replot" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1363 +msgid "Geo Editor" +msgstr "Geo Editor" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1364 +msgid "Line" +msgstr "Line" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1365 +msgid "Rectangle" +msgstr "Rectangle" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1366 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4588 +msgid "Cut" +msgstr "Cut" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1368 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1383 +msgid "Move" +msgstr "Move" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1370 +msgid "Exc Editor" +msgstr "Exc Editor" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1371 +msgid "Add Drill" +msgstr "Add Drill" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1372 +msgid "Add Drill Array" +msgstr "Add Drill Array" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1373 +msgid "Copy Drill(s)" +msgstr "Copy Drill(s)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1379 +msgid "Save && Close Edit" +msgstr "Save && Close Edit" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1404 +msgid "Print Preview" +msgstr "Print Preview" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1405 +msgid "Print Code" +msgstr "Print Code" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1406 +msgid "Find in Code" +msgstr "Find in Code" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1411 +msgid "Replace With" +msgstr "Replace With" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1415 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4586 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5087 +msgid "All" +msgstr "All" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1417 +msgid "" +"When checked it will replace all instances in the 'Find' box\n" +"with the text in the 'Replace' box.." +msgstr "" +"When checked it will replace all instances in the 'Find' box\n" +"with the text in the 'Replace' box.." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1420 +msgid "Open Code" +msgstr "Open Code" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1421 +msgid "Save Code" +msgstr "Save Code" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1456 +msgid "" +"Relative neasurement.\n" +"Reference is last click position" +msgstr "" +"Relative neasurement.\n" +"Reference is last click position" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1462 +msgid "" +"Absolute neasurement.\n" +"Reference is (X=0, Y= 0) position" +msgstr "" +"Absolute neasurement.\n" +"Reference is (X=0, Y= 0) position" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1629 +msgid "Add Drill Hole Array" +msgstr "Add Drill Hole Array" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1641 +msgid "Select 'Esc'" +msgstr "Select 'Esc'" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1666 +msgid "Copy Objects" +msgstr "Copy Objects" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1668 +msgid "Delete Shape" +msgstr "Delete Shape" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1673 +msgid "Move Objects" +msgstr "Move Objects" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2048 +msgid "" +"Please first select a geometry item to be cutted\n" +"then select the geometry item that will be cutted\n" +"out of the first item. In the end press ~X~ key or\n" +"the toolbar button." +msgstr "" +"Please first select a geometry item to be cutted\n" +"then select the geometry item that will be cutted\n" +"out of the first item. In the end press ~X~ key or\n" +"the toolbar button." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2055 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2187 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2246 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2266 +msgid "Warning" +msgstr "Warning" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2102 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2114 +msgid "[success]Done." +msgstr "[success]Done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2122 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2316 +msgid "[WARNING_NOTCL]Cancelled." +msgstr "[WARNING_NOTCL]Cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2182 +msgid "" +"Please select geometry items \n" +"on which to perform Intersection Tool." +msgstr "" +"Please select geometry items \n" +"on which to perform Intersection Tool." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2240 +msgid "" +"Please select geometry items \n" +"on which to perform Substraction Tool." +msgstr "" +"Please select geometry items \n" +"on which to perform Substraction Tool." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2261 +msgid "" +"Please select geometry items \n" +"on which to perform union." +msgstr "" +"Please select geometry items \n" +"on which to perform union." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2333 +msgid "[WARNING_NOTCL]Cancelled. Nothing selected to delete." +msgstr "[WARNING_NOTCL]Cancelled. Nothing selected to delete." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2394 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2406 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2440 +msgid "Click on target point." +msgstr "Click on target point." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2400 +msgid "[WARNING_NOTCL]Cancelled. Nothing selected to copy." +msgstr "[WARNING_NOTCL]Cancelled. Nothing selected to copy." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2446 +msgid "[WARNING_NOTCL]Cancelled. Nothing selected to move." +msgstr "[WARNING_NOTCL]Cancelled. Nothing selected to move." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2460 +msgid "New Tool ..." +msgstr "New Tool ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2461 +msgid "Enter a Tool Diameter:" +msgstr "Enter a Tool Diameter:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2469 +msgid "[success]Added new tool with dia: %s %s" +msgstr "[success]Added new tool with dia: %s %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2472 +msgid "[WARNING_NOTCL] Adding Tool cancelled ..." +msgstr "[WARNING_NOTCL] Adding Tool cancelled ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2777 +msgid "Grid X value:" +msgstr "Grid X value:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2779 +msgid "This is the Grid snap value on X axis." +msgstr "This is the Grid snap value on X axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2784 +msgid "Grid Y value:" +msgstr "Grid Y value:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2786 +msgid "This is the Grid snap value on Y axis." +msgstr "This is the Grid snap value on Y axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2791 +msgid "Snap Max:" +msgstr "Snap Max:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2796 +msgid "Workspace:" +msgstr "Workspace:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2798 +msgid "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." +msgstr "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2801 +msgid "Wk. format:" +msgstr "Wk. format:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2803 +msgid "" +"Select the type of rectangle to be used on canvas,\n" +"as valid workspace." +msgstr "" +"Select the type of rectangle to be used on canvas,\n" +"as valid workspace." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2816 +msgid "Plot Fill:" +msgstr "Plot Fill:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2818 +msgid "" +"Set the fill color for plotted objects.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Set the fill color for plotted objects.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2832 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2882 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2932 +msgid "Alpha Level:" +msgstr "Alpha Level:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2834 +msgid "Set the fill transparency for plotted objects." +msgstr "Set the fill transparency for plotted objects." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2851 +msgid "Plot Line:" +msgstr "Plot Line:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2853 +msgid "Set the line color for plotted objects." +msgstr "Set the line color for plotted objects." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2865 +msgid "Sel. Fill:" +msgstr "Sel. Fill:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2867 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from left to right.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Set the fill color for the selection box\n" +"in case that the selection is done from left to right.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2884 +msgid "Set the fill transparency for the 'left to right' selection box." +msgstr "Set the fill transparency for the 'left to right' selection box." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2901 +msgid "Sel. Line:" +msgstr "Sel. Line:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2903 +msgid "Set the line color for the 'left to right' selection box." +msgstr "Set the line color for the 'left to right' selection box." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2915 +msgid "Sel2. Fill:" +msgstr "Sel2. Fill:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2917 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from right to left.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" +"Set the fill color for the selection box\n" +"in case that the selection is done from right to left.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2934 +msgid "Set the fill transparency for selection 'right to left' box." +msgstr "Set the fill transparency for selection 'right to left' box." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2951 +msgid "Sel2. Line:" +msgstr "Sel2. Line:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2953 +msgid "Set the line color for the 'right to left' selection box." +msgstr "Set the line color for the 'right to left' selection box." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2965 +msgid "Editor Draw:" +msgstr "Editor Draw:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2967 +msgid "Set the color for the shape." +msgstr "Set the color for the shape." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2979 +msgid "Editor Draw Sel.:" +msgstr "Editor Draw Sel.:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2981 +msgid "Set the color of the shape when selected." +msgstr "Set the color of the shape when selected." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3028 +msgid "GUI Settings" +msgstr "GUI Settings" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3035 +msgid "Layout:" +msgstr "Layout:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3037 +msgid "" +"Select an layout for FlatCAM.\n" +"It is applied immediately." +msgstr "" +"Select an layout for FlatCAM.\n" +"It is applied immediately." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3041 +msgid "Choose ..." +msgstr "Choose ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3042 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4822 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5053 +msgid "Standard" +msgstr "Standard" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3043 +msgid "Compact" +msgstr "Compact" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3047 +msgid "Style:" +msgstr "Style:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3049 +msgid "" +"Select an style for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Select an style for FlatCAM.\n" +"It will be applied at the next app start." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3060 +msgid "HDPI Support:" +msgstr "HDPI Support:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3062 +msgid "" +"Enable High DPI support for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" +"Enable High DPI support for FlatCAM.\n" +"It will be applied at the next app start." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3075 +msgid "Clear GUI Settings:" +msgstr "Clear GUI Settings:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3077 +msgid "" +"Clear the GUI settings for FlatCAM,\n" +"such as: layout, gui state, style, hdpi support etc." +msgstr "" +"Clear the GUI settings for FlatCAM,\n" +"such as: layout, gui state, style, hdpi support etc." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3080 +msgid "Clear" +msgstr "Clear" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3084 +msgid "Hover Shape:" +msgstr "Hover Shape:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3086 +msgid "" +"Enable display of a hover shape for FlatCAM objects.\n" +"It is displayed whenever the mouse cursor is hovering\n" +"over any kind of not-selected object." +msgstr "" +"Enable display of a hover shape for FlatCAM objects.\n" +"It is displayed whenever the mouse cursor is hovering\n" +"over any kind of not-selected object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3127 +msgid "Are you sure you want to delete the GUI Settings? \n" +msgstr "Are you sure you want to delete the GUI Settings? \n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3130 +msgid "Clear GUI Settings" +msgstr "Clear GUI Settings" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3143 +msgid "[success] GUI settings deleted ..." +msgstr "[success] GUI settings deleted ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3150 +msgid "App Preferences" +msgstr "App Preferences" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3156 +msgid "Units:" +msgstr "Units:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3157 +msgid "" +"The default value for FlatCAM units.\n" +"Whatever is selected here is set every time\n" +"FLatCAM is started." +msgstr "" +"The default value for FlatCAM units.\n" +"Whatever is selected here is set every time\n" +"FLatCAM is started." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3164 +msgid "APP. LEVEL:" +msgstr "APP. LEVEL:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3165 +msgid "" +"Choose the default level of usage for FlatCAM.\n" +"BASIC level -> reduced functionality, best for beginner's.\n" +"ADVANCED level -> full functionality.\n" +"\n" +"The choice here will influence the parameters in\n" +"the Selected Tab for all kinds of FlatCAM objects." +msgstr "" +"Choose the default level of usage for FlatCAM.\n" +"BASIC level -> reduced functionality, best for beginner's.\n" +"ADVANCED level -> full functionality.\n" +"\n" +"The choice here will influence the parameters in\n" +"the Selected Tab for all kinds of FlatCAM objects." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3170 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3774 +msgid "Basic" +msgstr "Basic" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3171 +msgid "Advanced" +msgstr "Advanced" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3174 +msgid "Languages:" +msgstr "Languages:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3175 +msgid "Set the language used throughout FlatCAM." +msgstr "Set the language used throughout FlatCAM." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3178 +msgid "Apply Language" +msgstr "Apply Language" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3181 +msgid "Shell at StartUp:" +msgstr "Shell at StartUp:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3183 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3188 +msgid "" +"Check this box if you want the shell to\n" +"start automatically at startup." +msgstr "" +"Check this box if you want the shell to\n" +"start automatically at startup." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3193 +msgid "Version Check:" +msgstr "Version Check:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3195 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3200 +msgid "" +"Check this box if you want to check\n" +"for a new version automatically at startup." +msgstr "" +"Check this box if you want to check\n" +"for a new version automatically at startup." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3205 +msgid "Send Stats:" +msgstr "Send Stats:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3207 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3212 +msgid "" +"Check this box if you agree to send anonymous\n" +"stats automatically at startup, to help improve FlatCAM." +msgstr "" +"Check this box if you agree to send anonymous\n" +"stats automatically at startup, to help improve FlatCAM." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3219 +msgid "Pan Button:" +msgstr "Pan Button:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3220 +msgid "" +"Select the mouse button to use for panning:\n" +"- MMB --> Middle Mouse Button\n" +"- RMB --> Right Mouse Button" +msgstr "" +"Select the mouse button to use for panning:\n" +"- MMB --> Middle Mouse Button\n" +"- RMB --> Right Mouse Button" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3223 +msgid "MMB" +msgstr "MMB" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3224 +msgid "RMB" +msgstr "RMB" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3227 +msgid "Multiple Sel:" +msgstr "Multiple Sel:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3228 +msgid "Select the key used for multiple selection." +msgstr "Select the key used for multiple selection." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3229 +msgid "CTRL" +msgstr "CTRL" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3230 +msgid "SHIFT" +msgstr "SHIFT" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3233 +msgid "Project at StartUp:" +msgstr "Project at StartUp:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3235 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3240 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"to be shown automatically at startup." +msgstr "" +"Check this box if you want the project/selected/tool tab area to\n" +"to be shown automatically at startup." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3245 +msgid "Project AutoHide:" +msgstr "Project AutoHide:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3247 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3253 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"hide automatically when there are no objects loaded and\n" +"to show whenever a new object is created." +msgstr "" +"Check this box if you want the project/selected/tool tab area to\n" +"hide automatically when there are no objects loaded and\n" +"to show whenever a new object is created." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3259 +msgid "Enable ToolTips:" +msgstr "Enable ToolTips:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3261 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3266 +msgid "" +"Check this box if you want to have toolTips displayed\n" +"when hovering with mouse over items throughout the App." +msgstr "" +"Check this box if you want to have toolTips displayed\n" +"when hovering with mouse over items throughout the App." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3300 +msgid "Save Compressed Project" +msgstr "Save Compressed Project" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3302 +msgid "" +"Whether to save a compressed or uncompressed project.\n" +"When checked it will save a compressed FlatCAM project." +msgstr "" +"Whether to save a compressed or uncompressed project.\n" +"When checked it will save a compressed FlatCAM project." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3313 +msgid "Compression Level:" +msgstr "Compression Level:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3315 +msgid "" +"The level of compression used when saving\n" +"a FlatCAM project. Higher value means better compression\n" +"but require more RAM usage and more processing time." +msgstr "" +"The level of compression used when saving\n" +"a FlatCAM project. Higher value means better compression\n" +"but require more RAM usage and more processing time." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3341 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3582 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4237 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4560 +msgid "Plot Options:" +msgstr "Plot Options:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3348 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3594 +msgid "Solid" +msgstr "Solid" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3350 +msgid "Solid color polygons." +msgstr "Solid color polygons." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3355 +msgid "M-Color" +msgstr "M-Color" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3357 +msgid "Draw polygons in different colors." +msgstr "Draw polygons in different colors." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3362 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3588 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4241 +msgid "Plot" +msgstr "Plot" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3364 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4243 +msgid "Plot (show) this object." +msgstr "Plot (show) this object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3369 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4250 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4596 +msgid "Circle Steps:" +msgstr "Circle Steps:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3371 +msgid "" +"The number of circle steps for Gerber \n" +"circular aperture linear approximation." +msgstr "" +"The number of circle steps for Gerber \n" +"circular aperture linear approximation." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3386 +msgid "Gerber Options" +msgstr "Gerber Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3390 +msgid "Isolation Routing:" +msgstr "Isolation Routing:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3392 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3401 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4606 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4882 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5013 +msgid "Tool dia:" +msgstr "Tool dia:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3403 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3960 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4884 +msgid "Diameter of the cutting tool." +msgstr "Diameter of the cutting tool." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3410 +msgid "Width (# passes):" +msgstr "Width (# passes):" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3412 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3420 +msgid "Pass overlap:" +msgstr "Pass overlap:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3422 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means an overlap of 25% from the tool diameter found " +"above." +msgstr "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means an overlap of 25% from the tool diameter found " +"above." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3430 +msgid "Milling Type:" +msgstr "Milling Type:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3432 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3437 +msgid "Climb" +msgstr "Climb" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3438 +msgid "Conv." +msgstr "Conv." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3442 +msgid "Combine Passes" +msgstr "Combine Passes" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3444 +msgid "Combine all passes into one object" +msgstr "Combine all passes into one object" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3449 +msgid "Clear non-copper:" +msgstr "Clear non-copper:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3451 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4772 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." +msgstr "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3460 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3486 +msgid "Boundary Margin:" +msgstr "Boundary Margin:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3462 +msgid "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." +msgstr "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3472 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3495 +msgid "Rounded corners" +msgstr "Rounded corners" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3474 +msgid "" +"Creates a Geometry objects with polygons\n" +"covering the copper-free areas of the PCB." +msgstr "" +"Creates a Geometry objects with polygons\n" +"covering the copper-free areas of the PCB." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3480 +msgid "Bounding Box:" +msgstr "Bounding Box:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3488 +msgid "" +"Distance of the edges of the box\n" +"to the nearest polygon." +msgstr "" +"Distance of the edges of the box\n" +"to the nearest polygon." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3497 +msgid "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." +msgstr "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3511 +msgid "Gerber Adv. Options" +msgstr "Gerber Adv. Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3515 +msgid "Advanced Param.:" +msgstr "Advanced Param.:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3517 +msgid "" +"A list of Gerber advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" +"A list of Gerber advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3527 +msgid "\"Follow\"" +msgstr "\"Follow\"" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3529 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3537 +msgid "Table Show/Hide" +msgstr "Table Show/Hide" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3539 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"Also, on hide, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Toggle the display of the Gerber Apertures Table.\n" +"Also, on hide, it will delete all mark shapes\n" +"that are drawn on canvas." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3547 +msgid "Ap. Scale Factor:" +msgstr "Ap. Scale Factor:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3549 +msgid "" +"Change the size of the selected apertures.\n" +"Factor by which to multiply\n" +"geometric features of this object." +msgstr "" +"Change the size of the selected apertures.\n" +"Factor by which to multiply\n" +"geometric features of this object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3559 +msgid "Ap. Buffer Factor:" +msgstr "Ap. Buffer Factor:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3561 +msgid "" +"Change the size of the selected apertures.\n" +"Factor by which to expand/shrink\n" +"geometric features of this object." +msgstr "" +"Change the size of the selected apertures.\n" +"Factor by which to expand/shrink\n" +"geometric features of this object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3579 +msgid "Excellon General" +msgstr "Excellon General" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3601 +msgid "Excellon Format:" +msgstr "Excellon Format:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3603 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period.\n" +"\n" +"Possible presets:\n" +"\n" +"PROTEUS 3:3 MM LZ\n" +"DipTrace 5:2 MM TZ\n" +"DipTrace 4:3 MM LZ\n" +"\n" +"EAGLE 3:3 MM TZ\n" +"EAGLE 4:3 MM TZ\n" +"EAGLE 2:5 INCH TZ\n" +"EAGLE 3:5 INCH TZ\n" +"\n" +"ALTIUM 2:4 INCH LZ\n" +"Sprint Layout 2:4 INCH LZ\n" +"KiCAD 3:5 INCH TZ" +msgstr "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period.\n" +"\n" +"Possible presets:\n" +"\n" +"PROTEUS 3:3 MM LZ\n" +"DipTrace 5:2 MM TZ\n" +"DipTrace 4:3 MM LZ\n" +"\n" +"EAGLE 3:3 MM TZ\n" +"EAGLE 4:3 MM TZ\n" +"EAGLE 2:5 INCH TZ\n" +"EAGLE 3:5 INCH TZ\n" +"\n" +"ALTIUM 2:4 INCH LZ\n" +"Sprint Layout 2:4 INCH LZ\n" +"KiCAD 3:5 INCH TZ" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3628 +msgid "INCH:" +msgstr "INCH:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3631 +msgid "Default values for INCH are 2:4" +msgstr "Default values for INCH are 2:4" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3639 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3672 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4149 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Excellon coordinates." +msgstr "" +"This numbers signify the number of digits in\n" +"the whole part of Excellon coordinates." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3653 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3686 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4163 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Excellon coordinates." +msgstr "" +"This numbers signify the number of digits in\n" +"the decimal part of Excellon coordinates." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3661 +msgid "METRIC:" +msgstr "METRIC:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3664 +msgid "Default values for METRIC are 3:3" +msgstr "Default values for METRIC are 3:3" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3695 +msgid "Default Zeros:" +msgstr "Default Zeros:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3698 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4198 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3706 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4205 +msgid "LZ" +msgstr "LZ" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3707 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4206 +msgid "TZ" +msgstr "TZ" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3709 +msgid "" +"This sets the default type of Excellon zeros.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"This sets the default type of Excellon zeros.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3723 +msgid "Default Units:" +msgstr "Default Units:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3726 +msgid "" +"This sets the default units of Excellon files.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"This sets the default units of Excellon files.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.Some Excellon files don't have an header\n" +"therefore this parameter will be used." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3734 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4125 +msgid "INCH" +msgstr "INCH" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3735 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4126 +msgid "MM" +msgstr "MM" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3737 +msgid "" +"This sets the units of Excellon files.\n" +"Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" +"This sets the units of Excellon files.\n" +"Some Excellon files don't have an header\n" +"therefore this parameter will be used." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3753 +msgid "Excellon Optimization:" +msgstr "Excellon Optimization:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3760 +msgid "Algorithm: " +msgstr "Algorithm: " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3763 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3776 +msgid "" +"This sets the optimization type for the Excellon drill path.\n" +"If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" +"Guided Local Path is used. Default search time is 3sec.\n" +"Use set_sys excellon_search_time value Tcl Command to set other values.\n" +"If Basic is checked then Google OR-Tools Basic algorithm is used.\n" +"\n" +"If DISABLED, then FlatCAM works in 32bit mode and it uses \n" +"Travelling Salesman algorithm for path optimization." +msgstr "" +"This sets the optimization type for the Excellon drill path.\n" +"If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" +"Guided Local Path is used. Default search time is 3sec.\n" +"Use set_sys excellon_search_time value Tcl Command to set other values.\n" +"If Basic is checked then Google OR-Tools Basic algorithm is used.\n" +"\n" +"If DISABLED, then FlatCAM works in 32bit mode and it uses \n" +"Travelling Salesman algorithm for path optimization." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3773 +msgid "MH" +msgstr "MH" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3788 +msgid "Optimization Time: " +msgstr "Optimization Time: " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3791 +msgid "" +"When OR-Tools Metaheuristic (MH) is enabled there is a\n" +"maximum threshold for how much time is spent doing the\n" +"path optimization. This max duration is set here.\n" +"In seconds." +msgstr "" +"When OR-Tools Metaheuristic (MH) is enabled there is a\n" +"maximum threshold for how much time is spent doing the\n" +"path optimization. This max duration is set here.\n" +"In seconds." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3832 +msgid "Excellon Options" +msgstr "Excellon Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3835 +msgid "Create CNC Job" +msgstr "Create CNC Job" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3837 +msgid "" +"Parameters used to create a CNC Job object\n" +"for this drill object." +msgstr "" +"Parameters used to create a CNC Job object\n" +"for this drill object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3845 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4301 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5299 +msgid "Cut Z:" +msgstr "Cut Z:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3847 +msgid "" +"Drill depth (negative)\n" +"below the copper surface." +msgstr "" +"Drill depth (negative)\n" +"below the copper surface." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3854 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4334 +msgid "Travel Z:" +msgstr "Travel Z:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3856 +msgid "" +"Tool height when travelling\n" +"across the XY plane." +msgstr "" +"Tool height when travelling\n" +"across the XY plane." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3864 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4344 +msgid "Tool change:" +msgstr "Tool change:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3866 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4346 +msgid "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." +msgstr "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3873 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4354 +msgid "Toolchange Z:" +msgstr "Toolchange Z:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3875 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4356 +msgid "Toolchange Z position." +msgstr "Toolchange Z position." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3881 +msgid "Feedrate:" +msgstr "Feedrate:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3883 +msgid "" +"Tool speed while drilling\n" +"(in units per minute)." +msgstr "" +"Tool speed while drilling\n" +"(in units per minute)." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3891 +msgid "Spindle Speed:" +msgstr "Spindle Speed:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3893 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4386 +msgid "" +"Speed of the spindle\n" +"in RPM (optional)" +msgstr "" +"Speed of the spindle\n" +"in RPM (optional)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3901 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4394 +msgid "Dwell:" +msgstr "Dwell:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3903 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4396 +msgid "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." +msgstr "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3906 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4399 +msgid "Duration:" +msgstr "Duration:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3908 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4401 +msgid "Number of milliseconds for spindle to dwell." +msgstr "Number of milliseconds for spindle to dwell." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3920 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4411 +msgid "Postprocessor:" +msgstr "Postprocessor:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3922 +msgid "" +"The postprocessor file that dictates\n" +"gcode output." +msgstr "" +"The postprocessor file that dictates\n" +"gcode output." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3932 +msgid "Gcode: " +msgstr "Gcode: " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3934 +msgid "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to drills." +msgstr "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to drills." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3939 +msgid "Drills" +msgstr "Drills" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3940 +msgid "Slots" +msgstr "Slots" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3941 +msgid "Both" +msgstr "Both" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3950 +msgid "Mill Holes" +msgstr "Mill Holes" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3952 +msgid "Create Geometry for milling holes." +msgstr "Create Geometry for milling holes." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3958 +msgid "Drill Tool dia:" +msgstr "Drill Tool dia:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3965 +msgid "Slot Tool dia:" +msgstr "Slot Tool dia:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3967 +msgid "" +"Diameter of the cutting tool\n" +"when milling slots." +msgstr "" +"Diameter of the cutting tool\n" +"when milling slots." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3979 +msgid "Defaults" +msgstr "Defaults" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3992 +msgid "Excellon Adv. Options" +msgstr "Excellon Adv. Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3998 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4434 +msgid "Advanced Options:" +msgstr "Advanced Options:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4000 +msgid "" +"Parameters used to create a CNC Job object\n" +"for this drill object that are shown when App Level is Advanced." +msgstr "" +"Parameters used to create a CNC Job object\n" +"for this drill object that are shown when App Level is Advanced." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4008 +msgid "Offset Z:" +msgstr "Offset Z:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4010 +msgid "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." +msgstr "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4017 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4445 +msgid "Toolchange X,Y:" +msgstr "Toolchange X,Y:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4019 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4447 +msgid "Toolchange X,Y position." +msgstr "Toolchange X,Y position." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4025 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4454 +msgid "Start move Z:" +msgstr "Start move Z:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4027 +msgid "" +"Height of the tool just after start.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Height of the tool just after start.\n" +"Delete the value if you don't need this feature." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4034 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4464 +msgid "End move Z:" +msgstr "End move Z:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4036 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4466 +msgid "" +"Height of the tool after\n" +"the last move at the end of the job." +msgstr "" +"Height of the tool after\n" +"the last move at the end of the job." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4043 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4474 +msgid "Feedrate Rapids:" +msgstr "Feedrate Rapids:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4045 +msgid "" +"Tool speed while drilling\n" +"with rapid move G00\n" +"(in units per minute).\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." +msgstr "" +"Tool speed while drilling\n" +"with rapid move G00\n" +"(in units per minute).\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4056 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4497 +msgid "Probe Z depth:" +msgstr "Probe Z depth:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4058 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4499 +msgid "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." +msgstr "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4066 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4507 +msgid "Feedrate Probe:" +msgstr "Feedrate Probe:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4068 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4509 +msgid "The feedrate used while the probe is probing." +msgstr "The feedrate used while the probe is probing." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4074 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4516 +msgid "Fast Plunge:" +msgstr "Fast Plunge:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4076 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4518 +msgid "" +"By checking this, the vertical move from\n" +"Z_Toolchange to Z_move is done with G0,\n" +"meaning the fastest speed available.\n" +"WARNING: the move is done at Toolchange X,Y coords." +msgstr "" +"By checking this, the vertical move from\n" +"Z_Toolchange to Z_move is done with G0,\n" +"meaning the fastest speed available.\n" +"WARNING: the move is done at Toolchange X,Y coords." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4085 +msgid "Fast Retract:" +msgstr "Fast Retract:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4087 +msgid "" +"Exit hole strategy.\n" +" - When uncheked, while exiting the drilled hole the drill bit\n" +"will travel slow, with set feedrate (G1), up to zero depth and then\n" +"travel as fast as possible (G0) to the Z Move (travel height).\n" +" - When checked the travel from Z cut (cut depth) to Z_move\n" +"(travel height) is done as fast as possible (G0) in one move." +msgstr "" +"Exit hole strategy.\n" +" - When uncheked, while exiting the drilled hole the drill bit\n" +"will travel slow, with set feedrate (G1), up to zero depth and then\n" +"travel as fast as possible (G0) to the Z Move (travel height).\n" +" - When checked the travel from Z cut (cut depth) to Z_move\n" +"(travel height) is done as fast as possible (G0) in one move." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4106 +msgid "Excellon Export" +msgstr "Excellon Export" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4109 +msgid "Export Options:" +msgstr "Export Options:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4111 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Excellon menu entry." +msgstr "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Excellon menu entry." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4120 +msgid "Units:" +msgstr "Units:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4122 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4128 +msgid "The units used in the Excellon file." +msgstr "The units used in the Excellon file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4134 +msgid "Int/Decimals:" +msgstr "Int/Decimals:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4136 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period." +msgstr "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4172 +msgid "Format:" +msgstr "Format:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4174 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4184 +msgid "" +"Select the kind of coordinates format used.\n" +"Coordinates can be saved with decimal point or without.\n" +"When there is no decimal point, it is required to specify\n" +"the number of digits for integer part and the number of decimals.\n" +"Also it will have to be specified if LZ = leading zeros are kept\n" +"or TZ = trailing zeros are kept." +msgstr "" +"Select the kind of coordinates format used.\n" +"Coordinates can be saved with decimal point or without.\n" +"When there is no decimal point, it is required to specify\n" +"the number of digits for integer part and the number of decimals.\n" +"Also it will have to be specified if LZ = leading zeros are kept\n" +"or TZ = trailing zeros are kept." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4181 +msgid "Decimal" +msgstr "Decimal" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4182 +msgid "No-Decimal" +msgstr "No-Decimal" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4195 +msgid "Zeros:" +msgstr "Zeros:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4208 +msgid "" +"This sets the default type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" +"This sets the default type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4234 +msgid "Geometry General" +msgstr "Geometry General" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4252 +msgid "" +"The number of circle steps for Geometry \n" +"circle and arc shapes linear approximation." +msgstr "" +"The number of circle steps for Geometry \n" +"circle and arc shapes linear approximation." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4260 +msgid "Tools" +msgstr "Tools" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4267 +msgid "Tool dia: " +msgstr "Tool dia: " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4269 +msgid "" +"The diameter of the cutting\n" +"tool.." +msgstr "" +"The diameter of the cutting\n" +"tool.." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4284 +msgid "Geometry Options" +msgstr "Geometry Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4289 +msgid "Create CNC Job:" +msgstr "Create CNC Job:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4291 +msgid "" +"Create a CNC Job object\n" +"tracing the contours of this\n" +"Geometry object." +msgstr "" +"Create a CNC Job object\n" +"tracing the contours of this\n" +"Geometry object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4303 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" +"Cutting depth (negative)\n" +"below the copper surface." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4311 +msgid "Multidepth" +msgstr "Multidepth" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4313 +msgid "Multidepth usage: True or False." +msgstr "Multidepth usage: True or False." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4318 +msgid "Depth/Pass:" +msgstr "Depth/Pass:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4320 +msgid "" +"The depth to cut on each pass,\n" +"when multidepth is enabled.\n" +"It has positive value although\n" +"it is a fraction from the depth\n" +"which has negative value." +msgstr "" +"The depth to cut on each pass,\n" +"when multidepth is enabled.\n" +"It has positive value although\n" +"it is a fraction from the depth\n" +"which has negative value." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4336 +msgid "" +"Height of the tool when\n" +"moving without cutting." +msgstr "" +"Height of the tool when\n" +"moving without cutting." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4363 +msgid "Feed Rate X-Y:" +msgstr "Feed Rate X-Y:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4365 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute" +msgstr "" +"Cutting speed in the XY\n" +"plane in units per minute" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4373 +msgid "Feed Rate Z:" +msgstr "Feed Rate Z:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4375 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute.\n" +"It is called also Plunge." +msgstr "" +"Cutting speed in the XY\n" +"plane in units per minute.\n" +"It is called also Plunge." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4384 +msgid "Spindle speed:" +msgstr "Spindle speed:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4413 +msgid "" +"The postprocessor file that dictates\n" +"Machine Code output." +msgstr "" +"The postprocessor file that dictates\n" +"Machine Code output." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4429 +msgid "Geometry Adv. Options" +msgstr "Geometry Adv. Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4436 +msgid "" +"Parameters to create a CNC Job object\n" +"tracing the contours of a Geometry object." +msgstr "" +"Parameters to create a CNC Job object\n" +"tracing the contours of a Geometry object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4456 +msgid "" +"Height of the tool just after starting the work.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Height of the tool just after starting the work.\n" +"Delete the value if you don't need this feature." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4476 +msgid "" +"Cutting speed in the XY\n" +"plane for rapid move G00.\n" +"In units per minute.\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." +msgstr "" +"Cutting speed in the XY\n" +"plane for rapid move G00.\n" +"In units per minute.\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4487 +msgid "Re-cut 1st pt." +msgstr "Re-cut 1st pt." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4489 +msgid "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." +msgstr "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4528 +msgid "Seg. X size:" +msgstr "Seg. X size:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4530 +msgid "" +"The size of the trace segment on the X axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the X axis." +msgstr "" +"The size of the trace segment on the X axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the X axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4539 +msgid "Seg. Y size:" +msgstr "Seg. Y size:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4541 +msgid "" +"The size of the trace segment on the Y axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the Y axis." +msgstr "" +"The size of the trace segment on the Y axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the Y axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4557 +msgid "CNC Job General" +msgstr "CNC Job General" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4570 +msgid "Plot Object" +msgstr "Plot Object" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4577 +msgid "Plot kind:" +msgstr "Plot kind:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4579 +msgid "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." +msgstr "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4587 +msgid "Travel" +msgstr "Travel" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4598 +msgid "" +"The number of circle steps for GCode \n" +"circle and arc shapes linear approximation." +msgstr "" +"The number of circle steps for GCode \n" +"circle and arc shapes linear approximation." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4608 +msgid "" +"Diameter of the tool to be\n" +"rendered in the plot." +msgstr "" +"Diameter of the tool to be\n" +"rendered in the plot." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4616 +msgid "Coords dec.:" +msgstr "Coords dec.:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4618 +msgid "" +"The number of decimals to be used for \n" +"the X, Y, Z coordinates in CNC code (GCODE, etc.)" +msgstr "" +"The number of decimals to be used for \n" +"the X, Y, Z coordinates in CNC code (GCODE, etc.)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4626 +msgid "Feedrate dec.:" +msgstr "Feedrate dec.:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4628 +msgid "" +"The number of decimals to be used for \n" +"the Feedrate parameter in CNC code (GCODE, etc.)" +msgstr "" +"The number of decimals to be used for \n" +"the Feedrate parameter in CNC code (GCODE, etc.)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4643 +msgid "CNC Job Options" +msgstr "CNC Job Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4646 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4687 +msgid "Export G-Code:" +msgstr "Export G-Code:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4648 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4689 +msgid "" +"Export and save G-Code to\n" +"make this object to a file." +msgstr "" +"Export and save G-Code to\n" +"make this object to a file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4654 +msgid "Prepend to G-Code:" +msgstr "Prepend to G-Code:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4656 +msgid "" +"Type here any G-Code commands you would\n" +"like to add at the beginning of the G-Code file." +msgstr "" +"Type here any G-Code commands you would\n" +"like to add at the beginning of the G-Code file." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4665 +msgid "Append to G-Code:" +msgstr "Append to G-Code:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4667 +msgid "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4684 +msgid "CNC Job Adv. Options" +msgstr "CNC Job Adv. Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4695 +msgid "Toolchange G-Code:" +msgstr "Toolchange G-Code:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4697 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro." +msgstr "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4711 +msgid "Use Toolchange Macro" +msgstr "Use Toolchange Macro" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4713 +msgid "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." +msgstr "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4725 +msgid "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" +msgstr "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4732 +msgid "Parameters" +msgstr "Parameters" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4735 +msgid "FlatCAM CNC parameters" +msgstr "FlatCAM CNC parameters" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4736 +msgid "tool = tool number" +msgstr "tool = tool number" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4737 +msgid "tooldia = tool diameter" +msgstr "tooldia = tool diameter" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4738 +msgid "t_drills = for Excellon, total number of drills" +msgstr "t_drills = for Excellon, total number of drills" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4739 +msgid "x_toolchange = X coord for Toolchange" +msgstr "x_toolchange = X coord for Toolchange" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4740 +msgid "y_toolchange = Y coord for Toolchange" +msgstr "y_toolchange = Y coord for Toolchange" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4741 +msgid "z_toolchange = Z coord for Toolchange" +msgstr "z_toolchange = Z coord for Toolchange" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4742 +msgid "z_cut = Z coord for Toolchange" +msgstr "z_cut = Z coord for Toolchange" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4743 +msgid "z_move = Z coord for Toolchange" +msgstr "z_move = Z coord for Toolchange" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4744 +msgid "z_depthpercut = the step value for multidepth cut" +msgstr "z_depthpercut = the step value for multidepth cut" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4745 +msgid "spindlesspeed = the value for the spindle speed" +msgstr "spindlesspeed = the value for the spindle speed" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4746 +msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +msgstr "dwelltime = time to dwell to allow the spindle to reach it's set RPM" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4767 +msgid "NCC Tool Options" +msgstr "NCC Tool Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4770 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4871 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4941 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5000 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5103 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5164 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5363 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5490 +msgid "Parameters:" +msgstr "Parameters:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4780 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5501 +msgid "Tools dia:" +msgstr "Tools dia:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4782 +msgid "Diameters of the cutting tools, separated by ','" +msgstr "Diameters of the cutting tools, separated by ','" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4788 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5024 +msgid "Overlap:" +msgstr "Overlap:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4790 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4804 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4890 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5034 +msgid "Margin:" +msgstr "Margin:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4806 +msgid "Bounding box margin." +msgstr "Bounding box margin." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4813 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5045 +msgid "Method:" +msgstr "Method:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4815 +msgid "" +"Algorithm for non-copper clearing:
Standard: Fixed step inwards." +"
Seed-based: Outwards from seed.
Line-based: Parallel " +"lines." +msgstr "" +"Algorithm for non-copper clearing:
Standard: Fixed step inwards." +"
Seed-based: Outwards from seed.
Line-based: Parallel " +"lines." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4823 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5054 +msgid "Seed-based" +msgstr "Seed-based" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4824 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5055 +msgid "Straight lines" +msgstr "Straight lines" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4829 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5060 +msgid "Connect:" +msgstr "Connect:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4831 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5062 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4838 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5070 +msgid "Contour:" +msgstr "Contour:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4840 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5072 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4847 +msgid "Rest M.:" +msgstr "Rest M.:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4849 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool.\n" +"If not checked, use the standard algorithm." +msgstr "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool.\n" +"If not checked, use the standard algorithm." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4868 +msgid "Cutout Tool Options" +msgstr "Cutout Tool Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4873 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4892 +msgid "" +"Distance from objects at which\n" +"to draw the cutout." +msgstr "" +"Distance from objects at which\n" +"to draw the cutout." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4899 +msgid "Gap size:" +msgstr "Gap size:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4901 +msgid "" +"Size of the gaps in the toolpath\n" +"that will remain to hold the\n" +"board in place." +msgstr "" +"Size of the gaps in the toolpath\n" +"that will remain to hold the\n" +"board in place." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4909 +msgid "Gaps:" +msgstr "Gaps:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4911 +msgid "" +"Number of bridge gaps used for the cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Number of bridge gaps used for the cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4938 +msgid "2Sided Tool Options" +msgstr "2Sided Tool Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4943 +msgid "" +"A tool to help in creating a double sided\n" +"PCB using alignment holes." +msgstr "" +"A tool to help in creating a double sided\n" +"PCB using alignment holes." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4953 +msgid "Drill diam.:" +msgstr "Drill diam.:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4955 +msgid "Diameter of the drill for the alignment holes." +msgstr "Diameter of the drill for the alignment holes." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4962 +msgid "X" +msgstr "X" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4963 +msgid "Y" +msgstr "Y" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4964 +msgid "Mirror Axis:" +msgstr "Mirror Axis:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4966 +msgid "Mirror vertically (X) or horizontally (Y)." +msgstr "Mirror vertically (X) or horizontally (Y)." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4975 +msgid "Point" +msgstr "Point" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4976 +msgid "Box" +msgstr "Box" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4977 +msgid "Axis Ref:" +msgstr "Axis Ref:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4979 +msgid "" +"The axis should pass through a point or cut\n" +" a specified box (in a Geometry object) in \n" +"the middle." +msgstr "" +"The axis should pass through a point or cut\n" +" a specified box (in a Geometry object) in \n" +"the middle." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4995 +msgid "Paint Tool Options" +msgstr "Paint Tool Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5002 +msgid "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." +msgstr "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5015 +msgid "" +"Diameter of the tool to\n" +"be used in the operation." +msgstr "" +"Diameter of the tool to\n" +"be used in the operation." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5026 +msgid "" +"How much (fraction) of the tool\n" +"width to overlap each tool pass." +msgstr "" +"How much (fraction) of the tool\n" +"width to overlap each tool pass." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5036 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5047 +msgid "" +"Algorithm to paint the polygon:
Standard: Fixed step inwards." +"
Seed-based: Outwards from seed." +msgstr "" +"Algorithm to paint the polygon:
Standard: Fixed step inwards." +"
Seed-based: Outwards from seed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5080 +msgid "Selection:" +msgstr "Selection:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5082 +msgid "How to select the polygons to paint." +msgstr "How to select the polygons to paint." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5086 +msgid "Single" +msgstr "Single" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5100 +msgid "Film Tool Options" +msgstr "Film Tool Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5105 +msgid "" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" +"The file is saved in SVG format." +msgstr "" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" +"The file is saved in SVG format." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5114 +msgid "Pos" +msgstr "Pos" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5115 +msgid "Neg" +msgstr "Neg" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5116 +msgid "Film Type:" +msgstr "Film Type:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5118 +msgid "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." +msgstr "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5129 +msgid "Border:" +msgstr "Border:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5131 +msgid "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." +msgstr "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5144 +msgid "Scale Stroke:" +msgstr "Scale Stroke:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5146 +msgid "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or " +"thinner,\n" +"therefore the fine features may be more affected by this parameter." +msgstr "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or " +"thinner,\n" +"therefore the fine features may be more affected by this parameter." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5161 +msgid "Panelize Tool Options" +msgstr "Panelize Tool Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5166 +msgid "" +"Create an object that contains an array of (x, y) elements,\n" +"each element is a copy of the source object spaced\n" +"at a X distance, Y distance of each other." +msgstr "" +"Create an object that contains an array of (x, y) elements,\n" +"each element is a copy of the source object spaced\n" +"at a X distance, Y distance of each other." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5177 +msgid "Spacing cols:" +msgstr "Spacing cols:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5179 +msgid "" +"Spacing between columns of the desired panel.\n" +"In current units." +msgstr "" +"Spacing between columns of the desired panel.\n" +"In current units." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5187 +msgid "Spacing rows:" +msgstr "Spacing rows:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5189 +msgid "" +"Spacing between rows of the desired panel.\n" +"In current units." +msgstr "" +"Spacing between rows of the desired panel.\n" +"In current units." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5197 +msgid "Columns:" +msgstr "Columns:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5199 +msgid "Number of columns of the desired panel" +msgstr "Number of columns of the desired panel" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5206 +msgid "Rows:" +msgstr "Rows:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5208 +msgid "Number of rows of the desired panel" +msgstr "Number of rows of the desired panel" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5214 +msgid "Gerber" +msgstr "Gerber" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5215 +msgid "Geo" +msgstr "Geo" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5216 +msgid "Panel Type:" +msgstr "Panel Type:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5218 +msgid "" +"Choose the type of object for the panel object:\n" +"- Gerber\n" +"- Geometry" +msgstr "" +"Choose the type of object for the panel object:\n" +"- Gerber\n" +"- Geometry" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5227 +msgid "Constrain within:" +msgstr "Constrain within:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5229 +msgid "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." +msgstr "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5238 +msgid "Width (DX):" +msgstr "Width (DX):" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5240 +msgid "" +"The width (DX) within which the panel must fit.\n" +"In current units." +msgstr "" +"The width (DX) within which the panel must fit.\n" +"In current units." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5247 +msgid "Height (DY):" +msgstr "Height (DY):" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5249 +msgid "" +"The height (DY)within which the panel must fit.\n" +"In current units." +msgstr "" +"The height (DY)within which the panel must fit.\n" +"In current units." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5263 +msgid "Calculators Tool Options" +msgstr "Calculators Tool Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5266 +msgid "V-Shape Tool Calculator:" +msgstr "V-Shape Tool Calculator:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5268 +msgid "" +"Calculate the tool diameter for a given V-shape tool,\n" +"having the tip diameter, tip angle and\n" +"depth-of-cut as parameters." +msgstr "" +"Calculate the tool diameter for a given V-shape tool,\n" +"having the tip diameter, tip angle and\n" +"depth-of-cut as parameters." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5279 +msgid "Tip Diameter:" +msgstr "Tip Diameter:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5281 +msgid "" +"This is the tool tip diameter.\n" +"It is specified by manufacturer." +msgstr "" +"This is the tool tip diameter.\n" +"It is specified by manufacturer." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5289 +msgid "Tip angle:" +msgstr "Tip angle:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5291 +msgid "" +"This is the angle on the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"This is the angle on the tip of the tool.\n" +"It is specified by manufacturer." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5301 +msgid "" +"This is depth to cut into material.\n" +"In the CNCJob object it is the CutZ parameter." +msgstr "" +"This is depth to cut into material.\n" +"In the CNCJob object it is the CutZ parameter." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5308 +msgid "ElectroPlating Calculator:" +msgstr "ElectroPlating Calculator:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5310 +msgid "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like grahite ink or calcium hypophosphite ink or palladium " +"chloride." +msgstr "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like grahite ink or calcium hypophosphite ink or palladium " +"chloride." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5320 +msgid "Board Length:" +msgstr "Board Length:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5322 +msgid "This is the board length. In centimeters." +msgstr "This is the board length. In centimeters." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5328 +msgid "Board Width:" +msgstr "Board Width:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5330 +msgid "This is the board width.In centimeters." +msgstr "This is the board width.In centimeters." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5335 +msgid "Current Density:" +msgstr "Current Density:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5338 +msgid "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." +msgstr "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5344 +msgid "Copper Growth:" +msgstr "Copper Growth:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5347 +msgid "" +"How thick the copper growth is intended to be.\n" +"In microns." +msgstr "" +"How thick the copper growth is intended to be.\n" +"In microns." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5360 +msgid "Transform Tool Options" +msgstr "Transform Tool Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5365 +msgid "" +"Various transformations that can be applied\n" +"on a FlatCAM object." +msgstr "" +"Various transformations that can be applied\n" +"on a FlatCAM object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5375 +msgid "Rotate Angle:" +msgstr "Rotate Angle:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5377 +msgid "Angle for rotation. In degrees." +msgstr "Angle for rotation. In degrees." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5384 +msgid "Skew_X angle:" +msgstr "Skew_X angle:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5386 +msgid "Angle for Skew/Shear on X axis. In degrees." +msgstr "Angle for Skew/Shear on X axis. In degrees." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5393 +msgid "Skew_Y angle:" +msgstr "Skew_Y angle:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5395 +msgid "Angle for Skew/Shear on Y axis. In degrees." +msgstr "Angle for Skew/Shear on Y axis. In degrees." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5402 +msgid "Scale_X factor:" +msgstr "Scale_X factor:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5404 +msgid "Factor for scaling on X axis." +msgstr "Factor for scaling on X axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5411 +msgid "Scale_Y factor:" +msgstr "Scale_Y factor:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5413 +msgid "Factor for scaling on Y axis." +msgstr "Factor for scaling on Y axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5419 +msgid "Link" +msgstr "Link" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5421 +msgid "" +"Scale the selected object(s)\n" +"using the Scale_X factor for both axis." +msgstr "" +"Scale the selected object(s)\n" +"using the Scale_X factor for both axis." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5427 +msgid "Scale Reference" +msgstr "Scale Reference" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5429 +msgid "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." +msgstr "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5438 +msgid "Offset_X val:" +msgstr "Offset_X val:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5440 +msgid "Distance to offset on X axis. In current units." +msgstr "Distance to offset on X axis. In current units." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5447 +msgid "Offset_Y val:" +msgstr "Offset_Y val:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5449 +msgid "Distance to offset on Y axis. In current units." +msgstr "Distance to offset on Y axis. In current units." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5455 +msgid "Mirror Reference" +msgstr "Mirror Reference" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5457 +msgid "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5468 +msgid " Mirror Ref. Point:" +msgstr " Mirror Ref. Point:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5470 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" +msgstr "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5487 +msgid "SolderPaste Tool Options" +msgstr "SolderPaste Tool Options" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5492 +msgid "" +"A tool to create GCode for dispensing\n" +"solder paste onto a PCB." +msgstr "" +"A tool to create GCode for dispensing\n" +"solder paste onto a PCB." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5503 +msgid "Diameters of nozzle tools, separated by ','" +msgstr "Diameters of nozzle tools, separated by ','" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5510 +msgid "New Nozzle Dia:" +msgstr "New Nozzle Dia:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5512 +msgid "Diameter for the new Nozzle tool to add in the Tool Table" +msgstr "Diameter for the new Nozzle tool to add in the Tool Table" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5520 +msgid "Z Dispense Start:" +msgstr "Z Dispense Start:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5522 +msgid "The height (Z) when solder paste dispensing starts." +msgstr "The height (Z) when solder paste dispensing starts." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5529 +msgid "Z Dispense:" +msgstr "Z Dispense:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5531 +msgid "The height (Z) when doing solder paste dispensing." +msgstr "The height (Z) when doing solder paste dispensing." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5538 +msgid "Z Dispense Stop:" +msgstr "Z Dispense Stop:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5540 +msgid "The height (Z) when solder paste dispensing stops." +msgstr "The height (Z) when solder paste dispensing stops." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5547 +msgid "Z Travel:" +msgstr "Z Travel:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5549 +msgid "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." +msgstr "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5557 +msgid "Z Toolchange:" +msgstr "Z Toolchange:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5559 +msgid "The height (Z) for tool (nozzle) change." +msgstr "The height (Z) for tool (nozzle) change." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5566 +msgid "XY Toolchange:" +msgstr "XY Toolchange:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5568 +msgid "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." +msgstr "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5576 +msgid "Feedrate X-Y:" +msgstr "Feedrate X-Y:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5578 +msgid "Feedrate (speed) while moving on the X-Y plane." +msgstr "Feedrate (speed) while moving on the X-Y plane." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5585 +msgid "Feedrate Z:" +msgstr "Feedrate Z:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5587 +msgid "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." +msgstr "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5595 +msgid "Feedrate Z Dispense:" +msgstr "Feedrate Z Dispense:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5597 +msgid "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." +msgstr "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5605 +msgid "Spindle Speed FWD:" +msgstr "Spindle Speed FWD:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5607 +msgid "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." +msgstr "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5615 +msgid "Dwell FWD:" +msgstr "Dwell FWD:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5617 +msgid "Pause after solder dispensing." +msgstr "Pause after solder dispensing." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5624 +msgid "Spindle Speed REV:" +msgstr "Spindle Speed REV:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5626 +msgid "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." +msgstr "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5634 +msgid "Dwell REV:" +msgstr "Dwell REV:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5636 +msgid "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." +msgstr "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5643 +msgid "PostProcessors:" +msgstr "PostProcessors:" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5645 +msgid "Files that control the GCode generation." +msgstr "Files that control the GCode generation." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5675 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5681 +msgid "Idle." +msgstr "Idle." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5705 +msgid "Application started ..." +msgstr "Application started ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5706 +msgid "Hello!" +msgstr "Hello!" diff --git a/locale/en/LC_MESSAGES/FlatCAMObj.mo b/locale/en/LC_MESSAGES/FlatCAMObj.mo new file mode 100644 index 00000000..f5824cf2 Binary files /dev/null and b/locale/en/LC_MESSAGES/FlatCAMObj.mo differ diff --git a/locale/en/LC_MESSAGES/FlatCAMObj.po b/locale/en/LC_MESSAGES/FlatCAMObj.po new file mode 100644 index 00000000..365f3585 --- /dev/null +++ b/locale/en/LC_MESSAGES/FlatCAMObj.po @@ -0,0 +1,377 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 02:05+0200\n" +"PO-Revision-Date: 2019-03-10 02:40+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:196 +msgid "[success]Name changed from %s to %s" +msgstr "[success]Name changed from %s to %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:534 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1888 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3151 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5298 +msgid "Basic" +msgstr "Basic" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:546 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1904 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3173 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5304 +msgid "Advanced" +msgstr "Advanced" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:901 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:956 +msgid "[success]Isolation geometry created: %s" +msgstr "[success]Isolation geometry created: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1031 +msgid "" +"[ERROR_NOTCL] The aperture scale factor value is missing or wrong format." +msgstr "" +"[ERROR_NOTCL] The aperture scale factor value is missing or wrong format." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1046 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1081 +msgid "" +"[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try " +"again." +msgstr "" +"[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try " +"again." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1066 +msgid "[ERROR_NOTCL] The aperture buffer value is missing or wrong format." +msgstr "[ERROR_NOTCL] The aperture buffer value is missing or wrong format." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1139 +msgid "Generating Gerber" +msgstr "Generating Gerber" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1146 +msgid "[ERROR_NOTCL] Cretion of Gerber failed." +msgstr "[ERROR_NOTCL] Cretion of Gerber failed." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1154 +msgid "[success] Created: %s" +msgstr "[success] Created: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1274 +msgid "Plotting Apertures" +msgstr "Plotting Apertures" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1728 +msgid "Total Drills" +msgstr "Total Drills" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1754 +msgid "Total Slots" +msgstr "Total Slots" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1960 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3223 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3529 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3716 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3729 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3846 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4254 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4487 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4893 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered, use a number." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2184 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2275 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2390 +msgid "" +"[ERROR_NOTCL]Please select one or more tools from the list and try again." +msgstr "" +"[ERROR_NOTCL]Please select one or more tools from the list and try again." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2191 +msgid "" +"[ERROR_NOTCL] Milling tool for DRILLS is larger than hole size. Cancelled." +msgstr "" +"[ERROR_NOTCL] Milling tool for DRILLS is larger than hole size. Cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2206 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2300 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2411 +msgid "Diameter" +msgstr "Diameter" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2206 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2300 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2411 +msgid "Drills_Nr" +msgstr "Drills_Nr" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2206 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2300 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2411 +msgid "Slots_Nr" +msgstr "Slots_Nr" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2206 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2300 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2411 +msgid "Tool_nr" +msgstr "Tool_nr" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2285 +msgid "" +"[ERROR_NOTCL] Milling tool for SLOTS is larger than hole size. Cancelled." +msgstr "" +"[ERROR_NOTCL] Milling tool for SLOTS is larger than hole size. Cancelled." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2448 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4142 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4353 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4668 +msgid "" +"[ERROR_NOTCL]Wrong value format for self.defaults[\"z_pdepth\"] or self." +"options[\"z_pdepth\"]" +msgstr "" +"[ERROR_NOTCL]Wrong value format for self.defaults[\"z_pdepth\"] or self." +"options[\"z_pdepth\"]" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2460 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4154 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4365 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4680 +msgid "" +"[ERROR_NOTCL]Wrong value format for self.defaults[\"feedrate_probe\"] or " +"self.options[\"feedrate_probe\"]" +msgstr "" +"[ERROR_NOTCL]Wrong value format for self.defaults[\"feedrate_probe\"] or " +"self.options[\"feedrate_probe\"]" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2493 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4556 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4561 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4707 +msgid "Generating CNC Code" +msgstr "Generating CNC Code" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2518 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4852 +msgid "" +"[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the " +"format (x, y) \n" +"but now there is only one value, not two. " +msgstr "" +"[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the " +"format (x, y) \n" +"but now there is only one value, not two. " + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2866 +msgid "In" +msgstr "In" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2866 +msgid "Out" +msgstr "Out" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2866 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3108 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3393 +msgid "Path" +msgstr "Path" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2866 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3189 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3762 +msgid "Custom" +msgstr "Custom" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2867 +msgid "Finish" +msgstr "Finish" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2867 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3110 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3395 +msgid "Rough" +msgstr "Rough" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2867 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3773 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3774 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3783 +msgid "Iso" +msgstr "Iso" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3145 +msgid "Copy" +msgstr "Copy" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3147 +msgid "Delete" +msgstr "Delete" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3364 +msgid "[ERROR_NOTCL] Please enter the desired tool diameter in Float format." +msgstr "" +"[ERROR_NOTCL] Please enter the desired tool diameter in Float format." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3439 +msgid "[success] Tool added in Tool Table." +msgstr "[success] Tool added in Tool Table." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3444 +msgid "[ERROR_NOTCL]Default Tool added. Wrong value format entered." +msgstr "[ERROR_NOTCL]Default Tool added. Wrong value format entered." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3474 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3484 +msgid "[WARNING_NOTCL]Failed. Select a tool to copy." +msgstr "[WARNING_NOTCL]Failed. Select a tool to copy." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3513 +msgid "[success] Tool was copied in Tool Table." +msgstr "[success] Tool was copied in Tool Table." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3546 +msgid "[success] Tool was edited in Tool Table." +msgstr "[success] Tool was edited in Tool Table." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3577 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3587 +msgid "[WARNING_NOTCL]Failed. Select a tool to delete." +msgstr "[WARNING_NOTCL]Failed. Select a tool to delete." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3611 +msgid "[success] Tool was deleted in Tool Table." +msgstr "[success] Tool was deleted in Tool Table." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4025 +msgid "" +"[WARNING_NOTCL]This Geometry can't be processed because it is %s geometry." +msgstr "" +"[WARNING_NOTCL]This Geometry can't be processed because it is %s geometry." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4042 +msgid "[ERROR_NOTCL]Wrong Tool Dia value format entered, use a number." +msgstr "[ERROR_NOTCL]Wrong Tool Dia value format entered, use a number." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4069 +msgid "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." +msgstr "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4107 +msgid "[ERROR] An internal error has ocurred. See shell.\n" +msgstr "[ERROR] An internal error has ocurred. See shell.\n" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4108 +msgid "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" +msgstr "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4263 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4496 +msgid "" +"[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" +"Add a Tool Offset or change the Offset Type." +msgstr "" +"[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" +"Add a Tool Offset or change the Offset Type." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4377 +msgid "[ERROR_NOTCL]Cancelled. Empty file, it has no geometry..." +msgstr "[ERROR_NOTCL]Cancelled. Empty file, it has no geometry..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4739 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4749 +msgid "[ERROR_NOTCL] Scale factor has to be a number: integer or float." +msgstr "[ERROR_NOTCL] Scale factor has to be a number: integer or float." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4787 +msgid "[success]Geometry Scale done." +msgstr "[success]Geometry Scale done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4804 +msgid "" +"[ERROR_NOTCL]An (x,y) pair of values are needed. Probable you entered only " +"one value in the Offset field." +msgstr "" +"[ERROR_NOTCL]An (x,y) pair of values are needed. Probable you entered only " +"one value in the Offset field." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4824 +msgid "[success]Geometry Offset done." +msgstr "[success]Geometry Offset done." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5372 +msgid "Export Machine Code ..." +msgstr "Export Machine Code ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5377 +msgid "[WARNING_NOTCL]Export Machine Code cancelled ..." +msgstr "[WARNING_NOTCL]Export Machine Code cancelled ..." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5389 +msgid "[success] Machine Code file saved to: %s" +msgstr "[success] Machine Code file saved to: %s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5401 +msgid "Code Editor" +msgstr "Code Editor" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5420 +msgid "[ERROR]FlatCAMCNNJob.on_modifygcode_button_click() -->%s" +msgstr "[ERROR]FlatCAMCNNJob.on_modifygcode_button_click() -->%s" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5526 +msgid "" +"[WARNING_NOTCL]This CNCJob object can't be processed because it is a %s " +"CNCJob object." +msgstr "" +"[WARNING_NOTCL]This CNCJob object can't be processed because it is a %s " +"CNCJob object." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5578 +msgid "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" +msgstr "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5591 +msgid "" +"[ERROR_NOTCL] Cancelled. The Toolchange Custom code is enabled but it's " +"empty." +msgstr "" +"[ERROR_NOTCL] Cancelled. The Toolchange Custom code is enabled but it's " +"empty." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5598 +msgid "[success] Toolchange G-code was replaced by a custom code." +msgstr "[success] Toolchange G-code was replaced by a custom code." + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5613 +msgid "[WARNING_NOTCL] No such file or directory" +msgstr "[WARNING_NOTCL] No such file or directory" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5633 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5645 +msgid "" +"[WARNING_NOTCL] The used postprocessor file has to have in it's name: " +"'toolchange_custom'" +msgstr "" +"[WARNING_NOTCL] The used postprocessor file has to have in it's name: " +"'toolchange_custom'" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5651 +msgid "[ERROR] There is no postprocessor file." +msgstr "[ERROR] There is no postprocessor file." diff --git a/locale/en/LC_MESSAGES/ObjectCollection.mo b/locale/en/LC_MESSAGES/ObjectCollection.mo new file mode 100644 index 00000000..5ac08b8b Binary files /dev/null and b/locale/en/LC_MESSAGES/ObjectCollection.mo differ diff --git a/locale/en/LC_MESSAGES/ObjectCollection.po b/locale/en/LC_MESSAGES/ObjectCollection.po new file mode 100644 index 00000000..b6098527 --- /dev/null +++ b/locale/en/LC_MESSAGES/ObjectCollection.po @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 02:14+0200\n" +"PO-Revision-Date: 2019-03-10 02:41+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:75 +msgid "Open cancelled." +msgstr "Open cancelled." + +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:397 +msgid "Object renamed from %s to %s" +msgstr "Object renamed from %s to %s" + +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:691 +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:694 +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:697 +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:700 +msgid "[selected]%s selected" +msgstr "[selected]%s selected" + +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:731 +msgid "[ERROR] Cause of error: %s" +msgstr "[ERROR] Cause of error: %s" diff --git a/locale/en/LC_MESSAGES/ObjectUI.mo b/locale/en/LC_MESSAGES/ObjectUI.mo new file mode 100644 index 00000000..b2526095 Binary files /dev/null and b/locale/en/LC_MESSAGES/ObjectUI.mo differ diff --git a/locale/en/LC_MESSAGES/ObjectUI.po b/locale/en/LC_MESSAGES/ObjectUI.po new file mode 100644 index 00000000..1af16cd1 --- /dev/null +++ b/locale/en/LC_MESSAGES/ObjectUI.po @@ -0,0 +1,1583 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 02:29+0200\n" +"PO-Revision-Date: 2019-03-10 02:41+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:24 +msgid "FlatCAM Object" +msgstr "FlatCAM Object" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:48 +msgid "" +"BASIC is suitable for a beginner. Many parameters\n" +"are hidden from the user in this mode.\n" +"ADVANCED mode will make available all parameters.\n" +"\n" +"To change the application LEVEL, go to:\n" +"Edit -> Preferences -> General and check:\n" +"'APP. LEVEL' radio button." +msgstr "" +"BASIC is suitable for a beginner. Many parameters\n" +"are hidden from the user in this mode.\n" +"ADVANCED mode will make available all parameters.\n" +"\n" +"To change the application LEVEL, go to:\n" +"Edit -> Preferences -> General and check:\n" +"'APP. LEVEL' radio button." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:70 +msgid "Scale:" +msgstr "Scale:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:72 +msgid "Change the size of the object." +msgstr "Change the size of the object." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:80 +msgid "Factor:" +msgstr "Factor:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:82 +msgid "" +"Factor by which to multiply\n" +"geometric features of this object." +msgstr "" +"Factor by which to multiply\n" +"geometric features of this object." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:91 D:\1.DEV\FlatCAM_beta\ObjectUI.py:256 +msgid "Scale" +msgstr "Scale" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:93 +msgid "Perform scaling operation." +msgstr "Perform scaling operation." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:99 +msgid "Offset:" +msgstr "Offset:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:101 +msgid "Change the position of this object." +msgstr "Change the position of this object." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:108 +msgid "Vector:" +msgstr "Vector:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:110 +msgid "" +"Amount by which to move the object\n" +"in the x and y axes in (x, y) format." +msgstr "" +"Amount by which to move the object\n" +"in the x and y axes in (x, y) format." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:118 D:\1.DEV\FlatCAM_beta\ObjectUI.py:949 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1506 +msgid "Offset" +msgstr "Offset" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:120 +msgid "Perform the offset operation." +msgstr "Perform the offset operation." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:134 +msgid "Gerber Object" +msgstr "Gerber Object" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:141 D:\1.DEV\FlatCAM_beta\ObjectUI.py:567 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:891 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1404 +msgid "Plot Options:" +msgstr "Plot Options:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:147 +msgid "Solid " +msgstr "Solid " + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:149 +msgid "Solid color polygons." +msgstr "Solid color polygons." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:155 +msgid "M-Color " +msgstr "M-Color " + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:157 +msgid "Draw polygons in different colors." +msgstr "Draw polygons in different colors." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:163 +msgid "Plot" +msgstr "Plot" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:165 D:\1.DEV\FlatCAM_beta\ObjectUI.py:608 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:937 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1490 +msgid "Plot (show) this object." +msgstr "Plot (show) this object." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:173 D:\1.DEV\FlatCAM_beta\ObjectUI.py:579 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:897 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1426 +msgid "Name:" +msgstr "Name:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:183 +msgid "Apertures:" +msgstr "Apertures:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:185 +msgid "Apertures Table for the Gerber Object." +msgstr "Apertures Table for the Gerber Object." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:194 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"Toggle the display of the Gerber Apertures Table.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:205 +msgid "Mark All" +msgstr "Mark All" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:207 +msgid "" +"When checked it will display all the apertures.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" +"When checked it will display all the apertures.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:219 +msgid "Code" +msgstr "Code" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:219 +msgid "Dim" +msgstr "Dim" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:219 +msgid "Size" +msgstr "Size" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:219 D:\1.DEV\FlatCAM_beta\ObjectUI.py:949 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1506 +msgid "Type" +msgstr "Type" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:223 +msgid "Index" +msgstr "Index" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:225 +msgid "Aperture Code" +msgstr "Aperture Code" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:227 +msgid "Type of aperture: circular, rectangle, macros etc" +msgstr "Type of aperture: circular, rectangle, macros etc" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:229 +msgid "Aperture Size:" +msgstr "Aperture Size:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:231 +msgid "" +"Aperture Dimensions:\n" +" - (width, height) for R, O type.\n" +" - (dia, nVertices) for P type" +msgstr "" +"Aperture Dimensions:\n" +" - (width, height) for R, O type.\n" +" - (dia, nVertices) for P type" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:235 +msgid "Mark the aperture instances on canvas." +msgstr "Mark the aperture instances on canvas." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:243 +msgid "Scale Factor:" +msgstr "Scale Factor:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:245 +msgid "" +"Change the size of the selected apertures.\n" +"Factor by which to multiply\n" +"geometric features of this object." +msgstr "" +"Change the size of the selected apertures.\n" +"Factor by which to multiply\n" +"geometric features of this object." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:258 +msgid "Perform scaling operation on the selected apertures." +msgstr "Perform scaling operation on the selected apertures." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:264 +msgid "Buffer Factor:" +msgstr "Buffer Factor:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:266 +msgid "" +"Change the size of the selected apertures.\n" +"Factor by which to expand/shrink\n" +"geometric features of this object." +msgstr "" +"Change the size of the selected apertures.\n" +"Factor by which to expand/shrink\n" +"geometric features of this object." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:277 +msgid "Buffer" +msgstr "Buffer" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:279 +msgid "Perform buffer operation on the selected apertures." +msgstr "Perform buffer operation on the selected apertures." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:287 +msgid "Generate new Gerber Object:" +msgstr "Generate new Gerber Object:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:289 +msgid "Will generate a new Gerber object from the changed apertures." +msgstr "Will generate a new Gerber object from the changed apertures." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:295 +msgid "Go" +msgstr "Go" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:297 +msgid "" +"Will generate a new Gerber object from the changed apertures.\n" +"This new object can then be isolated etc." +msgstr "" +"Will generate a new Gerber object from the changed apertures.\n" +"This new object can then be isolated etc." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:313 +msgid "Isolation Routing:" +msgstr "Isolation Routing:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:315 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:322 +msgid "Tool dia:" +msgstr "Tool dia:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:324 +msgid "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." +msgstr "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:335 +msgid "Passes:" +msgstr "Passes:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:337 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:345 +msgid "Pass overlap:" +msgstr "Pass overlap:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:347 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means an overlap of 25% from the tool diameter found " +"above." +msgstr "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means an overlap of 25% from the tool diameter found " +"above." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:357 +msgid "Milling Type:" +msgstr "Milling Type:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:359 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:364 +msgid "Climb" +msgstr "Climb" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:365 +msgid "Conv." +msgstr "Conv." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:369 +msgid "Combine" +msgstr "Combine" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:371 +msgid "Combine all passes into one object" +msgstr "Combine all passes into one object" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:376 +msgid "\"Follow\"" +msgstr "\"Follow\"" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:378 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:385 +msgid "Generate Isolation Geometry:" +msgstr "Generate Isolation Geometry:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:387 +msgid "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." +msgstr "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:406 +msgid "FULL Geo" +msgstr "FULL Geo" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:408 +msgid "" +"Create the Geometry Object\n" +"for isolation routing. It contains both\n" +"the interiors and exteriors geometry." +msgstr "" +"Create the Geometry Object\n" +"for isolation routing. It contains both\n" +"the interiors and exteriors geometry." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:417 +msgid "Ext Geo" +msgstr "Ext Geo" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:419 +msgid "" +"Create the Geometry Object\n" +"for isolation routing containing\n" +"only the exteriors geometry." +msgstr "" +"Create the Geometry Object\n" +"for isolation routing containing\n" +"only the exteriors geometry." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:426 +msgid "Int Geo" +msgstr "Int Geo" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:428 +msgid "" +"Create the Geometry Object\n" +"for isolation routing containing\n" +"only the interiors geometry." +msgstr "" +"Create the Geometry Object\n" +"for isolation routing containing\n" +"only the interiors geometry." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:446 +msgid "Clear N-copper:" +msgstr "Clear N-copper:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:448 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." +msgstr "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:454 +msgid "NCC Tool" +msgstr "NCC Tool" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:456 +msgid "" +"Create the Geometry Object\n" +"for non-copper routing." +msgstr "" +"Create the Geometry Object\n" +"for non-copper routing." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:462 +msgid "Board cutout:" +msgstr "Board cutout:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:464 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:470 +msgid "Cutout Tool" +msgstr "Cutout Tool" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:472 +msgid "" +"Generate the geometry for\n" +"the board cutout." +msgstr "" +"Generate the geometry for\n" +"the board cutout." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:478 +msgid "Non-copper regions:" +msgstr "Non-copper regions:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:480 +msgid "" +"Create polygons covering the\n" +"areas without copper on the PCB.\n" +"Equivalent to the inverse of this\n" +"object. Can be used to remove all\n" +"copper from a specified region." +msgstr "" +"Create polygons covering the\n" +"areas without copper on the PCB.\n" +"Equivalent to the inverse of this\n" +"object. Can be used to remove all\n" +"copper from a specified region." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:492 D:\1.DEV\FlatCAM_beta\ObjectUI.py:526 +msgid "Boundary Margin:" +msgstr "Boundary Margin:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:494 +msgid "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." +msgstr "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:505 D:\1.DEV\FlatCAM_beta\ObjectUI.py:536 +msgid "Rounded Geo" +msgstr "Rounded Geo" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:507 +msgid "Resulting geometry will have rounded corners." +msgstr "Resulting geometry will have rounded corners." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:512 D:\1.DEV\FlatCAM_beta\ObjectUI.py:546 +msgid "Generate Geo" +msgstr "Generate Geo" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:516 +msgid "Bounding Box:" +msgstr "Bounding Box:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:518 +msgid "" +"Create a geometry surrounding the Gerber object.\n" +"Square shape." +msgstr "" +"Create a geometry surrounding the Gerber object.\n" +"Square shape." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:528 +msgid "" +"Distance of the edges of the box\n" +"to the nearest polygon." +msgstr "" +"Distance of the edges of the box\n" +"to the nearest polygon." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:538 +msgid "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." +msgstr "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:548 +msgid "Generate the Geometry object." +msgstr "Generate the Geometry object." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:559 +msgid "Excellon Object" +msgstr "Excellon Object" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:568 +msgid "Solid" +msgstr "Solid" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:570 +msgid "Solid circles." +msgstr "Solid circles." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:598 D:\1.DEV\FlatCAM_beta\ObjectUI.py:916 +msgid "Tools Table" +msgstr "Tools Table" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:600 +msgid "" +"Tools in this Excellon object\n" +"when are used for drilling." +msgstr "" +"Tools in this Excellon object\n" +"when are used for drilling." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:606 D:\1.DEV\FlatCAM_beta\ObjectUI.py:935 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1488 +msgid "Plot Object" +msgstr "Plot Object" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:618 +msgid "Diameter" +msgstr "Diameter" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:618 D:\1.DEV\FlatCAM_beta\ObjectUI.py:813 +msgid "Drills" +msgstr "Drills" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:618 D:\1.DEV\FlatCAM_beta\ObjectUI.py:814 +msgid "Slots" +msgstr "Slots" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:619 +msgid "Offset Z" +msgstr "Offset Z" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:623 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn in the Machine Code." +msgstr "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn in the Machine Code." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:627 D:\1.DEV\FlatCAM_beta\ObjectUI.py:961 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:630 +msgid "" +"The number of Drill holes. Holes that are drilled with\n" +"a drill bit." +msgstr "" +"The number of Drill holes. Holes that are drilled with\n" +"a drill bit." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:633 +msgid "" +"The number of Slot holes. Holes that are created by\n" +"milling them with an endmill bit." +msgstr "" +"The number of Slot holes. Holes that are created by\n" +"milling them with an endmill bit." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:636 +msgid "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." +msgstr "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:640 +msgid "Toggle display of the drills for the current tool." +msgstr "Toggle display of the drills for the current tool." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:646 +msgid "Create CNC Job" +msgstr "Create CNC Job" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:648 +msgid "" +"Create a CNC Job object\n" +"for this drill object." +msgstr "" +"Create a CNC Job object\n" +"for this drill object." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:657 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1120 +msgid "Cut Z:" +msgstr "Cut Z:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:659 +msgid "" +"Drill depth (negative)\n" +"below the copper surface." +msgstr "" +"Drill depth (negative)\n" +"below the copper surface." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:667 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1156 +msgid "Travel Z:" +msgstr "Travel Z:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:669 +msgid "" +"Tool height when travelling\n" +"across the XY plane." +msgstr "" +"Tool height when travelling\n" +"across the XY plane." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:677 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1176 +msgid "Tool change" +msgstr "Tool change" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:679 +msgid "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." +msgstr "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:685 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1169 +msgid "Tool change Z:" +msgstr "Tool change Z:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:687 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1171 +msgid "" +"Z-axis position (height) for\n" +"tool change." +msgstr "" +"Z-axis position (height) for\n" +"tool change." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:696 +msgid "Start move Z:" +msgstr "Start move Z:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:698 +msgid "" +"Tool height just before starting the work.\n" +"Delete the value if you don't need this feature." +msgstr "" +"Tool height just before starting the work.\n" +"Delete the value if you don't need this feature." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:706 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1202 +msgid "End move Z:" +msgstr "End move Z:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:708 +msgid "" +"Z-axis position (height) for\n" +"the last move." +msgstr "" +"Z-axis position (height) for\n" +"the last move." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:716 +msgid "Feedrate (Plunge):" +msgstr "Feedrate (Plunge):" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:718 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for linear move G01." +msgstr "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for linear move G01." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:727 +msgid "Feedrate Rapids:" +msgstr "Feedrate Rapids:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:729 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." +msgstr "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:740 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1265 +msgid "Spindle speed:" +msgstr "Spindle speed:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:742 +msgid "" +"Speed of the spindle\n" +"in RPM (optional)" +msgstr "" +"Speed of the spindle\n" +"in RPM (optional)" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:750 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1278 +msgid "Dwell:" +msgstr "Dwell:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:752 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1280 +msgid "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." +msgstr "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:757 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1287 +msgid "Number of milliseconds for spindle to dwell." +msgstr "Number of milliseconds for spindle to dwell." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:765 +msgid "Postprocessor:" +msgstr "Postprocessor:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:767 +msgid "" +"The json file that dictates\n" +"gcode output." +msgstr "" +"The json file that dictates\n" +"gcode output." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:776 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1310 +msgid "Probe Z depth:" +msgstr "Probe Z depth:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:778 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1312 +msgid "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." +msgstr "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:788 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1324 +msgid "Feedrate Probe:" +msgstr "Feedrate Probe:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:790 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1326 +msgid "The feedrate used while the probe is probing." +msgstr "The feedrate used while the probe is probing." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:799 +msgid "" +"Select from the Tools Table above\n" +"the tools you want to include." +msgstr "" +"Select from the Tools Table above\n" +"the tools you want to include." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:806 +msgid "Type: " +msgstr "Type: " + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:808 +msgid "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to a series of drills." +msgstr "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to a series of drills." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:815 +msgid "Both" +msgstr "Both" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:823 +msgid "Create GCode" +msgstr "Create GCode" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:825 +msgid "Generate the CNC Job." +msgstr "Generate the CNC Job." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:830 +msgid "Mill Holes" +msgstr "Mill Holes" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:832 +msgid "Create Geometry for milling holes." +msgstr "Create Geometry for milling holes." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:837 +msgid "" +"Select from the Tools Table above\n" +" the hole dias that are to be milled." +msgstr "" +"Select from the Tools Table above\n" +" the hole dias that are to be milled." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:844 +msgid "Drills Tool dia:" +msgstr "Drills Tool dia:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:846 D:\1.DEV\FlatCAM_beta\ObjectUI.py:862 +msgid "Diameter of the cutting tool." +msgstr "Diameter of the cutting tool." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:851 +msgid "Mill Drills Geo" +msgstr "Mill Drills Geo" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:853 +msgid "" +"Create the Geometry Object\n" +"for milling DRILLS toolpaths." +msgstr "" +"Create the Geometry Object\n" +"for milling DRILLS toolpaths." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:860 +msgid "Slots Tool dia:" +msgstr "Slots Tool dia:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:867 +msgid "Mill Slots Geo" +msgstr "Mill Slots Geo" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:869 +msgid "" +"Create the Geometry Object\n" +"for milling SLOTS toolpaths." +msgstr "" +"Create the Geometry Object\n" +"for milling SLOTS toolpaths." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:887 +msgid "Geometry Object" +msgstr "Geometry Object" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:918 +msgid "" +"Tools in this Geometry object used for cutting.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V). \n" +"When V-shaped is selected the 'Type' entry is automatically \n" +"set to Isolation, the CutZ parameter in the UI form is\n" +"grayed out and Cut Z is automatically calculated from the newly \n" +"showed UI form entries named V-Tip Dia and V-Tip Angle." +msgstr "" +"Tools in this Geometry object used for cutting.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V). \n" +"When V-shaped is selected the 'Type' entry is automatically \n" +"set to Isolation, the CutZ parameter in the UI form is\n" +"grayed out and Cut Z is automatically calculated from the newly \n" +"showed UI form entries named V-Tip Dia and V-Tip Angle." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:949 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1506 +msgid "Dia" +msgstr "Dia" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:949 D:\1.DEV\FlatCAM_beta\ObjectUI.py:1506 +msgid "TT" +msgstr "TT" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:955 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn" +msgstr "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:966 +msgid "" +"The value for the Offset can be:\n" +"- Path -> There is no offset, the tool cut will be done through the geometry " +"line.\n" +"- In(side) -> The tool cut will follow the geometry inside. It will create a " +"'pocket'.\n" +"- Out(side) -> The tool cut will follow the geometry line on the outside." +msgstr "" +"The value for the Offset can be:\n" +"- Path -> There is no offset, the tool cut will be done through the geometry " +"line.\n" +"- In(side) -> The tool cut will follow the geometry inside. It will create a " +"'pocket'.\n" +"- Out(side) -> The tool cut will follow the geometry line on the outside." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:973 +msgid "" +"The (Operation) Type has only informative value. Usually the UI form " +"values \n" +"are choosed based on the operation type and this will serve as a reminder.\n" +"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" +"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" +"For Finishing we may choose a higher Feedrate, without multiDepth.\n" +"For Isolation we need a lower Feedrate as it use a milling bit with a fine " +"tip." +msgstr "" +"The (Operation) Type has only informative value. Usually the UI form " +"values \n" +"are choosed based on the operation type and this will serve as a reminder.\n" +"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" +"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" +"For Finishing we may choose a higher Feedrate, without multiDepth.\n" +"For Isolation we need a lower Feedrate as it use a milling bit with a fine " +"tip." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:982 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " +"cut width in material\n" +"is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable de Z-Cut parameter in the UI form and enable " +"two additional UI form\n" +"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " +"the Z-Cut parameter such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter column of this table.\n" +"Choosing the V-Shape Tool Type automatically will select the Operation Type " +"as Isolation." +msgstr "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the " +"cut width in material\n" +"is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable de Z-Cut parameter in the UI form and enable " +"two additional UI form\n" +"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust " +"the Z-Cut parameter such\n" +"as the cut width into material will be equal with the value in the Tool " +"Diameter column of this table.\n" +"Choosing the V-Shape Tool Type automatically will select the Operation Type " +"as Isolation." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:993 +msgid "" +"Plot column. It is visible only for MultiGeo geometries, meaning geometries " +"that holds the geometry\n" +"data into the tools. For those geometries, deleting the tool will delete the " +"geometry data also,\n" +"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " +"plot on canvas\n" +"for the corresponding tool." +msgstr "" +"Plot column. It is visible only for MultiGeo geometries, meaning geometries " +"that holds the geometry\n" +"data into the tools. For those geometries, deleting the tool will delete the " +"geometry data also,\n" +"so be WARNED. From the checkboxes on each row it can be enabled/disabled the " +"plot on canvas\n" +"for the corresponding tool." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1007 +msgid "Tool Offset:" +msgstr "Tool Offset:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1009 +msgid "" +"The value to offset the cut when \n" +"the Offset type selected is 'Offset'.\n" +"The value can be positive for 'outside'\n" +"cut and negative for 'inside' cut." +msgstr "" +"The value to offset the cut when \n" +"the Offset type selected is 'Offset'.\n" +"The value can be positive for 'outside'\n" +"cut and negative for 'inside' cut." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1033 +msgid "Tool Dia:" +msgstr "Tool Dia:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1035 +msgid "Diameter for the new tool" +msgstr "Diameter for the new tool" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1049 +msgid "Add" +msgstr "Add" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1051 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1057 +msgid "Copy" +msgstr "Copy" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1059 +msgid "" +"Copy a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Copy a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1065 +msgid "Delete" +msgstr "Delete" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1067 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1084 +msgid "Tool Data" +msgstr "Tool Data" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1086 +msgid "" +"The data used for creating GCode.\n" +"Each tool store it's own set of such data." +msgstr "" +"The data used for creating GCode.\n" +"Each tool store it's own set of such data." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1097 +msgid "V-Tip Dia:" +msgstr "V-Tip Dia:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1099 +msgid "The tip diameter for V-Shape Tool" +msgstr "The tip diameter for V-Shape Tool" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1108 +msgid "V-Tip Angle:" +msgstr "V-Tip Angle:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1110 +msgid "" +"The tip angle for V-Shape Tool.\n" +"In degree." +msgstr "" +"The tip angle for V-Shape Tool.\n" +"In degree." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1122 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" +"Cutting depth (negative)\n" +"below the copper surface." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1132 +msgid "Multi-Depth:" +msgstr "Multi-Depth:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1134 +msgid "" +"Use multiple passes to limit\n" +"the cut depth in each pass. Will\n" +"cut multiple times until Cut Z is\n" +"reached.\n" +"To the right, input the depth of \n" +"each pass (positive value)." +msgstr "" +"Use multiple passes to limit\n" +"the cut depth in each pass. Will\n" +"cut multiple times until Cut Z is\n" +"reached.\n" +"To the right, input the depth of \n" +"each pass (positive value)." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1147 +msgid "Depth of each pass (positive)." +msgstr "Depth of each pass (positive)." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1158 +msgid "" +"Height of the tool when\n" +"moving without cutting." +msgstr "" +"Height of the tool when\n" +"moving without cutting." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1178 +msgid "" +"Include tool-change sequence\n" +"in the Machine Code (Pause for tool change)." +msgstr "" +"Include tool-change sequence\n" +"in the Machine Code (Pause for tool change)." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1204 +msgid "" +"This is the height (Z) at which the CNC\n" +"will go as the last move." +msgstr "" +"This is the height (Z) at which the CNC\n" +"will go as the last move." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1214 +msgid "Feed Rate X-Y:" +msgstr "Feed Rate X-Y:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1216 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute" +msgstr "" +"Cutting speed in the XY\n" +"plane in units per minute" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1226 +msgid "Feed Rate Z (Plunge):" +msgstr "Feed Rate Z (Plunge):" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1228 +msgid "" +"Cutting speed in the Z\n" +"plane in units per minute" +msgstr "" +"Cutting speed in the Z\n" +"plane in units per minute" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1238 +msgid "Feed Rate Rapids:" +msgstr "Feed Rate Rapids:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1240 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute\n" +"for the rapid movements G00.\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." +msgstr "" +"Cutting speed in the XY\n" +"plane in units per minute\n" +"for the rapid movements G00.\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1253 +msgid "Cut over 1st pt" +msgstr "Cut over 1st pt" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1255 +msgid "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." +msgstr "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1267 +msgid "" +"Speed of the spindle in RPM (optional).\n" +"If LASER postprocessor is used,\n" +"this value is the power of laser." +msgstr "" +"Speed of the spindle in RPM (optional).\n" +"If LASER postprocessor is used,\n" +"this value is the power of laser." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1297 +msgid "PostProcessor:" +msgstr "PostProcessor:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1299 +msgid "" +"The Postprocessor file that dictates\n" +"the Machine Code (like GCode, RML, HPGL) output." +msgstr "" +"The Postprocessor file that dictates\n" +"the Machine Code (like GCode, RML, HPGL) output." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1337 +msgid "" +"Add at least one tool in the tool-table.\n" +"Click the header to select all, or Ctrl + LMB\n" +"for custom selection of tools." +msgstr "" +"Add at least one tool in the tool-table.\n" +"Click the header to select all, or Ctrl + LMB\n" +"for custom selection of tools." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1345 +msgid "Generate" +msgstr "Generate" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1347 +msgid "Generate the CNC Job object." +msgstr "Generate the CNC Job object." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1356 +msgid "Paint Area:" +msgstr "Paint Area:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1358 +msgid "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." +msgstr "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1368 +msgid "Paint Tool" +msgstr "Paint Tool" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1370 +msgid "Launch Paint Tool in Tools Tab." +msgstr "Launch Paint Tool in Tools Tab." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1388 +msgid "CNC Job Object" +msgstr "CNC Job Object" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1407 +msgid "Plot kind:" +msgstr "Plot kind:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1409 +msgid "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." +msgstr "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1418 +msgid "All" +msgstr "All" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1419 +msgid "Travel" +msgstr "Travel" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1420 +msgid "Cut" +msgstr "Cut" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1432 +msgid "Travelled dist.:" +msgstr "Travelled dist.:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1434 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1441 +msgid "" +"This is the total travelled distance on X-Y plane.\n" +"In current units." +msgstr "" +"This is the total travelled distance on X-Y plane.\n" +"In current units." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1470 +msgid "CNC Tools Table" +msgstr "CNC Tools Table" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1472 +msgid "" +"Tools in this CNCJob object used for cutting.\n" +"The tool diameter is used for plotting on canvas.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V)." +msgstr "" +"Tools in this CNCJob object used for cutting.\n" +"The tool diameter is used for plotting on canvas.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V)." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1507 +msgid "P" +msgstr "P" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1513 +msgid "Update Plot" +msgstr "Update Plot" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1515 +msgid "Update the plot." +msgstr "Update the plot." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1522 +msgid "Export CNC Code:" +msgstr "Export CNC Code:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1524 +msgid "" +"Export and save G-Code to\n" +"make this object to a file." +msgstr "" +"Export and save G-Code to\n" +"make this object to a file." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1530 +msgid "Prepend to CNC Code:" +msgstr "Prepend to CNC Code:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1532 +msgid "" +"Type here any G-Code commands you would\n" +"like to add to the beginning of the generated file." +msgstr "" +"Type here any G-Code commands you would\n" +"like to add to the beginning of the generated file." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1543 +msgid "Append to CNC Code" +msgstr "Append to CNC Code" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1545 +msgid "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" +msgstr "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1564 +msgid "Toolchange G-Code:" +msgstr "Toolchange G-Code:" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1566 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"\n" +"WARNING: it can be used only with a postprocessor file\n" +"that has 'toolchange_custom' in it's name and this is built\n" +"having as template the 'Toolchange Custom' posprocessor file." +msgstr "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"\n" +"WARNING: it can be used only with a postprocessor file\n" +"that has 'toolchange_custom' in it's name and this is built\n" +"having as template the 'Toolchange Custom' posprocessor file." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1586 +msgid "Use Toolchange Macro" +msgstr "Use Toolchange Macro" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1588 +msgid "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." +msgstr "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1604 +msgid "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" +msgstr "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1613 +msgid "Parameters" +msgstr "Parameters" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1616 +msgid "FlatCAM CNC parameters" +msgstr "FlatCAM CNC parameters" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1617 +msgid "tool = tool number" +msgstr "tool = tool number" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1618 +msgid "tooldia = tool diameter" +msgstr "tooldia = tool diameter" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1619 +msgid "t_drills = for Excellon, total number of drills" +msgstr "t_drills = for Excellon, total number of drills" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1620 +msgid "x_toolchange = X coord for Toolchange" +msgstr "x_toolchange = X coord for Toolchange" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1621 +msgid "y_toolchange = Y coord for Toolchange" +msgstr "y_toolchange = Y coord for Toolchange" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1622 +msgid "z_toolchange = Z coord for Toolchange" +msgstr "z_toolchange = Z coord for Toolchange" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1623 +msgid "z_cut = Z coord for Toolchange" +msgstr "z_cut = Z coord for Toolchange" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1624 +msgid "z_move = Z coord for Toolchange" +msgstr "z_move = Z coord for Toolchange" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1625 +msgid "z_depthpercut = the step value for multidepth cut" +msgstr "z_depthpercut = the step value for multidepth cut" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1626 +msgid "spindlesspeed = the value for the spindle speed" +msgstr "spindlesspeed = the value for the spindle speed" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1627 +msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +msgstr "dwelltime = time to dwell to allow the spindle to reach it's set RPM" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1645 +msgid "View CNC Code" +msgstr "View CNC Code" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1647 +msgid "" +"Opens TAB to view/modify/print G-Code\n" +"file." +msgstr "" +"Opens TAB to view/modify/print G-Code\n" +"file." + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1654 +msgid "Save CNC Code" +msgstr "Save CNC Code" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1656 +msgid "" +"Opens dialog to save G-Code\n" +"file." +msgstr "" +"Opens dialog to save G-Code\n" +"file." diff --git a/locale/en/LC_MESSAGES/ToolCalculators.mo b/locale/en/LC_MESSAGES/ToolCalculators.mo new file mode 100644 index 00000000..c9ca12ca Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolCalculators.mo differ diff --git a/locale/en/LC_MESSAGES/ToolCalculators.po b/locale/en/LC_MESSAGES/ToolCalculators.po new file mode 100644 index 00000000..3f51ca60 --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolCalculators.po @@ -0,0 +1,187 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:01+0200\n" +"PO-Revision-Date: 2019-03-10 13:21+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:14 +msgid "Calculators" +msgstr "Calculators" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:15 +msgid "V-Shape Tool Calculator" +msgstr "V-Shape Tool Calculator" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:16 +msgid "Units Calculator" +msgstr "Units Calculator" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:17 +msgid "ElectroPlating Calculator" +msgstr "ElectroPlating Calculator" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:58 +msgid "Here you enter the value to be converted from INCH to MM" +msgstr "Here you enter the value to be converted from INCH to MM" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:63 +msgid "Here you enter the value to be converted from MM to INCH" +msgstr "Here you enter the value to be converted from MM to INCH" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:84 +msgid "Tip Diameter:" +msgstr "Tip Diameter:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:88 +msgid "" +"This is the diameter of the tool tip.\n" +"The manufacturer specifies it." +msgstr "" +"This is the diameter of the tool tip.\n" +"The manufacturer specifies it." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:95 +msgid "" +"This is the angle of the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" +"This is the angle of the tip of the tool.\n" +"It is specified by manufacturer." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:102 +msgid "" +"This is the depth to cut into the material.\n" +"In the CNCJob is the CutZ parameter." +msgstr "" +"This is the depth to cut into the material.\n" +"In the CNCJob is the CutZ parameter." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:109 +msgid "" +"This is the tool diameter to be entered into\n" +"FlatCAM Gerber section.\n" +"In the CNCJob section it is called >Tool dia<." +msgstr "" +"This is the tool diameter to be entered into\n" +"FlatCAM Gerber section.\n" +"In the CNCJob section it is called >Tool dia<." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:121 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:204 +msgid "Calculate" +msgstr "Calculate" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:124 +msgid "" +"Calculate either the Cut Z or the effective tool diameter,\n" +" depending on which is desired and which is known. " +msgstr "" +"Calculate either the Cut Z or the effective tool diameter,\n" +" depending on which is desired and which is known. " + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:142 +msgid "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like grahite ink or calcium hypophosphite ink or palladium " +"chloride." +msgstr "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like grahite ink or calcium hypophosphite ink or palladium " +"chloride." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:151 +msgid "Board Length:" +msgstr "Board Length:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:155 +msgid "This is the board length. In centimeters." +msgstr "This is the board length. In centimeters." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:157 +msgid "Board Width:" +msgstr "Board Width:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:161 +msgid "This is the board width.In centimeters." +msgstr "This is the board width.In centimeters." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:163 +msgid "Current Density:" +msgstr "Current Density:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:167 +msgid "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." +msgstr "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:171 +msgid "Copper Growth:" +msgstr "Copper Growth:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:175 +msgid "" +"How thick the copper growth is intended to be.\n" +"In microns." +msgstr "" +"How thick the copper growth is intended to be.\n" +"In microns." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:180 +msgid "Current Value:" +msgstr "Current Value:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:184 +msgid "" +"This is the current intensity value\n" +"to be set on the Power Supply. In Amps." +msgstr "" +"This is the current intensity value\n" +"to be set on the Power Supply. In Amps." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:188 +msgid "Time:" +msgstr "Time:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:192 +msgid "" +"This is the calculated time required for the procedure.\n" +"In minutes." +msgstr "" +"This is the calculated time required for the procedure.\n" +"In minutes." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:207 +msgid "" +"Calculate the current intensity value and the procedure time,\n" +" depending on the parameters above" +msgstr "" +"Calculate the current intensity value and the procedure time,\n" +" depending on the parameters above" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:294 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:305 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:317 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:332 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:345 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:359 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:370 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:381 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:392 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered, use a number." diff --git a/locale/en/LC_MESSAGES/ToolCutOut.mo b/locale/en/LC_MESSAGES/ToolCutOut.mo new file mode 100644 index 00000000..7f84e03c Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolCutOut.mo differ diff --git a/locale/en/LC_MESSAGES/ToolCutOut.po b/locale/en/LC_MESSAGES/ToolCutOut.po new file mode 100644 index 00000000..b9ce1709 --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolCutOut.po @@ -0,0 +1,379 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:03+0200\n" +"PO-Revision-Date: 2019-03-10 13:22+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:13 +msgid "Cutout PCB" +msgstr "Cutout PCB" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:49 +msgid "Obj Type:" +msgstr "Obj Type:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:51 +msgid "" +"Specify the type of object to be cutout.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" +"Specify the type of object to be cutout.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:65 +msgid "Object:" +msgstr "Object:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:67 +msgid "Object to be cutout. " +msgstr "Object to be cutout. " + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:73 +msgid "Tool Dia:" +msgstr "Tool Dia:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:75 +msgid "" +"Diameter of the tool used to cutout\n" +"the PCB shape out of the surrounding material." +msgstr "" +"Diameter of the tool used to cutout\n" +"the PCB shape out of the surrounding material." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:82 +msgid "Margin:" +msgstr "Margin:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:84 +msgid "" +"Margin over bounds. A positive value here\n" +"will make the cutout of the PCB further from\n" +"the actual PCB border" +msgstr "" +"Margin over bounds. A positive value here\n" +"will make the cutout of the PCB further from\n" +"the actual PCB border" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:92 +msgid "Gap size:" +msgstr "Gap size:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:94 +msgid "" +"The size of the bridge gaps in the cutout\n" +"used to keep the board connected to\n" +"the surrounding material (the one \n" +"from which the PCB is cutout)." +msgstr "" +"The size of the bridge gaps in the cutout\n" +"used to keep the board connected to\n" +"the surrounding material (the one \n" +"from which the PCB is cutout)." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:110 +msgid "A. Automatic Bridge Gaps" +msgstr "A. Automatic Bridge Gaps" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:112 +msgid "This section handle creation of automatic bridge gaps." +msgstr "This section handle creation of automatic bridge gaps." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:121 +msgid "Gaps:" +msgstr "Gaps:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:123 +msgid "" +"Number of gaps used for the Automatic cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" +"Number of gaps used for the Automatic cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:146 +msgid "FreeForm:" +msgstr "FreeForm:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:148 +msgid "" +"The cutout shape can be of ny shape.\n" +"Useful when the PCB has a non-rectangular shape." +msgstr "" +"The cutout shape can be of ny shape.\n" +"Useful when the PCB has a non-rectangular shape." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:155 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:175 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:226 +msgid "Generate Geo" +msgstr "Generate Geo" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:157 +msgid "" +"Cutout the selected object.\n" +"The cutout shape can be of any shape.\n" +"Useful when the PCB has a non-rectangular shape." +msgstr "" +"Cutout the selected object.\n" +"The cutout shape can be of any shape.\n" +"Useful when the PCB has a non-rectangular shape." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:166 +msgid "Rectangular:" +msgstr "Rectangular:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:168 +msgid "" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." +msgstr "" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:177 +msgid "" +"Cutout the selected object.\n" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." +msgstr "" +"Cutout the selected object.\n" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:185 +msgid "B. Manual Bridge Gaps" +msgstr "B. Manual Bridge Gaps" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:187 +msgid "" +"This section handle creation of manual bridge gaps.\n" +"This is done by mouse clicking on the perimeter of the\n" +"Geometry object that is used as a cutout object. " +msgstr "" +"This section handle creation of manual bridge gaps.\n" +"This is done by mouse clicking on the perimeter of the\n" +"Geometry object that is used as a cutout object. " + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:203 +msgid "Geo Obj:" +msgstr "Geo Obj:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:205 +msgid "Geometry object used to create the manual cutout." +msgstr "Geometry object used to create the manual cutout." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:216 +msgid "Manual Geo:" +msgstr "Manual Geo:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:218 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:228 +msgid "" +"If the object to be cutout is a Gerber\n" +"first create a Geometry that surrounds it,\n" +"to be used as the cutout, if one doesn't exist yet.\n" +"Select the source Gerber file in the top object combobox." +msgstr "" +"If the object to be cutout is a Gerber\n" +"first create a Geometry that surrounds it,\n" +"to be used as the cutout, if one doesn't exist yet.\n" +"Select the source Gerber file in the top object combobox." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:238 +msgid "Manual Add Bridge Gaps:" +msgstr "Manual Add Bridge Gaps:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:240 +msgid "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material." +msgstr "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:247 +msgid "Generate Gap" +msgstr "Generate Gap" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:249 +msgid "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material.\n" +"The LMB click has to be done on the perimeter of\n" +"the Geometry object used as a cutout geometry." +msgstr "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material.\n" +"The LMB click has to be done on the perimeter of\n" +"the Geometry object used as a cutout geometry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:322 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:461 +msgid "[ERROR_NOTCL]Could not retrieve object: %s" +msgstr "[ERROR_NOTCL]Could not retrieve object: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:326 +msgid "" +"[ERROR_NOTCL]There is no object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"[ERROR_NOTCL]There is no object selected for Cutout.\n" +"Select one and try again." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:336 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:474 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:594 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:699 +msgid "" +"[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and " +"retry." +msgstr "" +"[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and " +"retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:342 +msgid "" +"[WARNING_NOTCL]Tool Diameter is zero value. Change it to a positive integer." +msgstr "" +"[WARNING_NOTCL]Tool Diameter is zero value. Change it to a positive integer." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:352 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:489 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:714 +msgid "" +"[WARNING_NOTCL] Margin value is missing or wrong format. Add it and retry." +msgstr "" +"[WARNING_NOTCL] Margin value is missing or wrong format. Add it and retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:363 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:500 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:609 +msgid "" +"[WARNING_NOTCL] Gap size value is missing or wrong format. Add it and retry." +msgstr "" +"[WARNING_NOTCL] Gap size value is missing or wrong format. Add it and retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:370 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:507 +msgid "[WARNING_NOTCL] Number of gaps value is missing. Add it and retry." +msgstr "[WARNING_NOTCL] Number of gaps value is missing. Add it and retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:374 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:511 +msgid "" +"[WARNING_NOTCL] Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 " +"or 8. Fill in a correct value and retry. " +msgstr "" +"[WARNING_NOTCL] Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 " +"or 8. Fill in a correct value and retry. " + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:379 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:516 +msgid "" +"[ERROR]Cutout operation cannot be done on a multi-geo Geometry.\n" +"Optionally, this Multi-geo Geometry can be converted to Single-geo " +"Geometry,\n" +"and after that perform Cutout." +msgstr "" +"[ERROR]Cutout operation cannot be done on a multi-geo Geometry.\n" +"Optionally, this Multi-geo Geometry can be converted to Single-geo " +"Geometry,\n" +"and after that perform Cutout." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:445 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:579 +msgid "[success] Any form CutOut operation finished." +msgstr "[success] Any form CutOut operation finished." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:465 +msgid "[ERROR_NOTCL]Object not found: %s" +msgstr "[ERROR_NOTCL]Object not found: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:479 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:599 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:704 +msgid "" +"[ERROR_NOTCL]Tool Diameter is zero value. Change it to a positive integer." +msgstr "" +"[ERROR_NOTCL]Tool Diameter is zero value. Change it to a positive integer." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:584 +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 ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:625 +msgid "Making manual bridge gap..." +msgstr "Making manual bridge gap..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:648 +msgid "[ERROR_NOTCL]Could not retrieve Geoemtry object: %s" +msgstr "[ERROR_NOTCL]Could not retrieve Geoemtry object: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:652 +msgid "[ERROR_NOTCL]Geometry object for manual cutout not found: %s" +msgstr "[ERROR_NOTCL]Geometry object for manual cutout not found: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:662 +msgid "[success] Added manual Bridge Gap." +msgstr "[success] Added manual Bridge Gap." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:679 +msgid "[ERROR_NOTCL]Could not retrieve Gerber object: %s" +msgstr "[ERROR_NOTCL]Could not retrieve Gerber object: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:683 +msgid "" +"[ERROR_NOTCL]There is no Gerber object selected for Cutout.\n" +"Select one and try again." +msgstr "" +"[ERROR_NOTCL]There is no Gerber object selected for Cutout.\n" +"Select one and try again." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:688 +msgid "" +"[ERROR_NOTCL]The selected object has to be of Gerber type.\n" +"Select a Gerber file and try again." +msgstr "" +"[ERROR_NOTCL]The selected object has to be of Gerber type.\n" +"Select a Gerber file and try again." diff --git a/locale/en/LC_MESSAGES/ToolDblSided.mo b/locale/en/LC_MESSAGES/ToolDblSided.mo new file mode 100644 index 00000000..1cb62be6 Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolDblSided.mo differ diff --git a/locale/en/LC_MESSAGES/ToolDblSided.po b/locale/en/LC_MESSAGES/ToolDblSided.po new file mode 100644 index 00000000..d4bd3f3a --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolDblSided.po @@ -0,0 +1,298 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:05+0200\n" +"PO-Revision-Date: 2019-03-10 13:23+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:16 +msgid "2-Sided PCB" +msgstr "2-Sided PCB" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:50 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:74 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:98 +msgid "Mirror" +msgstr "Mirror" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:52 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:76 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:100 +msgid "" +"Mirrors (flips) the specified object around \n" +"the specified axis. Does not create a new \n" +"object, but modifies it." +msgstr "" +"Mirrors (flips) the specified object around \n" +"the specified axis. Does not create a new \n" +"object, but modifies it." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:71 +msgid "Excellon Object to be mirrored." +msgstr "Excellon Object to be mirrored." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:95 +msgid "Geometry Obj to be mirrored." +msgstr "Geometry Obj to be mirrored." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:114 +msgid "Mirror Axis:" +msgstr "Mirror Axis:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:116 +msgid "Mirror vertically (X) or horizontally (Y)." +msgstr "Mirror vertically (X) or horizontally (Y)." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:127 +msgid "Axis Ref:" +msgstr "Axis Ref:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:129 +msgid "" +"The axis should pass through a point or cut\n" +" a specified box (in a FlatCAM object) through \n" +"the center." +msgstr "" +"The axis should pass through a point or cut\n" +" a specified box (in a FlatCAM object) through \n" +"the center." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:142 +msgid "Point/Box Reference:" +msgstr "Point/Box Reference:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:144 +msgid "" +"If 'Point' is selected above it store the coordinates (x, y) through which\n" +"the mirroring axis passes.\n" +"If 'Box' is selected above, select here a FlatCAM object (Gerber, Exc or " +"Geo).\n" +"Through the center of this object pass the mirroring axis selected above." +msgstr "" +"If 'Point' is selected above it store the coordinates (x, y) through which\n" +"the mirroring axis passes.\n" +"If 'Box' is selected above, select here a FlatCAM object (Gerber, Exc or " +"Geo).\n" +"Through the center of this object pass the mirroring axis selected above." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:150 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:198 +msgid "Add" +msgstr "Add" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:152 +msgid "" +"Add the coordinates in format (x, y) through which the mirroring " +"axis \n" +" selected in 'MIRROR AXIS' pass.\n" +"The (x, y) coordinates are captured by pressing SHIFT key\n" +"and left mouse button click on canvas or you can enter the coords manually." +msgstr "" +"Add the coordinates in format (x, y) through which the mirroring " +"axis \n" +" selected in 'MIRROR AXIS' pass.\n" +"The (x, y) coordinates are captured by pressing SHIFT key\n" +"and left mouse button click on canvas or you can enter the coords manually." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:172 +msgid "Gerber Reference Box Object" +msgstr "Gerber Reference Box Object" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:173 +msgid "Excellon Reference Box Object" +msgstr "Excellon Reference Box Object" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:174 +msgid "Geometry Reference Box Object" +msgstr "Geometry Reference Box Object" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:183 +msgid ">Alignment Drill Coordinates:" +msgstr ">Alignment Drill Coordinates:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:185 +msgid "" +"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " +"each set of (x, y) coordinates\n" +"entered here, a pair of drills will be created:\n" +"\n" +"- one drill at the coordinates from the field\n" +"- one drill in mirror position over the axis selected above in the 'Mirror " +"Axis'." +msgstr "" +"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For " +"each set of (x, y) coordinates\n" +"entered here, a pair of drills will be created:\n" +"\n" +"- one drill at the coordinates from the field\n" +"- one drill in mirror position over the axis selected above in the 'Mirror " +"Axis'." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:200 +msgid "" +"Add alignment drill holes coords in the format: (x1, y1), (x2, y2), ... \n" +"on one side of the mirror axis.\n" +"\n" +"The coordinates set can be obtained:\n" +"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" +"- press SHIFT key and left mouse clicking on canvas. Then CTRL+V in the " +"field.\n" +"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " +"field and click Paste.\n" +"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." +msgstr "" +"Add alignment drill holes coords in the format: (x1, y1), (x2, y2), ... \n" +"on one side of the mirror axis.\n" +"\n" +"The coordinates set can be obtained:\n" +"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" +"- press SHIFT key and left mouse clicking on canvas. Then CTRL+V in the " +"field.\n" +"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the " +"field and click Paste.\n" +"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:214 +msgid "Alignment Drill Diameter" +msgstr "Alignment Drill Diameter" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:216 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:227 +msgid "Diameter of the drill for the alignment holes." +msgstr "Diameter of the drill for the alignment holes." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:225 +msgid "Drill diam.:" +msgstr "Drill diam.:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:234 +msgid "Create Excellon Object" +msgstr "Create Excellon Object" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:236 +msgid "" +"Creates an Excellon Object containing the\n" +"specified alignment holes and their mirror\n" +"images." +msgstr "" +"Creates an Excellon Object containing the\n" +"specified alignment holes and their mirror\n" +"images." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:243 +msgid "Reset" +msgstr "Reset" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:245 +msgid "Resets all the fields." +msgstr "Resets all the fields." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:287 +msgid "2-Sided Tool" +msgstr "2-Sided Tool" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:312 +msgid "" +"[WARNING_NOTCL] 'Point' reference is selected and 'Point' coordinates are " +"missing. Add them and retry." +msgstr "" +"[WARNING_NOTCL] 'Point' reference is selected and 'Point' coordinates are " +"missing. Add them and retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:331 +msgid "" +"[WARNING_NOTCL] There is no Box reference object loaded. Load one and retry." +msgstr "" +"[WARNING_NOTCL] There is no Box reference object loaded. Load one and retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:348 +msgid "" +"[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and " +"retry." +msgstr "" +"[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and " +"retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:353 +msgid "" +"[WARNING_NOTCL]No value or wrong format in Drill Dia entry. Add it and retry." +msgstr "" +"[WARNING_NOTCL]No value or wrong format in Drill Dia entry. Add it and retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:360 +msgid "" +"[WARNING_NOTCL] There are no Alignment Drill Coordinates to use. Add them " +"and retry." +msgstr "" +"[WARNING_NOTCL] There are no Alignment Drill Coordinates to use. Add them " +"and retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:382 +msgid "[success] Excellon object with alignment drills created..." +msgstr "[success] Excellon object with alignment drills created..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:391 +msgid "[WARNING_NOTCL] There is no Gerber object loaded ..." +msgstr "[WARNING_NOTCL] There is no Gerber object loaded ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:395 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:438 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:482 +msgid "" +"[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored." +msgstr "" +"[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:405 +msgid "" +"[WARNING_NOTCL] 'Point' coordinates missing. Using Origin (0, 0) as " +"mirroring reference." +msgstr "" +"[WARNING_NOTCL] 'Point' coordinates missing. Using Origin (0, 0) as " +"mirroring reference." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:415 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:459 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:496 +msgid "[WARNING_NOTCL] There is no Box object loaded ..." +msgstr "[WARNING_NOTCL] There is no Box object loaded ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:425 +msgid "[success] Gerber %s was mirrored..." +msgstr "[success] Gerber %s was mirrored..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:434 +msgid "[WARNING_NOTCL] There is no Excellon object loaded ..." +msgstr "[WARNING_NOTCL] There is no Excellon object loaded ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:449 +msgid "" +"[WARNING_NOTCL] There are no Point coordinates in the Point field. Add " +"coords and try again ..." +msgstr "" +"[WARNING_NOTCL] There are no Point coordinates in the Point field. Add " +"coords and try again ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:469 +msgid "[success] Excellon %s was mirrored..." +msgstr "[success] Excellon %s was mirrored..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:478 +msgid "[WARNING_NOTCL] There is no Geometry object loaded ..." +msgstr "[WARNING_NOTCL] There is no Geometry object loaded ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:506 +msgid "[success] Geometry %s was mirrored..." +msgstr "[success] Geometry %s was mirrored..." diff --git a/locale/en/LC_MESSAGES/ToolFilm.mo b/locale/en/LC_MESSAGES/ToolFilm.mo new file mode 100644 index 00000000..ef4e67c7 Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolFilm.mo differ diff --git a/locale/en/LC_MESSAGES/ToolFilm.po b/locale/en/LC_MESSAGES/ToolFilm.po new file mode 100644 index 00000000..57cfe760 --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolFilm.po @@ -0,0 +1,197 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:06+0200\n" +"PO-Revision-Date: 2019-03-10 13:23+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:13 +msgid "Film PCB" +msgstr "Film PCB" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:44 +msgid "Object Type:" +msgstr "Object Type:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:46 +msgid "" +"Specify the type of object for which to create the film.\n" +"The object can be of type: Gerber or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Film Object combobox." +msgstr "" +"Specify the type of object for which to create the film.\n" +"The object can be of type: Gerber or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Film Object combobox." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:59 +msgid "Film Object:" +msgstr "Film Object:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:61 +msgid "Object for which to create the film." +msgstr "Object for which to create the film." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:77 +msgid "Box Type:" +msgstr "Box Type:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:79 +msgid "" +"Specify the type of object to be used as an container for\n" +"film creation. It can be: Gerber or Geometry type.The selection here decide " +"the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Specify the type of object to be used as an container for\n" +"film creation. It can be: Gerber or Geometry type.The selection here decide " +"the type of objects that will be\n" +"in the Box Object combobox." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:92 +msgid "Box Object:" +msgstr "Box Object:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:94 +msgid "" +"The actual object that is used a container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." +msgstr "" +"The actual object that is used a container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:104 +msgid "Film Type:" +msgstr "Film Type:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:106 +msgid "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." +msgstr "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:118 +msgid "Border:" +msgstr "Border:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:120 +msgid "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." +msgstr "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:132 +msgid "Scale Stroke:" +msgstr "Scale Stroke:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:134 +msgid "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or " +"thinner,\n" +"therefore the fine features may be more affected by this parameter." +msgstr "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or " +"thinner,\n" +"therefore the fine features may be more affected by this parameter." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:145 +msgid "Save Film" +msgstr "Save Film" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:147 +msgid "" +"Create a Film for the selected object, within\n" +"the specified box. Does not create a new \n" +" FlatCAM object, but directly save it in SVG format\n" +"which can be opened with Inkscape." +msgstr "" +"Create a Film for the selected object, within\n" +"the specified box. Does not create a new \n" +" FlatCAM object, but directly save it in SVG format\n" +"which can be opened with Inkscape." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:188 +msgid "Film Tool" +msgstr "Film Tool" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:209 +msgid "" +"[ERROR_NOTCL] No FlatCAM object selected. Load an object for Film and retry." +msgstr "" +"[ERROR_NOTCL] No FlatCAM object selected. Load an object for Film and retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:215 +msgid "" +"[ERROR_NOTCL] No FlatCAM object selected. Load an object for Box and retry." +msgstr "" +"[ERROR_NOTCL] No FlatCAM object selected. Load an object for Box and retry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:225 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:232 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:239 +msgid "Generating Film ..." +msgstr "Generating Film ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:244 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:248 +msgid "Export SVG positive" +msgstr "Export SVG positive" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:253 +msgid "[WARNING_NOTCL]Export SVG positive cancelled." +msgstr "[WARNING_NOTCL]Export SVG positive cancelled." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:260 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:264 +msgid "Export SVG negative" +msgstr "Export SVG negative" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:269 +msgid "[WARNING_NOTCL]Export SVG negative cancelled." +msgstr "[WARNING_NOTCL]Export SVG negative cancelled." diff --git a/locale/en/LC_MESSAGES/ToolImage.mo b/locale/en/LC_MESSAGES/ToolImage.mo new file mode 100644 index 00000000..0e91683a Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolImage.mo differ diff --git a/locale/en/LC_MESSAGES/ToolImage.po b/locale/en/LC_MESSAGES/ToolImage.po new file mode 100644 index 00000000..c6079b9f --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolImage.po @@ -0,0 +1,142 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:07+0200\n" +"PO-Revision-Date: 2019-03-10 13:23+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:13 +msgid "Image as Object" +msgstr "Image as Object" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:19 +msgid "Image to PCB" +msgstr "Image to PCB" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:41 +msgid "Object Type:" +msgstr "Object Type:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:43 +msgid "" +"Specify the type of object to create from the image.\n" +"It can be of type: Gerber or Geometry." +msgstr "" +"Specify the type of object to create from the image.\n" +"It can be of type: Gerber or Geometry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:51 +msgid "DPI value:" +msgstr "DPI value:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:53 +msgid "Specify a DPI value for the image." +msgstr "Specify a DPI value for the image." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:60 +msgid "Level of detail" +msgstr "Level of detail" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:69 +msgid "Image type" +msgstr "Image type" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:71 +msgid "" +"Choose a method for the image interpretation.\n" +"B/W means a black & white image. Color means a colored image." +msgstr "" +"Choose a method for the image interpretation.\n" +"B/W means a black & white image. Color means a colored image." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:78 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:91 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:102 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:113 +msgid "Mask value" +msgstr "Mask value" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:80 +msgid "" +"Mask for monochrome image.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry.\n" +"0 means no detail and 255 means everything \n" +"(which is totally black)." +msgstr "" +"Mask for monochrome image.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry.\n" +"0 means no detail and 255 means everything \n" +"(which is totally black)." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:93 +msgid "" +"Mask for RED color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Mask for RED color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:104 +msgid "" +"Mask for GREEN color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Mask for GREEN color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:115 +msgid "" +"Mask for BLUE color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" +"Mask for BLUE color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:127 +msgid "Import image" +msgstr "Import image" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:129 +msgid "Open a image of raster type and then import it in FlatCAM." +msgstr "Open a image of raster type and then import it in FlatCAM." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:155 +msgid "Image Tool" +msgstr "Image Tool" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:185 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:188 +msgid "Import IMAGE" +msgstr "Import IMAGE" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:198 +msgid "Open cancelled." +msgstr "Open cancelled." diff --git a/locale/en/LC_MESSAGES/ToolMeasurement.mo b/locale/en/LC_MESSAGES/ToolMeasurement.mo index 4504f620..1b06b8d0 100644 Binary files a/locale/en/LC_MESSAGES/ToolMeasurement.mo and b/locale/en/LC_MESSAGES/ToolMeasurement.mo differ diff --git a/locale/en/LC_MESSAGES/ToolMeasurement.po b/locale/en/LC_MESSAGES/ToolMeasurement.po index 1b39297a..7869186a 100644 --- a/locale/en/LC_MESSAGES/ToolMeasurement.po +++ b/locale/en/LC_MESSAGES/ToolMeasurement.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-03-07 23:07+0200\n" -"PO-Revision-Date: 2019-03-07 23:19+0200\n" +"POT-Creation-Date: 2019-03-10 13:08+0200\n" +"PO-Revision-Date: 2019-03-10 13:24+0200\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,76 +17,76 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Language: en\n" -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:28 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:16 msgid "Measurement" msgstr "Measurement" -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:37 msgid "Start" msgstr "Start" -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:37 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:40 msgid "Coords" msgstr "Coords" -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:50 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:101 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:38 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:89 msgid "This is measuring Start point coordinates." msgstr "This is measuring Start point coordinates." -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:40 msgid "Stop" msgstr "Stop" -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:53 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:106 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:41 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:94 msgid "This is the measuring Stop point coordinates." msgstr "This is the measuring Stop point coordinates." -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:56 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:111 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:44 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:99 msgid "This is the distance measured over the X axis." msgstr "This is the distance measured over the X axis." -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:59 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:117 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:47 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:105 msgid "This is the distance measured over the Y axis." msgstr "This is the distance measured over the Y axis." -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:61 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 msgid "DISTANCE" msgstr "DISTANCE" -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:62 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:123 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:50 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:111 msgid "This is the point to point Euclidian distance." msgstr "This is the point to point Euclidian distance." -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:65 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:72 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:79 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:86 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:93 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:53 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:60 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:67 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:74 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:81 msgid "Those are the units in which the distance is measured." msgstr "Those are the units in which the distance is measured." -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:126 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:114 msgid "Measure" msgstr "Measure" -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:185 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:173 msgid "Meas. Tool" msgstr "Meas. Tool" -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:278 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:266 msgid "MEASURING: Click on the Start point ..." msgstr "MEASURING: Click on the Start point ..." -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:307 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:295 msgid "MEASURING: Click on the Destination point ..." msgstr "MEASURING: Click on the Destination point ..." -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:328 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:316 msgid "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" msgstr "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" diff --git a/locale/en/LC_MESSAGES/ToolMove.mo b/locale/en/LC_MESSAGES/ToolMove.mo new file mode 100644 index 00000000..b99ec646 Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolMove.mo differ diff --git a/locale/en/LC_MESSAGES/ToolMove.po b/locale/en/LC_MESSAGES/ToolMove.po new file mode 100644 index 00000000..28ee181d --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolMove.po @@ -0,0 +1,62 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:08+0200\n" +"PO-Revision-Date: 2019-03-10 13:24+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:15 +msgid "Move" +msgstr "Move" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:70 +msgid "MOVE: Click on the Start point ..." +msgstr "MOVE: Click on the Start point ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:77 +msgid "[WARNING_NOTCL] MOVE action cancelled. No object(s) to move." +msgstr "[WARNING_NOTCL] MOVE action cancelled. No object(s) to move." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:99 +msgid "MOVE: Click on the Destination point ..." +msgstr "MOVE: Click on the Destination point ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:117 +msgid "Moving ..." +msgstr "Moving ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:124 +msgid "[WARNING_NOTCL] No object(s) selected." +msgstr "[WARNING_NOTCL] No object(s) selected." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:147 +msgid "[ERROR_NOTCL] ToolMove.on_left_click() --> %s" +msgstr "[ERROR_NOTCL] ToolMove.on_left_click() --> %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:153 +msgid "[success]%s object was moved ..." +msgstr "[success]%s object was moved ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:163 +msgid "[ERROR_NOTCL] ToolMove.on_left_click() --> Error when mouse left click." +msgstr "[ERROR_NOTCL] ToolMove.on_left_click() --> Error when mouse left click." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:191 +msgid "[WARNING_NOTCL]Move action cancelled." +msgstr "[WARNING_NOTCL]Move action cancelled." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:203 +msgid "[WARNING_NOTCL]Object(s) not selected" +msgstr "[WARNING_NOTCL]Object(s) not selected" diff --git a/locale/en/LC_MESSAGES/ToolNonCopperClear.mo b/locale/en/LC_MESSAGES/ToolNonCopperClear.mo new file mode 100644 index 00000000..9d495085 Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolNonCopperClear.mo differ diff --git a/locale/en/LC_MESSAGES/ToolNonCopperClear.po b/locale/en/LC_MESSAGES/ToolNonCopperClear.po new file mode 100644 index 00000000..73538e4d --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolNonCopperClear.po @@ -0,0 +1,337 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:09+0200\n" +"PO-Revision-Date: 2019-03-10 13:24+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:13 +msgid "Non-Copper Clearing" +msgstr "Non-Copper Clearing" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:51 +msgid "Gerber object to be cleared of excess copper. " +msgstr "Gerber object to be cleared of excess copper. " + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:59 +msgid "Tools Table" +msgstr "Tools Table" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:61 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for copper clearing." +msgstr "" +"Tools pool from which the algorithm\n" +"will pick the ones used for copper clearing." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:70 +msgid "Diameter" +msgstr "Diameter" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:76 +msgid "" +"This is the Tool Number.\n" +"Non copper clearing will start with the tool with the biggest \n" +"diameter, continuing until there are no more tools.\n" +"Only tools that create NCC clearing geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"This is the Tool Number.\n" +"Non copper clearing will start with the tool with the biggest \n" +"diameter, continuing until there are no more tools.\n" +"Only tools that create NCC clearing geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:84 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:88 +msgid "" +"The Tool Type (TT) can be:
- Circular with 1 ... 4 teeth -> it is " +"informative only. Being circular,
the cut width in material is exactly " +"the tool diameter.
- Ball -> informative only and make reference " +"to the Ball type endmill.
- V-Shape -> it will disable de Z-Cut " +"parameter in the resulting geometry UI form and enable two additional UI " +"form fields in the resulting geometry: V-Tip Dia and V-Tip Angle. Adjusting " +"those two values will adjust the Z-Cut parameter such as the cut width into " +"material will be equal with the value in the Tool Diameter column of this " +"table.
Choosing the V-Shape Tool Type automatically will select " +"the Operation Type in the resulting geometry as Isolation." +msgstr "" +"The Tool Type (TT) can be:
- Circular with 1 ... 4 teeth -> it is " +"informative only. Being circular,
the cut width in material is exactly " +"the tool diameter.
- Ball -> informative only and make reference " +"to the Ball type endmill.
- V-Shape -> it will disable de Z-Cut " +"parameter in the resulting geometry UI form and enable two additional UI " +"form fields in the resulting geometry: V-Tip Dia and V-Tip Angle. Adjusting " +"those two values will adjust the Z-Cut parameter such as the cut width into " +"material will be equal with the value in the Tool Diameter column of this " +"table.
Choosing the V-Shape Tool Type automatically will select " +"the Operation Type in the resulting geometry as Isolation." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:107 +msgid "Tool Dia" +msgstr "Tool Dia" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:109 +msgid "Diameter for the new tool to add in the Tool Table" +msgstr "Diameter for the new tool to add in the Tool Table" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:121 +msgid "Add" +msgstr "Add" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:123 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:133 +msgid "Delete" +msgstr "Delete" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:135 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:152 +msgid "Overlap:" +msgstr "Overlap:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:154 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:168 +msgid "Margin:" +msgstr "Margin:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:170 +msgid "Bounding box margin." +msgstr "Bounding box margin." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:177 +msgid "Method:" +msgstr "Method:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:179 +msgid "" +"Algorithm for non-copper clearing:
Standard: Fixed step inwards." +"
Seed-based: Outwards from seed.
Line-based: Parallel " +"lines." +msgstr "" +"Algorithm for non-copper clearing:
Standard: Fixed step inwards." +"
Seed-based: Outwards from seed.
Line-based: Parallel " +"lines." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:193 +msgid "Connect:" +msgstr "Connect:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:195 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:202 +msgid "Contour:" +msgstr "Contour:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:204 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:211 +msgid "Rest M.:" +msgstr "Rest M.:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:213 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"If not checked, use the standard algorithm." +msgstr "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"If not checked, use the standard algorithm." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:225 +msgid "Generate Geometry" +msgstr "Generate Geometry" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:227 +msgid "" +"Create the Geometry Object\n" +"for non-copper routing." +msgstr "" +"Create the Geometry Object\n" +"for non-copper routing." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:267 +msgid "NCC Tool" +msgstr "NCC Tool" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:462 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:609 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:621 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:467 +msgid "[WARNING_NOTCL] Please enter a tool diameter to add, in Float format." +msgstr "[WARNING_NOTCL] Please enter a tool diameter to add, in Float format." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:471 +msgid "" +"[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " +"format." +msgstr "" +"[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " +"format." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:495 +msgid "[WARNING_NOTCL]Adding tool cancelled. Tool already in Tool Table." +msgstr "[WARNING_NOTCL]Adding tool cancelled. Tool already in Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:500 +msgid "[success] New tool added to Tool Table." +msgstr "[success] New tool added to Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:533 +msgid "[ERROR_NOTCL] Wrong value format entered, use a number." +msgstr "[ERROR_NOTCL] Wrong value format entered, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:542 +msgid "[success] Tool from Tool Table was edited." +msgstr "[success] Tool from Tool Table was edited." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:553 +msgid "" +"[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool " +"Table." +msgstr "" +"[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool " +"Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:592 +msgid "[WARNING_NOTCL]Delete failed. Select a tool to delete." +msgstr "[WARNING_NOTCL]Delete failed. Select a tool to delete." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:597 +msgid "[success] Tool(s) deleted from Tool Table." +msgstr "[success] Tool(s) deleted from Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:643 +msgid "[ERROR_NOTCL]Could not retrieve object: %s" +msgstr "[ERROR_NOTCL]Could not retrieve object: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:650 +msgid "[ERROR_NOTCL]No Gerber file available." +msgstr "[ERROR_NOTCL]No Gerber file available." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:688 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:810 +msgid "Clearing Non-Copper areas." +msgstr "Clearing Non-Copper areas." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:706 +msgid "[success] Non-Copper Clearing with ToolDia = %s started." +msgstr "[success] Non-Copper Clearing with ToolDia = %s started." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:775 +msgid "[ERROR_NOTCL] NCCTool.clear_non_copper() --> %s" +msgstr "[ERROR_NOTCL] NCCTool.clear_non_copper() --> %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:780 +msgid "[success] NCC Tool finished." +msgstr "[success] NCC Tool finished." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:782 +msgid "" +"[WARNING_NOTCL] NCC Tool finished but some PCB features could not be " +"cleared. Check the result." +msgstr "" +"[WARNING_NOTCL] NCC Tool finished but some PCB features could not be " +"cleared. Check the result." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:790 +msgid "Tools" +msgstr "Tools" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:828 +msgid "[success] Non-Copper Rest Clearing with ToolDia = %s started." +msgstr "[success] Non-Copper Rest Clearing with ToolDia = %s started." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:926 +msgid "[ERROR_NOTCL] NCCTool.clear_non_copper_rest() --> %s" +msgstr "[ERROR_NOTCL] NCCTool.clear_non_copper_rest() --> %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:934 +msgid "" +"[ERROR_NOTCL] NCC Tool finished but could not clear the object with current " +"settings." +msgstr "" +"[ERROR_NOTCL] NCC Tool finished but could not clear the object with current " +"settings." diff --git a/locale/en/LC_MESSAGES/ToolPaint.mo b/locale/en/LC_MESSAGES/ToolPaint.mo new file mode 100644 index 00000000..8e57976d Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolPaint.mo differ diff --git a/locale/en/LC_MESSAGES/ToolPaint.po b/locale/en/LC_MESSAGES/ToolPaint.po new file mode 100644 index 00000000..e7cc1ccd --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolPaint.po @@ -0,0 +1,404 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:11+0200\n" +"PO-Revision-Date: 2019-03-10 13:25+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:12 +msgid "Paint Area" +msgstr "Paint Area" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:48 +msgid "Geometry:" +msgstr "Geometry:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:50 +msgid "Geometry object to be painted. " +msgstr "Geometry object to be painted. " + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:57 +msgid "Tools Table" +msgstr "Tools Table" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:59 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for painting." +msgstr "" +"Tools pool from which the algorithm\n" +"will pick the ones used for painting." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:68 +msgid "Diameter" +msgstr "Diameter" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:74 +msgid "" +"This is the Tool Number.\n" +"Painting will start with the tool with the biggest diameter,\n" +"continuing until there are no more tools.\n" +"Only tools that create painting geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" +"This is the Tool Number.\n" +"Painting will start with the tool with the biggest diameter,\n" +"continuing until there are no more tools.\n" +"Only tools that create painting geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:82 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:86 +msgid "" +"The Tool Type (TT) can be:
- Circular with 1 ... 4 teeth -> it is " +"informative only. Being circular,
the cut width in material is exactly " +"the tool diameter.
- Ball -> informative only and make reference " +"to the Ball type endmill.
- V-Shape -> it will disable de Z-Cut " +"parameter in the resulting geometry UI form and enable two additional UI " +"form fields in the resulting geometry: V-Tip Dia and V-Tip Angle. Adjusting " +"those two values will adjust the Z-Cut parameter such as the cut width into " +"material will be equal with the value in the Tool Diameter column of this " +"table.
Choosing the V-Shape Tool Type automatically will select " +"the Operation Type in the resulting geometry as Isolation." +msgstr "" +"The Tool Type (TT) can be:
- Circular with 1 ... 4 teeth -> it is " +"informative only. Being circular,
the cut width in material is exactly " +"the tool diameter.
- Ball -> informative only and make reference " +"to the Ball type endmill.
- V-Shape -> it will disable de Z-Cut " +"parameter in the resulting geometry UI form and enable two additional UI " +"form fields in the resulting geometry: V-Tip Dia and V-Tip Angle. Adjusting " +"those two values will adjust the Z-Cut parameter such as the cut width into " +"material will be equal with the value in the Tool Diameter column of this " +"table.
Choosing the V-Shape Tool Type automatically will select " +"the Operation Type in the resulting geometry as Isolation." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:105 +msgid "Tool Dia" +msgstr "Tool Dia" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:107 +msgid "Diameter for the new tool." +msgstr "Diameter for the new tool." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:119 +msgid "Add" +msgstr "Add" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:121 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:131 +msgid "Delete" +msgstr "Delete" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:133 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:148 +msgid "Overlap:" +msgstr "Overlap:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:150 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:165 +msgid "Margin:" +msgstr "Margin:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:167 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:176 +msgid "Method:" +msgstr "Method:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:178 +msgid "" +"Algorithm for non-copper clearing:
Standard: Fixed step inwards." +"
Seed-based: Outwards from seed.
Line-based: Parallel " +"lines." +msgstr "" +"Algorithm for non-copper clearing:
Standard: Fixed step inwards." +"
Seed-based: Outwards from seed.
Line-based: Parallel " +"lines." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:192 +msgid "Connect:" +msgstr "Connect:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:194 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:201 +msgid "Contour:" +msgstr "Contour:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:203 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:210 +msgid "Rest M.:" +msgstr "Rest M.:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:212 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"\n" +"If not checked, use the standard algorithm." +msgstr "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"\n" +"If not checked, use the standard algorithm." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:225 +msgid "Selection:" +msgstr "Selection:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:227 +msgid "" +"How to select the polygons to paint.
Options:
- Single: left " +"mouse click on the polygon to be painted.
- All: paint all " +"polygons." +msgstr "" +"How to select the polygons to paint.
Options:
- Single: left " +"mouse click on the polygon to be painted.
- All: paint all " +"polygons." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:242 +msgid "Create Paint Geometry" +msgstr "Create Paint Geometry" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:244 +msgid "" +"After clicking here, click inside
the polygon you wish to be painted if " +"Single is selected.
If All is selected then the Paint will " +"start after click.
A new Geometry object with the tool
paths will be " +"created." +msgstr "" +"After clicking here, click inside
the polygon you wish to be painted if " +"Single is selected.
If All is selected then the Paint will " +"start after click.
A new Geometry object with the tool
paths will be " +"created." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:325 +msgid "Paint Tool" +msgstr "Paint Tool" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:522 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:592 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:727 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:818 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:973 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:528 +msgid "[WARNING_NOTCL] Please enter a tool diameter to add, in Float format." +msgstr "[WARNING_NOTCL] Please enter a tool diameter to add, in Float format." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:552 +msgid "[WARNING_NOTCL]Adding tool cancelled. Tool already in Tool Table." +msgstr "[WARNING_NOTCL]Adding tool cancelled. Tool already in Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:557 +msgid "[success] New tool added to Tool Table." +msgstr "[success] New tool added to Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:600 +msgid "[success] Tool from Tool Table was edited." +msgstr "[success] Tool from Tool Table was edited." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:611 +msgid "" +"[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool " +"Table." +msgstr "" +"[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool " +"Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:708 +msgid "[WARNING_NOTCL]Delete failed. Select a tool to delete." +msgstr "[WARNING_NOTCL]Delete failed. Select a tool to delete." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:713 +msgid "[success] Tool(s) deleted from Tool Table." +msgstr "[success] Tool(s) deleted from Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:717 +msgid "geometry_on_paint_button" +msgstr "geometry_on_paint_button" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:719 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:764 +msgid "[WARNING_NOTCL]Click inside the desired polygon." +msgstr "[WARNING_NOTCL]Click inside the desired polygon." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:741 +msgid "[ERROR_NOTCL]Could not retrieve object: %s" +msgstr "[ERROR_NOTCL]Could not retrieve object: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:745 +msgid "[ERROR_NOTCL]Object not found: %s" +msgstr "[ERROR_NOTCL]Object not found: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:751 +msgid "[ERROR_NOTCL] Can't do Paint on MultiGeo geometries ..." +msgstr "[ERROR_NOTCL] Can't do Paint on MultiGeo geometries ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:773 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:977 +msgid "Painting polygon..." +msgstr "Painting polygon..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:825 +msgid "[WARNING] No polygon found." +msgstr "[WARNING] No polygon found." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:828 +msgid "Painting polygon." +msgstr "Painting polygon." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:870 +msgid "[ERROR_NOTCL] Geometry could not be painted completely" +msgstr "[ERROR_NOTCL] Geometry could not be painted completely" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:896 +msgid "" +"[ERROR] Could not do Paint. Try a different combination of parameters. Or a " +"different strategy of paint\n" +"%s" +msgstr "" +"[ERROR] Could not do Paint. Try a different combination of parameters. Or a " +"different strategy of paint\n" +"%s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:938 +msgid "[ERROR_NOTCL] PaintTool.paint_poly() --> %s" +msgstr "[ERROR_NOTCL] PaintTool.paint_poly() --> %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:944 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1236 +msgid "Polygon Paint started ..." +msgstr "Polygon Paint started ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1092 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1181 +msgid "" +"[ERROR] Could not do Paint All. Try a different combination of parameters. " +"Or a different Method of paint\n" +"%s" +msgstr "" +"[ERROR] Could not do Paint All. Try a different combination of parameters. " +"Or a different Method of paint\n" +"%s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1116 +msgid "" +"[ERROR] There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"[ERROR] There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1125 +msgid "[success] Paint All Done." +msgstr "[success] Paint All Done." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1211 +msgid "" +"[ERROR_NOTCL] There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." +msgstr "" +"[ERROR_NOTCL] There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted " +"geometry.\n" +"Change the painting parameters and try again." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1220 +msgid "[success] Paint All with Rest-Machining done." +msgstr "[success] Paint All with Rest-Machining done." diff --git a/locale/en/LC_MESSAGES/ToolPanelize.mo b/locale/en/LC_MESSAGES/ToolPanelize.mo new file mode 100644 index 00000000..b365f74b Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolPanelize.mo differ diff --git a/locale/en/LC_MESSAGES/ToolPanelize.po b/locale/en/LC_MESSAGES/ToolPanelize.po new file mode 100644 index 00000000..d9f14dad --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolPanelize.po @@ -0,0 +1,239 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:11+0200\n" +"PO-Revision-Date: 2019-03-10 13:25+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:13 +msgid "Panelize PCB" +msgstr "Panelize PCB" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:44 +msgid "Object Type:" +msgstr "Object Type:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:46 +msgid "" +"Specify the type of object to be panelized\n" +"It can be of type: Gerber, Excellon or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" +"Specify the type of object to be panelized\n" +"It can be of type: Gerber, Excellon or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:59 +msgid "Object:" +msgstr "Object:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:61 +msgid "" +"Object to be panelized. This means that it will\n" +"be duplicated in an array of rows and columns." +msgstr "" +"Object to be panelized. This means that it will\n" +"be duplicated in an array of rows and columns." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:77 +msgid "Box Type:" +msgstr "Box Type:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:79 +msgid "" +"Specify the type of object to be used as an container for\n" +"panelization. It can be: Gerber or Geometry type.\n" +"The selection here decide the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" +"Specify the type of object to be used as an container for\n" +"panelization. It can be: Gerber or Geometry type.\n" +"The selection here decide the type of objects that will be\n" +"in the Box Object combobox." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:92 +msgid "Box Object:" +msgstr "Box Object:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:94 +msgid "" +"The actual object that is used a container for the\n" +" selected object that is to be panelized." +msgstr "" +"The actual object that is used a container for the\n" +" selected object that is to be panelized." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:101 +msgid "Spacing cols:" +msgstr "Spacing cols:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:103 +msgid "" +"Spacing between columns of the desired panel.\n" +"In current units." +msgstr "" +"Spacing between columns of the desired panel.\n" +"In current units." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:110 +msgid "Spacing rows:" +msgstr "Spacing rows:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:112 +msgid "" +"Spacing between rows of the desired panel.\n" +"In current units." +msgstr "" +"Spacing between rows of the desired panel.\n" +"In current units." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:119 +msgid "Columns:" +msgstr "Columns:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:121 +msgid "Number of columns of the desired panel" +msgstr "Number of columns of the desired panel" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:127 +msgid "Rows:" +msgstr "Rows:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:129 +msgid "Number of rows of the desired panel" +msgstr "Number of rows of the desired panel" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:136 +msgid "Panel Type:" +msgstr "Panel Type:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:138 +msgid "" +"Choose the type of object for the panel object:\n" +"- Geometry\n" +"- Gerber" +msgstr "" +"Choose the type of object for the panel object:\n" +"- Geometry\n" +"- Gerber" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:146 +msgid "Constrain panel within:" +msgstr "Constrain panel within:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:148 +msgid "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." +msgstr "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:157 +msgid "Width (DX):" +msgstr "Width (DX):" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:159 +msgid "" +"The width (DX) within which the panel must fit.\n" +"In current units." +msgstr "" +"The width (DX) within which the panel must fit.\n" +"In current units." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:165 +msgid "Height (DY):" +msgstr "Height (DY):" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:167 +msgid "" +"The height (DY)within which the panel must fit.\n" +"In current units." +msgstr "" +"The height (DY)within which the panel must fit.\n" +"In current units." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:180 +msgid "Panelize Object" +msgstr "Panelize Object" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:182 +msgid "" +"Panelize the specified object around the specified box.\n" +"In other words it creates multiple copies of the source object,\n" +"arranged in a 2D array of rows and columns." +msgstr "" +"Panelize the specified object around the specified box.\n" +"In other words it creates multiple copies of the source object,\n" +"arranged in a 2D array of rows and columns." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:278 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:292 +msgid "[ERROR_NOTCL]Could not retrieve object: %s" +msgstr "[ERROR_NOTCL]Could not retrieve object: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:284 +msgid "[ERROR_NOTCL]Object not found: %s" +msgstr "[ERROR_NOTCL]Object not found: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:296 +msgid "[WARNING]No object Box. Using instead %s" +msgstr "[WARNING]No object Box. Using instead %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:308 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:320 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:333 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:346 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:358 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:369 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:377 +msgid "" +"[ERROR_NOTCL]Columns or Rows are zero value. Change them to a positive " +"integer." +msgstr "" +"[ERROR_NOTCL]Columns or Rows are zero value. Change them to a positive " +"integer." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:481 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:590 +msgid "Generating panel ... Please wait." +msgstr "Generating panel ... Please wait." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:584 +msgid "[success]Panel done..." +msgstr "[success]Panel done..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:587 +msgid "" +"[WARNING] Too big for the constrain area. Final panel has %s columns and %s " +"rows" +msgstr "" +"[WARNING] Too big for the constrain area. Final panel has %s columns and %s " +"rows" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:595 +msgid "[success]Panel created successfully." +msgstr "[success]Panel created successfully." diff --git a/locale/en/LC_MESSAGES/ToolProperties.mo b/locale/en/LC_MESSAGES/ToolProperties.mo new file mode 100644 index 00000000..64a51d9a Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolProperties.mo differ diff --git a/locale/en/LC_MESSAGES/ToolProperties.po b/locale/en/LC_MESSAGES/ToolProperties.po new file mode 100644 index 00000000..f463ba78 --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolProperties.po @@ -0,0 +1,38 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:12+0200\n" +"PO-Revision-Date: 2019-03-10 13:25+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolProperties.py:13 +msgid "Properties" +msgstr "Properties" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolProperties.py:87 +msgid "[ERROR_NOTCL] Properties Tool was not displayed. No object selected." +msgstr "[ERROR_NOTCL] Properties Tool was not displayed. No object selected." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolProperties.py:88 +msgid "Tools" +msgstr "Tools" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolProperties.py:94 +msgid "[success] Object Properties are displayed." +msgstr "[success] Object Properties are displayed." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolProperties.py:95 +msgid "Properties Tool" +msgstr "Properties Tool" diff --git a/locale/en/LC_MESSAGES/ToolShell.mo b/locale/en/LC_MESSAGES/ToolShell.mo new file mode 100644 index 00000000..370997fd Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolShell.mo differ diff --git a/locale/en/LC_MESSAGES/ToolShell.po b/locale/en/LC_MESSAGES/ToolShell.po new file mode 100644 index 00000000..ce5e9382 --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolShell.po @@ -0,0 +1,26 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:13+0200\n" +"PO-Revision-Date: 2019-03-10 13:26+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolShell.py:65 +msgid "...proccessing..." +msgstr "...proccessing..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolShell.py:67 +msgid "...proccessing... [%s]" +msgstr "...proccessing... [%s]" diff --git a/locale/en/LC_MESSAGES/ToolSolderPaste.mo b/locale/en/LC_MESSAGES/ToolSolderPaste.mo new file mode 100644 index 00000000..8d56e80f Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolSolderPaste.mo differ diff --git a/locale/en/LC_MESSAGES/ToolSolderPaste.po b/locale/en/LC_MESSAGES/ToolSolderPaste.po new file mode 100644 index 00000000..8b476601 --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolSolderPaste.po @@ -0,0 +1,507 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:14+0200\n" +"PO-Revision-Date: 2019-03-10 13:26+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:26 +msgid "Solder Paste Tool" +msgstr "Solder Paste Tool" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:54 +msgid "Gerber Solder paste object. " +msgstr "Gerber Solder paste object. " + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:59 +msgid "Tools Table" +msgstr "Tools Table" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:61 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for dispensing solder paste." +msgstr "" +"Tools pool from which the algorithm\n" +"will pick the ones used for dispensing solder paste." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:70 +msgid "Diameter" +msgstr "Diameter" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:76 +msgid "" +"This is the Tool Number.\n" +"The solder dispensing will start with the tool with the biggest \n" +"diameter, continuing until there are no more Nozzle tools.\n" +"If there are no longer tools but there are still pads not covered\n" +" with solder paste, the app will issue a warning message box." +msgstr "" +"This is the Tool Number.\n" +"The solder dispensing will start with the tool with the biggest \n" +"diameter, continuing until there are no more Nozzle tools.\n" +"If there are no longer tools but there are still pads not covered\n" +" with solder paste, the app will issue a warning message box." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:83 +msgid "" +"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" +"is the width of the solder paste dispensed." +msgstr "" +"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" +"is the width of the solder paste dispensed." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:90 +msgid "New Nozzle Tool" +msgstr "New Nozzle Tool" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:92 +msgid "Diameter for the new Nozzle tool to add in the Tool Table" +msgstr "Diameter for the new Nozzle tool to add in the Tool Table" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:104 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:464 +msgid "Add" +msgstr "Add" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:106 +msgid "" +"Add a new nozzle tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" +"Add a new nozzle tool to the Tool Table\n" +"with the diameter specified above." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:110 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:466 +msgid "Delete" +msgstr "Delete" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:112 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:116 +msgid "Generate Geo" +msgstr "Generate Geo" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:118 +msgid "Generate solder paste dispensing geometry." +msgstr "Generate solder paste dispensing geometry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:131 +msgid "STEP 1" +msgstr "STEP 1" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:133 +msgid "" +"First step is to select a number of nozzle tools for usage\n" +"and then optionally modify the GCode parameters bellow." +msgstr "" +"First step is to select a number of nozzle tools for usage\n" +"and then optionally modify the GCode parameters bellow." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:136 +msgid "" +"Select tools.\n" +"Modify parameters." +msgstr "" +"Select tools.\n" +"Modify parameters." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:155 +msgid "Z Dispense Start:" +msgstr "Z Dispense Start:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:157 +msgid "The height (Z) when solder paste dispensing starts." +msgstr "The height (Z) when solder paste dispensing starts." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:163 +msgid "Z Dispense:" +msgstr "Z Dispense:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:165 +msgid "The height (Z) when doing solder paste dispensing." +msgstr "The height (Z) when doing solder paste dispensing." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:172 +msgid "Z Dispense Stop:" +msgstr "Z Dispense Stop:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:174 +msgid "The height (Z) when solder paste dispensing stops." +msgstr "The height (Z) when solder paste dispensing stops." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:180 +msgid "Z Travel:" +msgstr "Z Travel:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:182 +msgid "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." +msgstr "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:189 +msgid "Z Toolchange:" +msgstr "Z Toolchange:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:191 +msgid "The height (Z) for tool (nozzle) change." +msgstr "The height (Z) for tool (nozzle) change." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:197 +msgid "XY Toolchange:" +msgstr "XY Toolchange:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:199 +msgid "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." +msgstr "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:206 +msgid "Feedrate X-Y:" +msgstr "Feedrate X-Y:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:208 +msgid "Feedrate (speed) while moving on the X-Y plane." +msgstr "Feedrate (speed) while moving on the X-Y plane." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:214 +msgid "Feedrate Z:" +msgstr "Feedrate Z:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:216 +msgid "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." +msgstr "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:223 +msgid "Feedrate Z Dispense:" +msgstr "Feedrate Z Dispense:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:225 +msgid "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." +msgstr "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:232 +msgid "Spindle Speed FWD:" +msgstr "Spindle Speed FWD:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:234 +msgid "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." +msgstr "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:241 +msgid "Dwell FWD:" +msgstr "Dwell FWD:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:243 +msgid "Pause after solder dispensing." +msgstr "Pause after solder dispensing." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:249 +msgid "Spindle Speed REV:" +msgstr "Spindle Speed REV:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:251 +msgid "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." +msgstr "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:258 +msgid "Dwell REV:" +msgstr "Dwell REV:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:260 +msgid "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." +msgstr "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:266 +msgid "PostProcessors:" +msgstr "PostProcessors:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:268 +msgid "Files that control the GCode generation." +msgstr "Files that control the GCode generation." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:279 +msgid "Generate GCode" +msgstr "Generate GCode" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:281 +msgid "" +"Generate GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"Generate GCode for Solder Paste dispensing\n" +"on PCB pads." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:297 +msgid "STEP 2:" +msgstr "STEP 2:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:299 +msgid "" +"Second step is to create a solder paste dispensing\n" +"geometry out of an Solder Paste Mask Gerber file." +msgstr "" +"Second step is to create a solder paste dispensing\n" +"geometry out of an Solder Paste Mask Gerber file." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:315 +msgid "Geo Result:" +msgstr "Geo Result:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:317 +msgid "" +"Geometry Solder Paste object.\n" +"The name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"Geometry Solder Paste object.\n" +"The name of the object has to end in:\n" +"'_solderpaste' as a protection." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:326 +msgid "STEP 3:" +msgstr "STEP 3:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:328 +msgid "" +"Third step is to select a solder paste dispensing geometry,\n" +"and then generate a CNCJob object.\n" +"\n" +"REMEMBER: if you want to create a CNCJob with new parameters,\n" +"first you need to generate a geometry with those new params,\n" +"and only after that you can generate an updated CNCJob." +msgstr "" +"Third step is to select a solder paste dispensing geometry,\n" +"and then generate a CNCJob object.\n" +"\n" +"REMEMBER: if you want to create a CNCJob with new parameters,\n" +"first you need to generate a geometry with those new params,\n" +"and only after that you can generate an updated CNCJob." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:348 +msgid "CNC Result:" +msgstr "CNC Result:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:350 +msgid "" +"CNCJob Solder paste object.\n" +"In order to enable the GCode save section,\n" +"the name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" +"CNCJob Solder paste object.\n" +"In order to enable the GCode save section,\n" +"the name of the object has to end in:\n" +"'_solderpaste' as a protection." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:360 +msgid "View GCode" +msgstr "View GCode" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:362 +msgid "" +"View the generated GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" +"View the generated GCode for Solder Paste dispensing\n" +"on PCB pads." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:366 +msgid "Save GCode" +msgstr "Save GCode" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:368 +msgid "" +"Save the generated GCode for Solder Paste dispensing\n" +"on PCB pads, to a file." +msgstr "" +"Save the generated GCode for Solder Paste dispensing\n" +"on PCB pads, to a file." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:372 +msgid "STEP 4:" +msgstr "STEP 4:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:374 +msgid "" +"Fourth step (and last) is to select a CNCJob made from \n" +"a solder paste dispensing geometry, and then view/save it's GCode." +msgstr "" +"Fourth step (and last) is to select a CNCJob made from \n" +"a solder paste dispensing geometry, and then view/save it's GCode." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:402 +msgid "Delete Object" +msgstr "Delete Object" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:741 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:812 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:746 +msgid "[WARNING_NOTCL] Please enter a tool diameter to add, in Float format." +msgstr "" +"[WARNING_NOTCL] Please enter a tool diameter to add, in Float format." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:750 +msgid "" +"[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " +"format." +msgstr "" +"[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " +"format." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:774 +msgid "" +"[WARNING_NOTCL] Adding Nozzle tool cancelled. Tool already in Tool Table." +msgstr "" +"[WARNING_NOTCL] Adding Nozzle tool cancelled. Tool already in Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:779 +msgid "[success] New Nozzle tool added to Tool Table." +msgstr "[success] New Nozzle tool added to Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:821 +msgid "[success] Nozzle tool from Tool Table was edited." +msgstr "[success] Nozzle tool from Tool Table was edited." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:832 +msgid "" +"[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool " +"Table." +msgstr "" +"[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool " +"Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:877 +msgid "[WARNING_NOTCL] Delete failed. Select a Nozzle tool to delete." +msgstr "[WARNING_NOTCL] Delete failed. Select a Nozzle tool to delete." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:882 +msgid "[success] Nozzle tool(s) deleted from Tool Table." +msgstr "[success] Nozzle tool(s) deleted from Tool Table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:937 +msgid "[WARNING_NOTCL] No SolderPaste mask Gerber object loaded." +msgstr "[WARNING_NOTCL] No SolderPaste mask Gerber object loaded." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:954 +msgid "Creating Solder Paste dispensing geometry." +msgstr "Creating Solder Paste dispensing geometry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:966 +msgid "[WARNING_NOTCL] No Nozzle tools in the tool table." +msgstr "[WARNING_NOTCL] No Nozzle tools in the tool table." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1092 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1147 +msgid "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..." +msgstr "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1095 +msgid "[success] Solder Paste geometry generated successfully..." +msgstr "[success] Solder Paste geometry generated successfully..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1101 +msgid "" +"[WARNING_NOTCL] Some or all pads have no solder due of inadequate nozzle " +"diameters..." +msgstr "" +"[WARNING_NOTCL] Some or all pads have no solder due of inadequate nozzle " +"diameters..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1115 +msgid "Generating Solder Paste dispensing geometry..." +msgstr "Generating Solder Paste dispensing geometry..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1135 +msgid "[WARNING_NOTCL] There is no Geometry object available." +msgstr "[WARNING_NOTCL] There is no Geometry object available." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1139 +msgid "" +"[WARNING_NOTCL] This Geometry can't be processed. NOT a solder_paste_tool " +"geometry." +msgstr "" +"[WARNING_NOTCL] This Geometry can't be processed. NOT a solder_paste_tool " +"geometry." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1244 +msgid "[success] ToolSolderPaste CNCjob created: %s" +msgstr "[success] ToolSolderPaste CNCjob created: %s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1276 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1280 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1331 +msgid "" +"[WARNING_NOTCL] This CNCJob object can't be processed. NOT a " +"solder_paste_tool CNCJob object." +msgstr "" +"[WARNING_NOTCL] This CNCJob object can't be processed. NOT a " +"solder_paste_tool CNCJob object." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1303 +msgid "[ERROR_NOTCL] No Gcode in the object..." +msgstr "[ERROR_NOTCL] No Gcode in the object..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1312 +msgid "[ERROR] ToolSolderPaste.on_view_gcode() -->%s" +msgstr "[ERROR] ToolSolderPaste.on_view_gcode() -->%s" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1349 +msgid "[WARNING_NOTCL] Export Machine Code cancelled ..." +msgstr "[WARNING_NOTCL] Export Machine Code cancelled ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1375 +msgid "[WARNING_NOTCL] No such file or directory" +msgstr "[WARNING_NOTCL] No such file or directory" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1379 +msgid "[success] Solder paste dispenser GCode file saved to: %s" +msgstr "[success] Solder paste dispenser GCode file saved to: %s" diff --git a/locale/en/LC_MESSAGES/ToolTransform.mo b/locale/en/LC_MESSAGES/ToolTransform.mo new file mode 100644 index 00000000..d136e113 Binary files /dev/null and b/locale/en/LC_MESSAGES/ToolTransform.mo differ diff --git a/locale/en/LC_MESSAGES/ToolTransform.po b/locale/en/LC_MESSAGES/ToolTransform.po new file mode 100644 index 00000000..b400f42f --- /dev/null +++ b/locale/en/LC_MESSAGES/ToolTransform.po @@ -0,0 +1,412 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 13:16+0200\n" +"PO-Revision-Date: 2019-03-10 13:26+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:14 +msgid "Object Transform" +msgstr "Object Transform" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:15 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:73 +msgid "Rotate" +msgstr "Rotate" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:16 +msgid "Skew/Shear" +msgstr "Skew/Shear" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:17 +msgid "Scale" +msgstr "Scale" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:18 +msgid "Mirror (Flip)" +msgstr "Mirror (Flip)" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:19 +msgid "Offset" +msgstr "Offset" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:59 +msgid "Angle:" +msgstr "Angle:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:61 +msgid "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." +msgstr "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:75 +msgid "" +"Rotate the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Rotate the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:98 +msgid "Angle X:" +msgstr "Angle X:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:100 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:118 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." +msgstr "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:109 +msgid "Skew X" +msgstr "Skew X" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:111 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:129 +msgid "" +"Skew/shear the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" +"Skew/shear the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:116 +msgid "Angle Y:" +msgstr "Angle Y:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:127 +msgid "Skew Y" +msgstr "Skew Y" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:155 +msgid "Factor X:" +msgstr "Factor X:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:157 +msgid "Factor for Scale action over X axis." +msgstr "Factor for Scale action over X axis." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:165 +msgid "Scale X" +msgstr "Scale X" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:167 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:184 +msgid "" +"Scale the selected object(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" +"Scale the selected object(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:172 +msgid "Factor Y:" +msgstr "Factor Y:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:174 +msgid "Factor for Scale action over Y axis." +msgstr "Factor for Scale action over Y axis." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:182 +msgid "Scale Y" +msgstr "Scale Y" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:191 +msgid "Link" +msgstr "Link" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:193 +msgid "" +"Scale the selected object(s)\n" +"using the Scale Factor X for both axis." +msgstr "" +"Scale the selected object(s)\n" +"using the Scale Factor X for both axis." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:199 +msgid "Scale Reference" +msgstr "Scale Reference" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:201 +msgid "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." +msgstr "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:229 +msgid "Value X:" +msgstr "Value X:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:231 +msgid "Value for Offset action on X axis." +msgstr "Value for Offset action on X axis." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:239 +msgid "Offset X" +msgstr "Offset X" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:241 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:258 +msgid "" +"Offset the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects.\n" +msgstr "" +"Offset the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects.\n" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:246 +msgid "Value Y:" +msgstr "Value Y:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:248 +msgid "Value for Offset action on Y axis." +msgstr "Value for Offset action on Y axis." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:256 +msgid "Offset Y" +msgstr "Offset Y" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:286 +msgid "Flip on X" +msgstr "Flip on X" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:288 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:296 +msgid "" +"Flip the selected object(s) over the X axis.\n" +"Does not create a new object.\n" +" " +msgstr "" +"Flip the selected object(s) over the X axis.\n" +"Does not create a new object.\n" +" " + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:294 +msgid "Flip on Y" +msgstr "Flip on Y" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:303 +msgid "Ref Pt" +msgstr "Ref Pt" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:305 +msgid "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:316 +msgid "Point:" +msgstr "Point:" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:318 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" +msgstr "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:328 +msgid "Add" +msgstr "Add" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:330 +msgid "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." +msgstr "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:386 +msgid "Transform Tool" +msgstr "Transform Tool" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:456 +msgid "[ERROR_NOTCL]Wrong value format entered for Rotate, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Rotate, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:490 +msgid "[ERROR_NOTCL]Wrong value format entered for Skew X, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Skew X, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:508 +msgid "[ERROR_NOTCL]Wrong value format entered for Skew Y, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Skew Y, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:526 +msgid "[ERROR_NOTCL]Wrong value format entered for Scale X, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Scale X, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:560 +msgid "[ERROR_NOTCL]Wrong value format entered for Scale Y, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Scale Y, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:589 +msgid "[ERROR_NOTCL]Wrong value format entered for Offset X, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Offset X, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:607 +msgid "[ERROR_NOTCL]Wrong value format entered for Offset Y, use a number." +msgstr "[ERROR_NOTCL]Wrong value format entered for Offset Y, use a number." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:625 +msgid "[WARNING_NOTCL] No object selected. Please Select an object to rotate!" +msgstr "[WARNING_NOTCL] No object selected. Please Select an object to rotate!" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:628 +msgid "Appying Rotate" +msgstr "Appying Rotate" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:653 +msgid "CNCJob objects can't be rotated." +msgstr "CNCJob objects can't be rotated." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:662 +msgid "[success]Rotate done ..." +msgstr "[success]Rotate done ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:666 +msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." +msgstr "[ERROR_NOTCL] Due of %s, rotation movement was not executed." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:677 +msgid "[WARNING_NOTCL] No object selected. Please Select an object to flip!" +msgstr "[WARNING_NOTCL] No object selected. Please Select an object to flip!" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:680 +msgid "Applying Flip" +msgstr "Applying Flip" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:712 +msgid "CNCJob objects can't be mirrored/flipped." +msgstr "CNCJob objects can't be mirrored/flipped." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:723 +msgid "[success]Flip on the Y axis done ..." +msgstr "[success]Flip on the Y axis done ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:733 +msgid "[success]Flip on the X axis done ..." +msgstr "[success]Flip on the X axis done ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:738 +msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." +msgstr "[ERROR_NOTCL] Due of %s, Flip action was not executed." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:747 +msgid "[WARNING_NOTCL] No object selected. Please Select an object to shear/skew!" +msgstr "[WARNING_NOTCL] No object selected. Please Select an object to shear/skew!" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:750 +msgid "Applying Skew" +msgstr "Applying Skew" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:769 +msgid "CNCJob objects can't be skewed." +msgstr "CNCJob objects can't be skewed." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:781 +msgid "[success]Skew on the %s axis done ..." +msgstr "[success]Skew on the %s axis done ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:785 +msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." +msgstr "[ERROR_NOTCL] Due of %s, Skew action was not executed." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:796 +msgid "[WARNING_NOTCL] No object selected. Please Select an object to scale!" +msgstr "[WARNING_NOTCL] No object selected. Please Select an object to scale!" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:799 +msgid "Applying Scale" +msgstr "Applying Scale" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:829 +msgid "CNCJob objects can't be scaled." +msgstr "CNCJob objects can't be scaled." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:837 +msgid "[success] Scale on the %s axis done ..." +msgstr "[success] Scale on the %s axis done ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:840 +msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." +msgstr "[ERROR_NOTCL] Due of %s, Scale action was not executed." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:849 +msgid "[WARNING_NOTCL] No object selected. Please Select an object to offset!" +msgstr "[WARNING_NOTCL] No object selected. Please Select an object to offset!" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:852 +msgid "Applying Offset" +msgstr "Applying Offset" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:870 +msgid "CNCJob objects can't be offseted." +msgstr "CNCJob objects can't be offseted." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:882 +msgid "[success]Offset on the %s axis done ..." +msgstr "[success]Offset on the %s axis done ..." + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:886 +msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." +msgstr "[ERROR_NOTCL] Due of %s, Offset action was not executed." diff --git a/locale/en/LC_MESSAGES/camlib.mo b/locale/en/LC_MESSAGES/camlib.mo new file mode 100644 index 00000000..f571db1c Binary files /dev/null and b/locale/en/LC_MESSAGES/camlib.mo differ diff --git a/locale/en/LC_MESSAGES/camlib.po b/locale/en/LC_MESSAGES/camlib.po new file mode 100644 index 00000000..6d2a60ed --- /dev/null +++ b/locale/en/LC_MESSAGES/camlib.po @@ -0,0 +1,233 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2019-03-10 02:11+0200\n" +"PO-Revision-Date: 2019-03-10 02:35+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:202 +msgid "[ERROR_NOTCL] self.solid_geometry is neither BaseGeometry or list." +msgstr "[ERROR_NOTCL] self.solid_geometry is neither BaseGeometry or list." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1389 +msgid "[success]Object was mirrored ..." +msgstr "[success]Object was mirrored ..." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1391 +msgid "[ERROR_NOTCL] Failed to mirror. No object selected" +msgstr "[ERROR_NOTCL] Failed to mirror. No object selected" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1427 +msgid "[success]Object was rotated ..." +msgstr "[success]Object was rotated ..." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1429 +msgid "[ERROR_NOTCL] Failed to rotate. No object selected" +msgstr "[ERROR_NOTCL] Failed to rotate. No object selected" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1463 +msgid "[success]Object was skewed ..." +msgstr "[success]Object was skewed ..." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1465 +msgid "[ERROR_NOTCL] Failed to skew. No object selected" +msgstr "[ERROR_NOTCL] Failed to skew. No object selected" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:2641 D:\1.DEV\FlatCAM_beta\camlib.py:2701 +msgid "[WARNING] Coordinates missing, line ignored: %s" +msgstr "[WARNING] Coordinates missing, line ignored: %s" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:2642 D:\1.DEV\FlatCAM_beta\camlib.py:2702 +msgid "[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!" +msgstr "[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:2671 +msgid "" +"[ERROR] Region does not have enough points. File will be processed but there " +"are parser errors. Line number: %s" +msgstr "" +"[ERROR] Region does not have enough points. File will be processed but there " +"are parser errors. Line number: %s" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3025 +msgid "" +"[ERROR]Gerber Parser ERROR.\n" +"%s:" +msgstr "" +"[ERROR]Gerber Parser ERROR.\n" +"%s:" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3203 D:\1.DEV\FlatCAM_beta\camlib.py:3212 +msgid "[ERROR_NOTCL] Scale factor has to be a number: integer or float." +msgstr "[ERROR_NOTCL] Scale factor has to be a number: integer or float." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3241 +msgid "[success]Gerber Scale done." +msgstr "[success]Gerber Scale done." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3274 +msgid "" +"[ERROR_NOTCL]An (x,y) pair of values are needed. Probable you entered only " +"one value in the Offset field." +msgstr "" +"[ERROR_NOTCL]An (x,y) pair of values are needed. Probable you entered only " +"one value in the Offset field." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3298 +msgid "[success]Gerber Offset done." +msgstr "[success]Gerber Offset done." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3674 +msgid "[ERROR_NOTCL] This is GCODE mark: %s" +msgstr "[ERROR_NOTCL] This is GCODE mark: %s" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4203 +msgid "[ERROR_NOTCL] An internal error has ocurred. See shell.\n" +msgstr "[ERROR_NOTCL] An internal error has ocurred. See shell.\n" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4204 +msgid "" +"[ERROR] Excellon Parser error.\n" +"Parsing Failed. Line %d: %s\n" +msgstr "" +"[ERROR] Excellon Parser error.\n" +"Parsing Failed. Line %d: %s\n" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4281 +msgid "" +"[WARNING] Excellon.create_geometry() -> a drill location was skipped due of " +"not having a tool associated.\n" +"Check the resulting GCode." +msgstr "" +"[WARNING] Excellon.create_geometry() -> a drill location was skipped due of " +"not having a tool associated.\n" +"Check the resulting GCode." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4817 +msgid "[ERROR] There is no such parameter: %s" +msgstr "[ERROR] There is no such parameter: %s" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4882 +msgid "" +"[WARNING] The Cut Z parameter has positive value. It is the depth value to " +"drill into material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo " +"therefore the app will convert the value to negative. Check the resulting " +"CNC code (Gcode etc)." +msgstr "" +"[WARNING] The Cut Z parameter has positive value. It is the depth value to " +"drill into material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo " +"therefore the app will convert the value to negative. Check the resulting " +"CNC code (Gcode etc)." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4889 D:\1.DEV\FlatCAM_beta\camlib.py:5357 +#: D:\1.DEV\FlatCAM_beta\camlib.py:5628 +msgid "" +"[WARNING] The Cut Z parameter is zero. There will be no cut, skipping %s file" +msgstr "" +"[WARNING] The Cut Z parameter is zero. There will be no cut, skipping %s file" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4903 D:\1.DEV\FlatCAM_beta\camlib.py:5334 +#: D:\1.DEV\FlatCAM_beta\camlib.py:5605 +msgid "" +"[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the " +"format (x, y) \n" +"but now there is only one value, not two. " +msgstr "" +"[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the " +"format (x, y) \n" +"but now there is only one value, not two. " + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5105 D:\1.DEV\FlatCAM_beta\camlib.py:5195 +#: D:\1.DEV\FlatCAM_beta\camlib.py:5246 +msgid "[ERROR_NOTCL]The loaded Excellon file has no drills ..." +msgstr "[ERROR_NOTCL]The loaded Excellon file has no drills ..." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5200 +msgid "[ERROR_NOTCL] Wrong optimization type selected." +msgstr "[ERROR_NOTCL] Wrong optimization type selected." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5345 D:\1.DEV\FlatCAM_beta\camlib.py:5616 +msgid "" +"[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad " +"combinations of other parameters." +msgstr "" +"[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad " +"combinations of other parameters." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5350 D:\1.DEV\FlatCAM_beta\camlib.py:5621 +msgid "" +"[WARNING] The Cut Z parameter has positive value. It is the depth value to " +"cut into material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo " +"therefore the app will convert the value to negative.Check the resulting CNC " +"code (Gcode etc)." +msgstr "" +"[WARNING] The Cut Z parameter has positive value. It is the depth value to " +"cut into material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo " +"therefore the app will convert the value to negative.Check the resulting CNC " +"code (Gcode etc)." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5362 D:\1.DEV\FlatCAM_beta\camlib.py:5633 +msgid "[ERROR_NOTCL] Travel Z parameter is None or zero." +msgstr "[ERROR_NOTCL] Travel Z parameter is None or zero." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5366 D:\1.DEV\FlatCAM_beta\camlib.py:5637 +msgid "" +"[WARNING] The Travel Z parameter has negative value. It is the height value " +"to travel between cuts.\n" +"The Z Travel parameter needs to have a positive value, assuming it is a typo " +"therefore the app will convert the value to positive.Check the resulting CNC " +"code (Gcode etc)." +msgstr "" +"[WARNING] The Travel Z parameter has negative value. It is the height value " +"to travel between cuts.\n" +"The Z Travel parameter needs to have a positive value, assuming it is a typo " +"therefore the app will convert the value to positive.Check the resulting CNC " +"code (Gcode etc)." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5373 D:\1.DEV\FlatCAM_beta\camlib.py:5644 +msgid "" +"[WARNING] The Z Travel parameter is zero. This is dangerous, skipping %s file" +msgstr "" +"[WARNING] The Z Travel parameter is zero. This is dangerous, skipping %s file" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5503 +msgid "[ERROR]Expected a Geometry, got %s" +msgstr "[ERROR]Expected a Geometry, got %s" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5509 +msgid "" +"[ERROR_NOTCL]Trying to generate a CNC Job from a Geometry object without " +"solid_geometry." +msgstr "" +"[ERROR_NOTCL]Trying to generate a CNC Job from a Geometry object without " +"solid_geometry." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5548 +msgid "" +"[ERROR_NOTCL]The Tool Offset value is too negative to use for the " +"current_geometry.\n" +"Raise the value (in module) and try again." +msgstr "" +"[ERROR_NOTCL]The Tool Offset value is too negative to use for the " +"current_geometry.\n" +"Raise the value (in module) and try again." + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5770 +msgid "[ERROR_NOTCL] There is no tool data in the SolderPaste geometry." +msgstr "[ERROR_NOTCL] There is no tool data in the SolderPaste geometry." diff --git a/locale/es/LC_MESSAGES/ToolMeasurement.mo b/locale/es/LC_MESSAGES/ToolMeasurement.mo deleted file mode 100644 index 4504f620..00000000 Binary files a/locale/es/LC_MESSAGES/ToolMeasurement.mo and /dev/null differ diff --git a/locale/es/LC_MESSAGES/ToolMeasurement.po b/locale/es/LC_MESSAGES/ToolMeasurement.po deleted file mode 100644 index 1b39297a..00000000 --- a/locale/es/LC_MESSAGES/ToolMeasurement.po +++ /dev/null @@ -1,92 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR ORGANIZATION -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: 2019-03-07 23:07+0200\n" -"PO-Revision-Date: 2019-03-07 23:19+0200\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.2.1\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Language: en\n" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:28 -msgid "Measurement" -msgstr "Measurement" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -msgid "Start" -msgstr "Start" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Coords" -msgstr "Coords" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:50 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:101 -msgid "This is measuring Start point coordinates." -msgstr "This is measuring Start point coordinates." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Stop" -msgstr "Stop" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:53 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:106 -msgid "This is the measuring Stop point coordinates." -msgstr "This is the measuring Stop point coordinates." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:56 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:111 -msgid "This is the distance measured over the X axis." -msgstr "This is the distance measured over the X axis." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:59 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:117 -msgid "This is the distance measured over the Y axis." -msgstr "This is the distance measured over the Y axis." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:61 -msgid "DISTANCE" -msgstr "DISTANCE" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:62 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:123 -msgid "This is the point to point Euclidian distance." -msgstr "This is the point to point Euclidian distance." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:65 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:72 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:79 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:86 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:93 -msgid "Those are the units in which the distance is measured." -msgstr "Those are the units in which the distance is measured." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:126 -msgid "Measure" -msgstr "Measure" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:185 -msgid "Meas. Tool" -msgstr "Meas. Tool" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:278 -msgid "MEASURING: Click on the Start point ..." -msgstr "MEASURING: Click on the Start point ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:307 -msgid "MEASURING: Click on the Destination point ..." -msgstr "MEASURING: Click on the Destination point ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:328 -msgid "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" -msgstr "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" diff --git a/locale/fr/LC_MESSAGES/ToolMeasurement.mo b/locale/fr/LC_MESSAGES/ToolMeasurement.mo deleted file mode 100644 index 4504f620..00000000 Binary files a/locale/fr/LC_MESSAGES/ToolMeasurement.mo and /dev/null differ diff --git a/locale/fr/LC_MESSAGES/ToolMeasurement.po b/locale/fr/LC_MESSAGES/ToolMeasurement.po deleted file mode 100644 index 1b39297a..00000000 --- a/locale/fr/LC_MESSAGES/ToolMeasurement.po +++ /dev/null @@ -1,92 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR ORGANIZATION -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: 2019-03-07 23:07+0200\n" -"PO-Revision-Date: 2019-03-07 23:19+0200\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.2.1\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Language: en\n" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:28 -msgid "Measurement" -msgstr "Measurement" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -msgid "Start" -msgstr "Start" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Coords" -msgstr "Coords" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:50 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:101 -msgid "This is measuring Start point coordinates." -msgstr "This is measuring Start point coordinates." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Stop" -msgstr "Stop" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:53 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:106 -msgid "This is the measuring Stop point coordinates." -msgstr "This is the measuring Stop point coordinates." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:56 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:111 -msgid "This is the distance measured over the X axis." -msgstr "This is the distance measured over the X axis." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:59 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:117 -msgid "This is the distance measured over the Y axis." -msgstr "This is the distance measured over the Y axis." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:61 -msgid "DISTANCE" -msgstr "DISTANCE" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:62 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:123 -msgid "This is the point to point Euclidian distance." -msgstr "This is the point to point Euclidian distance." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:65 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:72 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:79 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:86 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:93 -msgid "Those are the units in which the distance is measured." -msgstr "Those are the units in which the distance is measured." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:126 -msgid "Measure" -msgstr "Measure" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:185 -msgid "Meas. Tool" -msgstr "Meas. Tool" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:278 -msgid "MEASURING: Click on the Start point ..." -msgstr "MEASURING: Click on the Start point ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:307 -msgid "MEASURING: Click on the Destination point ..." -msgstr "MEASURING: Click on the Destination point ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:328 -msgid "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" -msgstr "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" diff --git a/locale/it/LC_MESSAGES/ToolMeasurement.mo b/locale/it/LC_MESSAGES/ToolMeasurement.mo deleted file mode 100644 index 4504f620..00000000 Binary files a/locale/it/LC_MESSAGES/ToolMeasurement.mo and /dev/null differ diff --git a/locale/it/LC_MESSAGES/ToolMeasurement.po b/locale/it/LC_MESSAGES/ToolMeasurement.po deleted file mode 100644 index 1b39297a..00000000 --- a/locale/it/LC_MESSAGES/ToolMeasurement.po +++ /dev/null @@ -1,92 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR ORGANIZATION -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: 2019-03-07 23:07+0200\n" -"PO-Revision-Date: 2019-03-07 23:19+0200\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.2.1\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Language: en\n" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:28 -msgid "Measurement" -msgstr "Measurement" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -msgid "Start" -msgstr "Start" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Coords" -msgstr "Coords" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:50 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:101 -msgid "This is measuring Start point coordinates." -msgstr "This is measuring Start point coordinates." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Stop" -msgstr "Stop" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:53 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:106 -msgid "This is the measuring Stop point coordinates." -msgstr "This is the measuring Stop point coordinates." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:56 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:111 -msgid "This is the distance measured over the X axis." -msgstr "This is the distance measured over the X axis." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:59 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:117 -msgid "This is the distance measured over the Y axis." -msgstr "This is the distance measured over the Y axis." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:61 -msgid "DISTANCE" -msgstr "DISTANCE" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:62 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:123 -msgid "This is the point to point Euclidian distance." -msgstr "This is the point to point Euclidian distance." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:65 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:72 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:79 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:86 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:93 -msgid "Those are the units in which the distance is measured." -msgstr "Those are the units in which the distance is measured." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:126 -msgid "Measure" -msgstr "Measure" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:185 -msgid "Meas. Tool" -msgstr "Meas. Tool" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:278 -msgid "MEASURING: Click on the Start point ..." -msgstr "MEASURING: Click on the Start point ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:307 -msgid "MEASURING: Click on the Destination point ..." -msgstr "MEASURING: Click on the Destination point ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:328 -msgid "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" -msgstr "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" diff --git a/locale/ro/LC_MESSAGES/ToolMeasurement.mo b/locale/ro/LC_MESSAGES/ToolMeasurement.mo deleted file mode 100644 index 8f591bb1..00000000 Binary files a/locale/ro/LC_MESSAGES/ToolMeasurement.mo and /dev/null differ diff --git a/locale/ro/LC_MESSAGES/ToolMeasurement.po b/locale/ro/LC_MESSAGES/ToolMeasurement.po deleted file mode 100644 index 51e33de9..00000000 --- a/locale/ro/LC_MESSAGES/ToolMeasurement.po +++ /dev/null @@ -1,92 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR ORGANIZATION -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: 2019-03-07 23:14+0200\n" -"PO-Revision-Date: 2019-03-07 23:39+0200\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.2.1\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n==0 || (n!=1 && n%100>=1 && n%100<=19) ? 1 : 2);\n" -"Language: ro\n" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:28 -msgid "Measurement" -msgstr "Măsurare" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -msgid "Start" -msgstr "Plecare" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Coords" -msgstr "Coordonatele" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:50 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:101 -msgid "This is measuring Start point coordinates." -msgstr "Aceasta măsoară coordonatele punctului de start." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Stop" -msgstr "Oprire" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:53 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:106 -msgid "This is the measuring Stop point coordinates." -msgstr "Acesta masoara coordonatele punctului de stop." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:56 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:111 -msgid "This is the distance measured over the X axis." -msgstr "Aceasta este distanța măsurată pe axa X." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:59 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:117 -msgid "This is the distance measured over the Y axis." -msgstr "Aceasta este distanța măsurată pe axa Y." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:61 -msgid "DISTANCE" -msgstr "DISTANTA" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:62 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:123 -msgid "This is the point to point Euclidian distance." -msgstr "Aceata este distanta Euclidiana de la punct la punct." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:65 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:72 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:79 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:86 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:93 -msgid "Those are the units in which the distance is measured." -msgstr "Aestea sunt unitatile in care se masoara distanta." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:126 -msgid "Measure" -msgstr "Masoara" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:185 -msgid "Meas. Tool" -msgstr "Unealta de masurare" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:278 -msgid "MEASURING: Click on the Start point ..." -msgstr "Masurare: Click pe punctul de Start ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:307 -msgid "MEASURING: Click on the Destination point ..." -msgstr "Masurare: Click pe punctul Destinatie ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:328 -msgid "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" -msgstr "Masurare: Rezultat D(x) = %.4f | D(y) = %.4f | Distanta = %.4f" diff --git a/locale/ru/LC_MESSAGES/ToolMeasurement.mo b/locale/ru/LC_MESSAGES/ToolMeasurement.mo deleted file mode 100644 index 4504f620..00000000 Binary files a/locale/ru/LC_MESSAGES/ToolMeasurement.mo and /dev/null differ diff --git a/locale/ru/LC_MESSAGES/ToolMeasurement.po b/locale/ru/LC_MESSAGES/ToolMeasurement.po deleted file mode 100644 index 1b39297a..00000000 --- a/locale/ru/LC_MESSAGES/ToolMeasurement.po +++ /dev/null @@ -1,92 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR ORGANIZATION -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: 2019-03-07 23:07+0200\n" -"PO-Revision-Date: 2019-03-07 23:19+0200\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.2.1\n" -"Last-Translator: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Language: en\n" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:28 -msgid "Measurement" -msgstr "Measurement" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -msgid "Start" -msgstr "Start" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Coords" -msgstr "Coords" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:50 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:101 -msgid "This is measuring Start point coordinates." -msgstr "This is measuring Start point coordinates." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:52 -msgid "Stop" -msgstr "Stop" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:53 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:106 -msgid "This is the measuring Stop point coordinates." -msgstr "This is the measuring Stop point coordinates." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:56 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:111 -msgid "This is the distance measured over the X axis." -msgstr "This is the distance measured over the X axis." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:59 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:117 -msgid "This is the distance measured over the Y axis." -msgstr "This is the distance measured over the Y axis." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:61 -msgid "DISTANCE" -msgstr "DISTANCE" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:62 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:123 -msgid "This is the point to point Euclidian distance." -msgstr "This is the point to point Euclidian distance." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:65 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:72 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:79 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:86 -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:93 -msgid "Those are the units in which the distance is measured." -msgstr "Those are the units in which the distance is measured." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:126 -msgid "Measure" -msgstr "Measure" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:185 -msgid "Meas. Tool" -msgstr "Meas. Tool" - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:278 -msgid "MEASURING: Click on the Start point ..." -msgstr "MEASURING: Click on the Start point ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:307 -msgid "MEASURING: Click on the Destination point ..." -msgstr "MEASURING: Click on the Destination point ..." - -#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:328 -msgid "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" -msgstr "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" diff --git a/locale_template/FlatCAMApp.pot b/locale_template/FlatCAMApp.pot new file mode 100644 index 00000000..becfe2b1 --- /dev/null +++ b/locale_template/FlatCAMApp.pot @@ -0,0 +1,808 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 02:00+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:854 +msgid "[ERROR] Could not find the Language files. The App strings are missing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1676 +msgid "Open cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1690 +msgid "Open Config file failed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1871 +msgid "[WARNING_NOTCL] Editing a MultiGeo Geometry is not possible for the moment." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1892 +msgid "[WARNING_NOTCL]Select a Geometry or Excellon Object to edit." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1903 +msgid "[WARNING_NOTCL]Editor is activated ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1938 +msgid "[WARNING] Object empty after edit." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1947 +msgid "[WARNING_NOTCL]Select a Geometry or Excellon Object to update." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:1960 +msgid "[selected] %s is updated, returning to App..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2283 +msgid "[ERROR] Could not load defaults file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2295 +msgid "[ERROR] Failed to parse defaults file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2324 +msgid "[WARNING_NOTCL]FlatCAM preferences import cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2332 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2806 +msgid "[ERROR_NOTCL] Could not load defaults file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2340 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2815 +msgid "[ERROR_NOTCL] Failed to parse defaults file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2343 +msgid "[success]Imported Defaults from %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2363 +msgid "[WARNING_NOTCL]FlatCAM preferences export cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2379 +msgid "[ERROR_NOTCL]Could not load defaults file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2398 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2829 +msgid "[ERROR_NOTCL] Failed to write defaults to file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2450 +msgid "[ERROR_NOTCL]Failed to open recent files file for writing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2535 +msgid "" +"[ERROR_NOTCL] An internal error has ocurred. See shell.\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2536 +msgid "" +"Object (%s) failed because: %s \n" +"\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2556 +msgid "Converting units to " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2617 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2620 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2623 +msgid "[selected]%s created/selected: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2861 +msgid "[success]Defaults saved." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2882 +msgid "[ERROR_NOTCL] Could not load factory defaults file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2891 +msgid "[ERROR_NOTCL] Failed to parse factory defaults file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2905 +msgid "[ERROR_NOTCL] Failed to write factory defaults to file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2909 +msgid "Factory defaults saved." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2915 +msgid "" +"There are files/objects modified in FlatCAM. \n" +"Do you want to Save the project?" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2918 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5176 +msgid "Save changes" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:2967 +msgid "" +"[ERROR] Failed join. The Geometry objects are of different types.\n" +"At least one is MultiGeo type and the other is SingleGeo type. A possibility is to convert from one to another and retry joining \n" +"but in the case of converting from MultiGeo to SingleGeo, informations may be lost and the result may not be what was expected. \n" +"Check the generated GCODE." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3008 +msgid "[ERROR_NOTCL]Failed. Excellon joining works only on Excellon objects." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3030 +msgid "[ERROR_NOTCL]Failed. Gerber joining works only on Gerber objects." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3045 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3070 +msgid "[ERROR_NOTCL]Failed. Select a Geometry Object and try again." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3049 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3074 +msgid "[ERROR_NOTCL]Expected a FlatCAMGeometry, got %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3062 +msgid "[success] A Geometry object was converted to MultiGeo type." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3088 +msgid "[success] A Geometry object was converted to SingleGeo type." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3272 +msgid "[success]Converted units to %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3283 +msgid "[WARNING_NOTCL]Units conversion cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3907 +msgid "[WARNING_NOTCL]Export Code cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3917 +msgid "[WARNING] No such file or directory" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3924 +msgid "Saved to: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3987 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4019 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4030 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4041 +msgid "[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3992 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4024 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4035 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4046 +msgid "[WARNING_NOTCL] Adding Tool cancelled ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:3995 +msgid "" +"Adding Tool works only when Advanced is checked.\n" +"Go to Preferences -> General - Show Advanced Options." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4100 +msgid "Object(s) deleted ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4104 +msgid "Failed. No object(s) selected..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4106 +msgid "Save the work in Editor and try again ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4119 +msgid "Click to set the origin ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4131 +msgid "Jump to ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4132 +msgid "Enter the coordinates in format X,Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4139 +msgid "Wrong coordinates. Enter coordinates in format: X,Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4154 +msgid "Done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4286 +msgid "[success] Origin set ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4324 +msgid "[WARNING_NOTCL] No object selected to Flip on Y axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4349 +msgid "[success] Flip on Y axis done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4351 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4391 +msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4364 +msgid "[WARNING_NOTCL] No object selected to Flip on X axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4389 +msgid "[success] Flip on X axis done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4404 +msgid "[WARNING_NOTCL] No object selected to Rotate." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4407 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4452 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4483 +msgid "Enter the Angle value:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4407 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4452 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4483 +msgid "Transform" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4437 +msgid "[success] Rotation done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4439 +msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4450 +msgid "[WARNING_NOTCL] No object selected to Skew/Shear on X axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4471 +msgid "[success] Skew on X axis done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4481 +msgid "[WARNING_NOTCL] No object selected to Skew/Shear on Y axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4502 +msgid "[success] Skew on Y axis done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4598 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4625 +msgid "[WARNING_NOTCL] Please enter a grid value with non-zero value, in Float format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4604 +msgid "[success] New Grid added ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4607 +msgid "[WARNING_NOTCL] Grid already exists ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4610 +msgid "[WARNING_NOTCL] Adding New Grid cancelled ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4632 +msgid "[ERROR_NOTCL] Grid Value does not exist ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4635 +msgid "[success] Grid Value deleted ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4638 +msgid "[WARNING_NOTCL] Delete Grid value cancelled ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4677 +msgid "[WARNING_NOTCL]No object selected to copy it's name" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4681 +msgid "Name copied on clipboard ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4976 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4979 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4982 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4985 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:4999 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5002 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5005 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5008 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5047 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5050 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5053 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5056 +msgid "[selected]%s selected" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5173 +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 "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5191 +msgid "[success] New Project created..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5272 +msgid "[WARNING_NOTCL] Select an Gerber or Excellon file to view it's source file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5279 +msgid "[WARNING_NOTCL] There is no selected object for which to see it's source file code." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5283 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6723 +msgid "Code Editor" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5296 +msgid "[ERROR]App.on_view_source() -->%s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5342 +msgid "[WARNING_NOTCL]Open Gerber cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5371 +msgid "[WARNING_NOTCL]Open Excellon cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5401 +msgid "[WARNING_NOTCL]Open G-Code cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5430 +msgid "[WARNING_NOTCL]Open Project cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5455 +msgid "[WARNING_NOTCL]Open COnfig cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5470 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5667 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7583 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7603 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7624 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7646 +msgid "[WARNING_NOTCL] No object selected." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5471 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5668 +msgid "Please Select a Geometry object to export" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5482 +msgid "[ERROR_NOTCL] Only Geometry, Gerber and CNCJob objects can be used." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5504 +msgid "[WARNING_NOTCL]Export SVG cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5518 +msgid "[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5528 +msgid "Export PNG Image" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5533 +msgid "Export PNG cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5550 +msgid "[WARNING_NOTCL] No object selected. Please select an Gerber object to export." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5555 +msgid "[ERROR_NOTCL] Failed. Only Gerber objects can be saved as Gerber files..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5567 +msgid "Save Gerber source file" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5572 +msgid "[WARNING_NOTCL]Save Gerber source file cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5589 +msgid "[WARNING_NOTCL] No object selected. Please select an Excellon object to export." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5594 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5633 +msgid "[ERROR_NOTCL] Failed. Only Excellon objects can be saved as Excellon files..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5606 +msgid "Save Excellon source file" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5611 +msgid "[WARNING_NOTCL]Saving Excellon source file cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5628 +msgid "[WARNING_NOTCL] No object selected. Please Select an Excellon object to export." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5645 +msgid "Export Excellon" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5650 +msgid "[WARNING_NOTCL]Export Excellon cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5678 +msgid "[ERROR_NOTCL] Only Geometry objects can be used." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5695 +msgid "Export DXF" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5700 +msgid "[WARNING_NOTCL] Export DXF cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5729 +msgid "[WARNING_NOTCL]Open SVG cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5748 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5751 +msgid "Import DXF" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5759 +msgid "[WARNING_NOTCL]Open DXF cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5777 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5780 +msgid "Open TCL script" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5788 +msgid "[WARNING_NOTCL]Open TCL script cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5840 +msgid "Save Project As ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5845 +msgid "[WARNING_NOTCL]Save Project cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5900 +msgid "Exporting SVG" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5933 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6038 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6152 +msgid "[success] SVG file exported to %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:5964 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6084 +msgid "[WARNING_NOTCL]No object Box. Using instead %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6041 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6155 +msgid "Generating Film ... Please wait." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6302 +msgid "[success] Excellon file exported to %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6309 +msgid "Exporting Excellon" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6314 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6321 +msgid "[ERROR_NOTCL] Could not export Excellon file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6360 +msgid "[success] DXF file exported to %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6366 +msgid "Exporting DXF" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6371 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6378 +msgid "[[WARNING_NOTCL]] Could not export DXF file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6398 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6440 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6481 +msgid "[ERROR_NOTCL] Not supported type is picked as parameter. Only Geometry and Gerber are supported" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6408 +msgid "Importing SVG" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6419 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6461 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6501 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6577 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6644 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6709 +msgid "[success] Opened: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6450 +msgid "Importing DXF" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6489 +msgid "Importing Image" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6530 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6532 +msgid "[ERROR_NOTCL] Failed to open file: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6535 +msgid "[ERROR_NOTCL] Failed to parse file: %s. %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6541 +msgid "" +"[ERROR] An internal error has ocurred. See shell.\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6550 +msgid "[ERROR_NOTCL] Object is not Gerber file or empty. Aborting object creation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6558 +msgid "Opening Gerber" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6568 +msgid "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6603 +msgid "[ERROR_NOTCL] This is not Excellon file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6606 +msgid "[ERROR_NOTCL] Cannot open file: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6611 +msgid "" +"[ERROR_NOTCL] An internal error has occurred. See shell.\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6627 +msgid "[ERROR_NOTCL] No geometry found in file: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6630 +msgid "Opening Excellon." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6637 +msgid "[ERROR_NOTCL] Open Excellon file failed. Probable not an Excellon file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6676 +msgid "[ERROR_NOTCL] Failed to open %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6686 +msgid "[ERROR_NOTCL] This is not GCODE" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6692 +msgid "Opening G-Code." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6700 +msgid "" +"[ERROR_NOTCL] Failed to create CNCJob Object. Probable not a GCode file.\n" +" Attempting to create a FlatCAM CNCJob Object from G-Code file failed during processing" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6740 +msgid "[ERROR_NOTCL] Failed to open config file: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6765 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6782 +msgid "[ERROR_NOTCL] Failed to open project file: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6772 +msgid "[ERROR_NOTCL] Failed to parse project file: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6808 +msgid "[success] Project loaded from: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6938 +msgid "" +"Available commands:\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:6940 +msgid "" +"\n" +"\n" +"Type help for usage.\n" +" Example: help open_gerber" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7088 +msgid "Shows list of commands." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7141 +msgid "[ERROR_NOTCL] Failed to load recent item list." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7148 +msgid "[ERROR_NOTCL] Failed to parse recent item list." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7209 +msgid "Shortcut Key List" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7216 +msgid "" +"\n" +"

Selected Tab - Choose an Item from Project Tab

\n" +"\n" +"

Details:
\n" +"The normal flow when working in FlatCAM is the following:

\n" +"\n" +"
    \n" +"\t
  1. Loat/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into FlatCAM using either the menu's, toolbars, key shortcuts or even dragging and dropping the files on the GUI.
    \n" +"\t
    \n" +"\tYou can also load a FlatCAM project by double clicking on the project file, drag & drop of the file into the FLATCAM GUI or through the menu/toolbar links offered within the app.

    \n" +"\t 
  2. \n" +"\t
  3. Once an object is available in the Project Tab, by selecting it and then focusing on SELECTED TAB (more simpler is to double click the object name in the Project Tab), SELECTED TAB will be updated with the object properties according to it's kind: Gerber, Excellon, Geometry or CNCJob object.
    \n" +"\t
    \n" +"\tIf the selection of the object is done on the canvas by single click instead, and the SELECTED TAB is in focus, again the object properties will be displayed into the Selected Tab. Alternatively, double clicking on the object on the canvas will bring the SELECTED TAB and populate it even if it was out of focus.
    \n" +"\t
    \n" +"\tYou can change the parameters in this screen and the flow direction is like this:
    \n" +"\t
    \n" +"\tGerber/Excellon Object -> Change Param -> Generate Geometry -> Geometry Object -> Add tools (change param in Selected Tab) -> Generate CNCJob -> CNCJob Object -> Verify GCode (through Edit CNC Code) and/or append/prepend to GCode (again, done in SELECTED TAB) -> Save GCode
  4. \n" +"
\n" +"\n" +"

A list of key shortcuts is available through an menu entry in Help -> Shortcuts List or through it's own key shortcut: F3.

\n" +"\n" +" " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7320 +msgid "[WARNING_NOTCL] Failed checking for latest version. Could not connect." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7327 +msgid "[ERROR_NOTCL] Could not parse information about latest version." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7337 +msgid "[success] FlatCAM is up to date!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7342 +msgid "Newer Version Available" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7343 +msgid "There is a newer version of FlatCAM available for download:

%s
%s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7364 +msgid "[success]All plots disabled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7370 +msgid "[success]All non selected plots disabled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7376 +msgid "[success]All plots enabled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7486 +msgid "Saving FlatCAM Project" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7507 +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7538 +msgid "[success] Project saved to: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7525 +msgid "[ERROR_NOTCL] Failed to verify project file: %s. Retry to save it." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7532 +msgid "[ERROR_NOTCL] Failed to parse saved project file: %s. Retry to save it." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7540 +msgid "[ERROR_NOTCL] Failed to save project file: %s. Retry to save it." +msgstr "" + diff --git a/locale_template/FlatCAMEditor.pot b/locale_template/FlatCAMEditor.pot new file mode 100644 index 00000000..370a5a8e --- /dev/null +++ b/locale_template/FlatCAMEditor.pot @@ -0,0 +1,1050 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 02:10+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:78 +msgid "Buffer distance:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:79 +msgid "Buffer corner:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:81 +msgid "" +"There are 3 types of corners:\n" +" - 'Round': the corner is rounded for exterior buffer.\n" +" - 'Square:' the corner is met in a sharp angle for exterior buffer.\n" +" - 'Beveled:' the corner is a line that directly connects the features meeting in the corner" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:87 +msgid "Round" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:88 +msgid "Square" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:89 +msgid "Beveled" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:96 +msgid "Buffer Interior" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:98 +msgid "Buffer Exterior" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:104 +msgid "Full Buffer" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:125 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2625 +msgid "Buffer Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:136 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:153 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:170 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2643 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2669 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2695 +msgid "[WARNING_NOTCL] Buffer distance value is missing or wrong format. Add it and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:418 +msgid "Tool dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:420 +msgid "" +"Diameter of the tool to\n" +"be used in the operation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:429 +msgid "Overlap:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:431 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:447 +msgid "Margin:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:449 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:458 +msgid "Method:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:460 +msgid "Algorithm to paint the polygon:
Standard: Fixed step inwards.
Seed-based: Outwards from seed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:466 +msgid "Standard" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:467 +msgid "Seed-based" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:468 +msgid "Straight lines" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:473 +msgid "Connect:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:475 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:482 +msgid "Contour:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:484 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:496 +msgid "Paint" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:514 +msgid "Paint Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:550 +msgid "[WARNING_NOTCL] Paint cancelled. No shape selected." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:561 +msgid "[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:572 +msgid "[WARNING_NOTCL] Overlap value is missing or wrong format. Add it and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:584 +msgid "[WARNING_NOTCL] Margin distance value is missing or wrong format. Add it and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:593 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2650 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2676 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2702 +msgid "Tools" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:604 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:977 +msgid "Transform Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:605 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:666 +msgid "Rotate" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:606 +msgid "Skew/Shear" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:607 +msgid "Scale" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:608 +msgid "Mirror (Flip)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:609 +msgid "Offset" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:620 +msgid "Editor %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:652 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4853 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4889 +msgid "Angle:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:654 +msgid "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:668 +msgid "" +"Rotate the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:691 +msgid "Angle X:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:693 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:711 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:702 +msgid "Skew X" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:704 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:722 +msgid "" +"Skew/shear the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:709 +msgid "Angle Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:720 +msgid "Skew Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:748 +msgid "Factor X:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:750 +msgid "Factor for Scale action over X axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:758 +msgid "Scale X" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:760 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:777 +msgid "" +"Scale the selected shape(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:765 +msgid "Factor Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:767 +msgid "Factor for Scale action over Y axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:775 +msgid "Scale Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:784 +msgid "Link" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:786 +msgid "" +"Scale the selected shape(s)\n" +"using the Scale Factor X for both axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:792 +msgid "Scale Reference" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:794 +msgid "" +"Scale the selected shape(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected shapes when unchecked." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:822 +msgid "Value X:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:824 +msgid "Value for Offset action on X axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:832 +msgid "Offset X" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:834 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:852 +msgid "" +"Offset the selected shape(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected shapes.\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:840 +msgid "Value Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:842 +msgid "Value for Offset action on Y axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:850 +msgid "Offset Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:881 +msgid "Flip on X" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:883 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:891 +msgid "" +"Flip the selected shape(s) over the X axis.\n" +"Does not create a new shape." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:889 +msgid "Flip on Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:898 +msgid "Ref Pt" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:900 +msgid "" +"Flip the selected shape(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:912 +msgid "Point:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:914 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:924 +msgid "Add" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:926 +msgid "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1041 +msgid "[WARNING_NOTCL] Transformation cancelled. No shape selected." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1062 +msgid "[ERROR_NOTCL]Wrong value format entered for Rotate, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1099 +msgid "[ERROR_NOTCL]Wrong value format entered for Skew X, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1120 +msgid "[ERROR_NOTCL]Wrong value format entered for Skew Y, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1141 +msgid "[ERROR_NOTCL]Wrong value format entered for Scale X, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1178 +msgid "[ERROR_NOTCL]Wrong value format entered for Scale Y, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1210 +msgid "[ERROR_NOTCL]Wrong value format entered for Offset X, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1231 +msgid "[ERROR_NOTCL]Wrong value format entered for Offset Y, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1249 +msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1252 +msgid "Appying Rotate" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1280 +msgid "[success] Done. Rotate completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1285 +msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1296 +msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to flip!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1299 +msgid "Applying Flip" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1329 +msgid "[success] Flip on the Y axis done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1332 +msgid "[success] Flip on the X axis done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1342 +msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1351 +msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1354 +msgid "Applying Skew" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1379 +msgid "[success] Skew on the %s axis done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1383 +msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1394 +msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to scale!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1397 +msgid "Applying Scale" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1430 +msgid "[success] Scale on the %s axis done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1433 +msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1442 +msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to offset!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1445 +msgid "Applying Offset" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1469 +msgid "[success] Offset on the %s axis done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1473 +msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1477 +msgid "Rotate ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1478 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1535 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1552 +msgid "Enter an Angle Value (degrees):" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1487 +msgid "[success] Geometry shape rotate done..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1492 +msgid "[WARNING_NOTCL] Geometry shape rotate cancelled..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1498 +msgid "Offset on X axis ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1499 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1518 +msgid "Enter a distance Value (%s):" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1508 +msgid "[success] Geometry shape offset on X axis done..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1512 +msgid "[WARNING_NOTCL] Geometry shape offset X cancelled..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1517 +msgid "Offset on Y axis ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1527 +msgid "[success] Geometry shape offset on Y axis done..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1531 +msgid "[WARNING_NOTCL] Geometry shape offset Y cancelled..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1534 +msgid "Skew on X axis ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1544 +msgid "[success] Geometry shape skew on X axis done..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1548 +msgid "[WARNING_NOTCL] Geometry shape skew X cancelled..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1551 +msgid "Skew on Y axis ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1561 +msgid "[success] Geometry shape skew on Y axis done..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1565 +msgid "[WARNING_NOTCL] Geometry shape skew Y cancelled..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1896 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1935 +msgid "Click on CENTER ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1903 +msgid "Click on Circle perimeter point to complete ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1927 +msgid "[success]Done. Adding Circle completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1954 +msgid "Click on Start arc point ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:1958 +msgid "Click on End arc point to complete ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2113 +msgid "[success]Done. Arc completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2125 +msgid "Click on 1st corner ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2165 +msgid "Click on 1st point ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2172 +msgid "Click on next Point or click Right mouse button to complete ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2195 +msgid "[success]Done. Polygon completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2214 +msgid "[success]Done. Path completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2474 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4036 +msgid "[WARNING_NOTCL] Move cancelled. No shape selected." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2478 +msgid "Click on reference point." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2481 +msgid "Click on destination point." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2512 +msgid "[success]Done. Geometry(s) Move completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2557 +msgid "[success]Done. Geometry(s) Copy completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2569 +msgid "Click on the Destination point..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2583 +msgid "[ERROR]Font not supported. Only Regular, Bold, Italic and BoldItalic are supported. Error: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2593 +msgid "[success]Done. Adding Text completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2621 +msgid "Create buffer geometry ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2632 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2658 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2684 +msgid "[WARNING_NOTCL] Buffer cancelled. No shape selected." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2654 +msgid "[success]Done. Buffer Tool completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2680 +msgid "[success]Done. Buffer Int Tool completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2706 +msgid "[success]Done. Buffer Ext Tool completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2739 +msgid "Create Paint geometry ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2753 +msgid "Shape transformations ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2778 +msgid "[WARNING_NOTCL] To add a drill first select a tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2787 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2877 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3150 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3175 +msgid "Click on target location ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2827 +msgid "[success]Done. Drill added." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2869 +msgid "[WARNING_NOTCL] To add an Drill Array first select a tool in Tool Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2894 +msgid "Click on the Drill Circular Array Start position" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2916 +msgid "[ERROR_NOTCL] The value is not Float. Check for comma instead of dot separator." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:2919 +msgid "[ERROR_NOTCL] The value is mistyped. Check the value." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3012 +msgid "[WARNING_NOTCL]Too many drills for the selected spacing angle." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3029 +msgid "[success]Done. Drill Array added." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3040 +msgid "Click on the Drill(s) to resize ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3060 +msgid "[ERROR_NOTCL]Resize drill(s) failed. Please enter a diameter for resize." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3132 +msgid "[success]Done. Drill Resize completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3152 +msgid "Click on reference location ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3207 +msgid "[success]Done. Drill(s) Move completed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3260 +msgid "[success]Done. Drill(s) copied." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:3910 +msgid "[success]Done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4043 +msgid "[WARNING_NOTCL] Copy cancelled. No shape selected." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4050 +msgid "Click on target point." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4291 +msgid "[WARNING_NOTCL]A selection of at least 2 geo items is required to do Intersection." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4329 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4366 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4438 +msgid "[ERROR_NOTCL]Negative buffer value is not accepted. Use Buffer interior to generate an 'inside' shape" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4337 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4375 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4446 +msgid "[WARNING_NOTCL] Nothing selected for buffering." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4341 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4379 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4450 +msgid "[WARNING_NOTCL] Invalid distance for buffering." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4351 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4459 +msgid "[ERROR_NOTCL]Failed, the result is empty. Choose a different buffer value." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4359 +msgid "[success]Full buffer geometry created." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4388 +msgid "[ERROR_NOTCL]Failed, the result is empty. Choose a smaller buffer value." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4400 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4471 +msgid "[success]Exterior buffer geometry created." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4535 +msgid "[WARNING_NOTCL]Nothing selected for painting." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4541 +msgid "[WARNING] Invalid value for {}" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4547 +msgid "[ERROR_NOTCL] Could not do Paint. Overlap value has to be less than 1.00 (100%)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4606 +msgid "" +"[ERROR] Could not do Paint. Try a different combination of parameters. Or a different method of Paint\n" +"%s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4617 +msgid "[success] Paint done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4649 +msgid "Excellon Editor" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4656 +msgid "Name:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4676 +msgid "Tools Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4678 +msgid "" +"Tools in this Excellon object\n" +"when are used for drilling." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4687 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5747 +msgid "Diameter" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4695 +msgid "Add/Delete Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4697 +msgid "" +"Add/Delete a tool to the tool list\n" +"for this Excellon object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4705 +msgid "Tool Dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4707 +msgid "Diameter for the new tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4716 +msgid "Add Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4718 +msgid "" +"Add a new tool to the tool list\n" +"with the diameter specified above." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4728 +msgid "Delete Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4730 +msgid "" +"Delete a tool in the tool list\n" +"by selecting a row in the tool table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4748 +msgid "Resize Drill(s)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4750 +msgid "Resize a drill or a selection of drills." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4757 +msgid "Resize Dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4759 +msgid "Diameter to resize to." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4767 +msgid "Resize" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4769 +msgid "Resize drill(s)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4791 +msgid "Add Drill Array" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4793 +msgid "Add an array of drills (linear or circular array)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4799 +msgid "" +"Select the type of drills array to create.\n" +"It can be Linear X(Y) or Circular" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4802 +msgid "Linear" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4803 +msgid "Circular" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4810 +msgid "Nr of drills:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4812 +msgid "Specify how many drills to be in the array." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4829 +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4874 +msgid "Direction:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4831 +msgid "" +"Direction on which the linear array is oriented:\n" +"- 'X' - horizontal axis \n" +"- 'Y' - vertical axis or \n" +"- 'Angle' - a custom angle for the array inclination" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4840 +msgid "Angle" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4844 +msgid "Pitch:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4846 +msgid "Pitch = Distance between elements of the array." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4855 +msgid "" +"Angle at which the linear array is placed.\n" +"The precision is of max 2 decimals.\n" +"Min value is: -359.99 degrees.\n" +"Max value is: 360.00 degrees." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4876 +msgid "Direction for circular array.Can be CW = clockwise or CCW = counter clockwise." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:4891 +msgid "Angle at which each element in circular array is placed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5212 +msgid "Total Drills" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5244 +msgid "Total Slots" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5318 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5331 +msgid "" +"[WARNING_NOTCL]Tool already in the original or actual tool list.\n" +"Save and reedit Excellon if you need to add this tool. " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5340 +msgid "[success]Added new tool with dia: %s %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5371 +msgid "[WARNING_NOTCL]Select a tool in Tool Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5404 +msgid "[success]Deleted tool with dia: %s %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5801 +msgid "[ERROR_NOTCL] There are no Tools definitions in the file. Aborting Excellon creation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5804 +msgid "" +"[ERROR] An internal error has ocurred. See shell.\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5810 +msgid "Creating Excellon." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5819 +msgid "[success]Excellon editing finished." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:5836 +msgid "[WARNING_NOTCL]Cancelled. There is no Tool/Drill selected" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:6318 +msgid "[success]Done. Drill(s) deleted." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMEditor.py:6388 +msgid "Click on the circular array Center position" +msgstr "" + diff --git a/locale_template/FlatCAMGUI.pot b/locale_template/FlatCAMGUI.pot new file mode 100644 index 00000000..6eeb90f3 --- /dev/null +++ b/locale_template/FlatCAMGUI.pot @@ -0,0 +1,3851 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 02:07+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:48 +msgid "&New Project ...\tCTRL+N" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:50 +msgid "Will create a new, blank project" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:55 +msgid "&New" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:58 +msgid "&New Geometry\tN" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:60 +msgid "Will create a new, empty Geometry Object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:62 +msgid "New Excellon\tL" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:64 +msgid "Will create a new, empty Excellon Object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:67 +msgid "Open" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:72 +msgid "Open &Gerber ...\tCTRL+G" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:79 +msgid "Open &Excellon ...\tCTRL+E" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:84 +msgid "Open G-&Code ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:88 +msgid "Open &Project ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:94 +msgid "Open Config ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:98 +msgid "Recent files" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:104 +msgid "Run Script ...\tSHIFT+S" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:107 +msgid "" +"Will run the opened Tcl Script thus\n" +"enabling the automation of certain\n" +"functions of FlatCAM." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:117 +msgid "Import" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:119 +msgid "&SVG as Geometry Object ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:122 +msgid "&SVG as Gerber Object ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:127 +msgid "&DXF as Geometry Object ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:130 +msgid "&DXF as Gerber Object ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:135 +msgid "Export" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:138 +msgid "Export &SVG ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:141 +msgid "Export DXF ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:146 +msgid "Export &PNG ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:148 +msgid "" +"Will export an image in PNG format,\n" +"the saved image will contain the visual \n" +"information currently in FlatCAM Plot Area." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:156 +msgid "Export &Excellon ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:159 +msgid "" +"Will export an Excellon Object as Excellon file,\n" +"the coordinates format, the file units and zeros\n" +"are set in Preferences -> Excellon Export." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:170 +msgid "Save &Defaults" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:176 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:453 +msgid "Save" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:178 +msgid "&Save Project ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:183 +msgid "Save Project &As ...\tCTRL+S" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:187 +msgid "Save Project C&opy ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:195 +msgid "E&xit" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:201 +msgid "&Edit" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:204 +msgid "Edit Object\tE" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:205 +msgid "Save && Close Editor\tCTRL+S" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:208 +msgid "Conversion" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:210 +msgid "&Join Geo/Gerber/Exc -> Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:212 +msgid "" +"Merge a selection of objects, which can be of type:\n" +"- Gerber\n" +"- Excellon\n" +"- Geometry\n" +"into a new combo Geometry object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:219 +msgid "Join Excellon(s) -> Excellon" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:221 +msgid "Merge a selection of Excellon objects into a new combo Excellon object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:224 +msgid "Join Gerber(s) -> Gerber" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:226 +msgid "Merge a selection of Gerber objects into a new combo Gerber object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:231 +msgid "Convert Single to MultiGeo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:233 +msgid "" +"Will convert a Geometry object from single_geometry type\n" +"to a multi_geometry type." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:237 +msgid "Convert Multi to SingleGeo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:239 +msgid "" +"Will convert a Geometry object from multi_geometry type\n" +"to a single_geometry type." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:246 +msgid "&Copy Object\tCTRL+C" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:248 +msgid "Copy as &Geom" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:251 +msgid "&Delete\tDEL" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:255 +msgid "Se&t Origin\tO" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:256 +msgid "Jump to Location\tJ" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:261 +msgid "Toggle Units\tQ" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:263 +msgid "&Select All\tCTRL+A" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:267 +msgid "&Preferences\tSHIFT+P" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:270 +msgid "&Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:285 +msgid "&Rotate Selection\tSHIFT+(R)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:290 +msgid "&Skew on X axis\tSHIFT+X" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:292 +msgid "S&kew on Y axis\tSHIFT+Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:297 +msgid "Flip on &X axis\tX" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:299 +msgid "Flip on &Y axis\tY" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:304 +msgid "View source\tALT+S" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:309 +msgid "&View" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:310 +msgid "Enable all plots\tALT+1" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:312 +msgid "Disable all plots\tALT+2" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:314 +msgid "Disable non-selected\tALT+3" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:317 +msgid "&Zoom Fit\tV" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:318 +msgid "&Zoom In\t-" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:319 +msgid "&Zoom Out\t=" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:323 +msgid "Toggle Code Editor\tCTRL+E" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:326 +msgid "&Toggle FullScreen\tALT+F10" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:328 +msgid "&Toggle Plot Area\tCTRL+F10" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:330 +msgid "&Toggle Project/Sel/Tool\t`" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:333 +msgid "&Toggle Grid Snap\tG" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:335 +msgid "&Toggle Axis\tSHIFT+G" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:338 +msgid "Toggle Workspace\tSHIFT+W" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:344 +msgid "&Command Line\tS" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:348 +msgid "Help\tF1" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:349 +msgid "FlatCAM.org" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:352 +msgid "Shortcuts List\tF3" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:353 +msgid "YouTube Channel\tF4" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:355 +msgid "About" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:366 +msgid "Add Circle\tO" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:368 +msgid "Add Arc\tA" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:371 +msgid "Add Rectangle\tR" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:374 +msgid "Add Polygon\tN" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:376 +msgid "Add Path\tP" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:378 +msgid "Add Text\tT" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:381 +msgid "Polygon Union\tU" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:383 +msgid "Polygon Intersection\tE" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:385 +msgid "Polygon Subtraction\tS" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:389 +msgid "Cut Path\tX" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:391 +msgid "Copy Geom\tC" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:393 +msgid "Delete Shape\tDEL" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:396 +msgid "Move\tM" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:398 +msgid "Buffer Tool\tB" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:401 +msgid "Paint Tool\tI" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:404 +msgid "Transform Tool\tALT+R" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:408 +msgid "Toggle Corner Snap\tK" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:411 +msgid ">Excellon Editor<" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:415 +msgid "Add Drill Array\tA" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:417 +msgid "Add Drill\tD" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:421 +msgid "Resize Drill(S)\tR" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:423 +msgid "Copy\tC" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:425 +msgid "Delete\tDEL" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:430 +msgid "Move Drill(s)\tM" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:444 +msgid "Enable Plot" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:445 +msgid "Disable Plot" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:447 +msgid "Generate CNC" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:448 +msgid "View Source" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:450 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1378 +msgid "Edit" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:451 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1376 +msgid "Copy" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:452 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1377 +msgid "Delete" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:456 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1384 +msgid "Properties" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:485 +msgid "File Toolbar" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:489 +msgid "Edit Toolbar" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:493 +msgid "View Toolbar" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:497 +msgid "Shell Toolbar" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:501 +msgid "Tools Toolbar" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:505 +msgid "Excellon Editor Toolbar" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:509 +msgid "Geometry Editor Toolbar" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:513 +msgid "Grid Toolbar" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:529 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1578 +msgid "Open Gerber" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:530 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1579 +msgid "Open Excellon" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:532 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1581 +msgid "Open project" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:533 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1582 +msgid "Save project" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:536 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1585 +msgid "New Blank Geometry" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:537 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1586 +msgid "New Blank Excellon" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:539 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1588 +msgid "Editor" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:541 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1590 +msgid "Save Object and close the Editor" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:545 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1594 +msgid "&Delete" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:548 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1597 +msgid "&Replot" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:549 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1598 +msgid "&Clear plot" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:550 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1599 +msgid "Zoom In" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:551 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1600 +msgid "Zoom Out" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:552 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1358 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1601 +msgid "Zoom Fit" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:557 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1606 +msgid "&Command Line" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:560 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1609 +msgid "2Sided Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:561 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1610 +msgid "&Cutout Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:562 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1611 +msgid "NCC Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:563 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1612 +msgid "Paint Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:566 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1615 +msgid "Panel Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:567 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1616 +msgid "Film Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:568 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1618 +msgid "SolderPaste Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:571 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1622 +msgid "Calculators Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:572 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1623 +msgid "Transform Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:575 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:589 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1626 +msgid "Select" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:576 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1627 +msgid "Add Drill Hole" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:579 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1630 +msgid "Resize Drill" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:582 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1633 +msgid "Copy Drill" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:583 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1635 +msgid "Delete Drill" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:586 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1638 +msgid "Move Drill" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:590 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1642 +msgid "Add Circle" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:591 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1643 +msgid "Add Arc" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:593 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1645 +msgid "Add Rectangle" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:596 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1648 +msgid "Add Path" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:597 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1650 +msgid "Add Polygon" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:599 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1652 +msgid "Add Text" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:600 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1654 +msgid "Add Buffer" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:601 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1655 +msgid "Paint Shape" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:604 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1658 +msgid "Polygon Union" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:606 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1660 +msgid "Polygon Intersection" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:608 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1662 +msgid "Polygon Subtraction" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:611 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1665 +msgid "Cut Path" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:612 +msgid "Copy Shape(s)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:615 +msgid "Delete Shape '-'" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:617 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1670 +msgid "Transformations" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:619 +msgid "Move Objects " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:625 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1679 +msgid "Snap to grid" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:628 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1682 +msgid "Grid X snapping distance" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:633 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1687 +msgid "Grid Y snapping distance" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:639 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1693 +msgid "" +"When active, value on Grid_X\n" +"is copied to the Grid_Y value." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:645 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1699 +msgid "Snap to corner" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:649 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1703 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2792 +msgid "Max. magnet distance" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:663 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1352 +msgid "Project" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:672 +msgid "Selected" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:676 +msgid "tool_tab" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:679 +msgid "Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:691 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:699 +msgid "Plot Area" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:723 +msgid "General" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:732 +msgid "APP. DEFAULTS" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:733 +msgid "PROJ. OPTIONS " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:744 +msgid "GERBER" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:753 +msgid "EXCELLON" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:762 +msgid "GEOMETRY" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:772 +msgid "CNC-JOB" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:781 +msgid "TOOLS" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:798 +msgid "Import Preferences" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:801 +msgid "" +"Import a full set of FlatCAM settings from a file\n" +"previously saved on HDD.\n" +"\n" +"FlatCAM automatically save a 'factory_defaults' file\n" +"on the first start. Do not delete that file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:808 +msgid "Export Preferences" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:811 +msgid "" +"Export a full set of FlatCAM settings in a file\n" +"that is saved on HDD." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:816 +msgid "Open Pref Folder" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:819 +msgid "Open the folder where FlatCAM save the preferences files." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:827 +msgid "Save Preferences" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:830 +msgid "" +"Save the current settings in the 'current_defaults' file\n" +"which is the file storing the working default preferences." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:844 +msgid "Shortcut Key List" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:855 +msgid "" +"General Shortcut list
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
F3 SHOW SHORTCUT LIST
  
1 Switch to Project Tab
2 Switch to Selected Tab
3 Switch to Tool Tab
  
E Edit Object (if selected)
G Grid On/Off
J Jump to Coordinates
L New Excellon
M Move Obj
N New Geometry
O Set Origin
Q Change Units
P Open Properties Tool
R Rotate by 90 degree CW
S Shell Toggle
T Add a Tool (when in Geometry Selected Tab or in Tools NCC or Tools Paint)
V Zoom Fit
X Flip on X_axis
Y Flip on Y_axis
'=' Zoom Out
'-' Zoom In
  
CTRL+A Select All
CTRL+C Copy Obj
CTRL+E Open Excellon File
CTRL+G Open Gerber File
CTRL+N New Project
CTRL+M Measurement Tool
CTRL+O Open Project
CTRL+S Save Project As
CTRL+F10 Toggle Plot Area
  
SHIFT+C Copy Obj_Name
SHIFT+E Toggle Code Editor
SHIFT+G Toggle the axis
SHIFT+P Open Preferences Window
SHIFT+R Rotate by 90 degree CCW
SHIFT+S Run a Script
SHIFT+W Toggle the workspace
SHIFT+X Skew on X axis
SHIFT+Y Skew on Y axis
  
ALT+C Calculators Tool
ALT+D 2-Sided PCB Tool
ALT+K Solder Paste Dispensing Tool
ALT+L Film PCB Tool
ALT+N Non-Copper Clearing Tool
ALT+P Paint Area Tool
ALT+R Transformations Tool
ALT+S View File Source
ALT+U Cutout PCB Tool
ALT+1 Enable all Plots
ALT+2 Disable all Plots
ALT+3 Disable Non-selected Plots
ALT+F10 Toggle Full Screen
  
F1 Open Online Manual
F4 Open Online Tutorials
Del Delete Object
Del Alternate: Delete Tool
'`' (left to Key_1)Toogle Notebook Area (Left Side)
SPACE En(Dis)able Obj Plot
Escape Deselects all objects
\n" +" \n" +" " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1132 +msgid "" +"Editor Shortcut list
\n" +"
\n" +" GEOMETRY EDITOR
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
A Draw an Arc
B Buffer Tool
C Copy Geo Item
E Polygon Intersection Tool
I Paint Tool
J Jump to Location (x, y)
K Toggle Corner Snap
M Move Geo Item
N Draw a Polygon
O Draw a Circle
P Draw a Path
R Draw Rectangle
S Polygon Substraction Tool
T Add Text Tool
U Polygon Union Tool
X Flip shape on X axis
Y Flip shape on Y axis
  
SHIFT+X Skew shape on X axis
SHIFT+Y Skew shape on Y axis
  
ALT+R Editor Transformation Tool
ALT+X Offset shape on X axis
ALT+Y Offset shape on Y axis
  
CTRL+M Measurement Tool
CTRL+S Save Object and Exit Editor
CTRL+X Polygon Cut Tool
  
Space Rotate Geometry
ENTER Finish drawing for certain tools
ESC Abort and return to Select
Del Delete Shape
\n" +"
\n" +"
\n" +" EXCELLON EDITOR
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
A Add Drill Array
C Copy Drill(s)
D Add Drill
J Jump to Location (x, y)
M Move Drill(s)
R Resize Drill(s)
T Add a new Tool
  
Del Delete Drill(s)
Del Alternate: Delete Tool(s)
  
ESC Abort and return to Select
CTRL+S Save Object and Exit Editor
\n" +" " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1346 +msgid "Disable" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1348 +msgid "New" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1349 +msgid "Geometry" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1350 +msgid "Excellon" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1355 +msgid "Grids" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1357 +msgid "View" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1359 +msgid "Clear Plot" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1360 +msgid "Replot" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1363 +msgid "Geo Editor" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1364 +msgid "Line" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1365 +msgid "Rectangle" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1366 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4588 +msgid "Cut" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1368 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1383 +msgid "Move" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1370 +msgid "Exc Editor" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1371 +msgid "Add Drill" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1372 +msgid "Add Drill Array" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1373 +msgid "Copy Drill(s)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1379 +msgid "Save && Close Edit" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1404 +msgid "Print Preview" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1405 +msgid "Print Code" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1406 +msgid "Find in Code" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1411 +msgid "Replace With" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1415 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4586 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5087 +msgid "All" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1417 +msgid "" +"When checked it will replace all instances in the 'Find' box\n" +"with the text in the 'Replace' box.." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1420 +msgid "Open Code" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1421 +msgid "Save Code" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1456 +msgid "" +"Relative neasurement.\n" +"Reference is last click position" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1462 +msgid "" +"Absolute neasurement.\n" +"Reference is (X=0, Y= 0) position" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1629 +msgid "Add Drill Hole Array" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1641 +msgid "Select 'Esc'" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1666 +msgid "Copy Objects" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1668 +msgid "Delete Shape" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:1673 +msgid "Move Objects" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2048 +msgid "" +"Please first select a geometry item to be cutted\n" +"then select the geometry item that will be cutted\n" +"out of the first item. In the end press ~X~ key or\n" +"the toolbar button." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2055 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2187 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2246 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2266 +msgid "Warning" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2102 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2114 +msgid "[success]Done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2122 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2316 +msgid "[WARNING_NOTCL]Cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2182 +msgid "" +"Please select geometry items \n" +"on which to perform Intersection Tool." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2240 +msgid "" +"Please select geometry items \n" +"on which to perform Substraction Tool." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2261 +msgid "" +"Please select geometry items \n" +"on which to perform union." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2333 +msgid "[WARNING_NOTCL]Cancelled. Nothing selected to delete." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2394 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2406 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2440 +msgid "Click on target point." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2400 +msgid "[WARNING_NOTCL]Cancelled. Nothing selected to copy." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2446 +msgid "[WARNING_NOTCL]Cancelled. Nothing selected to move." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2460 +msgid "New Tool ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2461 +msgid "Enter a Tool Diameter:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2469 +msgid "[success]Added new tool with dia: %s %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2472 +msgid "[WARNING_NOTCL] Adding Tool cancelled ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2777 +msgid "Grid X value:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2779 +msgid "This is the Grid snap value on X axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2784 +msgid "Grid Y value:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2786 +msgid "This is the Grid snap value on Y axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2791 +msgid "Snap Max:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2796 +msgid "Workspace:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2798 +msgid "" +"Draw a delimiting rectangle on canvas.\n" +"The purpose is to illustrate the limits for our work." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2801 +msgid "Wk. format:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2803 +msgid "" +"Select the type of rectangle to be used on canvas,\n" +"as valid workspace." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2816 +msgid "Plot Fill:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2818 +msgid "" +"Set the fill color for plotted objects.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2832 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2882 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2932 +msgid "Alpha Level:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2834 +msgid "Set the fill transparency for plotted objects." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2851 +msgid "Plot Line:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2853 +msgid "Set the line color for plotted objects." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2865 +msgid "Sel. Fill:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2867 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from left to right.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2884 +msgid "Set the fill transparency for the 'left to right' selection box." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2901 +msgid "Sel. Line:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2903 +msgid "Set the line color for the 'left to right' selection box." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2915 +msgid "Sel2. Fill:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2917 +msgid "" +"Set the fill color for the selection box\n" +"in case that the selection is done from right to left.\n" +"First 6 digits are the color and the last 2\n" +"digits are for alpha (transparency) level." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2934 +msgid "Set the fill transparency for selection 'right to left' box." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2951 +msgid "Sel2. Line:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2953 +msgid "Set the line color for the 'right to left' selection box." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2965 +msgid "Editor Draw:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2967 +msgid "Set the color for the shape." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2979 +msgid "Editor Draw Sel.:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:2981 +msgid "Set the color of the shape when selected." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3028 +msgid "GUI Settings" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3035 +msgid "Layout:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3037 +msgid "" +"Select an layout for FlatCAM.\n" +"It is applied immediately." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3041 +msgid "Choose ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3042 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4822 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5053 +msgid "Standard" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3043 +msgid "Compact" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3047 +msgid "Style:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3049 +msgid "" +"Select an style for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3060 +msgid "HDPI Support:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3062 +msgid "" +"Enable High DPI support for FlatCAM.\n" +"It will be applied at the next app start." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3075 +msgid "Clear GUI Settings:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3077 +msgid "" +"Clear the GUI settings for FlatCAM,\n" +"such as: layout, gui state, style, hdpi support etc." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3080 +msgid "Clear" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3084 +msgid "Hover Shape:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3086 +msgid "" +"Enable display of a hover shape for FlatCAM objects.\n" +"It is displayed whenever the mouse cursor is hovering\n" +"over any kind of not-selected object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3127 +msgid "" +"Are you sure you want to delete the GUI Settings? \n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3130 +msgid "Clear GUI Settings" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3143 +msgid "[success] GUI settings deleted ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3150 +msgid "App Preferences" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3156 +msgid "Units:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3157 +msgid "" +"The default value for FlatCAM units.\n" +"Whatever is selected here is set every time\n" +"FLatCAM is started." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3164 +msgid "APP. LEVEL:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3165 +msgid "" +"Choose the default level of usage for FlatCAM.\n" +"BASIC level -> reduced functionality, best for beginner's.\n" +"ADVANCED level -> full functionality.\n" +"\n" +"The choice here will influence the parameters in\n" +"the Selected Tab for all kinds of FlatCAM objects." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3170 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3774 +msgid "Basic" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3171 +msgid "Advanced" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3174 +msgid "Languages:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3175 +msgid "Set the language used throughout FlatCAM." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3178 +msgid "Apply Language" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3181 +msgid "Shell at StartUp:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3183 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3188 +msgid "" +"Check this box if you want the shell to\n" +"start automatically at startup." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3193 +msgid "Version Check:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3195 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3200 +msgid "" +"Check this box if you want to check\n" +"for a new version automatically at startup." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3205 +msgid "Send Stats:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3207 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3212 +msgid "" +"Check this box if you agree to send anonymous\n" +"stats automatically at startup, to help improve FlatCAM." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3219 +msgid "Pan Button:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3220 +msgid "" +"Select the mouse button to use for panning:\n" +"- MMB --> Middle Mouse Button\n" +"- RMB --> Right Mouse Button" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3223 +msgid "MMB" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3224 +msgid "RMB" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3227 +msgid "Multiple Sel:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3228 +msgid "Select the key used for multiple selection." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3229 +msgid "CTRL" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3230 +msgid "SHIFT" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3233 +msgid "Project at StartUp:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3235 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3240 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"to be shown automatically at startup." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3245 +msgid "Project AutoHide:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3247 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3253 +msgid "" +"Check this box if you want the project/selected/tool tab area to\n" +"hide automatically when there are no objects loaded and\n" +"to show whenever a new object is created." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3259 +msgid "Enable ToolTips:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3261 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3266 +msgid "" +"Check this box if you want to have toolTips displayed\n" +"when hovering with mouse over items throughout the App." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3300 +msgid "Save Compressed Project" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3302 +msgid "" +"Whether to save a compressed or uncompressed project.\n" +"When checked it will save a compressed FlatCAM project." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3313 +msgid "Compression Level:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3315 +msgid "" +"The level of compression used when saving\n" +"a FlatCAM project. Higher value means better compression\n" +"but require more RAM usage and more processing time." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3341 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3582 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4237 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4560 +msgid "Plot Options:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3348 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3594 +msgid "Solid" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3350 +msgid "Solid color polygons." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3355 +msgid "M-Color" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3357 +msgid "Draw polygons in different colors." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3362 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3588 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4241 +msgid "Plot" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3364 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4243 +msgid "Plot (show) this object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3369 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4250 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4596 +msgid "Circle Steps:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3371 +msgid "" +"The number of circle steps for Gerber \n" +"circular aperture linear approximation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3386 +msgid "Gerber Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3390 +msgid "Isolation Routing:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3392 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3401 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4606 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4882 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5013 +msgid "Tool dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3403 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3960 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4884 +msgid "Diameter of the cutting tool." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3410 +msgid "Width (# passes):" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3412 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3420 +msgid "Pass overlap:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3422 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means an overlap of 25% from the tool diameter found above." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3430 +msgid "Milling Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3432 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3437 +msgid "Climb" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3438 +msgid "Conv." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3442 +msgid "Combine Passes" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3444 +msgid "Combine all passes into one object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3449 +msgid "Clear non-copper:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3451 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4772 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3460 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3486 +msgid "Boundary Margin:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3462 +msgid "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3472 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3495 +msgid "Rounded corners" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3474 +msgid "" +"Creates a Geometry objects with polygons\n" +"covering the copper-free areas of the PCB." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3480 +msgid "Bounding Box:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3488 +msgid "" +"Distance of the edges of the box\n" +"to the nearest polygon." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3497 +msgid "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3511 +msgid "Gerber Adv. Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3515 +msgid "Advanced Param.:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3517 +msgid "" +"A list of Gerber advanced parameters.\n" +"Those parameters are available only for\n" +"Advanced App. Level." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3527 +msgid "\"Follow\"" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3529 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3537 +msgid "Table Show/Hide" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3539 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"Also, on hide, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3547 +msgid "Ap. Scale Factor:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3549 +msgid "" +"Change the size of the selected apertures.\n" +"Factor by which to multiply\n" +"geometric features of this object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3559 +msgid "Ap. Buffer Factor:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3561 +msgid "" +"Change the size of the selected apertures.\n" +"Factor by which to expand/shrink\n" +"geometric features of this object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3579 +msgid "Excellon General" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3601 +msgid "Excellon Format:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3603 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period.\n" +"\n" +"Possible presets:\n" +"\n" +"PROTEUS 3:3 MM LZ\n" +"DipTrace 5:2 MM TZ\n" +"DipTrace 4:3 MM LZ\n" +"\n" +"EAGLE 3:3 MM TZ\n" +"EAGLE 4:3 MM TZ\n" +"EAGLE 2:5 INCH TZ\n" +"EAGLE 3:5 INCH TZ\n" +"\n" +"ALTIUM 2:4 INCH LZ\n" +"Sprint Layout 2:4 INCH LZ\n" +"KiCAD 3:5 INCH TZ" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3628 +msgid "INCH:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3631 +msgid "Default values for INCH are 2:4" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3639 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3672 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4149 +msgid "" +"This numbers signify the number of digits in\n" +"the whole part of Excellon coordinates." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3653 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3686 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4163 +msgid "" +"This numbers signify the number of digits in\n" +"the decimal part of Excellon coordinates." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3661 +msgid "METRIC:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3664 +msgid "Default values for METRIC are 3:3" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3695 +msgid "Default Zeros:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3698 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4198 +msgid "" +"This sets the type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3706 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4205 +msgid "LZ" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3707 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4206 +msgid "TZ" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3709 +msgid "" +"This sets the default type of Excellon zeros.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3723 +msgid "Default Units:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3726 +msgid "" +"This sets the default units of Excellon files.\n" +"If it is not detected in the parsed file the value here\n" +"will be used.Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3734 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4125 +msgid "INCH" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3735 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4126 +msgid "MM" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3737 +msgid "" +"This sets the units of Excellon files.\n" +"Some Excellon files don't have an header\n" +"therefore this parameter will be used." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3753 +msgid "Excellon Optimization:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3760 +msgid "Algorithm: " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3763 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3776 +msgid "" +"This sets the optimization type for the Excellon drill path.\n" +"If MH is checked then Google OR-Tools algorithm with MetaHeuristic\n" +"Guided Local Path is used. Default search time is 3sec.\n" +"Use set_sys excellon_search_time value Tcl Command to set other values.\n" +"If Basic is checked then Google OR-Tools Basic algorithm is used.\n" +"\n" +"If DISABLED, then FlatCAM works in 32bit mode and it uses \n" +"Travelling Salesman algorithm for path optimization." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3773 +msgid "MH" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3788 +msgid "Optimization Time: " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3791 +msgid "" +"When OR-Tools Metaheuristic (MH) is enabled there is a\n" +"maximum threshold for how much time is spent doing the\n" +"path optimization. This max duration is set here.\n" +"In seconds." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3832 +msgid "Excellon Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3835 +msgid "Create CNC Job" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3837 +msgid "" +"Parameters used to create a CNC Job object\n" +"for this drill object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3845 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4301 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5299 +msgid "Cut Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3847 +msgid "" +"Drill depth (negative)\n" +"below the copper surface." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3854 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4334 +msgid "Travel Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3856 +msgid "" +"Tool height when travelling\n" +"across the XY plane." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3864 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4344 +msgid "Tool change:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3866 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4346 +msgid "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3873 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4354 +msgid "Toolchange Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3875 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4356 +msgid "Toolchange Z position." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3881 +msgid "Feedrate:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3883 +msgid "" +"Tool speed while drilling\n" +"(in units per minute)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3891 +msgid "Spindle Speed:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3893 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4386 +msgid "" +"Speed of the spindle\n" +"in RPM (optional)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3901 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4394 +msgid "Dwell:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3903 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4396 +msgid "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3906 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4399 +msgid "Duration:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3908 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4401 +msgid "Number of milliseconds for spindle to dwell." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3920 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4411 +msgid "Postprocessor:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3922 +msgid "" +"The postprocessor file that dictates\n" +"gcode output." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3932 +msgid "Gcode: " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3934 +msgid "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to drills." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3939 +msgid "Drills" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3940 +msgid "Slots" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3941 +msgid "Both" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3950 +msgid "Mill Holes" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3952 +msgid "Create Geometry for milling holes." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3958 +msgid "Drill Tool dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3965 +msgid "Slot Tool dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3967 +msgid "" +"Diameter of the cutting tool\n" +"when milling slots." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3979 +msgid "Defaults" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3992 +msgid "Excellon Adv. Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:3998 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4434 +msgid "Advanced Options:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4000 +msgid "" +"Parameters used to create a CNC Job object\n" +"for this drill object that are shown when App Level is Advanced." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4008 +msgid "Offset Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4010 +msgid "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4017 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4445 +msgid "Toolchange X,Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4019 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4447 +msgid "Toolchange X,Y position." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4025 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4454 +msgid "Start move Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4027 +msgid "" +"Height of the tool just after start.\n" +"Delete the value if you don't need this feature." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4034 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4464 +msgid "End move Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4036 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4466 +msgid "" +"Height of the tool after\n" +"the last move at the end of the job." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4043 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4474 +msgid "Feedrate Rapids:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4045 +msgid "" +"Tool speed while drilling\n" +"with rapid move G00\n" +"(in units per minute).\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4056 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4497 +msgid "Probe Z depth:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4058 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4499 +msgid "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4066 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4507 +msgid "Feedrate Probe:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4068 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4509 +msgid "The feedrate used while the probe is probing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4074 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4516 +msgid "Fast Plunge:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4076 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4518 +msgid "" +"By checking this, the vertical move from\n" +"Z_Toolchange to Z_move is done with G0,\n" +"meaning the fastest speed available.\n" +"WARNING: the move is done at Toolchange X,Y coords." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4085 +msgid "Fast Retract:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4087 +msgid "" +"Exit hole strategy.\n" +" - When uncheked, while exiting the drilled hole the drill bit\n" +"will travel slow, with set feedrate (G1), up to zero depth and then\n" +"travel as fast as possible (G0) to the Z Move (travel height).\n" +" - When checked the travel from Z cut (cut depth) to Z_move\n" +"(travel height) is done as fast as possible (G0) in one move." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4106 +msgid "Excellon Export" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4109 +msgid "Export Options:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4111 +msgid "" +"The parameters set here are used in the file exported\n" +"when using the File -> Export -> Export Excellon menu entry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4120 +msgid "Units:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4122 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4128 +msgid "The units used in the Excellon file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4134 +msgid "Int/Decimals:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4136 +msgid "" +"The NC drill files, usually named Excellon files\n" +"are files that can be found in different formats.\n" +"Here we set the format used when the provided\n" +"coordinates are not using period." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4172 +msgid "Format:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4174 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4184 +msgid "" +"Select the kind of coordinates format used.\n" +"Coordinates can be saved with decimal point or without.\n" +"When there is no decimal point, it is required to specify\n" +"the number of digits for integer part and the number of decimals.\n" +"Also it will have to be specified if LZ = leading zeros are kept\n" +"or TZ = trailing zeros are kept." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4181 +msgid "Decimal" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4182 +msgid "No-Decimal" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4195 +msgid "Zeros:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4208 +msgid "" +"This sets the default type of Excellon zeros.\n" +"If LZ then Leading Zeros are kept and\n" +"Trailing Zeros are removed.\n" +"If TZ is checked then Trailing Zeros are kept\n" +"and Leading Zeros are removed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4234 +msgid "Geometry General" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4252 +msgid "" +"The number of circle steps for Geometry \n" +"circle and arc shapes linear approximation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4260 +msgid "Tools" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4267 +msgid "Tool dia: " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4269 +msgid "" +"The diameter of the cutting\n" +"tool.." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4284 +msgid "Geometry Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4289 +msgid "Create CNC Job:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4291 +msgid "" +"Create a CNC Job object\n" +"tracing the contours of this\n" +"Geometry object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4303 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4311 +msgid "Multidepth" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4313 +msgid "Multidepth usage: True or False." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4318 +msgid "Depth/Pass:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4320 +msgid "" +"The depth to cut on each pass,\n" +"when multidepth is enabled.\n" +"It has positive value although\n" +"it is a fraction from the depth\n" +"which has negative value." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4336 +msgid "" +"Height of the tool when\n" +"moving without cutting." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4363 +msgid "Feed Rate X-Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4365 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4373 +msgid "Feed Rate Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4375 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute.\n" +"It is called also Plunge." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4384 +msgid "Spindle speed:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4413 +msgid "" +"The postprocessor file that dictates\n" +"Machine Code output." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4429 +msgid "Geometry Adv. Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4436 +msgid "" +"Parameters to create a CNC Job object\n" +"tracing the contours of a Geometry object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4456 +msgid "" +"Height of the tool just after starting the work.\n" +"Delete the value if you don't need this feature." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4476 +msgid "" +"Cutting speed in the XY\n" +"plane for rapid move G00.\n" +"In units per minute.\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4487 +msgid "Re-cut 1st pt." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4489 +msgid "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4528 +msgid "Seg. X size:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4530 +msgid "" +"The size of the trace segment on the X axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the X axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4539 +msgid "Seg. Y size:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4541 +msgid "" +"The size of the trace segment on the Y axis.\n" +"Useful for auto-leveling.\n" +"A value of 0 means no segmentation on the Y axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4557 +msgid "CNC Job General" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4570 +msgid "Plot Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4577 +msgid "Plot kind:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4579 +msgid "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4587 +msgid "Travel" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4598 +msgid "" +"The number of circle steps for GCode \n" +"circle and arc shapes linear approximation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4608 +msgid "" +"Diameter of the tool to be\n" +"rendered in the plot." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4616 +msgid "Coords dec.:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4618 +msgid "" +"The number of decimals to be used for \n" +"the X, Y, Z coordinates in CNC code (GCODE, etc.)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4626 +msgid "Feedrate dec.:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4628 +msgid "" +"The number of decimals to be used for \n" +"the Feedrate parameter in CNC code (GCODE, etc.)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4643 +msgid "CNC Job Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4646 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4687 +msgid "Export G-Code:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4648 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4689 +msgid "" +"Export and save G-Code to\n" +"make this object to a file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4654 +msgid "Prepend to G-Code:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4656 +msgid "" +"Type here any G-Code commands you would\n" +"like to add at the beginning of the G-Code file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4665 +msgid "Append to G-Code:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4667 +msgid "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4684 +msgid "CNC Job Adv. Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4695 +msgid "Toolchange G-Code:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4697 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4711 +msgid "Use Toolchange Macro" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4713 +msgid "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4725 +msgid "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4732 +msgid "Parameters" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4735 +msgid "FlatCAM CNC parameters" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4736 +msgid "tool = tool number" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4737 +msgid "tooldia = tool diameter" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4738 +msgid "t_drills = for Excellon, total number of drills" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4739 +msgid "x_toolchange = X coord for Toolchange" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4740 +msgid "y_toolchange = Y coord for Toolchange" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4741 +msgid "z_toolchange = Z coord for Toolchange" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4742 +msgid "z_cut = Z coord for Toolchange" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4743 +msgid "z_move = Z coord for Toolchange" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4744 +msgid "z_depthpercut = the step value for multidepth cut" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4745 +msgid "spindlesspeed = the value for the spindle speed" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4746 +msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4767 +msgid "NCC Tool Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4770 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4871 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4941 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5000 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5103 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5164 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5363 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5490 +msgid "Parameters:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4780 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5501 +msgid "Tools dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4782 +msgid "Diameters of the cutting tools, separated by ','" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4788 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5024 +msgid "Overlap:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4790 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4804 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4890 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5034 +msgid "Margin:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4806 +msgid "Bounding box margin." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4813 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5045 +msgid "Method:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4815 +msgid "Algorithm for non-copper clearing:
Standard: Fixed step inwards.
Seed-based: Outwards from seed.
Line-based: Parallel lines." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4823 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5054 +msgid "Seed-based" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4824 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5055 +msgid "Straight lines" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4829 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5060 +msgid "Connect:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4831 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5062 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4838 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5070 +msgid "Contour:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4840 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5072 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4847 +msgid "Rest M.:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4849 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool.\n" +"If not checked, use the standard algorithm." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4868 +msgid "Cutout Tool Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4873 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4892 +msgid "" +"Distance from objects at which\n" +"to draw the cutout." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4899 +msgid "Gap size:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4901 +msgid "" +"Size of the gaps in the toolpath\n" +"that will remain to hold the\n" +"board in place." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4909 +msgid "Gaps:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4911 +msgid "" +"Number of bridge gaps used for the cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4938 +msgid "2Sided Tool Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4943 +msgid "" +"A tool to help in creating a double sided\n" +"PCB using alignment holes." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4953 +msgid "Drill diam.:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4955 +msgid "Diameter of the drill for the alignment holes." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4962 +msgid "X" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4963 +msgid "Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4964 +msgid "Mirror Axis:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4966 +msgid "Mirror vertically (X) or horizontally (Y)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4975 +msgid "Point" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4976 +msgid "Box" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4977 +msgid "Axis Ref:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4979 +msgid "" +"The axis should pass through a point or cut\n" +" a specified box (in a Geometry object) in \n" +"the middle." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:4995 +msgid "Paint Tool Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5002 +msgid "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5015 +msgid "" +"Diameter of the tool to\n" +"be used in the operation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5026 +msgid "" +"How much (fraction) of the tool\n" +"width to overlap each tool pass." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5036 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5047 +msgid "Algorithm to paint the polygon:
Standard: Fixed step inwards.
Seed-based: Outwards from seed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5080 +msgid "Selection:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5082 +msgid "How to select the polygons to paint." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5086 +msgid "Single" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5100 +msgid "Film Tool Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5105 +msgid "" +"Create a PCB film from a Gerber or Geometry\n" +"FlatCAM object.\n" +"The file is saved in SVG format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5114 +msgid "Pos" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5115 +msgid "Neg" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5116 +msgid "Film Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5118 +msgid "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5129 +msgid "Border:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5131 +msgid "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5144 +msgid "Scale Stroke:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5146 +msgid "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or thinner,\n" +"therefore the fine features may be more affected by this parameter." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5161 +msgid "Panelize Tool Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5166 +msgid "" +"Create an object that contains an array of (x, y) elements,\n" +"each element is a copy of the source object spaced\n" +"at a X distance, Y distance of each other." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5177 +msgid "Spacing cols:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5179 +msgid "" +"Spacing between columns of the desired panel.\n" +"In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5187 +msgid "Spacing rows:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5189 +msgid "" +"Spacing between rows of the desired panel.\n" +"In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5197 +msgid "Columns:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5199 +msgid "Number of columns of the desired panel" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5206 +msgid "Rows:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5208 +msgid "Number of rows of the desired panel" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5214 +msgid "Gerber" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5215 +msgid "Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5216 +msgid "Panel Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5218 +msgid "" +"Choose the type of object for the panel object:\n" +"- Gerber\n" +"- Geometry" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5227 +msgid "Constrain within:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5229 +msgid "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5238 +msgid "Width (DX):" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5240 +msgid "" +"The width (DX) within which the panel must fit.\n" +"In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5247 +msgid "Height (DY):" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5249 +msgid "" +"The height (DY)within which the panel must fit.\n" +"In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5263 +msgid "Calculators Tool Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5266 +msgid "V-Shape Tool Calculator:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5268 +msgid "" +"Calculate the tool diameter for a given V-shape tool,\n" +"having the tip diameter, tip angle and\n" +"depth-of-cut as parameters." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5279 +msgid "Tip Diameter:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5281 +msgid "" +"This is the tool tip diameter.\n" +"It is specified by manufacturer." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5289 +msgid "Tip angle:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5291 +msgid "" +"This is the angle on the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5301 +msgid "" +"This is depth to cut into material.\n" +"In the CNCJob object it is the CutZ parameter." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5308 +msgid "ElectroPlating Calculator:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5310 +msgid "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like grahite ink or calcium hypophosphite ink or palladium chloride." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5320 +msgid "Board Length:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5322 +msgid "This is the board length. In centimeters." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5328 +msgid "Board Width:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5330 +msgid "This is the board width.In centimeters." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5335 +msgid "Current Density:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5338 +msgid "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5344 +msgid "Copper Growth:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5347 +msgid "" +"How thick the copper growth is intended to be.\n" +"In microns." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5360 +msgid "Transform Tool Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5365 +msgid "" +"Various transformations that can be applied\n" +"on a FlatCAM object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5375 +msgid "Rotate Angle:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5377 +msgid "Angle for rotation. In degrees." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5384 +msgid "Skew_X angle:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5386 +msgid "Angle for Skew/Shear on X axis. In degrees." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5393 +msgid "Skew_Y angle:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5395 +msgid "Angle for Skew/Shear on Y axis. In degrees." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5402 +msgid "Scale_X factor:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5404 +msgid "Factor for scaling on X axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5411 +msgid "Scale_Y factor:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5413 +msgid "Factor for scaling on Y axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5419 +msgid "Link" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5421 +msgid "" +"Scale the selected object(s)\n" +"using the Scale_X factor for both axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5427 +msgid "Scale Reference" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5429 +msgid "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5438 +msgid "Offset_X val:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5440 +msgid "Distance to offset on X axis. In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5447 +msgid "Offset_Y val:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5449 +msgid "Distance to offset on Y axis. In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5455 +msgid "Mirror Reference" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5457 +msgid "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5468 +msgid " Mirror Ref. Point:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5470 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5487 +msgid "SolderPaste Tool Options" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5492 +msgid "" +"A tool to create GCode for dispensing\n" +"solder paste onto a PCB." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5503 +msgid "Diameters of nozzle tools, separated by ','" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5510 +msgid "New Nozzle Dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5512 +msgid "Diameter for the new Nozzle tool to add in the Tool Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5520 +msgid "Z Dispense Start:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5522 +msgid "The height (Z) when solder paste dispensing starts." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5529 +msgid "Z Dispense:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5531 +msgid "The height (Z) when doing solder paste dispensing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5538 +msgid "Z Dispense Stop:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5540 +msgid "The height (Z) when solder paste dispensing stops." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5547 +msgid "Z Travel:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5549 +msgid "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5557 +msgid "Z Toolchange:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5559 +msgid "The height (Z) for tool (nozzle) change." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5566 +msgid "XY Toolchange:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5568 +msgid "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5576 +msgid "Feedrate X-Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5578 +msgid "Feedrate (speed) while moving on the X-Y plane." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5585 +msgid "Feedrate Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5587 +msgid "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5595 +msgid "Feedrate Z Dispense:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5597 +msgid "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5605 +msgid "Spindle Speed FWD:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5607 +msgid "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5615 +msgid "Dwell FWD:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5617 +msgid "Pause after solder dispensing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5624 +msgid "Spindle Speed REV:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5626 +msgid "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5634 +msgid "Dwell REV:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5636 +msgid "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5643 +msgid "PostProcessors:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5645 +msgid "Files that control the GCode generation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5675 +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5681 +msgid "Idle." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5705 +msgid "Application started ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMGUI.py:5706 +msgid "Hello!" +msgstr "" + diff --git a/locale_template/FlatCAMObj.pot b/locale_template/FlatCAMObj.pot new file mode 100644 index 00000000..5835ab36 --- /dev/null +++ b/locale_template/FlatCAMObj.pot @@ -0,0 +1,332 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 02:05+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:196 +msgid "[success]Name changed from %s to %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:534 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1888 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3151 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5298 +msgid "Basic" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:546 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1904 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3173 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5304 +msgid "Advanced" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:901 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:956 +msgid "[success]Isolation geometry created: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1031 +msgid "[ERROR_NOTCL] The aperture scale factor value is missing or wrong format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1046 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1081 +msgid "[WARNING_NOTCL] No aperture to scale. Select at least one aperture and try again." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1066 +msgid "[ERROR_NOTCL] The aperture buffer value is missing or wrong format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1139 +msgid "Generating Gerber" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1146 +msgid "[ERROR_NOTCL] Cretion of Gerber failed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1154 +msgid "[success] Created: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1274 +msgid "Plotting Apertures" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1728 +msgid "Total Drills" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1754 +msgid "Total Slots" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:1960 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3223 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3529 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3716 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3729 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3846 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4254 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4487 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4893 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2184 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2275 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2390 +msgid "[ERROR_NOTCL]Please select one or more tools from the list and try again." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2191 +msgid "[ERROR_NOTCL] Milling tool for DRILLS is larger than hole size. Cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2206 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2300 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2411 +msgid "Diameter" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2206 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2300 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2411 +msgid "Drills_Nr" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2206 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2300 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2411 +msgid "Slots_Nr" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2206 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2300 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2411 +msgid "Tool_nr" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2285 +msgid "[ERROR_NOTCL] Milling tool for SLOTS is larger than hole size. Cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2448 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4142 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4353 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4668 +msgid "[ERROR_NOTCL]Wrong value format for self.defaults[\"z_pdepth\"] or self.options[\"z_pdepth\"]" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2460 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4154 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4365 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4680 +msgid "[ERROR_NOTCL]Wrong value format for self.defaults[\"feedrate_probe\"] or self.options[\"feedrate_probe\"]" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2493 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4556 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4561 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4707 +msgid "Generating CNC Code" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2518 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4852 +msgid "" +"[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, y) \n" +"but now there is only one value, not two. " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2866 +msgid "In" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2866 +msgid "Out" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2866 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3108 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3393 +msgid "Path" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2866 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3189 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3762 +msgid "Custom" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2867 +msgid "Finish" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2867 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3110 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3395 +msgid "Rough" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:2867 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3773 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3774 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3783 +msgid "Iso" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3145 +msgid "Copy" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3147 +msgid "Delete" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3364 +msgid "[ERROR_NOTCL] Please enter the desired tool diameter in Float format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3439 +msgid "[success] Tool added in Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3444 +msgid "[ERROR_NOTCL]Default Tool added. Wrong value format entered." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3474 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3484 +msgid "[WARNING_NOTCL]Failed. Select a tool to copy." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3513 +msgid "[success] Tool was copied in Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3546 +msgid "[success] Tool was edited in Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3577 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3587 +msgid "[WARNING_NOTCL]Failed. Select a tool to delete." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:3611 +msgid "[success] Tool was deleted in Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4025 +msgid "[WARNING_NOTCL]This Geometry can't be processed because it is %s geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4042 +msgid "[ERROR_NOTCL]Wrong Tool Dia value format entered, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4069 +msgid "[ERROR_NOTCL] Failed. No tool selected in the tool table ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4107 +msgid "" +"[ERROR] An internal error has ocurred. See shell.\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4108 +msgid "FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4263 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4496 +msgid "" +"[WARNING] Tool Offset is selected in Tool Table but no value is provided.\n" +"Add a Tool Offset or change the Offset Type." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4377 +msgid "[ERROR_NOTCL]Cancelled. Empty file, it has no geometry..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4739 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4749 +msgid "[ERROR_NOTCL] Scale factor has to be a number: integer or float." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4787 +msgid "[success]Geometry Scale done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4804 +msgid "[ERROR_NOTCL]An (x,y) pair of values are needed. Probable you entered only one value in the Offset field." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:4824 +msgid "[success]Geometry Offset done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5372 +msgid "Export Machine Code ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5377 +msgid "[WARNING_NOTCL]Export Machine Code cancelled ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5389 +msgid "[success] Machine Code file saved to: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5401 +msgid "Code Editor" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5420 +msgid "[ERROR]FlatCAMCNNJob.on_modifygcode_button_click() -->%s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5526 +msgid "[WARNING_NOTCL]This CNCJob object can't be processed because it is a %s CNCJob object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5578 +msgid "[ERROR_NOTCL] G-code does not have a units code: either G20 or G21" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5591 +msgid "[ERROR_NOTCL] Cancelled. The Toolchange Custom code is enabled but it's empty." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5598 +msgid "[success] Toolchange G-code was replaced by a custom code." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5613 +msgid "[WARNING_NOTCL] No such file or directory" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5633 +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5645 +msgid "[WARNING_NOTCL] The used postprocessor file has to have in it's name: 'toolchange_custom'" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\FlatCAMObj.py:5651 +msgid "[ERROR] There is no postprocessor file." +msgstr "" + diff --git a/locale_template/ObjectCollection.pot b/locale_template/ObjectCollection.pot new file mode 100644 index 00000000..c997552f --- /dev/null +++ b/locale_template/ObjectCollection.pot @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 02:14+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:75 +msgid "Open cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:397 +msgid "Object renamed from %s to %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:691 +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:694 +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:697 +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:700 +msgid "[selected]%s selected" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:731 +msgid "[ERROR] Cause of error: %s" +msgstr "" + diff --git a/locale_template/ObjectUI.pot b/locale_template/ObjectUI.pot new file mode 100644 index 00000000..02c2712c --- /dev/null +++ b/locale_template/ObjectUI.pot @@ -0,0 +1,1299 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 02:29+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:24 +msgid "FlatCAM Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:48 +msgid "" +"BASIC is suitable for a beginner. Many parameters\n" +"are hidden from the user in this mode.\n" +"ADVANCED mode will make available all parameters.\n" +"\n" +"To change the application LEVEL, go to:\n" +"Edit -> Preferences -> General and check:\n" +"'APP. LEVEL' radio button." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:70 +msgid "Scale:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:72 +msgid "Change the size of the object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:80 +msgid "Factor:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:82 +msgid "" +"Factor by which to multiply\n" +"geometric features of this object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:91 D:\1.DEV\FlatCAM_beta\ObjectUI.py:256 +msgid "Scale" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:93 +msgid "Perform scaling operation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:99 +msgid "Offset:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:101 +msgid "Change the position of this object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:108 +msgid "Vector:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:110 +msgid "" +"Amount by which to move the object\n" +"in the x and y axes in (x, y) format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:118 D:\1.DEV\FlatCAM_beta\ObjectUI.py:949 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1506 +msgid "Offset" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:120 +msgid "Perform the offset operation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:134 +msgid "Gerber Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:141 D:\1.DEV\FlatCAM_beta\ObjectUI.py:567 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:891 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1404 +msgid "Plot Options:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:147 +msgid "Solid " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:149 +msgid "Solid color polygons." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:155 +msgid "M-Color " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:157 +msgid "Draw polygons in different colors." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:163 +msgid "Plot" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:165 D:\1.DEV\FlatCAM_beta\ObjectUI.py:608 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:937 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1490 +msgid "Plot (show) this object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:173 D:\1.DEV\FlatCAM_beta\ObjectUI.py:579 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:897 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1426 +msgid "Name:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:183 +msgid "Apertures:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:185 +msgid "Apertures Table for the Gerber Object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:194 +msgid "" +"Toggle the display of the Gerber Apertures Table.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:205 +msgid "Mark All" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:207 +msgid "" +"When checked it will display all the apertures.\n" +"When unchecked, it will delete all mark shapes\n" +"that are drawn on canvas." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:219 +msgid "Code" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:219 +msgid "Dim" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:219 +msgid "Size" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:219 D:\1.DEV\FlatCAM_beta\ObjectUI.py:949 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1506 +msgid "Type" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:223 +msgid "Index" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:225 +msgid "Aperture Code" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:227 +msgid "Type of aperture: circular, rectangle, macros etc" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:229 +msgid "Aperture Size:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:231 +msgid "" +"Aperture Dimensions:\n" +" - (width, height) for R, O type.\n" +" - (dia, nVertices) for P type" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:235 +msgid "Mark the aperture instances on canvas." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:243 +msgid "Scale Factor:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:245 +msgid "" +"Change the size of the selected apertures.\n" +"Factor by which to multiply\n" +"geometric features of this object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:258 +msgid "Perform scaling operation on the selected apertures." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:264 +msgid "Buffer Factor:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:266 +msgid "" +"Change the size of the selected apertures.\n" +"Factor by which to expand/shrink\n" +"geometric features of this object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:277 +msgid "Buffer" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:279 +msgid "Perform buffer operation on the selected apertures." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:287 +msgid "Generate new Gerber Object:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:289 +msgid "Will generate a new Gerber object from the changed apertures." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:295 +msgid "Go" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:297 +msgid "" +"Will generate a new Gerber object from the changed apertures.\n" +"This new object can then be isolated etc." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:313 +msgid "Isolation Routing:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:315 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut outside polygons." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:322 +msgid "Tool dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:324 +msgid "" +"Diameter of the cutting tool.\n" +"If you want to have an isolation path\n" +"inside the actual shape of the Gerber\n" +"feature, use a negative value for\n" +"this parameter." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:335 +msgid "Passes:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:337 +msgid "" +"Width of the isolation gap in\n" +"number (integer) of tool widths." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:345 +msgid "Pass overlap:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:347 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means an overlap of 25% from the tool diameter found above." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:357 +msgid "Milling Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:359 +msgid "" +"Milling type:\n" +"- climb / best for precision milling and to reduce tool usage\n" +"- conventional / useful when there is no backlash compensation" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:364 +msgid "Climb" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:365 +msgid "Conv." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:369 +msgid "Combine" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:371 +msgid "Combine all passes into one object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:376 +msgid "\"Follow\"" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:378 +msgid "" +"Generate a 'Follow' geometry.\n" +"This means that it will cut through\n" +"the middle of the trace." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:385 +msgid "Generate Isolation Geometry:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:387 +msgid "" +"Create a Geometry object with toolpaths to cut \n" +"isolation outside, inside or on both sides of the\n" +"object. For a Gerber object outside means outside\n" +"of the Gerber feature and inside means inside of\n" +"the Gerber feature, if possible at all. This means\n" +"that only if the Gerber feature has openings inside, they\n" +"will be isolated. If what is wanted is to cut isolation\n" +"inside the actual Gerber feature, use a negative tool\n" +"diameter above." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:406 +msgid "FULL Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:408 +msgid "" +"Create the Geometry Object\n" +"for isolation routing. It contains both\n" +"the interiors and exteriors geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:417 +msgid "Ext Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:419 +msgid "" +"Create the Geometry Object\n" +"for isolation routing containing\n" +"only the exteriors geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:426 +msgid "Int Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:428 +msgid "" +"Create the Geometry Object\n" +"for isolation routing containing\n" +"only the interiors geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:446 +msgid "Clear N-copper:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:448 +msgid "" +"Create a Geometry object with\n" +"toolpaths to cut all non-copper regions." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:454 +msgid "NCC Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:456 +msgid "" +"Create the Geometry Object\n" +"for non-copper routing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:462 +msgid "Board cutout:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:464 +msgid "" +"Create toolpaths to cut around\n" +"the PCB and separate it from\n" +"the original board." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:470 +msgid "Cutout Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:472 +msgid "" +"Generate the geometry for\n" +"the board cutout." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:478 +msgid "Non-copper regions:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:480 +msgid "" +"Create polygons covering the\n" +"areas without copper on the PCB.\n" +"Equivalent to the inverse of this\n" +"object. Can be used to remove all\n" +"copper from a specified region." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:492 D:\1.DEV\FlatCAM_beta\ObjectUI.py:526 +msgid "Boundary Margin:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:494 +msgid "" +"Specify the edge of the PCB\n" +"by drawing a box around all\n" +"objects with this minimum\n" +"distance." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:505 D:\1.DEV\FlatCAM_beta\ObjectUI.py:536 +msgid "Rounded Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:507 +msgid "Resulting geometry will have rounded corners." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:512 D:\1.DEV\FlatCAM_beta\ObjectUI.py:546 +msgid "Generate Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:516 +msgid "Bounding Box:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:518 +msgid "" +"Create a geometry surrounding the Gerber object.\n" +"Square shape." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:528 +msgid "" +"Distance of the edges of the box\n" +"to the nearest polygon." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:538 +msgid "" +"If the bounding box is \n" +"to have rounded corners\n" +"their radius is equal to\n" +"the margin." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:548 +msgid "Generate the Geometry object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:559 +msgid "Excellon Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:568 +msgid "Solid" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:570 +msgid "Solid circles." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:598 D:\1.DEV\FlatCAM_beta\ObjectUI.py:916 +msgid "Tools Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:600 +msgid "" +"Tools in this Excellon object\n" +"when are used for drilling." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:606 D:\1.DEV\FlatCAM_beta\ObjectUI.py:935 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1488 +msgid "Plot Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:618 +msgid "Diameter" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:618 D:\1.DEV\FlatCAM_beta\ObjectUI.py:813 +msgid "Drills" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:618 D:\1.DEV\FlatCAM_beta\ObjectUI.py:814 +msgid "Slots" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:619 +msgid "Offset Z" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:623 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn in the Machine Code." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:627 D:\1.DEV\FlatCAM_beta\ObjectUI.py:961 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:630 +msgid "" +"The number of Drill holes. Holes that are drilled with\n" +"a drill bit." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:633 +msgid "" +"The number of Slot holes. Holes that are created by\n" +"milling them with an endmill bit." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:636 +msgid "" +"Some drill bits (the larger ones) need to drill deeper\n" +"to create the desired exit hole diameter due of the tip shape.\n" +"The value here can compensate the Cut Z parameter." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:640 +msgid "Toggle display of the drills for the current tool." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:646 +msgid "Create CNC Job" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:648 +msgid "" +"Create a CNC Job object\n" +"for this drill object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:657 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1120 +msgid "Cut Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:659 +msgid "" +"Drill depth (negative)\n" +"below the copper surface." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:667 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1156 +msgid "Travel Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:669 +msgid "" +"Tool height when travelling\n" +"across the XY plane." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:677 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1176 +msgid "Tool change" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:679 +msgid "" +"Include tool-change sequence\n" +"in G-Code (Pause for tool change)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:685 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1169 +msgid "Tool change Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:687 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1171 +msgid "" +"Z-axis position (height) for\n" +"tool change." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:696 +msgid "Start move Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:698 +msgid "" +"Tool height just before starting the work.\n" +"Delete the value if you don't need this feature." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:706 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1202 +msgid "End move Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:708 +msgid "" +"Z-axis position (height) for\n" +"the last move." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:716 +msgid "Feedrate (Plunge):" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:718 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for linear move G01." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:727 +msgid "Feedrate Rapids:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:729 +msgid "" +"Tool speed while drilling\n" +"(in units per minute).\n" +"This is for the rapid move G00.\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:740 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1265 +msgid "Spindle speed:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:742 +msgid "" +"Speed of the spindle\n" +"in RPM (optional)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:750 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1278 +msgid "Dwell:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:752 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1280 +msgid "" +"Pause to allow the spindle to reach its\n" +"speed before cutting." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:757 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1287 +msgid "Number of milliseconds for spindle to dwell." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:765 +msgid "Postprocessor:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:767 +msgid "" +"The json file that dictates\n" +"gcode output." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:776 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1310 +msgid "Probe Z depth:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:778 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1312 +msgid "" +"The maximum depth that the probe is allowed\n" +"to probe. Negative value, in current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:788 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1324 +msgid "Feedrate Probe:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:790 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1326 +msgid "The feedrate used while the probe is probing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:799 +msgid "" +"Select from the Tools Table above\n" +"the tools you want to include." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:806 +msgid "Type: " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:808 +msgid "" +"Choose what to use for GCode generation:\n" +"'Drills', 'Slots' or 'Both'.\n" +"When choosing 'Slots' or 'Both', slots will be\n" +"converted to a series of drills." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:815 +msgid "Both" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:823 +msgid "Create GCode" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:825 +msgid "Generate the CNC Job." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:830 +msgid "Mill Holes" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:832 +msgid "Create Geometry for milling holes." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:837 +msgid "" +"Select from the Tools Table above\n" +" the hole dias that are to be milled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:844 +msgid "Drills Tool dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:846 D:\1.DEV\FlatCAM_beta\ObjectUI.py:862 +msgid "Diameter of the cutting tool." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:851 +msgid "Mill Drills Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:853 +msgid "" +"Create the Geometry Object\n" +"for milling DRILLS toolpaths." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:860 +msgid "Slots Tool dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:867 +msgid "Mill Slots Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:869 +msgid "" +"Create the Geometry Object\n" +"for milling SLOTS toolpaths." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:887 +msgid "Geometry Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:918 +msgid "" +"Tools in this Geometry object used for cutting.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V). \n" +"When V-shaped is selected the 'Type' entry is automatically \n" +"set to Isolation, the CutZ parameter in the UI form is\n" +"grayed out and Cut Z is automatically calculated from the newly \n" +"showed UI form entries named V-Tip Dia and V-Tip Angle." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:949 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1506 +msgid "Dia" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:949 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1506 +msgid "TT" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:955 +msgid "" +"This is the Tool Number.\n" +"When ToolChange is checked, on toolchange event this value\n" +"will be showed as a T1, T2 ... Tn" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:966 +msgid "" +"The value for the Offset can be:\n" +"- Path -> There is no offset, the tool cut will be done through the geometry line.\n" +"- In(side) -> The tool cut will follow the geometry inside. It will create a 'pocket'.\n" +"- Out(side) -> The tool cut will follow the geometry line on the outside." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:973 +msgid "" +"The (Operation) Type has only informative value. Usually the UI form values \n" +"are choosed based on the operation type and this will serve as a reminder.\n" +"Can be 'Roughing', 'Finishing' or 'Isolation'.\n" +"For Roughing we may choose a lower Feedrate and multiDepth cut.\n" +"For Finishing we may choose a higher Feedrate, without multiDepth.\n" +"For Isolation we need a lower Feedrate as it use a milling bit with a fine tip." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:982 +msgid "" +"The Tool Type (TT) can be:\n" +"- Circular with 1 ... 4 teeth -> it is informative only. Being circular the cut width in material\n" +"is exactly the tool diameter.\n" +"- Ball -> informative only and make reference to the Ball type endmill.\n" +"- V-Shape -> it will disable de Z-Cut parameter in the UI form and enable two additional UI form\n" +"fields: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter such\n" +"as the cut width into material will be equal with the value in the Tool Diameter column of this table.\n" +"Choosing the V-Shape Tool Type automatically will select the Operation Type as Isolation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:993 +msgid "" +"Plot column. It is visible only for MultiGeo geometries, meaning geometries that holds the geometry\n" +"data into the tools. For those geometries, deleting the tool will delete the geometry data also,\n" +"so be WARNED. From the checkboxes on each row it can be enabled/disabled the plot on canvas\n" +"for the corresponding tool." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1007 +msgid "Tool Offset:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1009 +msgid "" +"The value to offset the cut when \n" +"the Offset type selected is 'Offset'.\n" +"The value can be positive for 'outside'\n" +"cut and negative for 'inside' cut." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1033 +msgid "Tool Dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1035 +msgid "Diameter for the new tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1049 +msgid "Add" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1051 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1057 +msgid "Copy" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1059 +msgid "" +"Copy a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1065 +msgid "Delete" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1067 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row in the Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1084 +msgid "Tool Data" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1086 +msgid "" +"The data used for creating GCode.\n" +"Each tool store it's own set of such data." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1097 +msgid "V-Tip Dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1099 +msgid "The tip diameter for V-Shape Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1108 +msgid "V-Tip Angle:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1110 +msgid "" +"The tip angle for V-Shape Tool.\n" +"In degree." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1122 +msgid "" +"Cutting depth (negative)\n" +"below the copper surface." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1132 +msgid "Multi-Depth:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1134 +msgid "" +"Use multiple passes to limit\n" +"the cut depth in each pass. Will\n" +"cut multiple times until Cut Z is\n" +"reached.\n" +"To the right, input the depth of \n" +"each pass (positive value)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1147 +msgid "Depth of each pass (positive)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1158 +msgid "" +"Height of the tool when\n" +"moving without cutting." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1178 +msgid "" +"Include tool-change sequence\n" +"in the Machine Code (Pause for tool change)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1204 +msgid "" +"This is the height (Z) at which the CNC\n" +"will go as the last move." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1214 +msgid "Feed Rate X-Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1216 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1226 +msgid "Feed Rate Z (Plunge):" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1228 +msgid "" +"Cutting speed in the Z\n" +"plane in units per minute" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1238 +msgid "Feed Rate Rapids:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1240 +msgid "" +"Cutting speed in the XY\n" +"plane in units per minute\n" +"for the rapid movements G00.\n" +"It is useful only in conjunction \n" +"with Marlin postprocessor." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1253 +msgid "Cut over 1st pt" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1255 +msgid "" +"In order to remove possible\n" +"copper leftovers where first cut\n" +"meet with last cut, we generate an\n" +"extended cut over the first cut section." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1267 +msgid "" +"Speed of the spindle in RPM (optional).\n" +"If LASER postprocessor is used,\n" +"this value is the power of laser." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1297 +msgid "PostProcessor:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1299 +msgid "" +"The Postprocessor file that dictates\n" +"the Machine Code (like GCode, RML, HPGL) output." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1337 +msgid "" +"Add at least one tool in the tool-table.\n" +"Click the header to select all, or Ctrl + LMB\n" +"for custom selection of tools." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1345 +msgid "Generate" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1347 +msgid "Generate the CNC Job object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1356 +msgid "Paint Area:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1358 +msgid "" +"Creates tool paths to cover the\n" +"whole area of a polygon (remove\n" +"all copper). You will be asked\n" +"to click on the desired polygon." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1368 +msgid "Paint Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1370 +msgid "Launch Paint Tool in Tools Tab." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1388 +msgid "CNC Job Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1407 +msgid "Plot kind:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1409 +msgid "" +"This selects the kind of geometries on the canvas to plot.\n" +"Those can be either of type 'Travel' which means the moves\n" +"above the work piece or it can be of type 'Cut',\n" +"which means the moves that cut into the material." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1418 +msgid "All" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1419 +msgid "Travel" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1420 +msgid "Cut" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1432 +msgid "Travelled dist.:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1434 +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1441 +msgid "" +"This is the total travelled distance on X-Y plane.\n" +"In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1470 +msgid "CNC Tools Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1472 +msgid "" +"Tools in this CNCJob object used for cutting.\n" +"The tool diameter is used for plotting on canvas.\n" +"The 'Offset' entry will set an offset for the cut.\n" +"'Offset' can be inside, outside, on path (none) and custom.\n" +"'Type' entry is only informative and it allow to know the \n" +"intent of using the current tool. \n" +"It can be Rough(ing), Finish(ing) or Iso(lation).\n" +"The 'Tool type'(TT) can be circular with 1 to 4 teeths(C1..C4),\n" +"ball(B), or V-Shaped(V)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1507 +msgid "P" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1513 +msgid "Update Plot" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1515 +msgid "Update the plot." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1522 +msgid "Export CNC Code:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1524 +msgid "" +"Export and save G-Code to\n" +"make this object to a file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1530 +msgid "Prepend to CNC Code:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1532 +msgid "" +"Type here any G-Code commands you would\n" +"like to add to the beginning of the generated file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1543 +msgid "Append to CNC Code" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1545 +msgid "" +"Type here any G-Code commands you would\n" +"like to append to the generated file.\n" +"I.e.: M2 (End of program)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1564 +msgid "Toolchange G-Code:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1566 +msgid "" +"Type here any G-Code commands you would\n" +"like to be executed when Toolchange event is encountered.\n" +"This will constitute a Custom Toolchange GCode,\n" +"or a Toolchange Macro.\n" +"The FlatCAM variables are surrounded by '%' symbol.\n" +"\n" +"WARNING: it can be used only with a postprocessor file\n" +"that has 'toolchange_custom' in it's name and this is built\n" +"having as template the 'Toolchange Custom' posprocessor file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1586 +msgid "Use Toolchange Macro" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1588 +msgid "" +"Check this box if you want to use\n" +"a Custom Toolchange GCode (macro)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1604 +msgid "" +"A list of the FlatCAM variables that can be used\n" +"in the Toolchange event.\n" +"They have to be surrounded by the '%' symbol" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1613 +msgid "Parameters" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1616 +msgid "FlatCAM CNC parameters" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1617 +msgid "tool = tool number" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1618 +msgid "tooldia = tool diameter" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1619 +msgid "t_drills = for Excellon, total number of drills" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1620 +msgid "x_toolchange = X coord for Toolchange" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1621 +msgid "y_toolchange = Y coord for Toolchange" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1622 +msgid "z_toolchange = Z coord for Toolchange" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1623 +msgid "z_cut = Z coord for Toolchange" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1624 +msgid "z_move = Z coord for Toolchange" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1625 +msgid "z_depthpercut = the step value for multidepth cut" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1626 +msgid "spindlesspeed = the value for the spindle speed" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1627 +msgid "dwelltime = time to dwell to allow the spindle to reach it's set RPM" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1645 +msgid "View CNC Code" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1647 +msgid "" +"Opens TAB to view/modify/print G-Code\n" +"file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1654 +msgid "Save CNC Code" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\ObjectUI.py:1656 +msgid "" +"Opens dialog to save G-Code\n" +"file." +msgstr "" + diff --git a/locale_template/ToolCalculators.pot b/locale_template/ToolCalculators.pot new file mode 100644 index 00000000..c790c603 --- /dev/null +++ b/locale_template/ToolCalculators.pot @@ -0,0 +1,161 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:01+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:14 +msgid "Calculators" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:15 +msgid "V-Shape Tool Calculator" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:16 +msgid "Units Calculator" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:17 +msgid "ElectroPlating Calculator" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:58 +msgid "Here you enter the value to be converted from INCH to MM" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:63 +msgid "Here you enter the value to be converted from MM to INCH" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:84 +msgid "Tip Diameter:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:88 +msgid "" +"This is the diameter of the tool tip.\n" +"The manufacturer specifies it." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:95 +msgid "" +"This is the angle of the tip of the tool.\n" +"It is specified by manufacturer." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:102 +msgid "" +"This is the depth to cut into the material.\n" +"In the CNCJob is the CutZ parameter." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:109 +msgid "" +"This is the tool diameter to be entered into\n" +"FlatCAM Gerber section.\n" +"In the CNCJob section it is called >Tool dia<." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:121 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:204 +msgid "Calculate" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:124 +msgid "" +"Calculate either the Cut Z or the effective tool diameter,\n" +" depending on which is desired and which is known. " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:142 +msgid "" +"This calculator is useful for those who plate the via/pad/drill holes,\n" +"using a method like grahite ink or calcium hypophosphite ink or palladium chloride." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:151 +msgid "Board Length:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:155 +msgid "This is the board length. In centimeters." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:157 +msgid "Board Width:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:161 +msgid "This is the board width.In centimeters." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:163 +msgid "Current Density:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:167 +msgid "" +"Current density to pass through the board. \n" +"In Amps per Square Feet ASF." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:171 +msgid "Copper Growth:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:175 +msgid "" +"How thick the copper growth is intended to be.\n" +"In microns." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:180 +msgid "Current Value:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:184 +msgid "" +"This is the current intensity value\n" +"to be set on the Power Supply. In Amps." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:188 +msgid "Time:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:192 +msgid "" +"This is the calculated time required for the procedure.\n" +"In minutes." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:207 +msgid "" +"Calculate the current intensity value and the procedure time,\n" +" depending on the parameters above" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:294 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:305 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:317 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:332 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:345 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:359 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:370 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:381 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCalculators.py:392 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "" + diff --git a/locale_template/ToolCutOut.pot b/locale_template/ToolCutOut.pot new file mode 100644 index 00000000..cf8a434e --- /dev/null +++ b/locale_template/ToolCutOut.pot @@ -0,0 +1,300 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:03+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:13 +msgid "Cutout PCB" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:49 +msgid "Obj Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:51 +msgid "" +"Specify the type of object to be cutout.\n" +"It can be of type: Gerber or Geometry.\n" +"What is selected here will dictate the kind\n" +"of objects that will populate the 'Object' combobox." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:65 +msgid "Object:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:67 +msgid "Object to be cutout. " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:73 +msgid "Tool Dia:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:75 +msgid "" +"Diameter of the tool used to cutout\n" +"the PCB shape out of the surrounding material." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:82 +msgid "Margin:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:84 +msgid "" +"Margin over bounds. A positive value here\n" +"will make the cutout of the PCB further from\n" +"the actual PCB border" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:92 +msgid "Gap size:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:94 +msgid "" +"The size of the bridge gaps in the cutout\n" +"used to keep the board connected to\n" +"the surrounding material (the one \n" +"from which the PCB is cutout)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:110 +msgid "A. Automatic Bridge Gaps" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:112 +msgid "This section handle creation of automatic bridge gaps." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:121 +msgid "Gaps:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:123 +msgid "" +"Number of gaps used for the Automatic cutout.\n" +"There can be maximum 8 bridges/gaps.\n" +"The choices are:\n" +"- lr - left + right\n" +"- tb - top + bottom\n" +"- 4 - left + right +top + bottom\n" +"- 2lr - 2*left + 2*right\n" +"- 2tb - 2*top + 2*bottom\n" +"- 8 - 2*left + 2*right +2*top + 2*bottom" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:146 +msgid "FreeForm:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:148 +msgid "" +"The cutout shape can be of ny shape.\n" +"Useful when the PCB has a non-rectangular shape." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:155 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:175 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:226 +msgid "Generate Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:157 +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 "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:166 +msgid "Rectangular:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:168 +msgid "" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:177 +msgid "" +"Cutout the selected object.\n" +"The resulting cutout shape is\n" +"always a rectangle shape and it will be\n" +"the bounding box of the Object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:185 +msgid "B. Manual Bridge Gaps" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:187 +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 "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:203 +msgid "Geo Obj:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:205 +msgid "Geometry object used to create the manual cutout." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:216 +msgid "Manual Geo:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:218 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:228 +msgid "" +"If the object to be cutout is a Gerber\n" +"first create a Geometry that surrounds it,\n" +"to be used as the cutout, if one doesn't exist yet.\n" +"Select the source Gerber file in the top object combobox." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:238 +msgid "Manual Add Bridge Gaps:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:240 +msgid "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:247 +msgid "Generate Gap" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:249 +msgid "" +"Use the left mouse button (LMB) click\n" +"to create a bridge gap to separate the PCB from\n" +"the surrounding material.\n" +"The LMB click has to be done on the perimeter of\n" +"the Geometry object used as a cutout geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:322 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:461 +msgid "[ERROR_NOTCL]Could not retrieve object: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:326 +msgid "" +"[ERROR_NOTCL]There is no object selected for Cutout.\n" +"Select one and try again." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:336 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:474 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:594 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:699 +msgid "[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:342 +msgid "[WARNING_NOTCL]Tool Diameter is zero value. Change it to a positive integer." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:352 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:489 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:714 +msgid "[WARNING_NOTCL] Margin value is missing or wrong format. Add it and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:363 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:500 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:609 +msgid "[WARNING_NOTCL] Gap size value is missing or wrong format. Add it and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:370 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:507 +msgid "[WARNING_NOTCL] Number of gaps value is missing. Add it and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:374 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:511 +msgid "[WARNING_NOTCL] Gaps value can be only one of: 'lr', 'tb', '2lr', '2tb', 4 or 8. Fill in a correct value and retry. " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:379 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:516 +msgid "" +"[ERROR]Cutout operation cannot be done on a multi-geo Geometry.\n" +"Optionally, this Multi-geo Geometry can be converted to Single-geo Geometry,\n" +"and after that perform Cutout." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:445 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:579 +msgid "[success] Any form CutOut operation finished." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:465 +msgid "[ERROR_NOTCL]Object not found: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:479 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:599 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:704 +msgid "[ERROR_NOTCL]Tool Diameter is zero value. Change it to a positive integer." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:584 +msgid "Click on the selected geometry object perimeter to create a bridge gap ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:625 +msgid "Making manual bridge gap..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:648 +msgid "[ERROR_NOTCL]Could not retrieve Geoemtry object: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:652 +msgid "[ERROR_NOTCL]Geometry object for manual cutout not found: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:662 +msgid "[success] Added manual Bridge Gap." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:679 +msgid "[ERROR_NOTCL]Could not retrieve Gerber object: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:683 +msgid "" +"[ERROR_NOTCL]There is no Gerber object selected for Cutout.\n" +"Select one and try again." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolCutOut.py:688 +msgid "" +"[ERROR_NOTCL]The selected object has to be of Gerber type.\n" +"Select a Gerber file and try again." +msgstr "" + diff --git a/locale_template/ToolDblSided.pot b/locale_template/ToolDblSided.pot new file mode 100644 index 00000000..5a55e0c2 --- /dev/null +++ b/locale_template/ToolDblSided.pot @@ -0,0 +1,229 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:05+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:16 +msgid "2-Sided PCB" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:50 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:74 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:98 +msgid "Mirror" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:52 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:76 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:100 +msgid "" +"Mirrors (flips) the specified object around \n" +"the specified axis. Does not create a new \n" +"object, but modifies it." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:71 +msgid "Excellon Object to be mirrored." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:95 +msgid "Geometry Obj to be mirrored." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:114 +msgid "Mirror Axis:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:116 +msgid "Mirror vertically (X) or horizontally (Y)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:127 +msgid "Axis Ref:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:129 +msgid "" +"The axis should pass through a point or cut\n" +" a specified box (in a FlatCAM object) through \n" +"the center." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:142 +msgid "Point/Box Reference:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:144 +msgid "" +"If 'Point' is selected above it store the coordinates (x, y) through which\n" +"the mirroring axis passes.\n" +"If 'Box' is selected above, select here a FlatCAM object (Gerber, Exc or Geo).\n" +"Through the center of this object pass the mirroring axis selected above." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:150 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:198 +msgid "Add" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:152 +msgid "" +"Add the coordinates in format (x, y) through which the mirroring axis \n" +" selected in 'MIRROR AXIS' pass.\n" +"The (x, y) coordinates are captured by pressing SHIFT key\n" +"and left mouse button click on canvas or you can enter the coords manually." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:172 +msgid "Gerber Reference Box Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:173 +msgid "Excellon Reference Box Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:174 +msgid "Geometry Reference Box Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:183 +msgid ">Alignment Drill Coordinates:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:185 +msgid "" +"Alignment holes (x1, y1), (x2, y2), ... on one side of the mirror axis. For each set of (x, y) coordinates\n" +"entered here, a pair of drills will be created:\n" +"\n" +"- one drill at the coordinates from the field\n" +"- one drill in mirror position over the axis selected above in the 'Mirror Axis'." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:200 +msgid "" +"Add alignment drill holes coords in the format: (x1, y1), (x2, y2), ... \n" +"on one side of the mirror axis.\n" +"\n" +"The coordinates set can be obtained:\n" +"- press SHIFT key and left mouse clicking on canvas. Then click Add.\n" +"- press SHIFT key and left mouse clicking on canvas. Then CTRL+V in the field.\n" +"- press SHIFT key and left mouse clicking on canvas. Then RMB click in the field and click Paste.\n" +"- by entering the coords manually in the format: (x1, y1), (x2, y2), ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:214 +msgid "Alignment Drill Diameter" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:216 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:227 +msgid "Diameter of the drill for the alignment holes." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:225 +msgid "Drill diam.:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:234 +msgid "Create Excellon Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:236 +msgid "" +"Creates an Excellon Object containing the\n" +"specified alignment holes and their mirror\n" +"images." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:243 +msgid "Reset" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:245 +msgid "Resets all the fields." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:287 +msgid "2-Sided Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:312 +msgid "[WARNING_NOTCL] 'Point' reference is selected and 'Point' coordinates are missing. Add them and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:331 +msgid "[WARNING_NOTCL] There is no Box reference object loaded. Load one and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:348 +msgid "[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:353 +msgid "[WARNING_NOTCL]No value or wrong format in Drill Dia entry. Add it and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:360 +msgid "[WARNING_NOTCL] There are no Alignment Drill Coordinates to use. Add them and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:382 +msgid "[success] Excellon object with alignment drills created..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:391 +msgid "[WARNING_NOTCL] There is no Gerber object loaded ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:395 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:438 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:482 +msgid "[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:405 +msgid "[WARNING_NOTCL] 'Point' coordinates missing. Using Origin (0, 0) as mirroring reference." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:415 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:459 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:496 +msgid "[WARNING_NOTCL] There is no Box object loaded ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:425 +msgid "[success] Gerber %s was mirrored..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:434 +msgid "[WARNING_NOTCL] There is no Excellon object loaded ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:449 +msgid "[WARNING_NOTCL] There are no Point coordinates in the Point field. Add coords and try again ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:469 +msgid "[success] Excellon %s was mirrored..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:478 +msgid "[WARNING_NOTCL] There is no Geometry object loaded ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolDblSided.py:506 +msgid "[success] Geometry %s was mirrored..." +msgstr "" + diff --git a/locale_template/ToolFilm.pot b/locale_template/ToolFilm.pot new file mode 100644 index 00000000..1d134727 --- /dev/null +++ b/locale_template/ToolFilm.pot @@ -0,0 +1,156 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:06+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:13 +msgid "Film PCB" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:44 +msgid "Object Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:46 +msgid "" +"Specify the type of object for which to create the film.\n" +"The object can be of type: Gerber or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Film Object combobox." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:59 +msgid "Film Object:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:61 +msgid "Object for which to create the film." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:77 +msgid "Box Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:79 +msgid "" +"Specify the type of object to be used as an container for\n" +"film creation. It can be: Gerber or Geometry type.The selection here decide the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:92 +msgid "Box Object:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:94 +msgid "" +"The actual object that is used a container for the\n" +" selected object for which we create the film.\n" +"Usually it is the PCB outline but it can be also the\n" +"same object for which the film is created." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:104 +msgid "Film Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:106 +msgid "" +"Generate a Positive black film or a Negative film.\n" +"Positive means that it will print the features\n" +"with black on a white canvas.\n" +"Negative means that it will print the features\n" +"with white on a black canvas.\n" +"The Film format is SVG." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:118 +msgid "Border:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:120 +msgid "" +"Specify a border around the object.\n" +"Only for negative film.\n" +"It helps if we use as a Box Object the same \n" +"object as in Film Object. It will create a thick\n" +"black bar around the actual print allowing for a\n" +"better delimitation of the outline features which are of\n" +"white color like the rest and which may confound with the\n" +"surroundings if not for this border." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:132 +msgid "Scale Stroke:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:134 +msgid "" +"Scale the line stroke thickness of each feature in the SVG file.\n" +"It means that the line that envelope each SVG feature will be thicker or thinner,\n" +"therefore the fine features may be more affected by this parameter." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:145 +msgid "Save Film" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:147 +msgid "" +"Create a Film for the selected object, within\n" +"the specified box. Does not create a new \n" +" FlatCAM object, but directly save it in SVG format\n" +"which can be opened with Inkscape." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:188 +msgid "Film Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:209 +msgid "[ERROR_NOTCL] No FlatCAM object selected. Load an object for Film and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:215 +msgid "[ERROR_NOTCL] No FlatCAM object selected. Load an object for Box and retry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:225 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:232 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:239 +msgid "Generating Film ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:244 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:248 +msgid "Export SVG positive" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:253 +msgid "[WARNING_NOTCL]Export SVG positive cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:260 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:264 +msgid "Export SVG negative" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolFilm.py:269 +msgid "[WARNING_NOTCL]Export SVG negative cancelled." +msgstr "" + diff --git a/locale_template/ToolImage.pot b/locale_template/ToolImage.pot new file mode 100644 index 00000000..07deb312 --- /dev/null +++ b/locale_template/ToolImage.pot @@ -0,0 +1,119 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:07+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:13 +msgid "Image as Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:19 +msgid "Image to PCB" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:41 +msgid "Object Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:43 +msgid "" +"Specify the type of object to create from the image.\n" +"It can be of type: Gerber or Geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:51 +msgid "DPI value:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:53 +msgid "Specify a DPI value for the image." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:60 +msgid "Level of detail" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:69 +msgid "Image type" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:71 +msgid "" +"Choose a method for the image interpretation.\n" +"B/W means a black & white image. Color means a colored image." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:78 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:91 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:102 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:113 +msgid "Mask value" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:80 +msgid "" +"Mask for monochrome image.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry.\n" +"0 means no detail and 255 means everything \n" +"(which is totally black)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:93 +msgid "" +"Mask for RED color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:104 +msgid "" +"Mask for GREEN color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:115 +msgid "" +"Mask for BLUE color.\n" +"Takes values between [0 ... 255].\n" +"Decides the level of details to include\n" +"in the resulting geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:127 +msgid "Import image" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:129 +msgid "Open a image of raster type and then import it in FlatCAM." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:155 +msgid "Image Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:185 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:188 +msgid "Import IMAGE" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolImage.py:198 +msgid "Open cancelled." +msgstr "" + diff --git a/locale_template/ToolMeasurement.pot b/locale_template/ToolMeasurement.pot new file mode 100644 index 00000000..135657bb --- /dev/null +++ b/locale_template/ToolMeasurement.pot @@ -0,0 +1,91 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:08+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:16 +msgid "Measurement" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:37 +msgid "Start" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:37 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:40 +msgid "Coords" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:38 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:89 +msgid "This is measuring Start point coordinates." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:40 +msgid "Stop" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:41 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:94 +msgid "This is the measuring Stop point coordinates." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:44 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:99 +msgid "This is the distance measured over the X axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:47 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:105 +msgid "This is the distance measured over the Y axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:49 +msgid "DISTANCE" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:50 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:111 +msgid "This is the point to point Euclidian distance." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:53 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:60 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:67 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:74 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:81 +msgid "Those are the units in which the distance is measured." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:114 +msgid "Measure" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:173 +msgid "Meas. Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:266 +msgid "MEASURING: Click on the Start point ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:295 +msgid "MEASURING: Click on the Destination point ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMeasurement.py:316 +msgid "MEASURING: Result D(x) = %.4f | D(y) = %.4f | Distance = %.4f" +msgstr "" + diff --git a/locale_template/ToolMove.pot b/locale_template/ToolMove.pot new file mode 100644 index 00000000..c1e2e0ce --- /dev/null +++ b/locale_template/ToolMove.pot @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:08+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:15 +msgid "Move" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:70 +msgid "MOVE: Click on the Start point ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:77 +msgid "[WARNING_NOTCL] MOVE action cancelled. No object(s) to move." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:99 +msgid "MOVE: Click on the Destination point ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:117 +msgid "Moving ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:124 +msgid "[WARNING_NOTCL] No object(s) selected." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:147 +msgid "[ERROR_NOTCL] ToolMove.on_left_click() --> %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:153 +msgid "[success]%s object was moved ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:163 +msgid "[ERROR_NOTCL] ToolMove.on_left_click() --> Error when mouse left click." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:191 +msgid "[WARNING_NOTCL]Move action cancelled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolMove.py:203 +msgid "[WARNING_NOTCL]Object(s) not selected" +msgstr "" + diff --git a/locale_template/ToolNonCopperClear.pot b/locale_template/ToolNonCopperClear.pot new file mode 100644 index 00000000..3c9c3595 --- /dev/null +++ b/locale_template/ToolNonCopperClear.pot @@ -0,0 +1,257 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:09+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:13 +msgid "Non-Copper Clearing" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:51 +msgid "Gerber object to be cleared of excess copper. " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:59 +msgid "Tools Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:61 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for copper clearing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:70 +msgid "Diameter" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:76 +msgid "" +"This is the Tool Number.\n" +"Non copper clearing will start with the tool with the biggest \n" +"diameter, continuing until there are no more tools.\n" +"Only tools that create NCC clearing geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:84 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:88 +msgid "The Tool Type (TT) can be:
- Circular with 1 ... 4 teeth -> it is informative only. Being circular,
the cut width in material is exactly the tool diameter.
- Ball -> informative only and make reference to the Ball type endmill.
- V-Shape -> it will disable de Z-Cut parameter in the resulting geometry UI form and enable two additional UI form fields in the resulting geometry: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter such as the cut width into material will be equal with the value in the Tool Diameter column of this table.
Choosing the V-Shape Tool Type automatically will select the Operation Type in the resulting geometry as Isolation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:107 +msgid "Tool Dia" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:109 +msgid "Diameter for the new tool to add in the Tool Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:121 +msgid "Add" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:123 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:133 +msgid "Delete" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:135 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:152 +msgid "Overlap:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:154 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be cleared are still \n" +"not cleared.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:168 +msgid "Margin:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:170 +msgid "Bounding box margin." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:177 +msgid "Method:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:179 +msgid "Algorithm for non-copper clearing:
Standard: Fixed step inwards.
Seed-based: Outwards from seed.
Line-based: Parallel lines." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:193 +msgid "Connect:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:195 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:202 +msgid "Contour:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:204 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:211 +msgid "Rest M.:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:213 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"If not checked, use the standard algorithm." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:225 +msgid "Generate Geometry" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:227 +msgid "" +"Create the Geometry Object\n" +"for non-copper routing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:267 +msgid "NCC Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:462 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:609 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:621 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:467 +msgid "[WARNING_NOTCL] Please enter a tool diameter to add, in Float format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:471 +msgid "[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:495 +msgid "[WARNING_NOTCL]Adding tool cancelled. Tool already in Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:500 +msgid "[success] New tool added to Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:533 +msgid "[ERROR_NOTCL] Wrong value format entered, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:542 +msgid "[success] Tool from Tool Table was edited." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:553 +msgid "[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:592 +msgid "[WARNING_NOTCL]Delete failed. Select a tool to delete." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:597 +msgid "[success] Tool(s) deleted from Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:643 +msgid "[ERROR_NOTCL]Could not retrieve object: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:650 +msgid "[ERROR_NOTCL]No Gerber file available." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:688 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:810 +msgid "Clearing Non-Copper areas." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:706 +msgid "[success] Non-Copper Clearing with ToolDia = %s started." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:775 +msgid "[ERROR_NOTCL] NCCTool.clear_non_copper() --> %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:780 +msgid "[success] NCC Tool finished." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:782 +msgid "[WARNING_NOTCL] NCC Tool finished but some PCB features could not be cleared. Check the result." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:790 +msgid "Tools" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:828 +msgid "[success] Non-Copper Rest Clearing with ToolDia = %s started." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:926 +msgid "[ERROR_NOTCL] NCCTool.clear_non_copper_rest() --> %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolNonCopperClear.py:934 +msgid "[ERROR_NOTCL] NCC Tool finished but could not clear the object with current settings." +msgstr "" + diff --git a/locale_template/ToolPaint.pot b/locale_template/ToolPaint.pot new file mode 100644 index 00000000..0124b522 --- /dev/null +++ b/locale_template/ToolPaint.pot @@ -0,0 +1,302 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:12 +msgid "Paint Area" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:48 +msgid "Geometry:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:50 +msgid "Geometry object to be painted. " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:57 +msgid "Tools Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:59 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for painting." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:68 +msgid "Diameter" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:74 +msgid "" +"This is the Tool Number.\n" +"Painting will start with the tool with the biggest diameter,\n" +"continuing until there are no more tools.\n" +"Only tools that create painting geometry will still be present\n" +"in the resulting geometry. This is because with some tools\n" +"this function will not be able to create painting geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:82 +msgid "" +"Tool Diameter. It's value (in current FlatCAM units) \n" +"is the cut width into the material." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:86 +msgid "The Tool Type (TT) can be:
- Circular with 1 ... 4 teeth -> it is informative only. Being circular,
the cut width in material is exactly the tool diameter.
- Ball -> informative only and make reference to the Ball type endmill.
- V-Shape -> it will disable de Z-Cut parameter in the resulting geometry UI form and enable two additional UI form fields in the resulting geometry: V-Tip Dia and V-Tip Angle. Adjusting those two values will adjust the Z-Cut parameter such as the cut width into material will be equal with the value in the Tool Diameter column of this table.
Choosing the V-Shape Tool Type automatically will select the Operation Type in the resulting geometry as Isolation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:105 +msgid "Tool Dia" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:107 +msgid "Diameter for the new tool." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:119 +msgid "Add" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:121 +msgid "" +"Add a new tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:131 +msgid "Delete" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:133 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:148 +msgid "Overlap:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:150 +msgid "" +"How much (fraction) of the tool width to overlap each tool pass.\n" +"Example:\n" +"A value here of 0.25 means 25% from the tool diameter found above.\n" +"\n" +"Adjust the value starting with lower values\n" +"and increasing it if areas that should be painted are still \n" +"not painted.\n" +"Lower values = faster processing, faster execution on PCB.\n" +"Higher values = slow processing and slow execution on CNC\n" +"due of too many paths." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:165 +msgid "Margin:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:167 +msgid "" +"Distance by which to avoid\n" +"the edges of the polygon to\n" +"be painted." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:176 +msgid "Method:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:178 +msgid "Algorithm for non-copper clearing:
Standard: Fixed step inwards.
Seed-based: Outwards from seed.
Line-based: Parallel lines." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:192 +msgid "Connect:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:194 +msgid "" +"Draw lines between resulting\n" +"segments to minimize tool lifts." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:201 +msgid "Contour:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:203 +msgid "" +"Cut around the perimeter of the polygon\n" +"to trim rough edges." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:210 +msgid "Rest M.:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:212 +msgid "" +"If checked, use 'rest machining'.\n" +"Basically it will clear copper outside PCB features,\n" +"using the biggest tool and continue with the next tools,\n" +"from bigger to smaller, to clear areas of copper that\n" +"could not be cleared by previous tool, until there is\n" +"no more copper to clear or there are no more tools.\n" +"\n" +"If not checked, use the standard algorithm." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:225 +msgid "Selection:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:227 +msgid "How to select the polygons to paint.
Options:
- Single: left mouse click on the polygon to be painted.
- All: paint all polygons." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:242 +msgid "Create Paint Geometry" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:244 +msgid "After clicking here, click inside
the polygon you wish to be painted if Single is selected.
If All is selected then the Paint will start after click.
A new Geometry object with the tool
paths will be created." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:325 +msgid "Paint Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:522 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:592 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:727 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:818 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:973 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:528 +msgid "[WARNING_NOTCL] Please enter a tool diameter to add, in Float format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:552 +msgid "[WARNING_NOTCL]Adding tool cancelled. Tool already in Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:557 +msgid "[success] New tool added to Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:600 +msgid "[success] Tool from Tool Table was edited." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:611 +msgid "[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:708 +msgid "[WARNING_NOTCL]Delete failed. Select a tool to delete." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:713 +msgid "[success] Tool(s) deleted from Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:717 +msgid "geometry_on_paint_button" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:719 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:764 +msgid "[WARNING_NOTCL]Click inside the desired polygon." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:741 +msgid "[ERROR_NOTCL]Could not retrieve object: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:745 +msgid "[ERROR_NOTCL]Object not found: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:751 +msgid "[ERROR_NOTCL] Can't do Paint on MultiGeo geometries ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:773 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:977 +msgid "Painting polygon..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:825 +msgid "[WARNING] No polygon found." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:828 +msgid "Painting polygon." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:870 +msgid "[ERROR_NOTCL] Geometry could not be painted completely" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:896 +msgid "" +"[ERROR] Could not do Paint. Try a different combination of parameters. Or a different strategy of paint\n" +"%s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:938 +msgid "[ERROR_NOTCL] PaintTool.paint_poly() --> %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:944 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1236 +msgid "Polygon Paint started ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1092 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1181 +msgid "" +"[ERROR] Could not do Paint All. Try a different combination of parameters. Or a different Method of paint\n" +"%s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1116 +msgid "" +"[ERROR] There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted geometry.\n" +"Change the painting parameters and try again." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1125 +msgid "[success] Paint All Done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1211 +msgid "" +"[ERROR_NOTCL] There is no Painting Geometry in the file.\n" +"Usually it means that the tool diameter is too big for the painted geometry.\n" +"Change the painting parameters and try again." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPaint.py:1220 +msgid "[success] Paint All with Rest-Machining done." +msgstr "" + diff --git a/locale_template/ToolPanelize.pot b/locale_template/ToolPanelize.pot new file mode 100644 index 00000000..425d4d76 --- /dev/null +++ b/locale_template/ToolPanelize.pot @@ -0,0 +1,199 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:13 +msgid "Panelize PCB" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:44 +msgid "Object Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:46 +msgid "" +"Specify the type of object to be panelized\n" +"It can be of type: Gerber, Excellon or Geometry.\n" +"The selection here decide the type of objects that will be\n" +"in the Object combobox." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:59 +msgid "Object:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:61 +msgid "" +"Object to be panelized. This means that it will\n" +"be duplicated in an array of rows and columns." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:77 +msgid "Box Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:79 +msgid "" +"Specify the type of object to be used as an container for\n" +"panelization. It can be: Gerber or Geometry type.\n" +"The selection here decide the type of objects that will be\n" +"in the Box Object combobox." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:92 +msgid "Box Object:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:94 +msgid "" +"The actual object that is used a container for the\n" +" selected object that is to be panelized." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:101 +msgid "Spacing cols:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:103 +msgid "" +"Spacing between columns of the desired panel.\n" +"In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:110 +msgid "Spacing rows:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:112 +msgid "" +"Spacing between rows of the desired panel.\n" +"In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:119 +msgid "Columns:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:121 +msgid "Number of columns of the desired panel" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:127 +msgid "Rows:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:129 +msgid "Number of rows of the desired panel" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:136 +msgid "Panel Type:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:138 +msgid "" +"Choose the type of object for the panel object:\n" +"- Geometry\n" +"- Gerber" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:146 +msgid "Constrain panel within:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:148 +msgid "" +"Area define by DX and DY within to constrain the panel.\n" +"DX and DY values are in current units.\n" +"Regardless of how many columns and rows are desired,\n" +"the final panel will have as many columns and rows as\n" +"they fit completely within selected area." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:157 +msgid "Width (DX):" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:159 +msgid "" +"The width (DX) within which the panel must fit.\n" +"In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:165 +msgid "Height (DY):" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:167 +msgid "" +"The height (DY)within which the panel must fit.\n" +"In current units." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:180 +msgid "Panelize Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:182 +msgid "" +"Panelize the specified object around the specified box.\n" +"In other words it creates multiple copies of the source object,\n" +"arranged in a 2D array of rows and columns." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:278 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:292 +msgid "[ERROR_NOTCL]Could not retrieve object: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:284 +msgid "[ERROR_NOTCL]Object not found: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:296 +msgid "[WARNING]No object Box. Using instead %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:308 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:320 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:333 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:346 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:358 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:369 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:377 +msgid "[ERROR_NOTCL]Columns or Rows are zero value. Change them to a positive integer." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:481 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:590 +msgid "Generating panel ... Please wait." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:584 +msgid "[success]Panel done..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:587 +msgid "[WARNING] Too big for the constrain area. Final panel has %s columns and %s rows" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolPanelize.py:595 +msgid "[success]Panel created successfully." +msgstr "" + diff --git a/locale_template/ToolProperties.pot b/locale_template/ToolProperties.pot new file mode 100644 index 00000000..78a4bc8b --- /dev/null +++ b/locale_template/ToolProperties.pot @@ -0,0 +1,37 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:12+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolProperties.py:13 +msgid "Properties" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolProperties.py:87 +msgid "[ERROR_NOTCL] Properties Tool was not displayed. No object selected." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolProperties.py:88 +msgid "Tools" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolProperties.py:94 +msgid "[success] Object Properties are displayed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolProperties.py:95 +msgid "Properties Tool" +msgstr "" + diff --git a/locale_template/ToolShell.pot b/locale_template/ToolShell.pot new file mode 100644 index 00000000..10deb0ab --- /dev/null +++ b/locale_template/ToolShell.pot @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:13+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolShell.py:65 +msgid "...proccessing..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolShell.py:67 +msgid "...proccessing... [%s]" +msgstr "" + diff --git a/locale_template/ToolSolderPaste.pot b/locale_template/ToolSolderPaste.pot new file mode 100644 index 00000000..62e8cb4a --- /dev/null +++ b/locale_template/ToolSolderPaste.pot @@ -0,0 +1,429 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:14+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:26 +msgid "Solder Paste Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:54 +msgid "Gerber Solder paste object. " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:59 +msgid "Tools Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:61 +msgid "" +"Tools pool from which the algorithm\n" +"will pick the ones used for dispensing solder paste." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:70 +msgid "Diameter" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:76 +msgid "" +"This is the Tool Number.\n" +"The solder dispensing will start with the tool with the biggest \n" +"diameter, continuing until there are no more Nozzle tools.\n" +"If there are no longer tools but there are still pads not covered\n" +" with solder paste, the app will issue a warning message box." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:83 +msgid "" +"Nozzle tool Diameter. It's value (in current FlatCAM units)\n" +"is the width of the solder paste dispensed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:90 +msgid "New Nozzle Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:92 +msgid "Diameter for the new Nozzle tool to add in the Tool Table" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:104 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:464 +msgid "Add" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:106 +msgid "" +"Add a new nozzle tool to the Tool Table\n" +"with the diameter specified above." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:110 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:466 +msgid "Delete" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:112 +msgid "" +"Delete a selection of tools in the Tool Table\n" +"by first selecting a row(s) in the Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:116 +msgid "Generate Geo" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:118 +msgid "Generate solder paste dispensing geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:131 +msgid "STEP 1" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:133 +msgid "" +"First step is to select a number of nozzle tools for usage\n" +"and then optionally modify the GCode parameters bellow." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:136 +msgid "" +"Select tools.\n" +"Modify parameters." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:155 +msgid "Z Dispense Start:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:157 +msgid "The height (Z) when solder paste dispensing starts." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:163 +msgid "Z Dispense:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:165 +msgid "The height (Z) when doing solder paste dispensing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:172 +msgid "Z Dispense Stop:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:174 +msgid "The height (Z) when solder paste dispensing stops." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:180 +msgid "Z Travel:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:182 +msgid "" +"The height (Z) for travel between pads\n" +"(without dispensing solder paste)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:189 +msgid "Z Toolchange:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:191 +msgid "The height (Z) for tool (nozzle) change." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:197 +msgid "XY Toolchange:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:199 +msgid "" +"The X,Y location for tool (nozzle) change.\n" +"The format is (x, y) where x and y are real numbers." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:206 +msgid "Feedrate X-Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:208 +msgid "Feedrate (speed) while moving on the X-Y plane." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:214 +msgid "Feedrate Z:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:216 +msgid "" +"Feedrate (speed) while moving vertically\n" +"(on Z plane)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:223 +msgid "Feedrate Z Dispense:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:225 +msgid "" +"Feedrate (speed) while moving up vertically\n" +" to Dispense position (on Z plane)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:232 +msgid "Spindle Speed FWD:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:234 +msgid "" +"The dispenser speed while pushing solder paste\n" +"through the dispenser nozzle." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:241 +msgid "Dwell FWD:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:243 +msgid "Pause after solder dispensing." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:249 +msgid "Spindle Speed REV:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:251 +msgid "" +"The dispenser speed while retracting solder paste\n" +"through the dispenser nozzle." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:258 +msgid "Dwell REV:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:260 +msgid "" +"Pause after solder paste dispenser retracted,\n" +"to allow pressure equilibrium." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:266 +msgid "PostProcessors:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:268 +msgid "Files that control the GCode generation." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:279 +msgid "Generate GCode" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:281 +msgid "" +"Generate GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:297 +msgid "STEP 2:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:299 +msgid "" +"Second step is to create a solder paste dispensing\n" +"geometry out of an Solder Paste Mask Gerber file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:315 +msgid "Geo Result:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:317 +msgid "" +"Geometry Solder Paste object.\n" +"The name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:326 +msgid "STEP 3:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:328 +msgid "" +"Third step is to select a solder paste dispensing geometry,\n" +"and then generate a CNCJob object.\n" +"\n" +"REMEMBER: if you want to create a CNCJob with new parameters,\n" +"first you need to generate a geometry with those new params,\n" +"and only after that you can generate an updated CNCJob." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:348 +msgid "CNC Result:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:350 +msgid "" +"CNCJob Solder paste object.\n" +"In order to enable the GCode save section,\n" +"the name of the object has to end in:\n" +"'_solderpaste' as a protection." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:360 +msgid "View GCode" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:362 +msgid "" +"View the generated GCode for Solder Paste dispensing\n" +"on PCB pads." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:366 +msgid "Save GCode" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:368 +msgid "" +"Save the generated GCode for Solder Paste dispensing\n" +"on PCB pads, to a file." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:372 +msgid "STEP 4:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:374 +msgid "" +"Fourth step (and last) is to select a CNCJob made from \n" +"a solder paste dispensing geometry, and then view/save it's GCode." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:402 +msgid "Delete Object" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:741 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:812 +msgid "[ERROR_NOTCL]Wrong value format entered, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:746 +msgid "[WARNING_NOTCL] Please enter a tool diameter to add, in Float format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:750 +msgid "[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:774 +msgid "[WARNING_NOTCL] Adding Nozzle tool cancelled. Tool already in Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:779 +msgid "[success] New Nozzle tool added to Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:821 +msgid "[success] Nozzle tool from Tool Table was edited." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:832 +msgid "[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:877 +msgid "[WARNING_NOTCL] Delete failed. Select a Nozzle tool to delete." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:882 +msgid "[success] Nozzle tool(s) deleted from Tool Table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:937 +msgid "[WARNING_NOTCL] No SolderPaste mask Gerber object loaded." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:954 +msgid "Creating Solder Paste dispensing geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:966 +msgid "[WARNING_NOTCL] No Nozzle tools in the tool table." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1092 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1147 +msgid "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1095 +msgid "[success] Solder Paste geometry generated successfully..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1101 +msgid "[WARNING_NOTCL] Some or all pads have no solder due of inadequate nozzle diameters..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1115 +msgid "Generating Solder Paste dispensing geometry..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1135 +msgid "[WARNING_NOTCL] There is no Geometry object available." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1139 +msgid "[WARNING_NOTCL] This Geometry can't be processed. NOT a solder_paste_tool geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1244 +msgid "[success] ToolSolderPaste CNCjob created: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1276 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1280 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1331 +msgid "[WARNING_NOTCL] This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1303 +msgid "[ERROR_NOTCL] No Gcode in the object..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1312 +msgid "[ERROR] ToolSolderPaste.on_view_gcode() -->%s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1349 +msgid "[WARNING_NOTCL] Export Machine Code cancelled ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1375 +msgid "[WARNING_NOTCL] No such file or directory" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolSolderPaste.py:1379 +msgid "[success] Solder paste dispenser GCode file saved to: %s" +msgstr "" + diff --git a/locale_template/ToolTransform.pot b/locale_template/ToolTransform.pot new file mode 100644 index 00000000..9bab6b49 --- /dev/null +++ b/locale_template/ToolTransform.pot @@ -0,0 +1,369 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 13:16+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:14 +msgid "Object Transform" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:15 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:73 +msgid "Rotate" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:16 +msgid "Skew/Shear" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:17 +msgid "Scale" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:18 +msgid "Mirror (Flip)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:19 +msgid "Offset" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:59 +msgid "Angle:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:61 +msgid "" +"Angle for Rotation action, in degrees.\n" +"Float number between -360 and 359.\n" +"Positive numbers for CW motion.\n" +"Negative numbers for CCW motion." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:75 +msgid "" +"Rotate the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:98 +msgid "Angle X:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:100 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:118 +msgid "" +"Angle for Skew action, in degrees.\n" +"Float number between -360 and 359." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:109 +msgid "Skew X" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:111 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:129 +msgid "" +"Skew/shear the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:116 +msgid "Angle Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:127 +msgid "Skew Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:155 +msgid "Factor X:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:157 +msgid "Factor for Scale action over X axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:165 +msgid "Scale X" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:167 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:184 +msgid "" +"Scale the selected object(s).\n" +"The point of reference depends on \n" +"the Scale reference checkbox state." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:172 +msgid "Factor Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:174 +msgid "Factor for Scale action over Y axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:182 +msgid "Scale Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:191 +msgid "Link" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:193 +msgid "" +"Scale the selected object(s)\n" +"using the Scale Factor X for both axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:199 +msgid "Scale Reference" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:201 +msgid "" +"Scale the selected object(s)\n" +"using the origin reference when checked,\n" +"and the center of the biggest bounding box\n" +"of the selected objects when unchecked." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:229 +msgid "Value X:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:231 +msgid "Value for Offset action on X axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:239 +msgid "Offset X" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:241 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:258 +msgid "" +"Offset the selected object(s).\n" +"The point of reference is the middle of\n" +"the bounding box for all selected objects.\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:246 +msgid "Value Y:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:248 +msgid "Value for Offset action on Y axis." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:256 +msgid "Offset Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:286 +msgid "Flip on X" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:288 +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:296 +msgid "" +"Flip the selected object(s) over the X axis.\n" +"Does not create a new object.\n" +" " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:294 +msgid "Flip on Y" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:303 +msgid "Ref Pt" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:305 +msgid "" +"Flip the selected object(s)\n" +"around the point in Point Entry Field.\n" +"\n" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. \n" +"Then click Add button to insert coordinates.\n" +"Or enter the coords in format (x, y) in the\n" +"Point Entry field and click Flip on X(Y)" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:316 +msgid "Point:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:318 +msgid "" +"Coordinates in format (x, y) used as reference for mirroring.\n" +"The 'x' in (x, y) will be used when using Flip on X and\n" +"the 'y' in (x, y) will be used when using Flip on Y and" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:328 +msgid "Add" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:330 +msgid "" +"The point coordinates can be captured by\n" +"left click on canvas together with pressing\n" +"SHIFT key. Then click Add button to insert." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:386 +msgid "Transform Tool" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:456 +msgid "[ERROR_NOTCL]Wrong value format entered for Rotate, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:490 +msgid "[ERROR_NOTCL]Wrong value format entered for Skew X, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:508 +msgid "[ERROR_NOTCL]Wrong value format entered for Skew Y, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:526 +msgid "[ERROR_NOTCL]Wrong value format entered for Scale X, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:560 +msgid "[ERROR_NOTCL]Wrong value format entered for Scale Y, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:589 +msgid "[ERROR_NOTCL]Wrong value format entered for Offset X, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:607 +msgid "[ERROR_NOTCL]Wrong value format entered for Offset Y, use a number." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:625 +msgid "[WARNING_NOTCL] No object selected. Please Select an object to rotate!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:628 +msgid "Appying Rotate" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:653 +msgid "CNCJob objects can't be rotated." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:662 +msgid "[success]Rotate done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:666 +msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:677 +msgid "[WARNING_NOTCL] No object selected. Please Select an object to flip!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:680 +msgid "Applying Flip" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:712 +msgid "CNCJob objects can't be mirrored/flipped." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:723 +msgid "[success]Flip on the Y axis done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:733 +msgid "[success]Flip on the X axis done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:738 +msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:747 +msgid "[WARNING_NOTCL] No object selected. Please Select an object to shear/skew!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:750 +msgid "Applying Skew" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:769 +msgid "CNCJob objects can't be skewed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:781 +msgid "[success]Skew on the %s axis done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:785 +msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:796 +msgid "[WARNING_NOTCL] No object selected. Please Select an object to scale!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:799 +msgid "Applying Scale" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:829 +msgid "CNCJob objects can't be scaled." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:837 +msgid "[success] Scale on the %s axis done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:840 +msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:849 +msgid "[WARNING_NOTCL] No object selected. Please Select an object to offset!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:852 +msgid "Applying Offset" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:870 +msgid "CNCJob objects can't be offseted." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:882 +msgid "[success]Offset on the %s axis done ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\flatcamTools\ToolTransform.py:886 +msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." +msgstr "" + diff --git a/locale_template/camlib.pot b/locale_template/camlib.pot new file mode 100644 index 00000000..b92d4918 --- /dev/null +++ b/locale_template/camlib.pot @@ -0,0 +1,173 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2019-03-10 02:11+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=cp1252\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" + + +#: D:\1.DEV\FlatCAM_beta\camlib.py:202 +msgid "[ERROR_NOTCL] self.solid_geometry is neither BaseGeometry or list." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1389 +msgid "[success]Object was mirrored ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1391 +msgid "[ERROR_NOTCL] Failed to mirror. No object selected" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1427 +msgid "[success]Object was rotated ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1429 +msgid "[ERROR_NOTCL] Failed to rotate. No object selected" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1463 +msgid "[success]Object was skewed ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:1465 +msgid "[ERROR_NOTCL] Failed to skew. No object selected" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:2641 D:\1.DEV\FlatCAM_beta\camlib.py:2701 +msgid "[WARNING] Coordinates missing, line ignored: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:2642 D:\1.DEV\FlatCAM_beta\camlib.py:2702 +msgid "[WARNING_NOTCL] GERBER file might be CORRUPT. Check the file !!!" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:2671 +msgid "[ERROR] Region does not have enough points. File will be processed but there are parser errors. Line number: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3025 +msgid "" +"[ERROR]Gerber Parser ERROR.\n" +"%s:" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3203 D:\1.DEV\FlatCAM_beta\camlib.py:3212 +msgid "[ERROR_NOTCL] Scale factor has to be a number: integer or float." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3241 +msgid "[success]Gerber Scale done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3274 +msgid "[ERROR_NOTCL]An (x,y) pair of values are needed. Probable you entered only one value in the Offset field." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3298 +msgid "[success]Gerber Offset done." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:3674 +msgid "[ERROR_NOTCL] This is GCODE mark: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4203 +msgid "" +"[ERROR_NOTCL] An internal error has ocurred. See shell.\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4204 +msgid "" +"[ERROR] Excellon Parser error.\n" +"Parsing Failed. Line %d: %s\n" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4281 +msgid "" +"[WARNING] Excellon.create_geometry() -> a drill location was skipped due of not having a tool associated.\n" +"Check the resulting GCode." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4817 +msgid "[ERROR] There is no such parameter: %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4882 +msgid "" +"[WARNING] The Cut Z parameter has positive value. It is the depth value to drill into material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo therefore the app will convert the value to negative. Check the resulting CNC code (Gcode etc)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4889 D:\1.DEV\FlatCAM_beta\camlib.py:5357 +#: D:\1.DEV\FlatCAM_beta\camlib.py:5628 +msgid "[WARNING] The Cut Z parameter is zero. There will be no cut, skipping %s file" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:4903 D:\1.DEV\FlatCAM_beta\camlib.py:5334 +#: D:\1.DEV\FlatCAM_beta\camlib.py:5605 +msgid "" +"[ERROR]The Toolchange X,Y field in Edit -> Preferences has to be in the format (x, y) \n" +"but now there is only one value, not two. " +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5105 D:\1.DEV\FlatCAM_beta\camlib.py:5195 +#: D:\1.DEV\FlatCAM_beta\camlib.py:5246 +msgid "[ERROR_NOTCL]The loaded Excellon file has no drills ..." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5200 +msgid "[ERROR_NOTCL] Wrong optimization type selected." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5345 D:\1.DEV\FlatCAM_beta\camlib.py:5616 +msgid "[ERROR_NOTCL] Cut_Z parameter is None or zero. Most likely a bad combinations of other parameters." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5350 D:\1.DEV\FlatCAM_beta\camlib.py:5621 +msgid "" +"[WARNING] The Cut Z parameter has positive value. It is the depth value to cut into material.\n" +"The Cut Z parameter needs to have a negative value, assuming it is a typo therefore the app will convert the value to negative.Check the resulting CNC code (Gcode etc)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5362 D:\1.DEV\FlatCAM_beta\camlib.py:5633 +msgid "[ERROR_NOTCL] Travel Z parameter is None or zero." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5366 D:\1.DEV\FlatCAM_beta\camlib.py:5637 +msgid "" +"[WARNING] The Travel Z parameter has negative value. It is the height value to travel between cuts.\n" +"The Z Travel parameter needs to have a positive value, assuming it is a typo therefore the app will convert the value to positive.Check the resulting CNC code (Gcode etc)." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5373 D:\1.DEV\FlatCAM_beta\camlib.py:5644 +msgid "[WARNING] The Z Travel parameter is zero. This is dangerous, skipping %s file" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5503 +msgid "[ERROR]Expected a Geometry, got %s" +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5509 +msgid "[ERROR_NOTCL]Trying to generate a CNC Job from a Geometry object without solid_geometry." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5548 +msgid "" +"[ERROR_NOTCL]The Tool Offset value is too negative to use for the current_geometry.\n" +"Raise the value (in module) and try again." +msgstr "" + +#: D:\1.DEV\FlatCAM_beta\camlib.py:5770 +msgid "[ERROR_NOTCL] There is no tool data in the SolderPaste geometry." +msgstr "" +