Commit 5e76ce2e authored by Guillaume Seguin's avatar Guillaume Seguin

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

parents 41986971 f2d6f2de
......@@ -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
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
/usr/share/pronterface/locale/
......
......@@ -65,7 +65,6 @@ This alternative approach is confirmed to work on Mac OS X 10.6.8.
`sudo python setup.py install`
Then repeat the same with http://launchpad.net/pyreadline/trunk/1.7/+download/pyreadline-1.7.zip
Then repeat the same with http://http://pyglet.googlecode.com/files/pyglet-1.1.4.zip
# USING PRONTERFACE
......
......@@ -275,7 +275,7 @@ class gviz(wx.Panel):
start_pos = self.hilightpos[:] if hilight else self.lastpos[:]
if gcode[0] == "g1":
if gcode[0] in [ "g0", "g1" ]:
target = _readgcode()
line = [ _x(start_pos[0]), _y(start_pos[1]), _x(target[0]), _y(target[1]) ]
if not hilight:
......
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.
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2012-01-09 15:07+CET\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Italian RepRap Community <reprap-italia@googlegroups.com>\n"
"Language-Team: Italian RepRap Community <reprap-italia@googlegroups.com>\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:223
msgid "Plate building tool"
msgstr "Strumento di posizionamento sul piatto"
#: plater.py:229
msgid "Clear"
msgstr "Pulisci"
#: plater.py:230
msgid "Load"
msgstr "Carica"
#: plater.py:232
msgid "Export"
msgstr "Esporta"
#: plater.py:235
msgid "Done"
msgstr "Fatto"
#: plater.py:237
msgid "Cancel"
msgstr "Cancella"
#: plater.py:239
msgid "Snap to Z = 0"
msgstr "Vai a Z = 0"
#: plater.py:240
msgid "Put at 100, 100"
msgstr "Metti a 100,100"
#: plater.py:241
msgid "Delete"
msgstr "Elimina"
#: plater.py:242
msgid "Auto"
msgstr "Automatico"
#: plater.py:266
msgid "Autoplating"
msgstr "Posizionamento automatico sul piatto"
#: plater.py:294
msgid "Bed full, sorry sir :("
msgstr "Il letto è pieno, mi dispiace :("
#: plater.py:304
msgid "Are you sure you want to clear the grid? All unsaved changes will be lost."
msgstr "Sei sicuro di voler pulire la griglia? Tutte le modifiche non salvate saranno perse."
#: plater.py:304
msgid "Clear the grid?"
msgstr "Pulire la griglia?"
#: plater.py:346
msgid "Pick file to save to"
msgstr "Scegli un file in cui salvare"
#: plater.py:347
msgid "STL files (;*.stl;)"
msgstr "files STL (;*.stl;)"
#: plater.py:367
msgid "wrote "
msgstr "scritti "
#: plater.py:370
msgid "Pick file to load"
msgstr "Scegli un file da caricare"
#: plater.py:371
msgid "STL files (;*.stl;)|*.stl|OpenSCAD files (;*.scad;)|*.scad"
msgstr "files STL (;*.stl;)|*.stl|files OpenSCAD (;*.scad;)|*.scad"
This diff is collapsed.
This diff is collapsed.
......@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -15,79 +15,79 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n"
#: plater.py:223
#: plater.py:247
msgid "Plate building tool"
msgstr ""
#: plater.py:229
#: plater.py:253
msgid "Clear"
msgstr ""
#: plater.py:230
#: plater.py:254
msgid "Load"
msgstr ""
#: plater.py:232
#: plater.py:256
msgid "Export"
msgstr ""
#: plater.py:235
#: plater.py:259
msgid "Done"
msgstr ""
#: plater.py:237
#: plater.py:261
msgid "Cancel"
msgstr ""
#: plater.py:239
#: plater.py:263
msgid "Snap to Z = 0"
msgstr ""
#: plater.py:240
#: plater.py:264
msgid "Put at 100, 100"
msgstr ""
#: plater.py:241
#: plater.py:265
msgid "Delete"
msgstr ""
#: plater.py:242
#: plater.py:266
msgid "Auto"
msgstr ""
#: plater.py:266
#: plater.py:290
msgid "Autoplating"
msgstr ""
#: plater.py:294
#: plater.py:318
msgid "Bed full, sorry sir :("
msgstr ""
#: plater.py:304
#: plater.py:328
msgid "Are you sure you want to clear the grid? All unsaved changes will be lost."
msgstr ""
#: plater.py:304
#: plater.py:328
msgid "Clear the grid?"
msgstr ""
#: plater.py:346
#: plater.py:370
msgid "Pick file to save to"
msgstr ""
#: plater.py:347
msgid "STL files (;*.stl;)"
#: plater.py:371
msgid "STL files (;*.stl;*.STL;)"
msgstr ""
#: plater.py:367
msgid "wrote "
#: plater.py:391
msgid "wrote %s"
msgstr ""
#: plater.py:370
#: plater.py:394
msgid "Pick file to load"
msgstr ""
#: plater.py:371
msgid "STL files (;*.stl;)|*.stl|OpenSCAD files (;*.scad;)|*.scad"
#: plater.py:395
msgid "STL files (;*.stl;*.STL;)|*.stl|OpenSCAD files (;*.scad;)|*.scad"
msgstr ""
This diff is collapsed.
......@@ -388,7 +388,7 @@ class stlwin(wx.Frame):
facets += i.facets
sf.close()
stltool.emitstl(name, facets, "plater_export")
print _("wrote "), name
print _("wrote %s") % name
def right(self, event):
dlg = wx.FileDialog(self, _("Pick file to load"), self.basedir, style=wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
......
......@@ -15,7 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with Printrun. If not, see <http://www.gnu.org/licenses/>.
from serial import Serial
from serial import Serial, SerialException
from threading import Thread
from select import error as SelectError
import time, getopt, sys
......@@ -100,6 +100,9 @@ class printcore():
break
else:
raise
except SerialException, e:
print "Can't read from printer (disconnected?)."
break
if(len(line)>1):
self.log+=[line]
......@@ -279,7 +282,10 @@ class printcore():
self.sendcb(command)
except:
pass
try:
self.printer.write(str(command+"\n"))
except SerialException, e:
print "Can't write to printer (disconnected?)."
if __name__ == '__main__':
baud = 115200
......
......@@ -166,7 +166,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
def online(self):
print _("Printer is now online.")
self.connectbtn.SetLabel("Disconnect")
self.connectbtn.SetLabel(_("Disconnect"))
self.connectbtn.Bind(wx.EVT_BUTTON,self.disconnect)
for i in self.printerControls:
......@@ -225,7 +225,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if f>=0:
if self.p.online:
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.hottgauge.SetTarget(int(f))
if f>0:
......@@ -248,7 +248,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
else:
print _("You cannot set negative temperatures. To turn the hotend off entirely, set its temperature to 0.")
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=""):
try:
......@@ -261,7 +261,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if f>=0:
if self.p.online:
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.bedtgauge.SetTarget(int(f))
if f>0:
......@@ -413,7 +413,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if self.macros.has_key(macro):
old_def = self.macros[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
elif len([c for c in macro if not c.isalnum() and c != "_"]):
print _("Macro name may contain only alphanumeric symbols and underscores")
......@@ -1175,14 +1175,13 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
if self.p.printing:
fractioncomplete = 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:
secondselapsed = int(time.time()-self.starttime)
secondsestimate = secondselapsed/fractioncomplete
secondsremain = secondsestimate - secondselapsed
string+= _(" Est: ") + time.strftime('%H:%M:%S', time.gmtime(secondsremain))
string+= _(" of: ") + time.strftime('%H:%M:%S', time.gmtime(secondsestimate))
string+= _(" Remaining | ")
string+= _(" Est: %s of %s remaining | ") % (time.strftime('%H:%M:%S', time.gmtime(secondsremain)),
time.strftime('%H:%M:%S', time.gmtime(secondsestimate)))
string+= _(" Z: %0.2f mm") % self.curlayer
wx.CallAfter(self.status.SetStatusText,string)
wx.CallAfter(self.gviz.Refresh)
......@@ -1390,7 +1389,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
of=open(self.filename)
self.f=[i.replace("\n","").replace("\r","") for i in of]
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.pausebtn.SetLabel, _("Pause"))
wx.CallAfter(self.pausebtn.Disable)
......@@ -1401,9 +1400,9 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
def loadviz(self):
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 _("the print goes from"),Xmin,_("mm to"),Xmax,_("mm in X\nand is"),Xtot,_("mm wide\n")
print _("the print goes from"),Ymin,_("mm to"),Ymax,_("mm in Y\nand is"),Ytot,_("mm wide\n")
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 X\nand is %f mm wide\n") % (Xmin, Xmax, Xtot)
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 %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)
#import 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