From 391c88e58888db202f6f74a7caeb76e2c0ba09e6 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Thu, 8 Jun 2023 10:43:34 +0200 Subject: [PATCH] Update FR translations --- client/src/locales/fr.json | 260 ++++++++++-------- .../assignment/creators/create_assignments.py | 15 +- .../commands/create_default_courses.py | 9 +- .../learnpath/create_vv_new_learning_path.py | 5 +- 4 files changed, 167 insertions(+), 122 deletions(-) diff --git a/client/src/locales/fr.json b/client/src/locales/fr.json index 40f9b21c..6157b7f4 100644 --- a/client/src/locales/fr.json +++ b/client/src/locales/fr.json @@ -1,191 +1,225 @@ { - "Benutzername": "Nom d'utilisateur", - "In MS Teams findest du die Trainerunterlagen und kannst deine offenen Fragen klären.": "Avec MS Teams, tu trouveras la documentation pour les formateurs et tu pourras clarifier tes questions en suspens.", - "Klicke auf den Button, um dich über SSO anzumelden oder zu registrieren.": "Clique sur le bouton pour te connecter ou t'inscrire via SSO.", - "MS Teams öffnen": "Ouvrir MS Teams", - "Nächste Termine:": "Prochains rendez-vous", + "Benutzername": "Nom d’utilisateur", + "Hier findest du die Trainerunterlagen (Lösungsblätter, Präsentationen etc.) für deinen Circle.": "Tu trouves ici les documents de formation (feuilles de solution, présentations, etc.) pour ton cercle.", + "Klicke auf den Button, um dich über SSO anzumelden oder zu registrieren.": "Clique sur le bouton pour te connecter via le SSO ou t’inscrire.", + "MS Teams öffnen": "Ouvrir MS Teams ", + "Nächste Termine:": "Prochaines réunions :", "Passwort": "Mot de passe", - "SSO Login/Registration": "Connexion/enregistrement SSO", - "Trainerunterlagen": "Dossier de l'entraîneur", - "Zur Zeit sind keine Termine vorhanden": "Il n'y a pas de rendez-vous pour le moment", + "SSO Login/Registration": "Connexion SSO / Inscription", + "Trainerunterlagen": "Documents du formateur / de la formatrice", + "Zur Zeit sind keine Termine vorhanden": "Aucune réunion n’est prévue pour le moment", + "assignment": { + "acceptConditionsDisclaimer": "Accepter les conditions et remettre les résultats", + "assessmentDocumentDisclaimer": "Cette étude de cas dirigée est évaluée par l’outil suivant :", + "assessmentTitle": "Évaluation", + "assignmentSubmitted": "Tes résultats ont bien été transmis.", + "confirmSubmitPerson": "Par la présente, je confirme que la personne suivante doit évaluer mes résultats.", + "confirmSubmitResults": "Par la présente, je confirme que j’ai vérifié la synthèse de mes résultats et que je souhaite la remettre telle quelle.", + "dueDateIntroduction": "Envoie tes résultats dans les délais avant le {date} à {time} heures.", + "dueDateNotSet": "Aucune date de remise n’a été spécifiée pour cette opération.", + "dueDateSubmission": "Date de clôture : {date}", + "dueDateTitle": "Date de remise", + "edit": "Traiter", + "effortTitle": "Temps nécessaire", + "initialSituationTitle": "Situation initiale", + "lastChangesNotSaved": "La dernière modification n’a pas pu être enregistrée.", + "performanceObjectivesTitle": "Objectifs", + "showAssessmentDocument": "Afficher l’outil d’évaluation", + "submissionNotificationDisclaimer": "{name} va procéder à l’évaluation de tes résultats. Tu recevras une notification dès que l’évaluation aura été validée et que tu pourras la consulter.", + "submitAssignment": "Remettre les résultats", + "taskDefinition": "Résous les exercices et documente tes résultats.", + "taskDefinitionTitle": "Énoncé du problème" + }, "circlePage": { - "circleContentBoxTitle": "C'est ce que tu apprends dans ce Cercle.", - "contactExpertButton": "Contacter l'expert", - "contactExpertDescription": "Echange avec l'experte du cercle {circleName} .", + "circleContentBoxTitle": "Ce que tu vas apprendre dans ce cercle", + "contactExpertButton": "Contacter le formateur / la formatrice", + "contactExpertDescription": "Échanger avec le formateur / la formatrice si tu as des questions sur le cercle {circleName}.", "documents": { - "action": "Télécharger des documents", - "chooseLearningSequence": "Choisis une séquence d'apprentissage", - "chooseName": "Choisis un nom", - "chooseSequence": "Choisis une séquence d'apprentissage", - "expertDescription": "Mettre à disposition de tes apprenants des contenus supplémentaires", + "action": "Télécharger les documents", + "chooseLearningSequence": "Sélectionne une séquence", + "chooseName": "Sélectionne un nom", + "chooseSequence": "Sélectionne une séquence", + "deleteModalTitle": "Supprimer les documents", + "deleteModalWarning": "Veux-tu \"{title}\" supprimer les documents ?
Cette action est irréversible.", + "expertDescription": "Mets des contenus supplémentaires à la disposition de tes apprenants.", "fileLabel": "Fichier", "maxFileSize": "Taille maximale du fichier : 20 Mo", - "modalAction": "Choisir un fichier", + "modalAction": "Sélectionner le fichier", "modalFileName": "Nom", - "modalNameInformation": "Max. 70 caractères", - "selectFile": "Choisis un fichier", + "modalNameInformation": "Max. 70 signes", + "selectFile": "Sélectionne un fichier", "title": "Documents", - "uploadErrorMessage": "Une erreur est survenue lors du téléchargement. Veuillez réessayer.", - "userDescription": "Tu trouveras ici les documents que l'experte en la matière a mis à ta disposition." + "trainerDescription": "Sur Teams, tu trouveras des contenus supplémentaires pour ton cours.", + "trainerLinkSrc": "https://vbvbern.sharepoint.com/sites/myVBV-AFA_K-CI", + "trainerLinkText": "Regarder les contenus sur Teams", + "trainerTitle": "Accompagnement pour le formateur / la formatrice", + "uploadErrorMessage": "Une erreur est survenue lors du téléchargement. Essaie à nouveau.", + "userDescription": "Tu trouves ici des documents complémentaires qui peuvent d’être utiles pour ce cercle." }, "duration": "Durée", - "gotQuestions": "Tu as des questions ?", - "learnMore": "En savoir plus sur ce sujet" + "gotQuestions": "As-tu des questions ?", + "learnMore": "Pour en savoir plus" }, "cockpit": { - "examsDone": "Examens passés par les participants.", - "feedbacksDone": "Feedbacks envoyés par les participants.", - "notifyTask": "notifier", + "examsDone": "Examens remis par les participants.", + "feedbacksDone": "Retours envoyés par les participants.", + "notifyTask": "Notifier", "notifyTaskDescription": "Notifier les participants", - "profileLink": "Voir le profil", - "progress": "Progrès", - "tasksDone": "Ordres de transfert terminés par le participant.", + "profileLink": "Afficher le profil", + "progress": "Personne participante / Statut", + "tasksDone": "Exercices d’application terminés par les participants.", "title": "Cockpit" }, "competences": { - "assessAgain": "S'évaluer à nouveau", - "assessment": "évaluation", + "assessAgain": "S’évaluer à nouveau", + "assessment": "Évaluations", "competences": "Compétences", "lastImprovements": "Dernières compétences améliorées", - "notAssessed": "Non évalué", - "title": "CompetenceNavi" + "notAssessed": "Compétence non évaluée", + "title": "Menu des compétences" }, "constants": { "no": "Non", - "satisfied": "satisfait", - "unsatisfied": "insatisfait", - "verySatisfied": "très satisfait", - "veryUnsatisfied": "très insatisfait", - "yes": "Our" + "satisfied": "Satisfait(e)", + "unsatisfied": "Insatisfait(e)", + "verySatisfied": "Très satisfait(e)", + "veryUnsatisfied": "Très insatisfait(e)", + "yes": "Oui" }, "dashboard": { + "courses": "Formation", + "nocourses": "Tu n’as été affecté(e) à aucune formation encore.", "welcome": "Bienvenue, {name}" }, "feedback": { "answers": "Réponses", - "areYouSatisfied": "A quel point es-tu satisfait ?", - "average": "Moyenne", - "circleFeedback": "Feedback sur le Cercle", - "completionDescription": "Ton feedback est anonyme. Ton prénom et ton nom n'apparaissent pas sur le site de ton formateur.", - "completionTitle": "Envoie ton feedback à {name}", - "courseNegativeFeedbackLabel": "Où voyez-vous un potentiel d'amélioration ?", - "coursePositiveFeedbackLabel": "Qu'avez-vous particulièrement apprécié ?", - "feedbackPageInfo": "Les participants ont complété le feedback", - "feedbackPageTitle": "Feedback sur la formation", - "feedbackSent": "Ton feedback a été envoyé", - "goalAttainmentLabel": "Total des objectifs réalisés", + "areYouSatisfied": "Quel est ton degré de satisfaction ?", + "average": "Moyen", + "circleFeedback": "Feed-back sur le cercle", + "completionDescription": "Tes commentaires seront anonymes. Ton nom et ton prénom ne seront pas indiqués au formateur / à la formatrice.", + "completionTitle": "Envoie ton feed-back à {name}", + "courseNegativeFeedbackLabel": "À ton avis, quels sont les points qui pourraient être améliorés ?", + "coursePositiveFeedbackLabel": "Qu’est-ce qui t’a particulièrement plu ?", + "feedbackPageInfo": "Les participants ont rempli le feed-back", + "feedbackPageTitle": "Feed-back sur la formation", + "feedbackSent": "Ton feed-back a été envoyé", + "goalAttainmentLabel": "Degré de réalisation des objectifs", "happy": "Satisfait", - "instructorCompetenceLabel": "Le formateur était très compétent.", - "instructorOpenFeedbackLabel": "Ce que je voulais dire d'autre au formateur :", - "instructorRespectLabel": "Les questions et les suggestions des participants au cours ont été prises au sérieux et traitées.", - "intro": "{name}, ton formateur te demande de lui donner un feedback. C'est facultatif, mais cela l'aidera à améliorer ton expérience d'apprentissage.", - "materialsRatingLabel": "Si oui, comment jugez-vous les documents de préparation (par exemple, eLearning) ?", - "noFeedbacks": "Aucun feedback n'a encore été donné", - "proficiencyLabel": "Comment évaluez-vous votre sécurité par rapport aux thèmes après le cours ?", + "instructorCompetenceLabel": "Que penses-tu des compétences techniques de la personne chargée du cours et de sa maîtrise du sujet ?", + "instructorOpenFeedbackLabel": "Souhaites-tu ajouter quelque chose à l’intention de la personne chargée du cours ?", + "instructorRespectLabel": "Les questions et les suggestions des participants ont-elles été prises au sérieux et traitées correctement ?", + "intro": "{name}, ton formateur / ta formatrice, t’invite à lui adresser un feed-back. Cela n’est pas obligatoire, mais lui permettrait d’améliorer son cours.", + "materialsRatingLabel": "Si oui : Que pensez-vous des documents fournis pour le travail préparatoire (par ex. eLearning) ?", + "noFeedbacks": "Aucun feed-back n’a encore été remis", + "preparationTaskClarityLabel": "Les travaux préparatoires étaient-ils clairs et compréhensibles ?", + "proficiencyLabel": "As-tu l’impression de bien maîtriser les sujets qui ont été abordés pendant le cours ?", "questionTitle": "Question", - "receivedMaterialsLabel": "Avez-vous reçu des documents de préparation (par ex. eLearning) ?", - "recommendLabel": "Recommanderiez-vous ce cours?", - "satisfactionLabel": "Satisfaction totale", - "sendFeedback": "Envoyer le feedback", + "recommendLabel": "Est-ce que tu recommandes ce cours ?", + "satisfactionLabel": "Degré de satisfaction au global", + "sendFeedback": "Envoyer le feed-back", "sentByUsers": "Rempli par {count} participants", - "showDetails": "Voir les détails", - "unhappy": "insatisfait", - "veryHappy": "très satisfait", - "veryUnhappy": "très insatisfait" + "showDetails": "Afficher les détails", + "unhappy": "Insatisfait(e)", + "veryHappy": "Très satisfait(e)", + "veryUnhappy": "Très insatisfait(e)" }, "footer": { + "contact": "Contact", "contactLink": "https://www.vbv.ch/fr/lafa/organisation/contact", "contactText": "Contact", "copyright": "© 2023 AFA", "dataProtectionLink": "https://www.vbv.ch/fr/politique-de-confidentialite", - "dataProtectionText": "Politique de confidentialité", - "faq": "FAQ", - "imprint": "Impressum", + "dataProtectionText": "Dispositions sur la protection des données", "imprintLink": "https://www.vbv.ch/fr/impressum", "imprintText": "Impressum" }, "general": { - "back": "retour", + "back": "Retour", "backCapitalized": "@.capitalize:general.back", - "backToCircle": "retour au Cercle", - "backToLearningPath": "retour au parcours d'apprentissage", + "backToCircle": "Revenir au cercle", + "backToLearningPath": "Revenir au programme de formation", "certificate": "Certificat | Certificats", "circles": "Cercles", + "close": "Fermer", "exam": "Examen | Examens", - "examResult": "Résultat de l'examen | Résultats de l'examen", - "feedback": "Feedback | Feedbacks", - "learningPath": "Parcours d'apprentissage", - "learningSequence": "Séquence d'apprentissage", - "learningUnit": "Unité d'apprentissage", - "next": "Suivant", - "nextStep": "A suivre", + "examResult": "Résultat de l’examen | Résultats de l’examen", + "feedback": "Feed-back | Feed-backs", + "introduction": "Introduction", + "learningPath": "Programme de formation", + "learningSequence": "Séquence", + "learningUnit": "Leçon", + "next": "Continuer", + "nextStep": "Cela continue", "no": "Non", "notification": "Notification | Notifications", - "profileLink": "Voir le profil", - "save": "Sauvegarde", + "profileLink": "Détails", + "save": "Enregistrer", "send": "Envoyer", - "settings": "Configuration du compte", + "settings": "Paramètres du compte", "shop": "Shop", - "show": "Montrer", - "showAll": "Montrer tous", - "start": "On y va", + "show": "Consulter", + "showAll": "Tout consulter", + "start": "C’est parti !", + "submission": "Remise", "title": "myAFA", - "transferTask": "Ordre de transfert | Ordres de transfert", - "yes": "Our" + "transferTask": "Exercice d’application | Exercices d’application", + "yes": "Oui" }, "language": { - "de": "Allemand", - "fr": "Français" + "de": "Deutsch", + "fr": "Français", + "it": "Italiano" }, "learningContent": { - "completeAndContinue": "Marquer comme fait" + "markAsDone": "Marquer comme effectué(e)" }, "learningPathPage": { - "currentCircle": "Cercle actuel", - "listView": "Vue: liste", + "currentCircle": "Cercle en cours", + "listView": "Affichage sous forme de liste", "nextStep": "Étape suivante", - "pathView": "Vue: parcours", - "progressText": "Tu as travaillé dans { inProgressCount } des { allCount } Cercles", - "topics": "Thèmes:", - "welcomeBack": "Salut { name }! Bienvenue dans ton cours:" + "pathView": "Affichage sous forme de parcours", + "progressText": "Tu as traité { inProgressCount } de { allCount } cercles", + "showListView": "Afficher la liste", + "topics": "Thèmes :", + "welcomeBack": "Cela fait plaisir de te revoir dans ta formation :" }, "mainNavigation": { - "logout": "Fermer la session", + "logout": "Se déconnecter", "profile": "Profil" }, "mediaLibrary": { "handlungsfelder": { - "description": "Trouve toutes les ressources des domaines d'action comme les médias d'apprentissage, les liens et autres informations utiles.", - "title": "Domaine d'action | Domaines d'action" + "description": "Trouve toutes les ressources des champs d’action, comme les outils didactiques, les liens et autres informations utiles.", + "title": "Champ d’action | Champs d’action" }, "learningMedia": { - "description": "Trouve une liste complète des livres et autres supports auxquels il est fait référence dans le cours.", - "titel": "Médias d'apprentissage" + "description": "Trouve une liste complète des livres, manuels et autres outils qui ont été mentionnés pendant le cours.", + "titel": "Outils didactiques " }, "title": "Médiathèque" }, "messages": { - "sendMessage": "Envoyer un message" + "sendMessage": "Écrire un message" }, "notifications": { - "load_more": "Plus de détails", - "no_notifications": "Tu n'as pas de notifications pour le moment" + "load_more": "Télécharger davantage", + "no_notifications": "Tu n’as reçu aucune notification pour le moment" }, "selfEvaluation": { "instruction": [ - "Vérifie que dans l'unité d'apprentissage", - "tu as tout compris.", - "Lis et évalue l'affirmation suivante :" + "Überprüfe, ob du in der Lernheinheit", + "alles verstanden hast.", + "Lies die folgende Aussage und bewerte sie:" ], - "no": "Je dois regarder à nouveau", - "progressLink": "Ouvrir CompetenceNavi", - "progressText": "Regarde ta progression dans ton CompetenceNavi :", - "selfEvaluation": "Évaluation personnelle", - "selfEvaluationNo": "@:selfEvaluation: Je dois le regarder à nouveau.", - "selfEvaluationYes": "@:selfEvaluation: Je peux faire ça.", - "steps": "Etape {current} de {max}", + "no": "Il faut que je regarde cela encore une fois de plus près.", + "progressLink": "Ouvrir le menu des compétences", + "progressText": "Consulte tes progrès dans ton menu des compétences :", + "selfEvaluation": "Auto-évaluation", + "selfEvaluationNo": "@:selfEvaluation: Il faut que je regarde cela encore une fois de plus près.", + "selfEvaluationYes": "@:selfEvaluation: Je maîtrise cette question.", + "steps": "Étape {current} sur {max}", "title": "@:selfEvaluation.selfEvaluation {title}", - "yes": "Oui, je peux faire ça" + "yes": "Oui, je maîtrise cette question" }, "settings": { "emailNotifications": "Notifications par e-mail" diff --git a/server/vbv_lernwelt/assignment/creators/create_assignments.py b/server/vbv_lernwelt/assignment/creators/create_assignments.py index 992323a7..a20153d2 100644 --- a/server/vbv_lernwelt/assignment/creators/create_assignments.py +++ b/server/vbv_lernwelt/assignment/creators/create_assignments.py @@ -1,7 +1,3 @@ -from wagtail.blocks import StreamValue -from wagtail.blocks.list_block import ListBlock, ListValue -from wagtail.rich_text import RichText - from vbv_lernwelt.assignment.models import ( AssignmentListPage, AssignmentType, @@ -20,6 +16,9 @@ from vbv_lernwelt.assignment.tests.assignment_factories import ( from vbv_lernwelt.core.utils import replace_whitespace from vbv_lernwelt.course.consts import COURSE_UK, COURSE_VERSICHERUNGSVERMITTLERIN_ID from vbv_lernwelt.course.models import CoursePage +from wagtail.blocks import StreamValue +from wagtail.blocks.list_block import ListBlock, ListValue +from wagtail.rich_text import RichText def create_uk_fahrzeug_casework(course_id=COURSE_UK): @@ -1408,7 +1407,9 @@ def create_uk_reflection(course_id=COURSE_UK, circle_title="Fahrzeug"): return assignment -def create_vv_reflection(course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID, _circle_title="Fahrzeug"): +def create_vv_reflection( + course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID, _circle_title="Fahrzeug" +): assignment_list_page = ( CoursePage.objects.get(course_id=course_id) .get_children() @@ -1564,7 +1565,9 @@ def create_vv_reflection(course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID, _circle_ return assignment -def create_vv_einkommenssicherung_casework(course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID): +def create_vv_einkommenssicherung_casework( + course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID, +): assignment_list_page = ( CoursePage.objects.get(course_id=course_id) .get_children() diff --git a/server/vbv_lernwelt/course/management/commands/create_default_courses.py b/server/vbv_lernwelt/course/management/commands/create_default_courses.py index 76b832df..6d7b1e00 100644 --- a/server/vbv_lernwelt/course/management/commands/create_default_courses.py +++ b/server/vbv_lernwelt/course/management/commands/create_default_courses.py @@ -8,7 +8,10 @@ from vbv_lernwelt.assignment.creators.create_assignments import ( create_uk_fahrzeug_casework, create_uk_fahrzeug_prep_assignment, create_uk_kickoff_prep_assignment, - create_uk_reflection, create_vv_reflection, create_vv_einkommenssicherung_casework, create_vv_gesundheit_casework, + create_uk_reflection, + create_vv_einkommenssicherung_casework, + create_vv_gesundheit_casework, + create_vv_reflection, ) from vbv_lernwelt.assignment.models import Assignment from vbv_lernwelt.assignment.services import update_assignment_completion @@ -129,7 +132,9 @@ def create_versicherungsvermittlerin_course(): create_vv_new_competence_profile(course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID) create_default_media_library(course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID) - create_vv_einkommenssicherung_casework(course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID) + create_vv_einkommenssicherung_casework( + course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID + ) create_vv_gesundheit_casework(course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID) create_vv_reflection(course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID) create_vv_new_learning_path() diff --git a/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py b/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py index 76f18143..64422662 100644 --- a/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py +++ b/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py @@ -14,16 +14,19 @@ from vbv_lernwelt.course.consts import COURSE_VERSICHERUNGSVERMITTLERIN_ID from vbv_lernwelt.course.models import CourseCategory, CoursePage from vbv_lernwelt.learnpath.tests.learning_path_factories import ( CircleFactory, + LearningContentAssignmentFactory, LearningContentFeedbackFactory, LearningContentLearningModuleFactory, LearningContentMediaLibraryFactory, LearningContentPlaceholderFactory, LearningContentRichTextFactory, + LearningContentTestFactory, LearningContentVideoFactory, LearningPathFactory, LearningSequenceFactory, LearningUnitFactory, - TopicFactory, LearningContentAssignmentFactory, LearningContentTestFactory, ) + TopicFactory, +) from vbv_lernwelt.learnpath.vv_circle_goals import GoalsType, VV_CIRCLE_GOALS # todo: remove when all Handlungsfelder are ready