22 from airbus_cobot_gui
import resources_dir
23 from xml.etree
import ElementTree
28 from python_qt_binding
import loadUi
38 """! The constructor."""
39 QDialog.__init__(self, parent, Qt.FramelessWindowHint)
48 self.setStyleSheet(
"QDialog{ \
49 background-color:qlineargradient(x1: 0, \
61 self.connect(self.explorer_button, SIGNAL(
"clicked()"),
64 self.connect(self.generate_button, SIGNAL(
"clicked()"),
67 self.connect(self.close_button, SIGNAL(
"clicked()"),
70 self.explorer_button.setText(
trUtf8(
"Open"))
71 self.generate_button.setText(
trUtf8(
"Generate"))
72 self.close_button.setText(
trUtf8(
"Close"))
74 self.explorer_label.setText(
trUtf8(
"Traductor"))
75 self.language_label.setText(
trUtf8(
"Language"))
79 trans_xml_file, filter = QFileDialog.getOpenFileName(self,
85 if os.path.isfile(trans_xml_file):
86 self.
parse(trans_xml_file)
88 msg_box = MessageBox()
89 msg_box.setText(
trUtf8(
"No traductor selected",
'!'))
90 msg_box.setIcon(MessageBox.Critical)
91 msg_box.setStandardButtons(MessageBox.Ok)
92 msg_box.button(MessageBox.Ok).setMinimumSize(100,40)
99 self.
_tree = ElementTree.parse(file)
100 except Exception
as e:
101 msg_box = MessageBox()
102 msg_box.setText(
trUtf8(
"Invalid translator",
'!'))
103 msg_box.setIcon(MessageBox.Error)
104 msg_box.setStandardButtons(MessageBox.Ok)
105 msg_box.button(MessageBox.Ok).setMinimumSize(100,40)
110 self.languages_combo.setEnabled(
True)
111 self.generate_button.setEnabled(
True)
113 self.
_root = self._tree.getroot()
115 translate_list = self._root.find(
'./translate')
117 if len(translate_list):
119 self.languages_combo.addItem(
'All')
121 for lng
in translate_list:
122 self.languages_combo.addItem(lng.tag[0].upper()+lng.tag[1:])
123 self._languages_list.append(lng.tag)
127 choose = self.languages_combo.currentText().lower()
141 msg_status +=
'"%s" '%lng
147 msg_box = MessageBox()
148 msg_box.setText(
trUtf8(
"Translations finished with success",
'.'))
149 msg_box.setIcon(MessageBox.Information)
150 msg_box.setStandardButtons(MessageBox.Ok)
151 msg_box.button(MessageBox.Ok).setMinimumSize(100,40)
156 context =
'MainWindow',
159 file_name = language+
'.ts'
163 ts = open(tsfile,
'w')
165 ts.write(
"""<?xml version="1.0" encoding="utf-8"?>\n""")
166 ts.write(
"""<!DOCTYPE TS>\n""")
167 ts.write(
"""<TS version="%s" language="%s">\n"""%(version,language))
168 ts.write(
"""<context>\n""")
169 ts.write(
""" <name>%s</name>\n"""%context)
171 for trans
in self._root.find(
'.'):
173 source_text = trans.find(self.
LNG_SOURCE).text
174 source_tag =
'<source>%s</source>'%source_text.encode(
'ascii',
176 trad_text = trans.find(language).text
177 translation_tag =
'<translation>%s</translation>'%trad_text.encode(
'ascii',
179 message_tag =
" <message>\n %s\n %s\n </message>\n"%(source_tag,translation_tag)
180 ts.write(message_tag)
182 ts.write(
"""</context>\n""")
183 ts.write(
"""</TS>\n""")
191 sub = subprocess.Popen([
"lrelease", tsfile])
199 trans_files_list = []
202 if extension
in file:
203 trans_files_list.append(file)
205 return trans_files_list
207 if __name__ ==
"__main__":
211 rospy.init_node(
'translator')
213 app = QApplication(sys.argv)