py3: Draft: string / unicode:
issue 0000995 - use optional argument to get unicode from translation in python2 - add a utf8_decode function to get unicode from string, bytes, unicode
This commit is contained in:
@@ -28,7 +28,7 @@ from FreeCAD import Vector
|
||||
if FreeCAD.GuiUp:
|
||||
import FreeCADGui
|
||||
from PySide import QtGui,QtCore
|
||||
from DraftTools import translate
|
||||
from DraftTools import translate, utf8_decode
|
||||
else:
|
||||
# \cond
|
||||
def translate(ctxt,txt):
|
||||
@@ -809,19 +809,19 @@ def survey(callback=False):
|
||||
t = u.getUserPreferred()[0]
|
||||
t = t.encode("utf8").replace("^3","³")
|
||||
anno.LabelText = "v " + t
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: Whole, Volume: " + t.decode("utf8") + "\n")
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: Whole, Volume: " + utf8_decode(t) + "\n")
|
||||
elif o.Object.Shape.Faces:
|
||||
u = FreeCAD.Units.Quantity(o.Object.Shape.Area,FreeCAD.Units.Area)
|
||||
t = u.getUserPreferred()[0]
|
||||
t = t.encode("utf8").replace("^2","²")
|
||||
anno.LabelText = "a " + t
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: Whole, Area: " + t.decode("utf8") + "\n")
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: Whole, Area: " + utf8_decode(t) + "\n")
|
||||
else:
|
||||
u = FreeCAD.Units.Quantity(o.Object.Shape.Length,FreeCAD.Units.Length)
|
||||
t = u.getUserPreferred()[0]
|
||||
t = t.encode("utf8")
|
||||
anno.LabelText = "l " + t
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: Whole, Length: " + t.decode("utf8") + "\n")
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: Whole, Length: " + utf8_decode(t) + "\n")
|
||||
if FreeCAD.GuiUp and t:
|
||||
if showUnit:
|
||||
QtGui.qApp.clipboard().setText(t)
|
||||
@@ -845,19 +845,19 @@ def survey(callback=False):
|
||||
t = u.getUserPreferred()[0]
|
||||
t = t.encode("utf8").replace("^2","²")
|
||||
anno.LabelText = "a " + t
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: " + el + ", Area: "+ t.decode("utf8") + "\n")
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: " + el + ", Area: "+ utf8_decode(t) + "\n")
|
||||
elif "Edge" in el:
|
||||
u= FreeCAD.Units.Quantity(e.Length,FreeCAD.Units.Length)
|
||||
t = u.getUserPreferred()[0]
|
||||
t = t.encode("utf8")
|
||||
anno.LabelText = "l " + t
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: " + el + ", Length: " + t.decode("utf8") + "\n")
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: " + el + ", Length: " + utf8_decode(t) + "\n")
|
||||
elif "Vertex" in el:
|
||||
u = FreeCAD.Units.Quantity(e.Z,FreeCAD.Units.Length)
|
||||
t = u.getUserPreferred()[0]
|
||||
t = t.encode("utf8")
|
||||
anno.LabelText = "z " + t
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: " + el + ", Zcoord: " + t.decode("utf8") + "\n")
|
||||
FreeCAD.Console.PrintMessage("Object: " + n + ", Element: " + el + ", Zcoord: " + utf8_decode(t) + "\n")
|
||||
if FreeCAD.GuiUp and t:
|
||||
if showUnit:
|
||||
QtGui.qApp.clipboard().setText(t)
|
||||
@@ -1229,7 +1229,7 @@ class _CommandCheck:
|
||||
else:
|
||||
FreeCADGui.Selection.clearSelection()
|
||||
for i in result:
|
||||
FreeCAD.Console.PrintWarning("Object "+i[0].Name+" ("+i[0].Label+") "+i[1].decode("utf8"))
|
||||
FreeCAD.Console.PrintWarning("Object "+i[0].Name+" ("+i[0].Label+") "+ utf8_decode(i[1]))
|
||||
FreeCADGui.Selection.addSelection(i[0])
|
||||
|
||||
|
||||
|
||||
@@ -197,11 +197,11 @@ class CommandPanel:
|
||||
"sets up a taskbox widget"
|
||||
w = QtGui.QWidget()
|
||||
ui = FreeCADGui.UiLoader()
|
||||
w.setWindowTitle(translate("Arch","Panel options").decode("utf8"))
|
||||
w.setWindowTitle(translate("Arch","Panel options", utf8_decode=True))
|
||||
grid = QtGui.QGridLayout(w)
|
||||
|
||||
# presets box
|
||||
labelp = QtGui.QLabel(translate("Arch","Preset").decode("utf8"))
|
||||
labelp = QtGui.QLabel(translate("Arch","Preset", utf8_decode=True))
|
||||
valuep = QtGui.QComboBox()
|
||||
fpresets = [" "]
|
||||
for p in Presets[1:]:
|
||||
@@ -211,32 +211,32 @@ class CommandPanel:
|
||||
grid.addWidget(valuep,0,1,1,1)
|
||||
|
||||
# length
|
||||
label1 = QtGui.QLabel(translate("Arch","Length").decode("utf8"))
|
||||
label1 = QtGui.QLabel(translate("Arch","Length", utf8_decode=True))
|
||||
self.vLength = ui.createWidget("Gui::InputField")
|
||||
self.vLength.setText(FreeCAD.Units.Quantity(self.Length,FreeCAD.Units.Length).UserString)
|
||||
grid.addWidget(label1,1,0,1,1)
|
||||
grid.addWidget(self.vLength,1,1,1,1)
|
||||
|
||||
# width
|
||||
label2 = QtGui.QLabel(translate("Arch","Width").decode("utf8"))
|
||||
label2 = QtGui.QLabel(translate("Arch","Width", utf8_decode=True))
|
||||
self.vWidth = ui.createWidget("Gui::InputField")
|
||||
self.vWidth.setText(FreeCAD.Units.Quantity(self.Width,FreeCAD.Units.Length).UserString)
|
||||
grid.addWidget(label2,2,0,1,1)
|
||||
grid.addWidget(self.vWidth,2,1,1,1)
|
||||
|
||||
# height
|
||||
label3 = QtGui.QLabel(translate("Arch","Thickness").decode("utf8"))
|
||||
label3 = QtGui.QLabel(translate("Arch","Thickness", utf8_decode=True))
|
||||
self.vHeight = ui.createWidget("Gui::InputField")
|
||||
self.vHeight.setText(FreeCAD.Units.Quantity(self.Thickness,FreeCAD.Units.Length).UserString)
|
||||
grid.addWidget(label3,3,0,1,1)
|
||||
grid.addWidget(self.vHeight,3,1,1,1)
|
||||
|
||||
# horizontal button
|
||||
value5 = QtGui.QPushButton(translate("Arch","Rotate").decode("utf8"))
|
||||
value5 = QtGui.QPushButton(translate("Arch","Rotate", utf8_decode=True))
|
||||
grid.addWidget(value5,4,0,1,2)
|
||||
|
||||
# continue button
|
||||
label4 = QtGui.QLabel(translate("Arch","Con&tinue").decode("utf8"))
|
||||
label4 = QtGui.QLabel(translate("Arch","Con&tinue", utf8_decode=True))
|
||||
value4 = QtGui.QCheckBox()
|
||||
value4.setObjectName("ContinueCmd")
|
||||
value4.setLayoutDirection(QtCore.Qt.RightToLeft)
|
||||
|
||||
@@ -247,18 +247,18 @@ class _CommandStructure:
|
||||
"sets up a taskbox widget"
|
||||
w = QtGui.QWidget()
|
||||
ui = FreeCADGui.UiLoader()
|
||||
w.setWindowTitle(translate("Arch","Structure options").decode("utf8"))
|
||||
w.setWindowTitle(translate("Arch","Structure options", utf8_decode=True))
|
||||
grid = QtGui.QGridLayout(w)
|
||||
|
||||
# categories box
|
||||
labelc = QtGui.QLabel(translate("Arch","Category").decode("utf8"))
|
||||
labelc = QtGui.QLabel(translate("Arch","Category", utf8_decode=True))
|
||||
valuec = QtGui.QComboBox()
|
||||
valuec.addItems([" ","Precast concrete"]+Categories)
|
||||
grid.addWidget(labelc,0,0,1,1)
|
||||
grid.addWidget(valuec,0,1,1,1)
|
||||
|
||||
# presets box
|
||||
labelp = QtGui.QLabel(translate("Arch","Preset").decode("utf8"))
|
||||
labelp = QtGui.QLabel(translate("Arch","Preset", utf8_decode=True))
|
||||
self.vPresets = QtGui.QComboBox()
|
||||
self.pSelect = [None]
|
||||
fpresets = [" "]
|
||||
@@ -267,34 +267,34 @@ class _CommandStructure:
|
||||
grid.addWidget(self.vPresets,1,1,1,1)
|
||||
|
||||
# length
|
||||
label1 = QtGui.QLabel(translate("Arch","Length").decode("utf8"))
|
||||
label1 = QtGui.QLabel(translate("Arch","Length", utf8_decode=True))
|
||||
self.vLength = ui.createWidget("Gui::InputField")
|
||||
self.vLength.setText(FreeCAD.Units.Quantity(self.Length,FreeCAD.Units.Length).UserString)
|
||||
grid.addWidget(label1,2,0,1,1)
|
||||
grid.addWidget(self.vLength,2,1,1,1)
|
||||
|
||||
# width
|
||||
label2 = QtGui.QLabel(translate("Arch","Width").decode("utf8"))
|
||||
label2 = QtGui.QLabel(translate("Arch","Width", utf8_decode=True))
|
||||
self.vWidth = ui.createWidget("Gui::InputField")
|
||||
self.vWidth.setText(FreeCAD.Units.Quantity(self.Width,FreeCAD.Units.Length).UserString)
|
||||
grid.addWidget(label2,3,0,1,1)
|
||||
grid.addWidget(self.vWidth,3,1,1,1)
|
||||
|
||||
# height
|
||||
label3 = QtGui.QLabel(translate("Arch","Height").decode("utf8"))
|
||||
label3 = QtGui.QLabel(translate("Arch","Height", utf8_decode=True))
|
||||
self.vHeight = ui.createWidget("Gui::InputField")
|
||||
self.vHeight.setText(FreeCAD.Units.Quantity(self.Height,FreeCAD.Units.Length).UserString)
|
||||
grid.addWidget(label3,4,0,1,1)
|
||||
grid.addWidget(self.vHeight,4,1,1,1)
|
||||
|
||||
# horizontal button
|
||||
value5 = QtGui.QPushButton(translate("Arch","Switch L/H").decode("utf8"))
|
||||
value5 = QtGui.QPushButton(translate("Arch","Switch L/H", utf8_decode=True))
|
||||
grid.addWidget(value5,5,0,1,1)
|
||||
value6 = QtGui.QPushButton(translate("Arch","Switch L/W").decode("utf8"))
|
||||
value6 = QtGui.QPushButton(translate("Arch","Switch L/W", utf8_decode=True))
|
||||
grid.addWidget(value6,5,1,1,1)
|
||||
|
||||
# continue button
|
||||
label4 = QtGui.QLabel(translate("Arch","Con&tinue").decode("utf8"))
|
||||
label4 = QtGui.QLabel(translate("Arch","Con&tinue", utf8_decode=True))
|
||||
value4 = QtGui.QCheckBox()
|
||||
value4.setObjectName("ContinueCmd")
|
||||
value4.setLayoutDirection(QtCore.Qt.RightToLeft)
|
||||
|
||||
@@ -303,7 +303,7 @@ class _CommandWall:
|
||||
"sets up a taskbox widget"
|
||||
w = QtGui.QWidget()
|
||||
ui = FreeCADGui.UiLoader()
|
||||
w.setWindowTitle(translate("Arch","Wall options").decode("utf8"))
|
||||
w.setWindowTitle(translate("Arch","Wall options", utf8_decode=True))
|
||||
grid = QtGui.QGridLayout(w)
|
||||
|
||||
matCombo = QtGui.QComboBox()
|
||||
@@ -321,25 +321,25 @@ class _CommandWall:
|
||||
self.MultiMat = o
|
||||
grid.addWidget(matCombo,0,0,1,2)
|
||||
|
||||
label5 = QtGui.QLabel(translate("Arch","Length").decode("utf8"))
|
||||
label5 = QtGui.QLabel(translate("Arch","Length", utf8_decode=True))
|
||||
self.Length = ui.createWidget("Gui::InputField")
|
||||
self.Length.setText("0.00 mm")
|
||||
grid.addWidget(label5,1,0,1,1)
|
||||
grid.addWidget(self.Length,1,1,1,1)
|
||||
|
||||
label1 = QtGui.QLabel(translate("Arch","Width").decode("utf8"))
|
||||
label1 = QtGui.QLabel(translate("Arch","Width", utf8_decode=True))
|
||||
value1 = ui.createWidget("Gui::InputField")
|
||||
value1.setText(FreeCAD.Units.Quantity(self.Width,FreeCAD.Units.Length).UserString)
|
||||
grid.addWidget(label1,2,0,1,1)
|
||||
grid.addWidget(value1,2,1,1,1)
|
||||
|
||||
label2 = QtGui.QLabel(translate("Arch","Height").decode("utf8"))
|
||||
label2 = QtGui.QLabel(translate("Arch","Height", utf8_decode=True))
|
||||
value2 = ui.createWidget("Gui::InputField")
|
||||
value2.setText(FreeCAD.Units.Quantity(self.Height,FreeCAD.Units.Length).UserString)
|
||||
grid.addWidget(label2,3,0,1,1)
|
||||
grid.addWidget(value2,3,1,1,1)
|
||||
|
||||
label3 = QtGui.QLabel(translate("Arch","Alignment").decode("utf8"))
|
||||
label3 = QtGui.QLabel(translate("Arch","Alignment", utf8_decode=True))
|
||||
value3 = QtGui.QComboBox()
|
||||
items = ["Center","Left","Right"]
|
||||
value3.addItems(items)
|
||||
@@ -347,7 +347,7 @@ class _CommandWall:
|
||||
grid.addWidget(label3,4,0,1,1)
|
||||
grid.addWidget(value3,4,1,1,1)
|
||||
|
||||
label4 = QtGui.QLabel(translate("Arch","Con&tinue").decode("utf8"))
|
||||
label4 = QtGui.QLabel(translate("Arch","Con&tinue", utf8_decode=True))
|
||||
value4 = QtGui.QCheckBox()
|
||||
value4.setObjectName("ContinueCmd")
|
||||
value4.setLayoutDirection(QtCore.Qt.RightToLeft)
|
||||
|
||||
@@ -538,24 +538,24 @@ class _CommandWindow:
|
||||
"sets up a taskbox widget"
|
||||
w = QtGui.QWidget()
|
||||
ui = FreeCADGui.UiLoader()
|
||||
w.setWindowTitle(translate("Arch","Window options").decode("utf8"))
|
||||
w.setWindowTitle(translate("Arch","Window options", utf8_decode=True))
|
||||
grid = QtGui.QGridLayout(w)
|
||||
|
||||
# include box
|
||||
include = QtGui.QCheckBox(translate("Arch","Auto include in host object").decode("utf8"))
|
||||
include = QtGui.QCheckBox(translate("Arch","Auto include in host object", utf8_decode=True))
|
||||
include.setChecked(True)
|
||||
grid.addWidget(include,0,0,1,2)
|
||||
QtCore.QObject.connect(include,QtCore.SIGNAL("stateChanged(int)"),self.setInclude)
|
||||
|
||||
# sill height
|
||||
labels = QtGui.QLabel(translate("Arch","Sill height").decode("utf8"))
|
||||
labels = QtGui.QLabel(translate("Arch","Sill height", utf8_decode=True))
|
||||
values = ui.createWidget("Gui::InputField")
|
||||
grid.addWidget(labels,1,0,1,1)
|
||||
grid.addWidget(values,1,1,1,1)
|
||||
QtCore.QObject.connect(values,QtCore.SIGNAL("valueChanged(double)"),self.setSill)
|
||||
|
||||
# presets box
|
||||
labelp = QtGui.QLabel(translate("Arch","Preset").decode("utf8"))
|
||||
labelp = QtGui.QLabel(translate("Arch","Preset", utf8_decode=True))
|
||||
valuep = QtGui.QComboBox()
|
||||
valuep.addItems(WindowPresets)
|
||||
valuep.setCurrentIndex(self.Preset)
|
||||
@@ -573,7 +573,7 @@ class _CommandWindow:
|
||||
# parameters
|
||||
i = 4
|
||||
for param in self.wparams:
|
||||
lab = QtGui.QLabel(translate("Arch",param).decode("utf8"))
|
||||
lab = QtGui.QLabel(translate("Arch",param, utf8_decode=True))
|
||||
setattr(self,"val"+param,ui.createWidget("Gui::InputField"))
|
||||
wid = getattr(self,"val"+param)
|
||||
if param == "Width":
|
||||
|
||||
@@ -76,7 +76,7 @@ def insert(filename,docname):
|
||||
def decode(name):
|
||||
"decodes encoded strings"
|
||||
try:
|
||||
decodedName = (name.decode("utf8"))
|
||||
decodedName = (utf8_decode(name))
|
||||
except UnicodeDecodeError:
|
||||
try:
|
||||
decodedName = (name.decode("latin1"))
|
||||
|
||||
@@ -126,7 +126,7 @@ def export(exportList,filename):
|
||||
outfile = pythonopen(filename,"wb")
|
||||
outfile.write(html)
|
||||
outfile.close()
|
||||
FreeCAD.Console.PrintMessage(translate("Arch","successfully written ").decode("utf8")+filename+"\n")
|
||||
FreeCAD.Console.PrintMessage(translate("Arch","successfully written ", utf8_decode=True)+filename+"\n")
|
||||
|
||||
def getHTML(objectsList):
|
||||
"returns the complete HTML code of a viewer for the given objects"
|
||||
|
||||
Reference in New Issue
Block a user