Commit 2d6487ed authored by Jonathan Wiedemann's avatar Jonathan Wiedemann
Browse files

Add translations mecanism

parent bd551d74
......@@ -32,26 +32,31 @@ import os
import moocwb_locator
# import freecad and its gui
import FreeCAD as app
import FreeCADGui as gui
import FreeCAD
import FreeCADGui
global MOOC_VERSION
MOOC_VERSION = "V1.2.0"
MOOC_VERSION = "V1.3.0"
moocWB_path = os.path.dirname(moocwb_locator.__file__)
moocWB_medias_path = os.path.join(moocWB_path, "medias")
moocWB_translation_path = os.path.join(moocWB_path, "translations")
moocWB_icons_path = os.path.join(moocWB_medias_path, "icons")
FreeCADGui.addLanguagePath(moocWB_translation_path)
FreeCADGui.updateLocale()
global main_moocWB_Icon
main_moocWB_Icon = os.path.join(moocWB_icons_path, "mooc-workbench.svg")
class MoocWorkbench(Workbench):
class MoocWorkbench(Gui.Workbench):
"""The MOOC Workbench."""
from PySide.QtCore import QT_TRANSLATE_NOOP
global main_moocWB_Icon
MenuText = "MOOC"
ToolTip = "Learn FreeCAD"
ToolTip = FreeCAD.Qt.translate("MOOC", "Apprenez FreeCAD")
Icon = main_moocWB_Icon
def Initialize(self):
......@@ -77,4 +82,4 @@ class MoocWorkbench(Workbench):
return "Gui::PythonWorkbench"
gui.addWorkbench(MoocWorkbench())
FreeCADGui.addWorkbench(MoocWorkbench())
......@@ -158,14 +158,14 @@ class Ui_FreeCADGrader(QtWidgets.QDialog):
self.pushButton_show_instructions.clicked.connect(self.show_instructions)
def retranslateUi(self, FreeCADGrader):
FreeCADGrader.setWindowTitle(u"FreeCAD Grader")
self.label.setText(u"1. Évaluation")
self.label_2.setText(u"Choisissez l'exercice à évaluer dans la liste suivante :")
self.label_3.setText(u"Choisissez le document à évaluer dans la liste suivante :")
self.pushButton.setText(u"Lancer l\'évaluation")
self.label_4.setText(u"2. Résultats")
self.pushButton_2.setText(u"Envoyer les résultats")
self.pushButton_show_instructions.setText(u"Voir les instructions")
FreeCADGrader.setWindowTitle(app.Qt.translate("MOOC", "FreeCAD Grader"))
self.label.setText(app.Qt.translate("MOOC", "1. Évaluation"))
self.label_2.setText(app.Qt.translate("MOOC", "Choisissez l'exercice à évaluer dans la liste suivante :"))
self.label_3.setText(app.Qt.translate("MOOC", "Choisissez le document à évaluer dans la liste suivante :"))
self.pushButton.setText(app.Qt.translate("MOOC", "Lancer l\'évaluation"))
self.label_4.setText(app.Qt.translate("MOOC", "2. Résultats"))
self.pushButton_2.setText(app.Qt.translate("MOOC", "Envoyer les résultats"))
self.pushButton_show_instructions.setText(app.Qt.translate("MOOC", "Voir les instructions"))
def fill_comboBox_2(self):
self.comboBox_2.clear()
......@@ -179,7 +179,7 @@ class Ui_FreeCADGrader(QtWidgets.QDialog):
self.comboBox_2.addItem(doc[1].Label)
n += 1
else:
self.comboBox_2.addItem(u"Il n'y a pas de document à évaluer.")
self.comboBox_2.addItem(app.Qt.translate("MOOC", "Il n'y a pas de document à évaluer."))
def eval_button(self):
if DEBUG:
......@@ -195,8 +195,8 @@ class Ui_FreeCADGrader(QtWidgets.QDialog):
self.grader_notes = None
self.listWidget.clear()
msgBox = QtWidgets.QMessageBox()
msgBox.setText(u"Il n'y aucun document à évaluer !")
msgBox.setText(u"Veuillez ouvrir un document et relancer FreeCAD Grader")
msgBox.setText(app.Qt.translate("MOOC", "Il n'y aucun document à évaluer !"))
msgBox.setText(app.Qt.translate("MOOC", "Veuillez ouvrir un document et relancer FreeCAD Grader"))
msgBox.exec_()
def grader_launch(self, doc_name):
......@@ -231,7 +231,7 @@ class Ui_FreeCADGrader(QtWidgets.QDialog):
print("No results")
self.grader_notes = None
msgBox = QtWidgets.QMessageBox()
msgBox.setText(u"Cela n'a donné aucun résultat :(")
msgBox.setText(app.Qt.translate("MOOC", "Cela n'a donné aucun résultat :("))
msgBox.exec_()
def show_hash(self):
......@@ -242,7 +242,7 @@ class Ui_FreeCADGrader(QtWidgets.QDialog):
dialog.exec_()
else:
msgBox = QtWidgets.QMessageBox()
msgBox.setText(u"Veuillez d'abord lancer l'évaluation pour obtenir des résultats.")
msgBox.setText(app.Qt.translate("MOOC", "Veuillez d'abord lancer l'évaluation pour obtenir des résultats."))
msgBox.exec_()
def closeEvent(self, event):
......@@ -320,15 +320,15 @@ class Ui_FreeCADGraderResults(QtWidgets.QDialog):
self.pushButton.clicked.connect(self.copy_to_clipboard)
def retranslateUi(self, FreeCADGraderResults):
FreeCADGraderResults.setWindowTitle(u"Envoyer les résultats")
self.label.setText(u"3. Copier/coller le code suivant dans l\'interface FUN-MOOC")
self.pushButton.setText(u"Copier")
FreeCADGraderResults.setWindowTitle(app.Qt.translate("MOOC", "Envoyer les résultats"))
self.label.setText(app.Qt.translate("MOOC", "3. Copier/coller le code suivant dans l\'interface FUN-MOOC"))
self.pushButton.setText(app.Qt.translate("MOOC", "Copier"))
def copy_to_clipboard(self):
cb = QtGui.QClipboard()
cb.setText(self.lineEdit.text())
self.pushButton.setText(u"Copié !")
self.label_clipboard_copy.setText(u"Le code est copié dans le presse papier.\nColler le à l'aide d'un clic droit ou du raccourcis clavier CTRL+V.")
self.pushButton.setText(app.Qt.translate("MOOC", "Copié !"))
self.label_clipboard_copy.setText(app.Qt.translate("MOOC", "Le code est copié dans le presse papier.\nColler le à l'aide d'un clic droit ou du raccourcis clavier CTRL+V."))
class MoocGraderCommand():
......@@ -336,8 +336,8 @@ class MoocGraderCommand():
def GetResources(self):
return {'Pixmap': os.path.join(moocWB_icons_path, 'mooc-grader.svg'),
'MenuText': QtCore.QT_TRANSLATE_NOOP("Mooc", "Évaluer un exercice."),
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Mooc", "Éxécute l'outil d'analyse et vérification d'un document FreeCAD.")}
'MenuText': app.Qt.translate("MOOC", "Évaluer un exercice."),
'ToolTip': app.Qt.translate("MOOC", "Éxécute l'outil d'analyse et vérification d'un document FreeCAD.")}
def IsActive(self):
return True
......
......@@ -23,6 +23,8 @@
#
################################################
import FreeCAD
__title__ = "MOOC Workbench"
__author__ = "Jonathan Wiedemann"
__url__ = "http://www.freecadweb.org"
......@@ -46,7 +48,7 @@ def checkMoocWBVersion(MOOC_VERSION):
print(u'Please update Mooc Workbench !')
import MoocInformations
from PySide2 import QtWidgets
reply = QtWidgets.QMessageBox.information(None, u'Mise à jour nécessaire...',
u'''Votre version de l'atelier MOOC est obsolète.\nMerci de le mettre à jour à l'aide de l'addon manager.''')
reply = QtWidgets.QMessageBox.information(None, FreeCAD.Qt.translate("MOOC", 'Mise à jour nécessaire...'),
FreeCAD.Qt.translate("MOOC", '''Votre version de l'atelier MOOC est obsolète.\nMerci de le mettre à jour à l'aide de l'addon manager.'''))
# only check the first occurence
break
......@@ -56,6 +56,7 @@ import MoocChecker
import MoocCheckerSpreadsheet
import MoocCheckerPart
# to DEBUG purpose
DEBUG = False
......@@ -160,14 +161,14 @@ class Ui_MoocPlayer(QtWidgets.QDialog):
self.show()
def retranslateUi(self):
self.setWindowTitle(u"FreeCAD Tutorials")
self.label_resume.setText(u"Résumé de la leçon")
self.label_objectifs.setText(u"Objectifs à réaliser")
self.btn_help.setText(u"Aide")
self.btn_previous_step.setText(u"Précédent")
self.label_step.setText(u"Étape X / X")
self.btn_next_step.setText(u"Suivant")
self.btn_play.setText(u"Voir la vidéo")
self.setWindowTitle(app.Qt.translate("MOOC", "Tutoriels FreeCAD"))
self.label_resume.setText(app.Qt.translate("MOOC", "Résumé de la leçon"))
self.label_objectifs.setText(app.Qt.translate("MOOC", "Objectifs à réaliser"))
self.btn_help.setText(app.Qt.translate("MOOC", "Aide"))
self.btn_previous_step.setText(app.Qt.translate("MOOC", "Précédent"))
self.label_step.setText(app.Qt.translate("MOOC", "Étape X / X"))
self.btn_next_step.setText(app.Qt.translate("MOOC", "Suivant"))
self.btn_play.setText(app.Qt.translate("MOOC", "Voir la vidéo"))
def closeEvent(self, event):
TIMER.stop()
......@@ -199,7 +200,7 @@ class Manager_MoocPlayer:
self.form.exec_()
def get_label_step(self):
label = u"Étape " + str(self.current_step_id + 1) + " / " + str(self.total_step)
label = app.Qt.translate("MOOC", "Étape") + " " + str(self.current_step_id + 1) + " / " + str(self.total_step)
return label
def forward_step(self):
......@@ -328,11 +329,11 @@ class Ui_MoocChooser(QtWidgets.QDialog):
self.show()
def retranslateUi(self, MoocPlayerChooser):
MoocPlayerChooser.setWindowTitle(u"Choisir la leçon")
self.label_welcome.setText(u"Quelle leçon souhaitez vous étudier aujourd'hui ?")
MoocPlayerChooser.setWindowTitle(app.Qt.translate("MOOC", "Choisir la leçon"))
self.label_welcome.setText(app.Qt.translate("MOOC", "Quelle leçon souhaitez vous étudier aujourd'hui ?"))
self.label_description.setText(
u"Cliquer sur un éléments de la liste pour obtenir la description de la leçon."
)
app.Qt.translate("MOOC", "Cliquer sur un éléments de la liste pour obtenir la description de la leçon."
))
def accept(self):
self.launch_mooc(self.listWidget_trainings.currentItem())
......@@ -396,9 +397,9 @@ class Command_MoocChooser:
# moocWB_icons_path = os.path.join(moocWB_medias_path, 'icons')
return {
"Pixmap": os.path.join(moocWB_icons_path, "mooc-player.svg"),
"MenuText": QtCore.QT_TRANSLATE_NOOP(u"Mooc", "Voir un tutoriel."),
"ToolTip": QtCore.QT_TRANSLATE_NOOP(
u"Mooc", "Permet de choisir et voir un tutoriel interactif."
"MenuText": app.Qt.translate("MOOC", "Voir un tutoriel."),
"ToolTip": app.Qt.translate(
"MOOC", "Permet de choisir et voir un tutoriel interactif."
),
}
......
......@@ -33,14 +33,14 @@ import FreeCADGui as gui
def get_title():
title = '[FR] MOOC Semaine 1 - Socle Humidificateur'
title = app.Qt.translate("MOOC", '[FR] MOOC Semaine 1 - Socle Humidificateur')
return title
def get_description():
description = '''[FR] Part Design Primitives Semaine 1 : Cette semaine \
description = app.Qt.translate("MOOC", '''[FR] Part Design Primitives Semaine 1 : Cette semaine \
nous allons voir comment modéliser le Korrigans de Steven Akoun à l'aide \
d'esquisses et de fonctions d'ajout et d'enlèvement de matière.'''
d'esquisses et de fonctions d'ajout et d'enlèvement de matière.''')
return description
......@@ -71,54 +71,54 @@ def grader(doc_name):
# Check for a Body presence
grader_dict["notes"].append(Check.body_presence(doc))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Il y a un corps de pièce.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a un corps de pièce."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Il n'y a pas de corps de pièce.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de corps de pièce."))
step_id += 1
# Check for a Pad presence
grader_dict["notes"].append(Check.primitive_presence(doc, typeId='PartDesign::AdditiveBox'))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append("Il y a un cube additif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a un cube additif."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append("Il n'y a pas de cube additif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de cube additif."))
step_id += 1
# Check for a Pocket presence
grader_dict["notes"].append(Check.primitive_presence(doc, typeId='PartDesign::AdditiveCylinder'))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append("Il y a un cylindre additif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a un cylindre additif."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append("Il n'y a pas de cylindre additif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de cylindre additif."))
step_id += 1
# Check volume
grader_dict["notes"].append(Check.primitive_presence(doc, typeId='PartDesign::SubtractiveCylinder'))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append("Il y a un cylindre soustractif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a un cylindre soustractif."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append("Il n'y a pas de cylindre soustractif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de cylindre soustractif."))
step_id += 1
# Check boundbox
grader_dict["notes"].append(Check.primitive_presence(doc, typeId='PartDesign::SubtractiveBox'))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append("Il y a un cube soustractif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a un cube soustractif."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append("Il n'y a pas de cube soustractif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de cube soustractif."))
step_id += 1
grader_dict["notes"].append(Check.boundbox_dimensions(doc, typeId='PartDesign::Body', x = 190, y = 90, z = 15))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Les dimensions extérieures correspondent avec l'objectif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Les dimensions extérieures correspondent avec l'objectif."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Les dimensions extérieures ne correspondent pas avec l'objectif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Les dimensions extérieures ne correspondent pas avec l'objectif."))
step_id += 1
grader_dict["notes"].append(Check.volume(doc, typeId='PartDesign::Body', target=82134))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Le volume du corps de pièce correspond avec l'objectif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Le volume du corps de pièce correspond avec l'objectif."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Le volume du corps de pièce ne correspond pas avec l'objectif.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Le volume du corps de pièce ne correspond pas avec l'objectif."))
return grader_dict
......@@ -36,13 +36,13 @@ import os, moocwb_locator
def get_title():
title = u'[FR] MOOC Semaine 2 - Combat des Trentes'
title = app.Qt.translate("MOOC", '[FR] MOOC Semaine 2 - Combat des Trentes')
return title
def get_description():
description = u'''[FR] MOOC Semaine 2 : Cette semaine nous \
description = app.Qt.translate("MOOC", '''[FR] MOOC Semaine 2 : Cette semaine nous \
allons voir comment modéliser le Korrigans de Valérian HENRY à l'aide d'esquisses \
et de fonctions d'ajout et d'enlèvement de matière.'''
et de fonctions d'ajout et d'enlèvement de matière.''')
return description
def get_instructions():
......@@ -71,41 +71,41 @@ def grader(doc_name):
# Check for a Body presence
grader_dict["notes"].append(Check.body_presence(doc))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Il y a un corps de pièce.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a un corps de pièce."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Il n'y a pas de corps de pièce.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de corps de pièce."))
step_id += 1
# Check for a Pad presence
grader_dict["notes"].append(Check.pad_presence(doc, name=None, type="Length", length=18.0, midplane=None))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Il y a une protrusion de 18 mm.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a une protrusion de 18 mm."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Il n'y a pas de protrusion de 18 mm.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de protrusion de 18 mm."))
step_id += 1
# Check for a Pocket presence
grader_dict["notes"].append(Check.pocket_presence(doc, name=None, type="ThroughAll", length=None, midplane=None, reversed=None))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Il y a une cavité de type À Travers Tout.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a une cavité de type À Travers Tout."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Il n'y a pas de cavité de type À Travers Tout.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de cavité de type À Travers Tout."))
step_id += 1
# Check volume
grader_dict["notes"].append(Check.volume(doc, name=None, typeId='PartDesign::Body', target=29292.00))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Le volume correspond.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Le volume correspond."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Le volume ne correspond pas.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Le volume ne correspond pas."))
step_id += 1
# Check boundbox
grader_dict["notes"].append(Check.boundbox_dimensions(doc, name=None, typeId='PartDesign::Body', x=40.00, y=18.00, z=65.00))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Les dimensions de la boite englobante correpsondent.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Les dimensions de la boite englobante correpsondent."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Les dimensions de la boite englobante ne correpsondent pas.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Les dimensions de la boite englobante ne correpsondent pas."))
return grader_dict
......@@ -32,14 +32,14 @@ import FreeCAD as app
def get_title():
title = u'[FR] MOOC Semaine 3 - Lampe Mercure'
title = app.Qt.translate("MOOC", '[FR] MOOC Semaine 3 - Lampe Mercure')
return title
def get_description():
description = u'''[FR] MOOC Semaine 3 : Cette semaine nous \
description = app.Qt.translate("MOOC", '''[FR] MOOC Semaine 3 : Cette semaine nous \
allons voir comment modéliser le Korrigans de Valérian HENRY à l'aide \
d'esquisses et de fonctions d'ajout et d'enlèvement de matière.'''
d'esquisses et de fonctions d'ajout et d'enlèvement de matière.''')
return description
......@@ -69,46 +69,46 @@ def grader(doc_name):
step_id = 0
grader_dict["notes"].append(Check.body_presence(doc, label="Lampe"))
if grader_dict["notes"][step_id] == 1:
grader_dict["messages"].append(u"Il y a un corps de pièce Lampe.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a un corps de pièce Lampe."))
elif grader_dict["notes"][step_id] == 0:
grader_dict["messages"].append(u"Il n'y a pas de corps de pièce Lampe.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de corps de pièce Lampe."))
step_id += 1
grader_dict["notes"].append(Check.body_presence(doc, label="Fil"))
if grader_dict["notes"][step_id] == 1:
grader_dict["messages"].append(u"Il y a un corps de pièce Fil.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a un corps de pièce Fil."))
elif grader_dict["notes"][step_id] == 0:
grader_dict["messages"].append(u"Il n'y a pas de corps de pièce Fil.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de corps de pièce Fil."))
step_id += 1
grader_dict["notes"].append(Check.body_presence(doc, label="Capuchon"))
if grader_dict["notes"][step_id] == 1:
grader_dict["messages"].append(u"Il y a un corps de pièce Capuchon.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a un corps de pièce Capuchon."))
elif grader_dict["notes"][step_id] == 0:
grader_dict["messages"].append(u"Il n'y a pas de corps de pièce Capuchon.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de corps de pièce Capuchon."))
step_id += 1
# Check for a Pocket presence
grader_dict["notes"].append(Check.additiveloft_presence(doc))
if grader_dict["notes"][step_id] == 1:
grader_dict["messages"].append(u"Il y a lissage.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a lissage."))
elif grader_dict["notes"][step_id] == 0:
grader_dict["messages"].append(u"Il n'y a pas de lissage.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de lissage."))
step_id += 1
# Check volume
grader_dict["notes"].append(Check.additivepipe_presence(doc))
if grader_dict["notes"][step_id] == 1:
grader_dict["messages"].append(u"Il y a un balayage.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a un balayage."))
elif grader_dict["notes"][step_id] == 0:
grader_dict["messages"].append(u"Il n'y a pas de balayage.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de balayage."))
step_id += 1
# Check boundbox
grader_dict["notes"].append(Check.revolution_presence(doc))
if grader_dict["notes"][step_id] == 1:
grader_dict["messages"].append(u"Il y a une révolution.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a une révolution."))
elif grader_dict["notes"][step_id] == 0:
grader_dict["messages"].append(u"Il n'y a pas de révolution.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il n'y a pas de révolution."))
return grader_dict
......@@ -36,11 +36,11 @@ import os, moocwb_locator
def get_title():
title = u'[FR] MOOC Semaine 4 - Tabouret Kouign'
title = app.Qt.translate("MOOC", '[FR] MOOC Semaine 4 - Tabouret Kouign')
return title
def get_description():
description = u'''[FR] MOOC Semaine 4 : Tabouret Kouign'''
description = app.Qt.translate("MOOC", '''[FR] MOOC Semaine 4 : Tabouret Kouign''')
return description
def get_instructions():
......@@ -68,51 +68,51 @@ def grader(doc_name):
step_id = 0
grader_dict["notes"].append(Check.a2p_importedPart_presence(doc, label="pied a"))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Pied A importé avec a2plus.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Pied A importé avec a2plus."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Pied A n'est pas importé avec a2plus.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Pied A n'est pas importé avec a2plus."))
step_id += 1
grader_dict["notes"].append(Check.a2p_importedPart_presence(doc, label="pied b"))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Pied B importé avec a2plus.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Pied B importé avec a2plus."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Pied B n'est pas importé avec a2plus.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Pied B n'est pas importé avec a2plus."))
step_id += 1
grader_dict["notes"].append(Check.a2p_importedPart_presence(doc, label="entretoise"))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Entretoise importé avec a2plus.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Entretoise importé avec a2plus."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Entretoise n'est pas importé avec a2plus.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Entretoise n'est pas importé avec a2plus."))
step_id += 1
grader_dict["notes"].append(Check.a2p_importedPart_presence(doc, label="assise"))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Assise importé avec a2plus.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Assise importé avec a2plus."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Assise n'est pas importé avec a2plus.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Assise n'est pas importé avec a2plus."))
step_id += 1
grader_dict["notes"].append(Check.a2p_constraint_presence(doc, type='plane'))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Il y a une contrainte de plan coïncident.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a une contrainte de plan coïncident."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Il ,'y a pas contrainte de plan coïncident.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il ,'y a pas contrainte de plan coïncident."))
step_id += 1
grader_dict["notes"].append(Check.a2p_constraint_presence(doc, type='axial'))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Il y a une contrainte d'axe coïncident.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a une contrainte d'axe coïncident."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Il ,'y a pas contrainte d'axe coïncident.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il ,'y a pas contrainte d'axe coïncident."))
step_id += 1
grader_dict["notes"].append(Check.a2p_constraint_presence(doc, type='planesParallel'))
if grader_dict["notes"][step_id] == 1 :
grader_dict["messages"].append(u"Il y a une contrainte de plan parallèle.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il y a une contrainte de plan parallèle."))
elif grader_dict["notes"][step_id] == 0 :
grader_dict["messages"].append(u"Il ,'y a pas contrainte de plan parallèle.")
grader_dict["messages"].append(app.Qt.translate("MOOC", "Il ,'y a pas contrainte de plan parallèle."))
return grader_dict
......@@ -32,6 +32,8 @@ __url__ = "http://www.freecadweb.org"
import os
import moocwb_locator
import FreeCAD as app
class lesson(object):
def __init__(self):
moocWB_path = os.path.dirname(moocwb_locator.__file__)
......@@ -39,17 +41,17 @@ class lesson(object):
moocWB_icons_path = os.path.join(moocWB_medias_path, "icons")
moocWB_images_path = os.path.join(moocWB_medias_path, 'images')
self.data_tutorial = {}
self.data_tutorial["title"] = u'[FR] MOOC Semaine 4 - Tabouret Kouign de Thomas Dellys'
self.data_tutorial["description"] = u'''[FR] MOOC Semaine 4 : Cette semaine nous allons modéliser \
self.data_tutorial["title"] = app.Qt.translate("MOOC", '[FR] MOOC Semaine 4 - Tabouret Kouign de Thomas Dellys')
self.data_tutorial["description"] = app.Qt.translate("MOOC", '''[FR] MOOC Semaine 4 : Cette semaine nous allons modéliser \
le tabouret Kouign de Thomas Dellys. Nous allons travailler dans l'atelier \
Part Design pour créer chaque élément puis nous allons utiliser l'atelier A2plus pour faire un assemblage.'''
Part Design pour créer chaque élément puis nous allons utiliser l'atelier A2plus pour faire un assemblage.''')
url = 'https://open.tube/videos/watch/b915ad6c-f7d2-4257-a717-668bd6d3041e'
self.data_tutorial["steps"]