Translate notifications

This commit is contained in:
Daniel Egger 2023-09-08 14:39:13 +02:00
parent bc011e47be
commit 5b01a68cdb
1 changed files with 28 additions and 9 deletions

View File

@ -1,6 +1,5 @@
from __future__ import annotations
from gettext import gettext
from typing import TYPE_CHECKING
import structlog
@ -33,9 +32,12 @@ class NotificationService:
def send_assignment_submitted_notification(
cls, recipient: User, sender: User, assignment_completion: AssignmentCompletion
):
verb = gettext(
"%(sender)s hat die geleitete Fallarbeit «%(assignment_title)s» abgegeben."
) % {
texts = {
"de": "%(sender)s hat die geleitete Fallarbeit «%(assignment_title)s» abgegeben.",
"fr": "%(sender)s a soumis l'étude de cas dirigée «%(assignment_title)s».",
"it": "%(sender)s ha consegnato il caso di studio guidato «%(assignment_title)s».",
}
verb = texts.get(recipient.language, "de") % {
"sender": sender.get_full_name(),
"assignment_title": assignment_completion.assignment.title,
}
@ -60,9 +62,12 @@ class NotificationService:
assignment_completion: AssignmentCompletion,
target_url: str,
):
verb = gettext(
"%(sender)s hat die geleitete Fallarbeit «%(assignment_title)s» bewertet."
) % {
texts = {
"de": "%(sender)s hat die geleitete Fallarbeit «%(assignment_title)s» bewertet.",
"fr": "%(sender)s a évalué l'étude de cas dirigée «%(assignment_title)s».",
"it": "%(sender)s ha valutato il caso di studio guidato «%(assignment_title)s».",
}
verb = texts.get(recipient.language, "de") % {
"sender": sender.get_full_name(),
"assignment_title": assignment_completion.assignment.title,
}
@ -85,7 +90,14 @@ class NotificationService:
recipient: User,
feedback_response: FeedbackResponse,
):
verb = f"New feedback for circle {feedback_response.circle.title}"
texts = {
"de": "Feedback abgeschickt für Circle «%(circle_title)s»",
"fr": "Feedback envoyé pour le cercle «%(circle_title)s»",
"it": "Feedback inviato per il cerchio «%(circle_title)s»",
}
verb = texts.get(recipient.language, "de") % {
"circle_title": feedback_response.circle.title,
}
return cls._send_notification(
recipient=recipient,
@ -104,9 +116,16 @@ class NotificationService:
recipient: User,
attendance_course: CourseSessionAttendanceCourse,
):
texts = {
"de": "Erinnerung: Bald findet ein Präsenzkurs statt",
"fr": "Rappel: Un cours de présence aura lieu bientôt.",
"it": "Promemoria: Un corso di presenza avrà luogo presto.",
}
verb = texts.get(recipient.language, "de")
return cls._send_notification(
recipient=recipient,
verb="Erinnerung: Bald findet ein Präsenzkurs statt",
verb=verb,
notification_category=NotificationCategory.INFORMATION,
notification_trigger=NotificationTrigger.ATTENDANCE_COURSE_REMINDER,
target_url=attendance_course.learning_content.get_frontend_url(),