Commit ed4cf4a0 authored by Kliment Yanev's avatar Kliment Yanev

Merge branch 'experimental' of github.com:kliment/Printrun into experimental

parents 83d59660 9167dfb8
...@@ -25,6 +25,10 @@ now there is only one, for German. New ones can be created: ...@@ -25,6 +25,10 @@ now there is only one, for German. New ones can be created:
# Edit the .po file to add messages for newlang # Edit the .po file to add messages for newlang
msgfmt -o ${newlang}.mo ${newlang}.po msgfmt -o ${newlang}.mo ${newlang}.po
To update a previously created message catalog from the template, use :
msgmerge -U locale/fr/LC_MESSAGES/${lang}.po locale/pronterface.pot
As currently coded, the default location for these message catalogs is As currently coded, the default location for these message catalogs is
/usr/share/pronterface/locale/ /usr/share/pronterface/locale/
......
This diff is collapsed.
# French Plater Message Catalog
# Copyright (C) 2012 Guillaume Seguin
# Guillaume Seguin <guillaume@segu.in>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: Plater\n"
"POT-Creation-Date: 2012-02-26 02:40+CET\n"
"PO-Revision-Date: 2012-02-26 02:41+0100\n"
"Last-Translator: Guillaume Seguin <guillaume@segu.in>\n"
"Language-Team: FR <guillaume@segu.in>\n"
"Language: \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"
#: plater.py:247
msgid "Plate building tool"
msgstr "Outil d'assemblage de plateau"
#: plater.py:253
msgid "Clear"
msgstr "Vider"
#: plater.py:254
msgid "Load"
msgstr "Charger"
#: plater.py:256
msgid "Export"
msgstr "Exporter"
#: plater.py:259
msgid "Done"
msgstr "Terminé"
#: plater.py:261
msgid "Cancel"
msgstr "Annuler"
#: plater.py:263
msgid "Snap to Z = 0"
msgstr "Poser en Z = 0"
#: plater.py:264
msgid "Put at 100, 100"
msgstr "Placer en 100, 100"
#: plater.py:265
msgid "Delete"
msgstr "Supprimer"
#: plater.py:266
msgid "Auto"
msgstr "Auto"
#: plater.py:290
msgid "Autoplating"
msgstr "Placement auto"
#: plater.py:318
msgid "Bed full, sorry sir :("
msgstr "Le lit est plein, désolé :("
#: plater.py:328
msgid ""
"Are you sure you want to clear the grid? All unsaved changes will be lost."
msgstr ""
"Êtes vous sur de vouloir vider la grille ? Toutes les modifications non "
"enregistrées seront perdues."
#: plater.py:328
msgid "Clear the grid?"
msgstr "Vider la grille ?"
#: plater.py:370
msgid "Pick file to save to"
msgstr "Choisir le fichier dans lequel enregistrer"
#: plater.py:371
msgid "STL files (;*.stl;*.STL;)"
msgstr "Fichiers STL (;*.stl;*.STL;)"
#: plater.py:391
msgid "wrote %s"
msgstr "%s écrit"
#: plater.py:394
msgid "Pick file to load"
msgstr "Choisir le fichier à charger"
#: plater.py:395
msgid "STL files (;*.stl;*.STL;)|*.stl|OpenSCAD files (;*.scad;)|*.scad"
msgstr "Fichiers STL (;*.stl;*.STL;)|*.stl|Fichiers OpenSCAD (;*.scad;)|*.scad"
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2012-01-09 15:07+CET\n" "POT-Creation-Date: 2012-02-26 02:40+CET\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -15,79 +15,79 @@ msgstr "" ...@@ -15,79 +15,79 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
#: plater.py:223 #: plater.py:247
msgid "Plate building tool" msgid "Plate building tool"
msgstr "" msgstr ""
#: plater.py:229 #: plater.py:253
msgid "Clear" msgid "Clear"
msgstr "" msgstr ""
#: plater.py:230 #: plater.py:254
msgid "Load" msgid "Load"
msgstr "" msgstr ""
#: plater.py:232 #: plater.py:256
msgid "Export" msgid "Export"
msgstr "" msgstr ""
#: plater.py:235 #: plater.py:259
msgid "Done" msgid "Done"
msgstr "" msgstr ""
#: plater.py:237 #: plater.py:261
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: plater.py:239 #: plater.py:263
msgid "Snap to Z = 0" msgid "Snap to Z = 0"
msgstr "" msgstr ""
#: plater.py:240 #: plater.py:264
msgid "Put at 100, 100" msgid "Put at 100, 100"
msgstr "" msgstr ""
#: plater.py:241 #: plater.py:265
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: plater.py:242 #: plater.py:266
msgid "Auto" msgid "Auto"
msgstr "" msgstr ""
#: plater.py:266 #: plater.py:290
msgid "Autoplating" msgid "Autoplating"
msgstr "" msgstr ""
#: plater.py:294 #: plater.py:318
msgid "Bed full, sorry sir :(" msgid "Bed full, sorry sir :("
msgstr "" msgstr ""
#: plater.py:304 #: plater.py:328
msgid "Are you sure you want to clear the grid? All unsaved changes will be lost." msgid "Are you sure you want to clear the grid? All unsaved changes will be lost."
msgstr "" msgstr ""
#: plater.py:304 #: plater.py:328
msgid "Clear the grid?" msgid "Clear the grid?"
msgstr "" msgstr ""
#: plater.py:346 #: plater.py:370
msgid "Pick file to save to" msgid "Pick file to save to"
msgstr "" msgstr ""
#: plater.py:347 #: plater.py:371
msgid "STL files (;*.stl;)" msgid "STL files (;*.stl;*.STL;)"
msgstr "" msgstr ""
#: plater.py:367 #: plater.py:391
msgid "wrote " msgid "wrote %s"
msgstr "" msgstr ""
#: plater.py:370 #: plater.py:394
msgid "Pick file to load" msgid "Pick file to load"
msgstr "" msgstr ""
#: plater.py:371 #: plater.py:395
msgid "STL files (;*.stl;)|*.stl|OpenSCAD files (;*.scad;)|*.scad" msgid "STL files (;*.stl;*.STL;)|*.stl|OpenSCAD files (;*.scad;)|*.scad"
msgstr "" msgstr ""
This diff is collapsed.
...@@ -390,7 +390,7 @@ class stlwin(wx.Frame): ...@@ -390,7 +390,7 @@ class stlwin(wx.Frame):
facets += i.facets facets += i.facets
sf.close() sf.close()
stltool.emitstl(name, facets, "plater_export") stltool.emitstl(name, facets, "plater_export")
print _("wrote "), name print _("wrote %s") % name
def right(self, event): def right(self, event):
dlg = wx.FileDialog(self, _("Pick file to load"), self.basedir, style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST) dlg = wx.FileDialog(self, _("Pick file to load"), self.basedir, style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
......
...@@ -47,6 +47,7 @@ class printcore(): ...@@ -47,6 +47,7 @@ class printcore():
self.endcb=None#impl () self.endcb=None#impl ()
self.onlinecb=None#impl () self.onlinecb=None#impl ()
self.loud=False#emit sent and received lines to terminal self.loud=False#emit sent and received lines to terminal
self.greetings=['start','Grbl ']
if port is not None and baud is not None: if port is not None and baud is not None:
#print port, baud #print port, baud
self.connect(port, baud) self.connect(port, baud)
...@@ -115,10 +116,10 @@ class printcore(): ...@@ -115,10 +116,10 @@ class printcore():
print "RECV: ",line.rstrip() print "RECV: ",line.rstrip()
if(line.startswith('DEBUG_')): if(line.startswith('DEBUG_')):
continue continue
if(line.startswith('start') or line.startswith('ok')): if(line.startswith(tuple(self.greetings)) or line.startswith('ok')):
self.clear=True self.clear=True
if(line.startswith('start') or line.startswith('ok') or "T:" in line): if(line.startswith(tuple(self.greetings)) or line.startswith('ok') or "T:" in line):
if (not self.online or line.startswith('start')) and self.onlinecb is not None: if (not self.online or line.startswith(tuple(self.greetings))) and self.onlinecb is not None:
try: try:
self.onlinecb() self.onlinecb()
except: except:
......
...@@ -274,7 +274,7 @@ class pronsole(cmd.Cmd): ...@@ -274,7 +274,7 @@ class pronsole(cmd.Cmd):
self.helpdict["temperature_pla"] = _("Extruder temp for PLA (default: 185 deg C)") self.helpdict["temperature_pla"] = _("Extruder temp for PLA (default: 185 deg C)")
self.helpdict["xy_feedrate"] = _("Feedrate for Control Panel Moves in X and Y (default: 3000mm/min)") self.helpdict["xy_feedrate"] = _("Feedrate for Control Panel Moves in X and Y (default: 3000mm/min)")
self.helpdict["z_feedrate"] = _("Feedrate for Control Panel Moves in Z (default: 200mm/min)") self.helpdict["z_feedrate"] = _("Feedrate for Control Panel Moves in Z (default: 200mm/min)")
self.commandprefixes='MGT$'
def set_temp_preset(self,key,value): def set_temp_preset(self,key,value):
if not key.startswith("bed"): if not key.startswith("bed"):
...@@ -870,14 +870,14 @@ class pronsole(cmd.Cmd): ...@@ -870,14 +870,14 @@ class pronsole(cmd.Cmd):
print "! os.listdir('.')" print "! os.listdir('.')"
def default(self,l): def default(self,l):
if(l[0]=='M' or l[0]=="G" or l[0]=='T'): if(l[0] in self.commandprefixes.upper()):
if(self.p and self.p.online): if(self.p and self.p.online):
print "SENDING:"+l print "SENDING:"+l
self.p.send_now(l) self.p.send_now(l)
else: else:
print "Printer is not online." print "Printer is not online."
return return
if(l[0]=='m' or l[0]=="g" or l[0]=='t'): elif(l[0] in self.commandprefixes.lower()):
if(self.p and self.p.online): if(self.p and self.p.online):
print "SENDING:"+l.upper() print "SENDING:"+l.upper()
self.p.send_now(l.upper()) self.p.send_now(l.upper())
......
...@@ -166,7 +166,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -166,7 +166,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
def online(self): def online(self):
print _("Printer is now online.") print _("Printer is now online.")
self.connectbtn.SetLabel("Disconnect") self.connectbtn.SetLabel(_("Disconnect"))
self.connectbtn.Bind(wx.EVT_BUTTON,self.disconnect) self.connectbtn.Bind(wx.EVT_BUTTON,self.disconnect)
for i in self.printerControls: for i in self.printerControls:
...@@ -225,7 +225,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -225,7 +225,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if f>=0: if f>=0:
if self.p.online: if self.p.online:
self.p.send_now("M104 S"+l) self.p.send_now("M104 S"+l)
print _("Setting hotend temperature to "),f,_(" degrees Celsius.") print _("Setting hotend temperature to %f degrees Celsius.") % f
self.hsetpoint=f self.hsetpoint=f
self.hottgauge.SetTarget(int(f)) self.hottgauge.SetTarget(int(f))
if f>0: if f>0:
...@@ -248,7 +248,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -248,7 +248,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
else: else:
print _("You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0.") print _("You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0.")
except Exception,x: except Exception,x:
print _("You must enter a temperature. (%s)" % (repr(x),)) print _("You must enter a temperature. (%s)") % (repr(x),)
def do_bedtemp(self,l=""): def do_bedtemp(self,l=""):
try: try:
...@@ -261,7 +261,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -261,7 +261,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if f>=0: if f>=0:
if self.p.online: if self.p.online:
self.p.send_now("M140 S"+l) self.p.send_now("M140 S"+l)
print _("Setting bed temperature to "),f,_(" degrees Celsius.") print _("Setting bed temperature to %f degrees Celsius.") % f
self.bsetpoint=f self.bsetpoint=f
self.bedtgauge.SetTarget(int(f)) self.bedtgauge.SetTarget(int(f))
if f>0: if f>0:
...@@ -413,7 +413,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -413,7 +413,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if self.macros.has_key(macro): if self.macros.has_key(macro):
old_def = self.macros[macro] old_def = self.macros[macro]
elif hasattr(self.__class__,"do_"+macro): elif hasattr(self.__class__,"do_"+macro):
print _("Name '")+macro+_("' is being used by built-in command") print _("Name '%s' is being used by built-in command") % macro
return return
elif len([c for c in macro if not c.isalnum() and c != "_"]): elif len([c for c in macro if not c.isalnum() and c != "_"]):
print _("Macro name may contain only alphanumeric symbols and underscores") print _("Macro name may contain only alphanumeric symbols and underscores")
...@@ -1175,14 +1175,13 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -1175,14 +1175,13 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if self.p.printing: if self.p.printing:
fractioncomplete = float(self.p.queueindex)/len(self.p.mainqueue) fractioncomplete = float(self.p.queueindex)/len(self.p.mainqueue)
string+= _(" Printing:%04.2f %% |") % (100*float(self.p.queueindex)/len(self.p.mainqueue),) string+= _(" Printing:%04.2f %% |") % (100*float(self.p.queueindex)/len(self.p.mainqueue),)
string+= _(" Line# ") + str(self.p.queueindex) + _("of ") + str(len(self.p.mainqueue)) + _(" lines |" ) string+= _(" Line# %d of %d lines |" ) % (self.p.queueindex, len(self.p.mainqueue))
if fractioncomplete > 0.0: if fractioncomplete > 0.0:
secondselapsed = int(time.time()-self.starttime) secondselapsed = int(time.time()-self.starttime)
secondsestimate = secondselapsed/fractioncomplete secondsestimate = secondselapsed/fractioncomplete
secondsremain = secondsestimate - secondselapsed secondsremain = secondsestimate - secondselapsed
string+= _(" Est: ") + time.strftime('%H:%M:%S', time.gmtime(secondsremain)) string+= _(" Est: %s of %s remaining | ") % (time.strftime('%H:%M:%S', time.gmtime(secondsremain)),
string+= _(" of: ") + time.strftime('%H:%M:%S', time.gmtime(secondsestimate)) time.strftime('%H:%M:%S', time.gmtime(secondsestimate)))
string+= _(" Remaining | ")
string+= _(" Z: %0.2f mm") % self.curlayer string+= _(" Z: %0.2f mm") % self.curlayer
wx.CallAfter(self.status.SetStatusText,string) wx.CallAfter(self.status.SetStatusText,string)
wx.CallAfter(self.gviz.Refresh) wx.CallAfter(self.gviz.Refresh)
...@@ -1390,7 +1389,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -1390,7 +1389,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
of=open(self.filename) of=open(self.filename)
self.f=[i.replace("\n","").replace("\r","") for i in of] self.f=[i.replace("\n","").replace("\r","") for i in of]
of.close of.close
self.status.SetStatusText(_("Loaded ") + name + _(", %d lines") % (len(self.f),)) self.status.SetStatusText(_("Loaded %s, %d lines") % (name, len(self.f)))
wx.CallAfter(self.printbtn.SetLabel, _("Print")) wx.CallAfter(self.printbtn.SetLabel, _("Print"))
wx.CallAfter(self.pausebtn.SetLabel, _("Pause")) wx.CallAfter(self.pausebtn.SetLabel, _("Pause"))
wx.CallAfter(self.pausebtn.Disable) wx.CallAfter(self.pausebtn.Disable)
...@@ -1401,9 +1400,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole): ...@@ -1401,9 +1400,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
def loadviz(self): def loadviz(self):
Xtot,Ytot,Ztot,Xmin,Xmax,Ymin,Ymax,Zmin,Zmax = pronsole.measurements(self.f) Xtot,Ytot,Ztot,Xmin,Xmax,Ymin,Ymax,Zmin,Zmax = pronsole.measurements(self.f)
print pronsole.totalelength(self.f), _("mm of filament used in this print\n") print pronsole.totalelength(self.f), _("mm of filament used in this print\n")
print _("the print goes from"),Xmin,_("mm to"),Xmax,_("mm in X\nand is"),Xtot,_("mm wide\n") print _("the print goes from %f mm to %f mm in X\nand is %f mm wide\n") % (Xmin, Xmax, Xtot)
print _("the print goes from"),Ymin,_("mm to"),Ymax,_("mm in Y\nand is"),Ytot,_("mm wide\n") print _("the print goes from %f mm to %f mm in Y\nand is %f mm wide\n") % (Ymin, Ymax, Ytot)
print _("the print goes from"),Zmin,_("mm to"),Zmax,_("mm in Z\nand is"),Ztot,_("mm high\n") print _("the print goes from %f mm to %f mm in Z\nand is %f mm high\n") % (Zmin, Zmax, Ztot)
print _("Estimated duration (pessimistic): "), pronsole.estimate_duration(self.f) print _("Estimated duration (pessimistic): "), pronsole.estimate_duration(self.f)
#import time #import time
#t0=time.time() #t0=time.time()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment