- 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
This commit is contained in:
Marius Stanciu 2019-03-10 14:34:13 +02:00
parent de79370fb3
commit 53627b566c
98 changed files with 25132 additions and 3092 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -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(_(
'<span style="color:green;"><b>Basic</b></span>'
))
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(_(
'<span style="color:red;"><b>Advanced</b></span>'
))
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(_(
'<span style="color:green;"><b>Basic</b></span>'
))
@ -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(_(
'<span style="color:red;"><b>Advanced</b></span>'
))
@ -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(_(
'<span style="color:green;"><b>Basic</b></span>'
))
@ -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(_(
'<span style="color:red;"><b>Advanced</b></span>'
))
@ -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(_(
'<span style="color:green;"><b>Basic</b></span>'
))
self.ui.cnc_frame.hide()
else:
self.ui.level.setText(_tr(
self.ui.level.setText(_(
'<span style="color:red;"><b>Advanced</b></span>'
))
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."
))

View File

@ -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))

View File

@ -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]<span style="color:%s;">%s</span> selected') %
self.app.inform.emit(_('[selected]<span style="color:%s;">%s</span> selected') %
('green', str(obj.options['name'])))
elif obj.kind == 'excellon':
self.app.inform.emit(_tr('[selected]<span style="color:%s;">%s</span> selected') %
self.app.inform.emit(_('[selected]<span style="color:%s;">%s</span> selected') %
('brown', str(obj.options['name'])))
elif obj.kind == 'cncjob':
self.app.inform.emit(_tr('[selected]<span style="color:%s;">%s</span> selected') %
self.app.inform.emit(_('[selected]<span style="color:%s;">%s</span> selected') %
('blue', str(obj.options['name'])))
elif obj.kind == 'geometry':
self.app.inform.emit(_tr('[selected]<span style="color:%s;">%s</span> selected') %
self.app.inform.emit(_('[selected]<span style="color:%s;">%s</span> 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):

File diff suppressed because it is too large Load Diff

View File

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

115
camlib.py
View File

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

View File

@ -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("<font size=3><b>%s</b></font>" % 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

View File

@ -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("<font size=4><b>%s</b></font>" % _tr('A. Automatic Bridge Gaps'))
title_param_label = QtWidgets.QLabel("<font size=4><b>%s</b></font>" % _('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("<b>%s</b>" % _tr('FreeForm:'))
title_ff_label = QtWidgets.QLabel("<b>%s</b>" % _('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("<b>%s</b>" % _tr('Rectangular:'))
title_rct_label = QtWidgets.QLabel("<b>%s</b>" % _('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("<font size=4><b>%s</b></font>" % _tr('B. Manual Bridge Gaps'))
title_manual_label = QtWidgets.QLabel("<font size=4><b>%s</b></font>" % _('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

View File

@ -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("<b>EXCELLON:</b>")
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("<b>GEOMETRY</b>:")
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 <b>point</b> or cut\n "
_("The axis should pass through a <b>point</b> or cut\n "
"a specified <b>box</b> (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("<b>%s</b>" % _tr('Point/Box Reference:'))
self.pb_label = QtWidgets.QLabel("<b>%s</b>" % _('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 <b>(x, y)</b> through which the mirroring axis \n "
_("Add the coordinates in format <b>(x, y)</b> 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("<b%s</b>" % _tr('>Alignment Drill Coordinates:'))
self.ah_label = QtWidgets.QLabel("<b%s</b>" % _('>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("<b>%s</b>:" % _tr('Alignment Drill Diameter'))
self.dt_label = QtWidgets.QLabel("<b>%s</b>:" % _('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])

View File

@ -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)

View File

@ -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("<font size=4><b>%s:</b>" % _tr('Level of detail'))
self.detail_label = QtWidgets.QLabel("<font size=4><b>%s:</b>" % _('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("<b>%s:</b>" % _tr('Image type'))
self.image_type_label = QtWidgets.QLabel("<b>%s:</b>" % _('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>B/W</b>:" % _tr('Mask value'))
self.mask_bw_label = QtWidgets.QLabel("%s <b>B/W</b>:" % _('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 <b>R:</b>" % _tr('Mask value'))
self.mask_r_label = QtWidgets.QLabel("%s <b>R:</b>" % _('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 <b>G:</b>" % _tr('Mask value'))
self.mask_g_label = QtWidgets.QLabel("%s <b>G:</b>" % _('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>B:</b>" % _tr('Mask value'))
self.mask_b_label = QtWidgets.QLabel("%s <b>B:</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]})

View File

@ -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("<b>%s</b> %s:" % (_tr('Start'), _tr('Coords')))
self.start_label.setToolTip(_tr("This is measuring Start point coordinates."))
self.start_label = QtWidgets.QLabel("<b>%s</b> %s:" % (_('Start'), _('Coords')))
self.start_label.setToolTip(_("This is measuring Start point coordinates."))
self.stop_label = QtWidgets.QLabel("<b>%s</b> %s:" % (_tr('Stop'), _tr('Coords')))
self.stop_label.setToolTip(_tr("This is the measuring Stop point coordinates."))
self.stop_label = QtWidgets.QLabel("<b>%s</b> %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("<b>%s:</b>" % _tr('DISTANCE'))
self.total_distance_label.setToolTip(_tr("This is the point to point Euclidian distance."))
self.total_distance_label = QtWidgets.QLabel("<b>%s:</b>" % _('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))

View File

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

View File

@ -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('<b>%s</b>' % _tr('Tools Table'))
self.tools_table_label = QtWidgets.QLabel('<b>%s</b>' % _('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:<BR>"
_("The Tool Type (TT) can be:<BR>"
"- <B>Circular</B> with 1 ... 4 teeth -> it is informative only. Being circular, <BR>"
"the cut width in material is exactly the tool diameter.<BR>"
"- <B>Ball</B> -> informative only and make reference to the Ball type endmill.<BR>"
@ -111,9 +104,9 @@ class NonCopperClear(FlatCAMTool, Gerber):
hlay = QtWidgets.QHBoxLayout()
self.tools_box.addLayout(hlay)
self.addtool_entry_lbl = QtWidgets.QLabel('<b>%s:</b>' % _tr('Tool Dia'))
self.addtool_entry_lbl = QtWidgets.QLabel('<b>%s:</b>' % _('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:<BR>"
_("Algorithm for non-copper clearing:<BR>"
"<B>Standard</B>: Fixed step inwards.<BR>"
"<B>Seed-based</B>: Outwards from seed.<BR>"
"<B>Line-based</B>: 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)

View File

@ -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('<b>%s</b>' % _tr('Tools Table'))
self.tools_table_label = QtWidgets.QLabel('<b>%s</b>' % _('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:<BR>"
_("The Tool Type (TT) can be:<BR>"
"- <B>Circular</B> with 1 ... 4 teeth -> it is informative only. Being circular, <BR>"
"the cut width in material is exactly the tool diameter.<BR>"
"- <B>Ball</B> -> informative only and make reference to the Ball type endmill.<BR>"
@ -109,9 +102,9 @@ class ToolPaint(FlatCAMTool, Gerber):
hlay = QtWidgets.QHBoxLayout()
self.tools_box.addLayout(hlay)
self.addtool_entry_lbl = QtWidgets.QLabel('<b>%s:</b>' % _tr('Tool Dia'))
self.addtool_entry_lbl = QtWidgets.QLabel('<b>%s:</b>' % _('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:<BR>"
_("Algorithm for non-copper clearing:<BR>"
"<B>Standard</B>: Fixed step inwards.<BR>"
"<B>Seed-based</B>: Outwards from seed.<BR>"
"<B>Line-based</B>: 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.<BR>"
_("How to select the polygons to paint.<BR>"
"Options:<BR>"
"- <B>Single</B>: left mouse click on the polygon to be painted.<BR>"
"- <B>All</B>: 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<BR>"
_("After clicking here, click inside<BR>"
"the polygon you wish to be painted if <B>Single</B> is selected.<BR>"
"If <B>All</B> is selected then the Paint will start after click.<BR>"
"A new Geometry object with the tool<BR>"
@ -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)

View File

@ -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))

View File

@ -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()

View File

@ -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()

View File

@ -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('<b>%s</b>' % _tr('Tools Table'))
self.tools_table_label = QtWidgets.QLabel('<b>%s</b>' % _('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('<b>%s:</b>' % _tr('New Nozzle Tool'))
self.addtool_entry_lbl = QtWidgets.QLabel('<b>%s:</b>' % _('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("<b>%s:</b>" % _tr('STEP 1'))
step1_lbl = QtWidgets.QLabel("<b>%s:</b>" % _('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("<b>%s</b>" % _tr('STEP 2:'))
step2_lbl = QtWidgets.QLabel("<b>%s</b>" % _('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("<b>%s</b>" % _tr('STEP 3:'))
step3_lbl = QtWidgets.QLabel("<b>%s</b>" % _('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("<b>%s</b>" % _tr('STEP 4:'))
step4_lbl = QtWidgets.QLabel("<b>%s</b>" % _('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()))

View File

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

View File

@ -1,92 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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"

Binary file not shown.

View File

@ -0,0 +1,942 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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: <span style=\"color:%s;\">%s</span>"
msgstr "[selected]%s created/selected: <span style=\"color:%s;\">%s</span>"
#: 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]<span style=\"color:%s;\">%s</span> selected"
msgstr "[selected]<span style=\"color:%s;\">%s</span> 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 <command_name> for usage.\n"
" Example: help open_gerber"
msgstr ""
"\n"
"\n"
"Type help <command_name> 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 "<b>Shortcut Key List</b>"
msgstr "<b>Shortcut Key List</b>"
#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7216
msgid ""
"\n"
"<p><span style=\"font-size:14px\"><strong>Selected Tab - Choose an Item from "
"Project Tab</strong></span></p>\n"
"\n"
"<p><span style=\"font-size:10px\"><strong>Details</strong>:<br />\n"
"The normal flow when working in FlatCAM is the following:</span></p>\n"
"\n"
"<ol>\n"
"\t<li><span style=\"font-size:10px\">Loat/Import a Gerber, Excellon, Gcode, "
"DXF, Raster Image or SVG file into FlatCAM using either the menu&#39;s, "
"toolbars, key shortcuts or even dragging and dropping the files on the GUI."
"<br />\n"
"\t<br />\n"
"\tYou can also load a <strong>FlatCAM project</strong> by double clicking on "
"the project file, drag &amp; drop of the file into the FLATCAM GUI or "
"through the menu/toolbar links offered within the app.</span><br />\n"
"\t&nbsp;</li>\n"
"\t<li><span style=\"font-size:10px\">Once an object is available in the "
"Project Tab, by selecting it and then focusing on <strong>SELECTED TAB </"
"strong>(more simpler is to double click the object name in the Project Tab), "
"<strong>SELECTED TAB </strong>will be updated with the object properties "
"according to it&#39;s kind: Gerber, Excellon, Geometry or CNCJob object.<br /"
">\n"
"\t<br />\n"
"\tIf the selection of the object is done on the canvas by single click "
"instead, and the <strong>SELECTED TAB</strong> 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 <strong>SELECTED TAB</"
"strong> and populate it even if it was out of focus.<br />\n"
"\t<br />\n"
"\tYou can change the parameters in this screen and the flow direction is "
"like this:<br />\n"
"\t<br />\n"
"\t<strong>Gerber/Excellon Object</strong> -&gt; Change Param -&gt; Generate "
"Geometry -&gt;<strong> Geometry Object </strong>-&gt; Add tools (change "
"param in Selected Tab) -&gt; Generate CNCJob -&gt;<strong> CNCJob Object </"
"strong>-&gt; Verify GCode (through Edit CNC Code) and/or append/prepend to "
"GCode (again, done in <strong>SELECTED TAB)&nbsp;</strong>-&gt; Save GCode</"
"span></li>\n"
"</ol>\n"
"\n"
"<p><span style=\"font-size:10px\">A list of key shortcuts is available "
"through an menu entry in <strong>Help -&gt; Shortcuts List</strong>&nbsp;or "
"through it&#39;s own key shortcut: <strng>F3</strong>.</span></p>\n"
"\n"
" "
msgstr ""
"\n"
"<p><span style=\"font-size:14px\"><strong>Selected Tab - Choose an Item from "
"Project Tab</strong></span></p>\n"
"\n"
"<p><span style=\"font-size:10px\"><strong>Details</strong>:<br />\n"
"The normal flow when working in FlatCAM is the following:</span></p>\n"
"\n"
"<ol>\n"
"\t<li><span style=\"font-size:10px\">Loat/Import a Gerber, Excellon, Gcode, "
"DXF, Raster Image or SVG file into FlatCAM using either the menu&#39;s, "
"toolbars, key shortcuts or even dragging and dropping the files on the GUI."
"<br />\n"
"\t<br />\n"
"\tYou can also load a <strong>FlatCAM project</strong> by double clicking on "
"the project file, drag &amp; drop of the file into the FLATCAM GUI or "
"through the menu/toolbar links offered within the app.</span><br />\n"
"\t&nbsp;</li>\n"
"\t<li><span style=\"font-size:10px\">Once an object is available in the "
"Project Tab, by selecting it and then focusing on <strong>SELECTED TAB </"
"strong>(more simpler is to double click the object name in the Project Tab), "
"<strong>SELECTED TAB </strong>will be updated with the object properties "
"according to it&#39;s kind: Gerber, Excellon, Geometry or CNCJob object.<br /"
">\n"
"\t<br />\n"
"\tIf the selection of the object is done on the canvas by single click "
"instead, and the <strong>SELECTED TAB</strong> 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 <strong>SELECTED TAB</"
"strong> and populate it even if it was out of focus.<br />\n"
"\t<br />\n"
"\tYou can change the parameters in this screen and the flow direction is "
"like this:<br />\n"
"\t<br />\n"
"\t<strong>Gerber/Excellon Object</strong> -&gt; Change Param -&gt; Generate "
"Geometry -&gt;<strong> Geometry Object </strong>-&gt; Add tools (change "
"param in Selected Tab) -&gt; Generate CNCJob -&gt;<strong> CNCJob Object </"
"strong>-&gt; Verify GCode (through Edit CNC Code) and/or append/prepend to "
"GCode (again, done in <strong>SELECTED TAB)&nbsp;</strong>-&gt; Save GCode</"
"span></li>\n"
"</ol>\n"
"\n"
"<p><span style=\"font-size:10px\">A list of key shortcuts is available "
"through an menu entry in <strong>Help -&gt; Shortcuts List</strong>&nbsp;or "
"through it&#39;s own key shortcut: <strng>F3</strong>.</span></p>\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:<br><br><b>%s</"
"b><br>%s"
msgstr ""
"There is a newer version of FlatCAM available for download:<br><br><b>%s</"
"b><br>%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."

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,377 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 "<span style=\"color:green;\"><b>Basic</b></span>"
msgstr "<span style=\"color:green;\"><b>Basic</b></span>"
#: 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 "<span style=\"color:red;\"><b>Advanced</b></span>"
msgstr "<span style=\"color:red;\"><b>Advanced</b></span>"
#: 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."

Binary file not shown.

View File

@ -0,0 +1,37 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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]<span style=\"color:%s;\">%s</span> selected"
msgstr "[selected]<span style=\"color:%s;\">%s</span> selected"
#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:731
msgid "[ERROR] Cause of error: %s"
msgstr "[ERROR] Cause of error: %s"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,187 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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."

Binary file not shown.

View File

@ -0,0 +1,379 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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."

Binary file not shown.

View File

@ -0,0 +1,298 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <b>point</b> or cut\n"
" a specified <b>box</b> (in a FlatCAM object) through \n"
"the center."
msgstr ""
"The axis should pass through a <b>point</b> or cut\n"
" a specified <b>box</b> (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 <b>(x, y)</b> 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 <b>(x, y)</b> 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..."

Binary file not shown.

View File

@ -0,0 +1,197 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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."

Binary file not shown.

View File

@ -0,0 +1,142 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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."

View File

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

Binary file not shown.

View File

@ -0,0 +1,62 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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"

Binary file not shown.

View File

@ -0,0 +1,337 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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:<BR>- <B>Circular</B> with 1 ... 4 teeth -> it is "
"informative only. Being circular, <BR>the cut width in material is exactly "
"the tool diameter.<BR>- <B>Ball</B> -> informative only and make reference "
"to the Ball type endmill.<BR>- <B>V-Shape</B> -> 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.<BR>Choosing the <B>V-Shape</B> Tool Type automatically will select "
"the Operation Type in the resulting geometry as Isolation."
msgstr ""
"The Tool Type (TT) can be:<BR>- <B>Circular</B> with 1 ... 4 teeth -> it is "
"informative only. Being circular, <BR>the cut width in material is exactly "
"the tool diameter.<BR>- <B>Ball</B> -> informative only and make reference "
"to the Ball type endmill.<BR>- <B>V-Shape</B> -> 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.<BR>Choosing the <B>V-Shape</B> 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:<BR><B>Standard</B>: Fixed step inwards."
"<BR><B>Seed-based</B>: Outwards from seed.<BR><B>Line-based</B>: Parallel "
"lines."
msgstr ""
"Algorithm for non-copper clearing:<BR><B>Standard</B>: Fixed step inwards."
"<BR><B>Seed-based</B>: Outwards from seed.<BR><B>Line-based</B>: 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."

Binary file not shown.

View File

@ -0,0 +1,404 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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:<BR>- <B>Circular</B> with 1 ... 4 teeth -> it is "
"informative only. Being circular, <BR>the cut width in material is exactly "
"the tool diameter.<BR>- <B>Ball</B> -> informative only and make reference "
"to the Ball type endmill.<BR>- <B>V-Shape</B> -> 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.<BR>Choosing the <B>V-Shape</B> Tool Type automatically will select "
"the Operation Type in the resulting geometry as Isolation."
msgstr ""
"The Tool Type (TT) can be:<BR>- <B>Circular</B> with 1 ... 4 teeth -> it is "
"informative only. Being circular, <BR>the cut width in material is exactly "
"the tool diameter.<BR>- <B>Ball</B> -> informative only and make reference "
"to the Ball type endmill.<BR>- <B>V-Shape</B> -> 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.<BR>Choosing the <B>V-Shape</B> 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:<BR><B>Standard</B>: Fixed step inwards."
"<BR><B>Seed-based</B>: Outwards from seed.<BR><B>Line-based</B>: Parallel "
"lines."
msgstr ""
"Algorithm for non-copper clearing:<BR><B>Standard</B>: Fixed step inwards."
"<BR><B>Seed-based</B>: Outwards from seed.<BR><B>Line-based</B>: 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.<BR>Options:<BR>- <B>Single</B>: left "
"mouse click on the polygon to be painted.<BR>- <B>All</B>: paint all "
"polygons."
msgstr ""
"How to select the polygons to paint.<BR>Options:<BR>- <B>Single</B>: left "
"mouse click on the polygon to be painted.<BR>- <B>All</B>: 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<BR>the polygon you wish to be painted if "
"<B>Single</B> is selected.<BR>If <B>All</B> is selected then the Paint will "
"start after click.<BR>A new Geometry object with the tool<BR>paths will be "
"created."
msgstr ""
"After clicking here, click inside<BR>the polygon you wish to be painted if "
"<B>Single</B> is selected.<BR>If <B>All</B> is selected then the Paint will "
"start after click.<BR>A new Geometry object with the tool<BR>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."

Binary file not shown.

View File

@ -0,0 +1,239 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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."

Binary file not shown.

View File

@ -0,0 +1,38 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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"

Binary file not shown.

View File

@ -0,0 +1,26 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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]"

Binary file not shown.

View File

@ -0,0 +1,507 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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"

Binary file not shown.

View File

@ -0,0 +1,412 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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."

Binary file not shown.

View File

@ -0,0 +1,233 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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."

View File

@ -1,92 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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"

View File

@ -1,92 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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"

View File

@ -1,92 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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"

View File

@ -1,92 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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"

View File

@ -1,92 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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"

View File

@ -0,0 +1,808 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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: <span style=\"color:%s;\">%s</span>"
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]<span style=\"color:%s;\">%s</span> 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 <command_name> 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 "<b>Shortcut Key List</b>"
msgstr ""
#: D:\1.DEV\FlatCAM_beta\FlatCAMApp.py:7216
msgid ""
"\n"
"<p><span style=\"font-size:14px\"><strong>Selected Tab - Choose an Item from Project Tab</strong></span></p>\n"
"\n"
"<p><span style=\"font-size:10px\"><strong>Details</strong>:<br />\n"
"The normal flow when working in FlatCAM is the following:</span></p>\n"
"\n"
"<ol>\n"
"\t<li><span style=\"font-size:10px\">Loat/Import a Gerber, Excellon, Gcode, DXF, Raster Image or SVG file into FlatCAM using either the menu&#39;s, toolbars, key shortcuts or even dragging and dropping the files on the GUI.<br />\n"
"\t<br />\n"
"\tYou can also load a <strong>FlatCAM project</strong> by double clicking on the project file, drag &amp; drop of the file into the FLATCAM GUI or through the menu/toolbar links offered within the app.</span><br />\n"
"\t&nbsp;</li>\n"
"\t<li><span style=\"font-size:10px\">Once an object is available in the Project Tab, by selecting it and then focusing on <strong>SELECTED TAB </strong>(more simpler is to double click the object name in the Project Tab), <strong>SELECTED TAB </strong>will be updated with the object properties according to it&#39;s kind: Gerber, Excellon, Geometry or CNCJob object.<br />\n"
"\t<br />\n"
"\tIf the selection of the object is done on the canvas by single click instead, and the <strong>SELECTED TAB</strong> 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 <strong>SELECTED TAB</strong> and populate it even if it was out of focus.<br />\n"
"\t<br />\n"
"\tYou can change the parameters in this screen and the flow direction is like this:<br />\n"
"\t<br />\n"
"\t<strong>Gerber/Excellon Object</strong> -&gt; Change Param -&gt; Generate Geometry -&gt;<strong> Geometry Object </strong>-&gt; Add tools (change param in Selected Tab) -&gt; Generate CNCJob -&gt;<strong> CNCJob Object </strong>-&gt; Verify GCode (through Edit CNC Code) and/or append/prepend to GCode (again, done in <strong>SELECTED TAB)&nbsp;</strong>-&gt; Save GCode</span></li>\n"
"</ol>\n"
"\n"
"<p><span style=\"font-size:10px\">A list of key shortcuts is available through an menu entry in <strong>Help -&gt; Shortcuts List</strong>&nbsp;or through it&#39;s own key shortcut: <strng>F3</strong>.</span></p>\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:<br><br><b>%s</b><br>%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 ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,332 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 "<span style=\"color:green;\"><b>Basic</b></span>"
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 "<span style=\"color:red;\"><b>Advanced</b></span>"
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 ""

View File

@ -0,0 +1,36 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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]<span style=\"color:%s;\">%s</span> selected"
msgstr ""
#: D:\1.DEV\FlatCAM_beta\ObjectCollection.py:731
msgid "[ERROR] Cause of error: %s"
msgstr ""

1299
locale_template/ObjectUI.pot Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,161 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -0,0 +1,300 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -0,0 +1,229 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 <b>point</b> or cut\n"
" a specified <b>box</b> (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 <b>(x, y)</b> 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 ""

View File

@ -0,0 +1,156 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -0,0 +1,119 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -0,0 +1,91 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -0,0 +1,61 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -0,0 +1,257 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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:<BR>- <B>Circular</B> with 1 ... 4 teeth -> it is informative only. Being circular, <BR>the cut width in material is exactly the tool diameter.<BR>- <B>Ball</B> -> informative only and make reference to the Ball type endmill.<BR>- <B>V-Shape</B> -> 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.<BR>Choosing the <B>V-Shape</B> 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:<BR><B>Standard</B>: Fixed step inwards.<BR><B>Seed-based</B>: Outwards from seed.<BR><B>Line-based</B>: 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 ""

View File

@ -0,0 +1,302 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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:<BR>- <B>Circular</B> with 1 ... 4 teeth -> it is informative only. Being circular, <BR>the cut width in material is exactly the tool diameter.<BR>- <B>Ball</B> -> informative only and make reference to the Ball type endmill.<BR>- <B>V-Shape</B> -> 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.<BR>Choosing the <B>V-Shape</B> 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:<BR><B>Standard</B>: Fixed step inwards.<BR><B>Seed-based</B>: Outwards from seed.<BR><B>Line-based</B>: 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.<BR>Options:<BR>- <B>Single</B>: left mouse click on the polygon to be painted.<BR>- <B>All</B>: 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<BR>the polygon you wish to be painted if <B>Single</B> is selected.<BR>If <B>All</B> is selected then the Paint will start after click.<BR>A new Geometry object with the tool<BR>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 ""

View File

@ -0,0 +1,199 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -0,0 +1,37 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -0,0 +1,25 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -0,0 +1,429 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

View File

@ -0,0 +1,369 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""

173
locale_template/camlib.pot Normal file
View File

@ -0,0 +1,173 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""