diff --git a/messages.tar.bz2 b/messages.tar.bz2
new file mode 100644
index 000000000..93cf1a0b8
Binary files /dev/null and b/messages.tar.bz2 differ
diff --git a/messages/uniworx/misc/de-de-formal.msg b/messages/uniworx/misc/de-de-formal.msg
index 3be85654d..e897676b6 100644
--- a/messages/uniworx/misc/de-de-formal.msg
+++ b/messages/uniworx/misc/de-de-formal.msg
@@ -24,7 +24,7 @@ BtnParentCandidatesInfer: Unterstudiengangs-Zuordnung automatisch lernen
BtnParentCandidatesDeleteAll: Alle Unterstudiengangs-Beobachtungen löschen
BtnStandaloneCandidatesDeleteAll: Alle Einzelstudiengangs-Beobachtungen löschen
BtnStandaloneCandidatesDeleteRedundant: Redundante Einzelstudiengangs-Beobachtungen löschen
-BtnResetTokens: Authorisierungs-Tokens invalidieren
+
BtnLecInvAccept: Annehmen
BtnLecInvDecline: Ablehnen
BtnCorrInvAccept: Annehmen
@@ -39,6 +39,15 @@ BtnSystemMessageUnhide: Nicht mehr verstecken
BtnCommunicationSend: Senden
BtnCommunicationTest: Test-Nachricht verschicken
+EmailTable: Email
+StudyTermTable: Studiengang
+StudyFeatureAgeTable: Fachsemester
+StudyFeatureDegreeTable: Abschluss
+StudyFeatureTypeTable:
+StudyFeatureValidTable: Aktiv
+StudyFeatureUpdateTable: Abgeglichen
+
+CsvOptionsBreadCrum: CSV-Optionen
Aborted: Abgebrochen
Remarks: Hinweise
@@ -590,8 +599,8 @@ NewsHeading: Aktuelles
LoginHeading: Authentifizierung
LoginTitle: Authentifizierung
ProfileHeading: Benutzereinstellungen
-ProfileFor: Benutzereinstellungen für
-ProfileDataHeading: Gespeicherte Benutzerdaten
+
+
InfoHeading: Informationen
VersionHeading: Versionsgeschichte
LegalHeading: Rechtliche Informationen
@@ -619,13 +628,10 @@ Title: Titel
LdapSynced: LDAP-Synchronisiert
LdapSyncedBefore: Letzte LDAP-Synchronisation vor
NoMatrikelKnown: Keine Matrikelnummer
-Theme: Oberflächen Design
-Favourites: Anzahl gespeicherter Favoriten
-FavouritesTip: Betrifft nur automatisch angelegte Favoriten („Kürzlich besucht“)
-FavouriteSemesters: Maximale Anzahl an Semestern in Seitenleiste
+
Plugin: Plugin
-Ident: Identifikation
-LastLogin: Letzter Login
+
+
Settings: Individuelle Benutzereinstellungen
SettingsUpdate: Einstellungen erfolgreich gespeichert
NotificationSettingsUpdate: Benachrichtigungs-Einstellungen erfolgreich gespeichert
@@ -813,20 +819,10 @@ AssimilateUserSuccess: Benutzer erfolgreich assimiliert
LecturersForN n@Int: #{pluralDE n "Dozent" "Dozenten"}
Date: Datum
-DateTimeFormat: Datums- und Uhrzeitformat
-DateFormat: Datumsformat
-TimeFormat: Uhrzeitformat
-DownloadFiles: Dateien automatisch herunterladen
-DownloadFilesTip: Wenn gesetzt werden Dateien automatisch als Download behandelt, ansonsten ist das Verhalten browserabhängig (es können z.B. PDFs im Browser geöffnet werden).
-WarningDays: Fristen-Vorschau
-WarningDaysTip: Wie viele Tage im Voraus sollen Fristen von Prüfungen etc. auf Ihrer Startseite angezeigt werden?
-NotificationSettings: Erwünschte Benachrichtigungen
-UserSchools: Relevante Institute
-UserSchoolsTip: Sie erhalten nur institutweite Benachrichtigungen für Institute, die hier ausgewählt sind.
-FormNotifications: Benachrichtigungen
-FormBehaviour: Verhalten
-FormCosmetics: Oberfläche
-FormPersonalAppearance: Öffentliche Daten
+
+
+
+
FormFieldRequiredTip: Gekennzeichnete Pflichtfelder sind immer auszufüllen
FormAllocationNotifications: Benachrichtigungen für neue Zentralanmeldungskurse
FormAllocationNotificationsTip: Wollen Sie eine Benachrichtigung per E-Mail erhalten wenn ein neuer Kurs zur Zentralanmeldung eingetragen wird? „Ja“ und „Nein“ überschreiben die entsprechende systemweite Einstellung unter "Benachrichtigungen"
@@ -838,13 +834,7 @@ AllocNotifyNewCourseForceOn: Ja
BtnNotifyNewCourseForceOn: Benachrichtigen
BtnNotifyNewCourseForceOff: Nicht benachrichtigen
-PersonalInfoExamAchievementsWip: Die Anzeige von Prüfungsergebnissen wird momentan an dieser Stelle leider noch nicht unterstützt.
-PersonalInfoOwnTutorialsWip: Die Anzeige von Tutorien, zu denen Sie als Tutor eingetragen sind wird momentan an dieser Stelle leider noch nicht unterstützt.
-PersonalInfoTutorialsWip: Die Anzeige von Tutorien, zu denen Sie angemeldet sind wird momentan an dieser Stelle leider noch nicht unterstützt.
-ActiveAuthTagsSaveCookie: In Cookie speichern?
-ActiveAuthTagsSaveCookieTip: Falls gesetzt werden die aktivierten Authorisierungsprädikate zusätzlich zur aktiven Session auch in einem persistenten Cookie gespeichert. Dies kann vor Allem in Kombination mit Tab-Containern nützlich sein.
-ActiveAuthTags: Aktivierte Authorisierungsprädikate
InvalidDateTimeFormat: Ungültiges Datums- und Zeitformat, JJJJ-MM-TTTHH:MM[:SS] Format erwartet
AmbiguousUTCTime: Der angegebene Zeitpunkt lässt sich nicht eindeutig zu UTC konvertieren
@@ -941,7 +931,7 @@ ColumnStudyFeatures: Studiendaten
AdminFeaturesHeading: Studiengänge
StudyTerms: Studiengänge
-StudyTerm: Studiengang
+
NoStudyTermsKnown: Keine Studiengänge bekannt
StudyFeaturesDegrees: Abschlüsse
StudyFeaturesTerms: Studiengänge
@@ -952,17 +942,16 @@ StudyFeatureNameInference: Studiengangschlüssel-Inferenz
StudyFeatureParentInference: Unterstudiengang-Inferenz
StudyFeatureInferenceNoNameConflicts: Keine Konflikte beobachtet
StudyFeatureInferenceNameConflictsHeading: Studiengangseinträge mit beobachteten Konflikten
-StudyFeatureAge: Fachsemester
-StudyFeatureDegree: Abschluss
+
FieldPrimary: Hauptfach
FieldSecondary: Nebenfach
ShortFieldPrimary: HF
ShortFieldSecondary: NF
NoStudyField: Kein Studienfach
-StudyFeatureType:
-StudyFeatureValid: Aktiv
-StudyFeatureUpdate: Abgeglichen
-StudyTermsParentMissing: Elter wird benötigt
+
+StudyTermsParentMissing: Elternteil wird benötigt
+
+
DegreeKey: Abschlussschlüssel
DegreeName: Abschluss
@@ -1164,49 +1153,9 @@ SheetFileTypeHeader: Zugehörigkeit
SheetArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}
SheetTypeArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand shn@SheetName renderedSft@Text: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}-#{foldCase renderedSft}
-NotificationTriggerSubmissionRatedGraded: Meine Abgabe in einem gewerteten Übungsblatt wurde korrigiert
-NotificationTriggerSubmissionRated: Meine Abgabe wurde korrigiert
-NotificationTriggerSheetActive: Ich kann ein neues Übungsblatt herunterladen
-NotificationTriggerSheetHint: Ich kann die Hinweise für ein Übungsblatt herunterladen
-NotificationTriggerSheetSolution: Ich kann die Lösung für ein Übungsblatt herunterladen
-NotificationTriggerSheetSoonInactive: Ich kann ein Übungsblatt bald nicht mehr abgeben
-NotificationTriggerSheetInactive: Abgabezeitraum eines meiner Übungsblätter ist abgelaufen
-NotificationTriggerCorrectionsAssigned: Mir wurden Abgaben zur Korrektur zugeteilt
-NotificationTriggerCorrectionsNotDistributed: Nicht alle Abgaben eines meiner Übungsblätter konnten einem Korrektor zugeteilt werden
-NotificationTriggerUserRightsUpdate: Meine Berechtigungen wurden geändert
-NotificationTriggerUserAuthModeUpdate: Mein Anmelde-Modus wurde geändert
-NotificationTriggerExamRegistrationActive: Ich kann mich für eine Prüfung anmelden
-NotificationTriggerExamRegistrationSoonInactive: Ich kann mich bald nicht mehr für eine Prüfung anmelden
-NotificationTriggerExamDeregistrationSoonInactive: Ich kann mich bald nicht mehr von einer Prüfung abmelden
-NotificationTriggerExamResult: Ich kann ein neues Prüfungsergebnis einsehen
-NotificationTriggerAllocationStaffRegister: Ich kann Kurse bei einer neuen Zentralanmeldung eintragen
-NotificationTriggerAllocationAllocation: Ich kann Zentralanmeldungs-Bewerbungen für einen meiner Kurse bewerten
-NotificationTriggerAllocationRegister: Ich kann mich bei einer neuen Zentralanmeldung bewerben
-NotificationTriggerAllocationOutdatedRatings: Zentralanmeldungs-Bewerbungen für einen meiner Kurse wurden verändert, nachdem sie bewertet wurden
-NotificationTriggerAllocationUnratedApplications: Bewertungen zu Zentralanmeldungs-Bewerbungen für einen meiner Kurse stehen aus
-NotificationTriggerAllocationResults: Plätze wurden für eine meiner Zentralanmeldungen verteilt
-NotificationTriggerExamOfficeExamResults: Ich kann neue Prüfungsergebnisse einsehen
-NotificationTriggerExamOfficeExamResultsChanged: Prüfungsergebnisse wurden verändert
-NotificationTriggerCourseRegistered: Ein Kursverwalter hat mich zu einem Kurs angemeldet
-NotificationTriggerSubmissionUserCreated: Ich wurde als Mitabgebender zu einer Übungsblatt-Abgabe hinzugefügt
-NotificationTriggerSubmissionEdited: Eine meiner Übungsblatt-Abgaben wurde verändert
-NotificationTriggerSubmissionUserDeleted: Ich wurde als Mitabgebender von einer Übungsblatt-Abgabe entfernt
-NotificationTriggerAllocationNewCourse: Es wurde ein neuer Kurs eingetragen zu einer Zentralanmeldungen, zu der ich meine Teilnahme registriert habe
-NotificationTriggerAllocationNewCourseTip: Kann pro Zentralanmeldung überschrieben werden
-NotificationTriggerKindAll: Für alle Benutzer
-NotificationTriggerKindCourseParticipant: Für Kursteilnehmer
-NotificationTriggerKindExamParticipant: Für Prüfungsteilnehmer
-NotificationTriggerKindCorrector: Für Korrektoren
-NotificationTriggerKindLecturer: Für Dozenten
-NotificationTriggerKindCourseLecturer: Für Kursverwalter
-NotificationTriggerKindAdmin: Für Administratoren
-NotificationTriggerKindExamOffice: Für Prüfungsverwalter
-NotificationTriggerKindEvaluation: Für Vorlesungsumfragen
-NotificationTriggerKindAllocationStaff: Für Zentralanmeldungen (Dozenten)
-NotificationTriggerKindAllocationParticipant: Für Zentralanmeldungen
-NotificationTriggerKindSubmissionUser: Für Mitabgebende einer Übungsblatt-Abgabe
-NotificationTriggerKindAllocationAdmin: Für Administratoren von Zentralanmeldungen
+
+
CorrCreate: Abgaben registrieren
UnknownPseudonymWord pseudonymWord@Text: Unbekanntes Pseudonym-Wort "#{pseudonymWord}"
@@ -1557,55 +1506,8 @@ ExternalExamUsers coursen@CourseName examn@ExamName: Teilnehmer: #{coursen}, #{e
TitleMetrics: Metriken
-AuthPredsInfo: Um eigene Veranstaltungen aus Sicht der Teilnehmer anzusehen, können Veranstalter und Korrektoren hier die Prüfung ihrer erweiterten Berechtigungen temporär deaktivieren. Abgewählte Prädikate schlagen immer fehl. Abgewählte Prädikate werden also nicht geprüft um Zugriffe zu gewähren, welche andernfalls nicht erlaubt wären.
-AuthPredsActive: Aktive Authorisierungsprädikate
-AuthPredsActiveChanged: Authorisierungseinstellungen gespeichert
-AuthTagFree: Seite ist universell zugänglich
-AuthTagAdmin: Nutzer ist Administrator
-AuthTagExamOffice: Nutzer ist mit Prüfungsverwaltung beauftragt
-AuthTagSystemExamOffice: Nutzer ist mit systemweiter Prüfungsverwaltung beauftragt
-AuthTagEvaluation: Nutzer ist mit Kursumfragenverwaltung beauftragt
-AuthTagAllocationAdmin: Nutzer ist mit der Administration von Zentralanmeldungen beauftragt
-AuthTagToken: Nutzer präsentiert Authorisierungs-Token
-AuthTagNoEscalation: Nutzer-Rechte werden nicht auf fremde Institute ausgeweitet
-AuthTagDeprecated: Seite ist nicht überholt
-AuthTagDevelopment: Seite ist nicht in Entwicklung
-AuthTagLecturer: Nutzer ist Dozent
-AuthTagCorrector: Nutzer ist Korrektor
-AuthTagExamCorrector: Nutzer ist Prüfungskorrektor
-AuthTagTutor: Nutzer ist Tutor
-AuthTagTutorControl: Tutoren haben Kontrolle über ihre Tutorium
-AuthTagTime: Zeitliche Einschränkungen sind erfüllt
-AuthTagStaffTime: Zeitliche Einschränkungen für Lehrbeteiligte sind erfüllt
-AuthTagAllocationTime: Zeitliche Einschränkungen durch Zentralanmeldung sind erfüllt
-AuthTagCourseTime: Zeitliche Einschränkungen für Kurssichtbarkeit sind erfüllt
-AuthTagCourseRegistered: Nutzer ist Kursteilnehmer
-AuthTagAllocationRegistered: Nutzer nimmt an der Zentralanmeldung teil
-AuthTagTutorialRegistered: Nutzer ist Tutoriumsteilnehmer
-AuthTagExamRegistered: Nutzer ist Prüfungsteilnehmer
-AuthTagExamResult: Nutzer hat Prüfungsergebnisse
-AuthTagExamOccurrenceRegistered: Nutzer ist für Prüfungsraum/-termin angemeldet
-AuthTagExamOccurrenceRegistration: Anmeldung zur Prüfung erfolgt inkl. Raum/Termin
-AuthTagParticipant: Nutzer ist mit Kurs assoziiert
-AuthTagApplicant: Nutzer ist mit Bewerber zum Kurs
-AuthTagRegisterGroup: Nutzer ist nicht Mitglied eines anderen Tutoriums mit der selben Registrierungs-Gruppe
-AuthTagCapacity: Kapazität ist ausreichend
-AuthTagEmpty: Ressource ist „leer“
-AuthTagMaterials: Kursmaterialien sind freigegeben
-AuthTagOwner: Nutzer ist Besitzer
-AuthTagPersonalisedSheetFiles: Nutzer verfügt über personalisierte Übungsblatt-Dateien
-AuthTagRated: Korrektur ist bewertet
-AuthTagUserSubmissions: Abgaben erfolgen durch Kursteilnehmer
-AuthTagCorrectorSubmissions: Abgaben erfolgen durch Korrektoren
-AuthTagSelf: Nutzer greift nur auf eigene Daten zu
-AuthTagIsLDAP: Nutzer meldet sich mit Campus-Kennung an
-AuthTagIsPWHash: Nutzer meldet sich mit Uni2work-Kennung an
-AuthTagAuthentication: Nutzer ist angemeldet, falls erforderlich
-AuthTagRead: Zugriff ist nur lesend
-AuthTagWrite: Zugriff ist i.A. schreibend
-AuthTagSubmissionGroup: Nutzer ist Mitglied in registrierter Abgabegruppe
-AuthTagWorkflow: Nutzer hat passende Workflow-Rolle
-AuthTagStudent: Nutzer ist Student
+
+
DeleteCopyStringIfSure n@Int: Wenn Sie sich sicher sind, dass Sie #{pluralDE n "das obige Objekt" "obige Objekte"} unwiderbringlich löschen möchten, schreiben Sie bitte zunächst den angezeigten Text ab.
DeletePressButtonIfSure n@Int: Wenn Sie sich sicher sind, dass Sie #{pluralDE n "das obige Objekt" "obige Objekte"} unwiderbringlich löschen möchten, bestätigen Sie dies bitte durch Drücken des untigen Knopfes.
@@ -2282,7 +2184,6 @@ AuthPWHashConfigured: Nutzer meldet sich nun per Uni2work-Kennung an
PasswordResetQueued: Link zum Passwort-Zurücksetzen versandt
ResetPassword: Uni2work-Passwort ändern bzw. setzen
-AuthMode: Authentifizierung
AuthLDAP: Campus
AuthPWHash pwHash@Text: Uni2work
CurrentPassword: Aktuelles Passwort
@@ -2395,17 +2296,12 @@ CourseApplicationNoVeto: Kein Veto
CourseApplicationNoRatingPoints: Keine Bewertung
CourseApplicationNoRatingComment: Kein Kommentar
-UserDisplayName: Angezeigter Name
-UserDisplayNameInvalid: Angezeigter Name erfüllt nicht die Vorgaben
-UserDisplayNameRules: Vorgaben für den angezeigten Namen
-UserDisplayNameRulesBelow: Vorgaben für den angezeigten Namen finden sich weiter unten auf der Seite
+
UserMatriculation: Matrikelnummer
-UserDisplayEmail: Angezeigte E-Mail-Adresse
-UserDisplayEmailTip: Diese Adresse wird in öffentlich zugänglichen Teilen des Systems im Zusammenhang mit Ihrem Namen angezeigt. Benachrichtigungen und andere Kommunikation von Uni2work und Nutzern mit erweiterten Rechten erhalten sie stets, unabhängig von dieser Einstellung, an die in Ihren Persönlichen Daten hinterlegte primäre Adresse.
-UserDisplayEmailChangeSent displayEmail@UserEmail: Anweisungen zum Ändern der angezeigten E-Mail-Adresse wurden an „#{displayEmail}” versandt
-UserCreated: Account erstellt
+
+
SchoolShort: Kürzel
SchoolName: Name
@@ -2561,37 +2457,6 @@ AcceptApplicationsSecondaryTip: Wenn es im Laufe des Verfahrens mehrere Bewerber
AcceptApplicationsSecondaryRandom: Zufällig
AcceptApplicationsSecondaryTime: Nach Zeitpunkt der Bewerbung
-CsvOptions: CSV-Optionen
-CsvOptionsTip: Diese Einstellungen betreffen primär den CSV-Export; beim Import werden die meisten Einstellungen automatisch ermittelt. Als Zeichenkodierung wird beim Import die selbe Kodierung wie beim Export erwartet.
-CsvFormatOptions: Dateiformat
-CsvTimestamp: Zeitstempel
-CsvTimestampTip: Soll an den Namen jeder exportierten CSV-Datei ein Zeitstempel vorne angehängt werden?
-CsvPresetRFC: Standard-Konform (RFC 4180)
-CsvPresetExcel: Excel-Kompatibel
-CsvCustom: Benutzerdefiniert
-CsvDelimiter: Trennzeichen
-CsvUseCrLf: Zeilenumbrüche
-CsvQuoting: Quoting
-CsvQuotingTip: Wann sollen Anführungszeichen (") um Felder platziert werden, um Interpretation von im Feld enthaltenen Zeichen als Trennzeichen zu verhindern?
-CsvEncoding: Encoding
-CsvEncodingTip: CSV-Dateien können in einer anderen Zeichenkodierung als dem vom System standardmäßig verwendeten UTF-8 exportiert werden. Beachten Sie dass es bei nicht-UTF-8 Zeichenkodierungen wmgl. zu Darstellungsproblemen mit Sonderzeichen kommt.
-CsvUTF8: UTF-8 (Unicode)
-CsvCP1252: Windows CP-1252 ("ANSI")
-CsvDelimiterNull: Null-Byte
-CsvDelimiterTab: Tabulator
-CsvDelimiterComma: Komma
-CsvDelimiterColon: Doppelpunkt
-CsvDelimiterSemicolon: Strichpunkt
-CsvDelimiterBar: Senkrechter Strich
-CsvDelimiterSpace: Leerzeichen
-CsvDelimiterUnitSep: Teilgruppentrennzeichen
-CsvCrLf: DOS (CRLF)
-CsvLf: Unix (LF)
-CsvQuoteNone: Nie
-CsvQuoteMinimal: Nur wenn nötig
-CsvQuoteAll: Immer
-CsvOptionsUpdated: CSV-Optionen erfolgreich angepasst
-CsvChangeOptionsLabel: Export-Optionen
CourseNews: Aktuelles
CourseNewsArchiveName tid@TermId ssh@SchoolId csh@CourseShorthand newsTitle@Text: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldCase newsTitle}
@@ -2690,8 +2555,7 @@ ShortSexMale: m
ShortSexFemale: w
ShortSexNotApplicable: k.A.
-ShowSex: Geschlechter anderer Nutzer anzeigen
-ShowSexTip: Sollen in Kursteilnehmer-Tabellen u.Ä. die Geschlechter der Nutzer angezeigt werden?
+
StudySubTermsChildKey: Kind
StudySubTermsChildName: Kindname
@@ -2706,18 +2570,8 @@ LanguageChanged: Sprache erfolgreich geändert
ProfileLastLdapSynchronisation: Letzte LDAP-Synchronisation
ProfileLdapPrimaryKey: LDAP-Primärschlüssel
-ProfileCorrector: Korrektor
-ProfileCourses: Eigene Kurse
-ProfileCourseParticipations: Kursanmeldungen
-ProfileCourseExamResults: Prüfungsleistungen
-ProfileTutorials: Eigene Tutorien
-ProfileTutorialParticipations: Tutorien
-ProfileSubmissionGroups: Abgabegruppen
-ProfileSubmissions: Abgaben
-ProfileRemark: Hinweis
-ProfileGroupSubmissionDates: Bei Gruppenabgaben wird kein Datum angezeigt, wenn Sie die Gruppenabgabe nie selbst hochgeladen haben.
-ProfileCorrectorRemark: Die oberhalb angezeigte Tabelle zeigt nur prinzipielle Einteilungen als Korrektor zu einem Übungsblatt. Auch ohne Einteilung können Korrekturen einzeln zugewiesen werden, welche hier dann nicht aufgeführt werden.
-ProfileCorrections: Auflistung aller zugewiesenen Korrekturen
+
+
GroupSizeNotNatural: „Gruppengröße“ muss eine natürliche Zahl sein
AmbiguousEmail: E-Mail-Adresse nicht eindeutig
diff --git a/messages/uniworx/misc/en-eu.msg b/messages/uniworx/misc/en-eu.msg
index 3f425b064..0f7b4b07e 100644
--- a/messages/uniworx/misc/en-eu.msg
+++ b/messages/uniworx/misc/en-eu.msg
@@ -24,7 +24,7 @@ BtnParentCandidatesInfer: Infer parent-relation
BtnParentCandidatesDeleteAll: Delete all parent-observations
BtnStandaloneCandidatesDeleteAll: Delete all standalone-observations
BtnStandaloneCandidatesDeleteRedundant: Delete redundant standalone-observations
-BtnResetTokens: Invalidate tokens
+
BtnLecInvAccept: Accept
BtnLecInvDecline: Decline
BtnCorrInvAccept: Accept
@@ -39,6 +39,15 @@ BtnSystemMessageUnhide: Unhide
BtnCommunicationSend: Send
BtnCommunicationTest: Send test message
+EmailTable: Email
+StudyFeatureTypeTable:
+StudyFeatureValidTable: Valid
+StudyFeatureUpdateTable: Updated
+StudyFeatureAgeTable: Semester
+StudyFeatureDegreeTable: Degree
+StudyTermTable: Field of study
+
+CsvOptionsBreadCrum: csv-options
Aborted: Aborted
Remarks: Remarks
@@ -587,8 +596,8 @@ NewsHeading: News
LoginHeading: Authentication
LoginTitle: Authentication
ProfileHeading: Settings
-ProfileFor: Settings for
-ProfileDataHeading: Personal information
+
+
InfoHeading: Information
VersionHeading: Version history
LegalHeading: Legal
@@ -616,13 +625,10 @@ Title: Title
LdapSynced: LDAP-synchronised
LdapSyncedBefore: Last LDAP-synchronisation before
NoMatrikelKnown: No matriculation
-Theme: Theme
-Favourites: Number of saved favourites
-FavouritesTip: Only relevant for automatically generated favourites (“visited recently”)
-FavouriteSemesters: Maximum number of semesters in favourites bar
+
Plugin: Plugin
-Ident: Identification
-LastLogin: Last login
+
+
Settings: Settings
SettingsUpdate: Successfully updated settings
NotificationSettingsUpdate: Successfully updated notification settings
@@ -809,20 +815,10 @@ AssimilateUserSuccess: Successfully assimilated user
LecturersForN n: #{pluralEN n "Lecturer" "Lecturers"}
Date: Date
-DateTimeFormat: Date and time format
-DateFormat: Date format
-TimeFormat: Time format
-DownloadFiles: Automatically download files
-DownloadFilesTip: When set, files are automatically treated as downloads. Otherwise behaviour is browser dependent (PDFs might, for example, be opened within the browser)
-WarningDays: Deadline-preview
-WarningDaysTip: How many days ahead should deadlines regarding exams etc. be displayed on the homepage?
-NotificationSettings: Desired notifications
-UserSchools: Relevant departments
-UserSchoolsTip: You will only receive department-wide notifications for the selected departments.
-FormNotifications: Notifications
-FormBehaviour: Behaviour
-FormCosmetics: Interface
-FormPersonalAppearance: Public data
+
+
+
+
FormFieldRequiredTip: Required fields
FormAllocationNotifications: Notifications for new central allocation courses
FormAllocationNotificationsTip: Do you want to receive a notification if a new course is added to the central allocation? “Yes” and “No” override the system wide setting under “Notifications”
@@ -834,14 +830,9 @@ AllocNotifyNewCourseForceOn: Yes
BtnNotifyNewCourseForceOn: Notify me
BtnNotifyNewCourseForceOff: Do not notify me
-PersonalInfoExamAchievementsWip: The feature to display your exam achievements has not yet been implemented.
-PersonalInfoOwnTutorialsWip: The feature to display tutorials you have been assigned to as tutor has not yet been implemented.
-PersonalInfoTutorialsWip: The feature to display tutorials you have registered for has not yet been implemented.
-ActiveAuthTagsSaveCookie: Save in cookie?
-ActiveAuthTagsSaveCookieTip: Should the configuration of active authorisation predicates be additionally saved in a persistent cookie? This may be especially useful if using container tabs.
-ActiveAuthTags: Active authorisation predicates
+
InvalidDateTimeFormat: Invalid date and time format. YYYY-MM-DDTHH:MM[:SS] expected
AmbiguousUTCTime: The given timestamp cannot be converted to UTC unambiguously
@@ -938,7 +929,7 @@ ColumnStudyFeatures: Features of study
AdminFeaturesHeading: Features of study
StudyTerms: Fields of study
-StudyTerm: Field of study
+
NoStudyTermsKnown: No known features of study
StudyFeaturesDegrees: Degrees
StudyFeaturesTerms: Terms of Study
@@ -949,16 +940,12 @@ StudyFeatureNameInference: Infer field of study mapping
StudyFeatureParentInference: Infer field of study parent relation
StudyFeatureInferenceNoNameConflicts: No observed conflicts
StudyFeatureInferenceNameConflictsHeading: Fields of study with observed conflicts
-StudyFeatureAge: Semester
-StudyFeatureDegree: Degree
FieldPrimary: Major
FieldSecondary: Minor
ShortFieldPrimary: Mj
ShortFieldSecondary: Mn
NoStudyField: No field of study
-StudyFeatureType:
-StudyFeatureValid: Valid
-StudyFeatureUpdate: Updated
+
StudyTermsParentMissing: Parent is required
DegreeKey: Degree key
@@ -1165,49 +1152,9 @@ SheetFileTypeHeader: Belongs to
SheetArchiveName tid ssh csh shn: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}
SheetTypeArchiveName tid ssh csh shn renderedSft: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldedCase shn}-#{foldCase renderedSft}
-NotificationTriggerSubmissionRatedGraded: My submission for an exercise sheet was marked (not purely informational)
-NotificationTriggerSubmissionRated: My submission for an exercise sheet was marked
-NotificationTriggerSheetActive: I can now download a new exercise sheet
-NotificationTriggerSheetHint: I can now download the hints for an exercise sheet
-NotificationTriggerSheetSolution: I can now download the solutions for an exercise sheet
-NotificationTriggerSheetSoonInactive: I will soon no longer be able to submit for an exercise sheet
-NotificationTriggerSheetInactive: The submission period for one of my exercise sheets is over
-NotificationTriggerCorrectionsAssigned: I was assigned corrections
-NotificationTriggerCorrectionsNotDistributed: Not all submissions for one of my exercise sheets could be assigned a corrector
-NotificationTriggerUserRightsUpdate: My permissions changed
-NotificationTriggerUserAuthModeUpdate: My login mode changed
-NotificationTriggerExamRegistrationActive: I can now register for an exam
-NotificationTriggerExamRegistrationSoonInactive: I will soon no longer be able to register for an exam
-NotificationTriggerExamDeregistrationSoonInactive: I will soon no longer be able to deregister from an exam
-NotificationTriggerExamResult: An exam result is available
-NotificationTriggerAllocationStaffRegister: I can now register a course for central allocation
-NotificationTriggerAllocationAllocation: I can now grade applications to a central alloction for one of my courses
-NotificationTriggerAllocationRegister: I can now apply to a new central allocation
-NotificationTriggerAllocationOutdatedRatings: Applications to a central allocation for one of my courses have changed since they were graded
-NotificationTriggerAllocationUnratedApplications: Grades are pending for applications to a central allocation for one of my courses
-NotificationTriggerAllocationResults: Participants have been placed by one of my central allocations
-NotificationTriggerExamOfficeExamResults: New exam results are available
-NotificationTriggerExamOfficeExamResultsChanged: Exam results have changed
-NotificationTriggerCourseRegistered: A course administrator has enrolled me in a course
-NotificationTriggerSubmissionUserCreated: I was added to an exercise sheet submission
-NotificationTriggerSubmissionEdited: One of my exercise sheet submissions was changed
-NotificationTriggerSubmissionUserDeleted: I was removed from one of my exercise sheet submissions
-NotificationTriggerAllocationNewCourse: A new course was added to a central allocation for which I have registered my participation
-NotificationTriggerAllocationNewCourseTip: Can be overridden per central allocation
-NotificationTriggerKindAll: For all users
-NotificationTriggerKindCourseParticipant: For course participants
-NotificationTriggerKindExamParticipant: For exam participants
-NotificationTriggerKindCorrector: For correctors
-NotificationTriggerKindLecturer: For lecturers
-NotificationTriggerKindCourseLecturer: For course administrators
-NotificationTriggerKindAdmin: For administrators
-NotificationTriggerKindExamOffice: For the exam office
-NotificationTriggerKindEvaluation: For course evaluations
-NotificationTriggerKindAllocationStaff: For central allocations (lecturers)
-NotificationTriggerKindAllocationParticipant: For central allocations
-NotificationTriggerKindSubmissionUser: For participants in an exercise sheet submission
-NotificationTriggerKindAllocationAdmin: For administrators of central allocations
+
+
CorrCreate: Register submissions
UnknownPseudonymWord pseudonymWord: Invalid pseudonym-word “#{pseudonymWord}”
@@ -1557,55 +1504,7 @@ ExternalExamUsers coursen examn: Exam participants: #{coursen}, #{examn}
TitleMetrics: Metrics
-AuthPredsInfo: To view their own courses like a participant would, administrators and correctors can deactivate the checking of their credentials temporarily. Disabled authorisation predicates always fail. This means that deactivated predicates are not checked to grant access where it would otherwise not be permitted.
-AuthPredsActive: Active authorisation predicates
-AuthPredsActiveChanged: Successfully saved authorisation settings
-AuthTagFree: Page is freely accessable
-AuthTagAdmin: User is administrator
-AuthTagExamOffice: User is part of an exam office
-AuthTagSystemExamOffice: User is charged with system wide exam administration
-AuthTagEvaluation: User is charged with course evaluation
-AuthTagAllocationAdmin: User is charged with administration of central allocations
-AuthTagToken: User is presenting an authorisation-token
-AuthTagNoEscalation: User permissions are not being expanded to other departments
-AuthTagDeprecated: Page is not deprecated
-AuthTagDevelopment: Page is not in development
-AuthTagLecturer: User is lecturer
-AuthTagCorrector: User is corrector
-AuthTagExamCorrector: User is exam corrector
-AuthTagTutor: User is tutor
-AuthTagTutorControl: Tutors have control over their tutorial
-AuthTagTime: Time restrictions are fulfilled
-AuthTagStaffTime: Time restrictions wrt. staff are fulfilled
-AuthTagAllocationTime: Time restrictions due to a central allocation are fulfilled
-AuthTagCourseTime: Time restrictions wrt. course visibility are fulfilled
-AuthTagCourseRegistered: User is enrolled in course
-AuthTagAllocationRegistered: User participates in central allocation
-AuthTagTutorialRegistered: User is tutorial participant
-AuthTagExamRegistered: User is exam participant
-AuthTagExamResult: User has an exam result
-AuthTagExamOccurrenceRegistered: User is registered for exam occurrence/room
-AuthTagExamOccurrenceRegistration: Registration for exam is done including occurrence/room
-AuthTagParticipant: User participates in course
-AuthTagApplicant: User is applicant for course
-AuthTagRegisterGroup: User is not participant in any tutorial of the same registration group
-AuthTagCapacity: Capacity is sufficient
-AuthTagEmpty: Resource is “empty”
-AuthTagMaterials: Course material is publicly accessable
-AuthTagOwner: User is owner
-AuthTagPersonalisedSheetFiles: User has been assigned personalised sheet files
-AuthTagRated: Submission is marked
-AuthTagUserSubmissions: Submissions are made by course participants
-AuthTagCorrectorSubmissions: Submissions are registered by correctors
-AuthTagSelf: User is only accessing their only data
-AuthTagIsLDAP: User logs in using their campus account
-AuthTagIsPWHash: User logs in using their Uni2work-internal account
-AuthTagAuthentication: User is authenticated
-AuthTagRead: Access is read only
-AuthTagWrite: Access might write
-AuthTagSubmissionGroup: User is part of a submission group
-AuthTagWorkflow: User has matching workflow role
-AuthTagStudent: User is a student
+
DeleteCopyStringIfSure n: If you are sure that you want to permanently delete the #{pluralEN n "object" "objects"} listed below, please copy the shown text.
DeletePressButtonIfSure n: If you are sure that you want to permanently delete the #{pluralEN n "object" "objects"} listed below, please confirm the action by pressing the button.
@@ -2281,7 +2180,6 @@ AuthPWHashConfigured: User now logs in using their Uni2work account
PasswordResetQueued: Sent link to reset password
ResetPassword: Reselt Uni2work password
-AuthMode: Authentication
AuthLDAP: Campus
AuthPWHash pwHash: Uni2work
CurrentPassword: Current password
@@ -2395,17 +2293,12 @@ CourseApplicationNoVeto: No veto
CourseApplicationNoRatingPoints: No grading
CourseApplicationNoRatingComment: No comment
-UserDisplayName: Display name
-UserDisplayNameInvalid: Display name does not comply with specification
-UserDisplayNameRules: Specification for display names
-UserDisplayNameRulesBelow: Specifications of what can be a display name can be found below
+
UserMatriculation: Matriculation
-UserDisplayEmail: Display email
-UserDisplayEmailTip: This email address may be displayed publicly alongside your display name. Notifications and other communication from Uni2work or users with elevated permissions are always sent to your primary email address as specified under "personal information".
-UserDisplayEmailChangeSent displayEmail: Instructions to change your display email have been sent to “#{displayEmail}”.
-UserCreated: Account created
+
+
SchoolShort: Shorthand
SchoolName: Name
@@ -2561,37 +2454,7 @@ AcceptApplicationsSecondaryTip: If a tie occurs during the acceptance process, h
AcceptApplicationsSecondaryRandom: Randomly
AcceptApplicationsSecondaryTime: By time of application
-CsvOptions: CSV options
-CsvOptionsTip: These settings primarily affect CSV export. During import most settings can be determined automatically. CSV import expects the same character encoding as used for export.
-CsvFormatOptions: File format
-CsvTimestamp: Timestamp
-CsvTimestampTip: Should the name of every exported csv file contain a timestamp?
-CsvPresetRFC: Standards-compliant (RFC 4180)
-CsvPresetExcel: Excel compatible
-CsvCustom: User defined
-CsvDelimiter: Separator character
-CsvUseCrLf: Linebreaks
-CsvQuoting: Quoting
-CsvQuotingTip: When should quotation characters (") be placed around fields so characters contained within will not be interpreted as field separators?
-CsvEncoding: Encoding
-CsvEncodingTip: CSV files can be exported in a different character encoding than the UTF-8 used by default. Please consider that non-UTF-8 character encodings might lead to encoding problems with special characters.
-CsvUTF8: UTF-8 (Unicode)
-CsvCP1252: Windows CP-1252 ("ANSI")
-CsvDelimiterNull: Null byte
-CsvDelimiterTab: Tab
-CsvDelimiterComma: Comma
-CsvDelimiterColon: Colon
-CsvDelimiterSemicolon: Semicolon
-CsvDelimiterBar: Vertical bar
-CsvDelimiterSpace: Space
-CsvDelimiterUnitSep: Unit separator character
-CsvCrLf: DOS (CRLF)
-CsvLf: Unix (LF)
-CsvQuoteNone: Never
-CsvQuoteMinimal: Only when necessary
-CsvQuoteAll: Always
-CsvOptionsUpdated: Successfully changed CSV options
-CsvChangeOptionsLabel: Export options
+
CourseNews: News
CourseNewsArchiveName tid ssh csh newsTitle: #{foldCase (termToText (unTermKey tid))}-#{foldedCase (unSchoolKey ssh)}-#{foldedCase csh}-#{foldCase newsTitle}
@@ -2690,8 +2553,7 @@ ShortSexMale: m
ShortSexFemale: f
ShortSexNotApplicable: N/A
-ShowSex: Show sex of other users
-ShowSexTip: Should users' sex be displayed in (among others) lists of course participants?
+
StudySubTermsChildKey: Child
StudySubTermsChildName: Child-Name
@@ -2706,18 +2568,8 @@ LanguageChanged: Language changed successfully
ProfileLastLdapSynchronisation: Last LDAP synchronisation
ProfileLdapPrimaryKey: LDAP primary key
-ProfileCorrector: Corrector
-ProfileCourses: Own courses
-ProfileCourseParticipations: Course registrations
-ProfileCourseExamResults: Exam achievements
-ProfileTutorials: Own tutorials
-ProfileTutorialParticipations: Tutorials
-ProfileSubmissionGroups: Submission groups
-ProfileSubmissions: Submissions
-ProfileRemark: Remarks
-ProfileGroupSubmissionDates: No date is shown for group submissions if you have never uploaded the submission yourself.
-ProfileCorrectorRemark: The table above only shows registration as a corrector in principle. Even without registration corrections can be assigned individually and are not listed.
-ProfileCorrections: List of all assigned corrections
+
+
GroupSizeNotNatural: “Maximum group size” needs to be a natural number
AmbiguousEmail: Email address is ambiguous
diff --git a/messages/uniworx/uniworx_new/settings/auth_settings/de-de-formal.msg b/messages/uniworx/uniworx_new/settings/auth_settings/de-de-formal.msg
new file mode 100644
index 000000000..1a01b142f
--- /dev/null
+++ b/messages/uniworx/uniworx_new/settings/auth_settings/de-de-formal.msg
@@ -0,0 +1,53 @@
+AuthPredsActive: Aktive Authorisierungsprädikate
+AuthPredsActiveChanged: Authorisierungseinstellungen gespeichert
+AuthPredsInfo: Um eigene Veranstaltungen aus Sicht der Teilnehmer anzusehen, können Veranstalter und Korrektoren hier die Prüfung ihrer erweiterten Berechtigungen temporär deaktivieren. Abgewählte Prädikate schlagen immer fehl. Abgewählte Prädikate werden also nicht geprüft um Zugriffe zu gewähren, welche andernfalls nicht erlaubt wären.
+ActiveAuthTagsSaveCookie: In Cookie speichern?
+ActiveAuthTagsSaveCookieTip: Falls gesetzt werden die aktivierten Authorisierungsprädikate zusätzlich zur aktiven Session auch in einem persistenten Cookie gespeichert. Dies kann vor Allem in Kombination mit Tab-Containern nützlich sein.
+ActiveAuthTags: Aktivierte Authorisierungsprädikate
+
+AuthTagFree: Seite ist universell zugänglich
+AuthTagAdmin: Nutzer:in ist Administrator:in
+AuthTagExamOffice: Nutzer:in ist mit Prüfungsverwaltung beauftragt
+AuthTagSystemExamOffice: Nutzer:in ist mit systemweiter Prüfungsverwaltung beauftragt
+AuthTagEvaluation: Nutzer:in ist mit Kursumfragenverwaltung beauftragt
+AuthTagAllocationAdmin: Nutzer:in ist mit der Administration von Zentralanmeldungen beauftragt
+AuthTagToken: Nutzer:in präsentiert Authorisierungs-Token
+AuthTagNoEscalation: Nutzer-Rechte werden nicht auf fremde Institute ausgeweitet
+AuthTagDeprecated: Seite ist nicht überholt
+AuthTagDevelopment: Seite ist nicht in Entwicklung
+AuthTagLecturer: Nutzer:in ist Dozent:in
+AuthTagCorrector: Nutzer:in ist Korrektor:in
+AuthTagExamCorrector: Nutzer:in ist Prüfungskorrektor:in
+AuthTagTutor: Nutzer:in ist Tutor:in
+AuthTagTutorControl: Tutorierende haben Kontrolle über ihre Tutorium
+AuthTagTime: Zeitliche Einschränkungen sind erfüllt
+AuthTagStaffTime: Zeitliche Einschränkungen für Lehrbeteiligte sind erfüllt
+AuthTagAllocationTime: Zeitliche Einschränkungen durch Zentralanmeldung sind erfüllt
+AuthTagCourseTime: Zeitliche Einschränkungen für Kurssichtbarkeit sind erfüllt
+AuthTagCourseRegistered: Nutzer:in ist Kursteilnehmer:in
+AuthTagAllocationRegistered: Nutzer:in nimmt an der Zentralanmeldung teil
+AuthTagTutorialRegistered: Nutzer:in ist Tutoriumsteilnehmer:in
+AuthTagExamRegistered: Nutzer:in ist Prüfungsteilnehmer:in
+AuthTagExamResult: Nutzer:in hat Prüfungsergebnisse
+AuthTagExamOccurrenceRegistered: Nutzer:in ist für Prüfungsraum/-termin angemeldet
+AuthTagExamOccurrenceRegistration: Anmeldung zur Prüfung erfolgt inkl. Raum/Termin
+AuthTagParticipant: Nutzer:in ist mit Kurs assoziiert
+AuthTagApplicant: Nutzer:in ist mit Bewerber zum Kurs
+AuthTagRegisterGroup: Nutzer:in ist nicht Mitglied eines anderen Tutoriums mit der selben Registrierungs-Gruppe
+AuthTagCapacity: Kapazität ist ausreichend
+AuthTagEmpty: Ressource ist „leer“
+AuthTagMaterials: Kursmaterialien sind freigegeben
+AuthTagOwner: Nutzer:in ist Besitzer:in
+AuthTagPersonalisedSheetFiles: Nutzer:in verfügt über personalisierte Übungsblatt-Dateien
+AuthTagRated: Korrektur ist bewertet
+AuthTagUserSubmissions: Abgaben erfolgen durch Kursteilnehmer:innen
+AuthTagCorrectorSubmissions: Abgaben erfolgen durch Korrektor:innen
+AuthTagSelf: Nutzer:in greift nur auf eigene Daten zu
+AuthTagIsLDAP: Nutzer:in meldet sich mit Campus-Kennung an
+AuthTagIsPWHash: Nutzer:in meldet sich mit Uni2work-Kennung an
+AuthTagAuthentication: Nutzer:in ist angemeldet, falls erforderlich
+AuthTagRead: Zugriff ist nur lesend
+AuthTagWrite: Zugriff ist i.A. schreibend
+AuthTagSubmissionGroup: Nutzer:in ist Mitglied in registrierter Abgabegruppe
+AuthTagWorkflow: Nutzer:in hat passende Workflow-Rolle
+AuthTagStudent: Nutzer:in ist Student:in
\ No newline at end of file
diff --git a/messages/uniworx/uniworx_new/settings/auth_settings/en-eu.msg b/messages/uniworx/uniworx_new/settings/auth_settings/en-eu.msg
new file mode 100644
index 000000000..d60629207
--- /dev/null
+++ b/messages/uniworx/uniworx_new/settings/auth_settings/en-eu.msg
@@ -0,0 +1,53 @@
+AuthPredsActive: Active authorisation predicates
+AuthPredsActiveChanged: Successfully saved authorisation settings
+AuthPredsInfo: To view their own courses like a participant would, administrators and correctors can deactivate the checking of their credentials temporarily. Disabled authorisation predicates always fail. This means that deactivated predicates are not checked to grant access where it would otherwise not be permitted.
+ActiveAuthTagsSaveCookie: Save in cookie?
+ActiveAuthTagsSaveCookieTip: Should the configuration of active authorisation predicates be additionally saved in a persistent cookie? This may be especially useful if using container tabs.
+ActiveAuthTags: Active authorisation predicates
+
+AuthTagFree: Page is freely accessable
+AuthTagAdmin: User is administrator
+AuthTagExamOffice: User is part of an exam office
+AuthTagSystemExamOffice: User is charged with system wide exam administration
+AuthTagEvaluation: User is charged with course evaluation
+AuthTagAllocationAdmin: User is charged with administration of central allocations
+AuthTagToken: User is presenting an authorisation-token
+AuthTagNoEscalation: User permissions are not being expanded to other departments
+AuthTagDeprecated: Page is not deprecated
+AuthTagDevelopment: Page is not in development
+AuthTagLecturer: User is lecturer
+AuthTagCorrector: User is corrector
+AuthTagExamCorrector: User is exam corrector
+AuthTagTutor: User is tutor
+AuthTagTutorControl: Tutors have control over their tutorial
+AuthTagTime: Time restrictions are fulfilled
+AuthTagStaffTime: Time restrictions wrt. staff are fulfilled
+AuthTagAllocationTime: Time restrictions due to a central allocation are fulfilled
+AuthTagCourseTime: Time restrictions wrt. course visibility are fulfilled
+AuthTagCourseRegistered: User is enrolled in course
+AuthTagAllocationRegistered: User participates in central allocation
+AuthTagTutorialRegistered: User is tutorial participant
+AuthTagExamRegistered: User is exam participant
+AuthTagExamResult: User has an exam result
+AuthTagExamOccurrenceRegistered: User is registered for exam occurrence/room
+AuthTagExamOccurrenceRegistration: Registration for exam is done including occurrence/room
+AuthTagParticipant: User participates in course
+AuthTagApplicant: User is applicant for course
+AuthTagRegisterGroup: User is not participant in any tutorial of the same registration group
+AuthTagCapacity: Capacity is sufficient
+AuthTagEmpty: Resource is “empty”
+AuthTagMaterials: Course material is publicly accessable
+AuthTagOwner: User is owner
+AuthTagPersonalisedSheetFiles: User has been assigned personalised sheet files
+AuthTagRated: Submission is marked
+AuthTagUserSubmissions: Submissions are made by course participants
+AuthTagCorrectorSubmissions: Submissions are registered by correctors
+AuthTagSelf: User is only accessing their only data
+AuthTagIsLDAP: User logs in using their campus account
+AuthTagIsPWHash: User logs in using their Uni2work-internal account
+AuthTagAuthentication: User is authenticated
+AuthTagRead: Access is read only
+AuthTagWrite: Access might write
+AuthTagSubmissionGroup: User is part of a submission group
+AuthTagWorkflow: User has matching workflow role
+AuthTagStudent: User is a student
diff --git a/messages/uniworx/uniworx_new/settings/csv_options/de-de-formal.msg b/messages/uniworx/uniworx_new/settings/csv_options/de-de-formal.msg
new file mode 100644
index 000000000..d2da94079
--- /dev/null
+++ b/messages/uniworx/uniworx_new/settings/csv_options/de-de-formal.msg
@@ -0,0 +1,31 @@
+CsvOptions: CSV-Optionen
+CsvOptionsTip: Diese Einstellungen betreffen primär den CSV-Export; beim Import werden die meisten Einstellungen automatisch ermittelt. Als Zeichenkodierung wird beim Import die selbe Kodierung wie beim Export erwartet.
+CsvFormatOptions: Dateiformat
+CsvTimestamp: Zeitstempel
+CsvTimestampTip: Soll an den Namen jeder exportierten CSV-Datei ein Zeitstempel vorne angehängt werden?
+CsvPresetRFC: Standard-Konform (RFC 4180)
+CsvPresetExcel: Excel-Kompatibel
+CsvCustom: Benutzerdefiniert
+CsvDelimiter: Trennzeichen
+CsvUseCrLf: Zeilenumbrüche
+CsvQuoting: Quoting
+CsvQuotingTip: Wann sollen Anführungszeichen (") um Felder platziert werden, um Interpretation von im Feld enthaltenen Zeichen als Trennzeichen zu verhindern?
+CsvEncoding: Encoding
+CsvEncodingTip: CSV-Dateien können in einer anderen Zeichenkodierung als dem vom System standardmäßig verwendeten UTF-8 exportiert werden. Beachten Sie dass es bei nicht-UTF-8 Zeichenkodierungen wmgl. zu Darstellungsproblemen mit Sonderzeichen kommt.
+CsvUTF8: UTF-8 (Unicode)
+CsvCP1252: Windows CP-1252 ("ANSI")
+CsvDelimiterNull: Null-Byte
+CsvDelimiterTab: Tabulator
+CsvDelimiterComma: Komma
+CsvDelimiterColon: Doppelpunkt
+CsvDelimiterSemicolon: Strichpunkt
+CsvDelimiterBar: Senkrechter Strich
+CsvDelimiterSpace: Leerzeichen
+CsvDelimiterUnitSep: Teilgruppentrennzeichen
+CsvCrLf: DOS (CRLF)
+CsvLf: Unix (LF)
+CsvQuoteNone: Nie
+CsvQuoteMinimal: Nur wenn nötig
+CsvQuoteAll: Immer
+CsvOptionsUpdated: CSV-Optionen erfolgreich angepasst
+CsvChangeOptionsLabel: Export-Optionen
diff --git a/messages/uniworx/uniworx_new/settings/csv_options/en-eu.msg b/messages/uniworx/uniworx_new/settings/csv_options/en-eu.msg
new file mode 100644
index 000000000..bba053133
--- /dev/null
+++ b/messages/uniworx/uniworx_new/settings/csv_options/en-eu.msg
@@ -0,0 +1,31 @@
+CsvOptions: CSV options
+CsvOptionsTip: These settings primarily affect CSV export. During import most settings can be determined automatically. CSV import expects the same character encoding as used for export.
+CsvFormatOptions: File format
+CsvTimestamp: Timestamp
+CsvTimestampTip: Should the name of every exported csv file contain a timestamp?
+CsvPresetRFC: Standards-compliant (RFC 4180)
+CsvPresetExcel: Excel compatible
+CsvCustom: User defined
+CsvDelimiter: Separator character
+CsvUseCrLf: Linebreaks
+CsvQuoting: Quoting
+CsvQuotingTip: When should quotation characters (") be placed around fields so characters contained within will not be interpreted as field separators?
+CsvEncoding: Encoding
+CsvEncodingTip: CSV files can be exported in a different character encoding than the UTF-8 used by default. Please consider that non-UTF-8 character encodings might lead to encoding problems with special characters.
+CsvUTF8: UTF-8 (Unicode)
+CsvCP1252: Windows CP-1252 ("ANSI")
+CsvDelimiterNull: Null byte
+CsvDelimiterTab: Tab
+CsvDelimiterComma: Comma
+CsvDelimiterColon: Colon
+CsvDelimiterSemicolon: Semicolon
+CsvDelimiterBar: Vertical bar
+CsvDelimiterSpace: Space
+CsvDelimiterUnitSep: Unit separator character
+CsvCrLf: DOS (CRLF)
+CsvLf: Unix (LF)
+CsvQuoteNone: Never
+CsvQuoteMinimal: Only when necessary
+CsvQuoteAll: Always
+CsvOptionsUpdated: Successfully changed CSV options
+CsvChangeOptionsLabel: Export options
\ No newline at end of file
diff --git a/messages/uniworx/uniworx_new/settings/de-de-formal.msg b/messages/uniworx/uniworx_new/settings/de-de-formal.msg
new file mode 100644
index 000000000..915c8b94e
--- /dev/null
+++ b/messages/uniworx/uniworx_new/settings/de-de-formal.msg
@@ -0,0 +1,82 @@
+ProfileFor: Benutzereinstellungen für
+FormPersonalAppearance: Öffentliche Daten
+
+UserDisplayName: Angezeigter Name
+UserDisplayNameInvalid: Angezeigter Name erfüllt nicht die Vorgaben
+UserDisplayNameRulesBelow: Vorgaben für den angezeigten Namen finden sich weiter unten auf der Seite
+UserDisplayEmail: Angezeigte E-Mail-Adresse
+UserDisplayEmailTip: Diese Adresse wird in öffentlich zugänglichen Teilen des Systems im Zusammenhang mit Ihrem Namen angezeigt. Benachrichtigungen und andere Kommunikation von Uni2work und Nutzer:innen mit erweiterten Rechten erhalten sie stets, unabhängig von dieser Einstellung, an die in Ihren Persönlichen Daten hinterlegte primäre Adresse.
+UserDisplayEmailChangeSent displayEmail@UserEmail: Anweisungen zum Ändern der angezeigten E-Mail-Adresse wurden an „#{displayEmail}” versandt
+
+FormCosmetics: Oberfläche
+
+Theme: Oberflächen Design
+Favourites: Anzahl gespeicherter Favoriten
+FavouritesTip: Betrifft nur automatisch angelegte Favoriten („Kürzlich besucht“)
+FavouriteSemesters: Maximale Anzahl an Semestern in Seitenleiste
+DateTimeFormat: Datums- und Uhrzeitformat
+DateFormat: Datumsformat
+TimeFormat: Uhrzeitformat
+
+FormBehaviour: Verhalten
+
+DownloadFiles: Dateien automatisch herunterladen
+DownloadFilesTip: Wenn gesetzt werden Dateien automatisch als Download behandelt, ansonsten ist das Verhalten browserabhängig (es können z.B. PDFs im Browser geöffnet werden).
+WarningDays: Fristen-Vorschau
+WarningDaysTip: Wie viele Tage im Voraus sollen Fristen von Prüfungen etc. auf Ihrer Startseite angezeigt werden?
+ShowSex: Geschlechter anderer Nutzer:innen anzeigen
+ShowSexTip: Sollen in Kursteilnehmer:innen-Tabellen u.Ä. die Geschlechter der Nutzer:innen angezeigt werden?
+
+FormNotifications: Benachrichtigungen
+
+UserSchools: Relevante Institute
+UserSchoolsTip: Sie erhalten nur institutweite Benachrichtigungen für Institute, die hier ausgewählt sind.
+NotificationSettings: Erwünschte Benachrichtigungen
+
+NotificationTriggerKindAll: Für alle Benutzer:innen
+NotificationTriggerKindCourseParticipant: Für Kursteilnehmer:innen
+NotificationTriggerKindExamParticipant: Für Prüfungsteilnehmer:innen
+NotificationTriggerKindCorrector: Für Korrektor:innen
+NotificationTriggerKindLecturer: Für Dozierende
+NotificationTriggerKindCourseLecturer: Für Kursverwalter:innen
+NotificationTriggerKindAdmin: Für Administrator:innen
+NotificationTriggerKindExamOffice: Für Prüfungsverwalter:innen
+NotificationTriggerKindEvaluation: Für Vorlesungsumfragen
+NotificationTriggerKindAllocationStaff: Für Zentralanmeldungen (Dozierende)
+NotificationTriggerKindAllocationParticipant: Für Zentralanmeldungen
+NotificationTriggerKindSubmissionUser: Für Mitabgebende einer Übungsblatt-Abgabe
+NotificationTriggerKindAllocationAdmin: Für Administrator:innen von Zentralanmeldungen
+
+NotificationTriggerSubmissionRatedGraded: Meine Abgabe in einem gewerteten Übungsblatt wurde korrigiert
+NotificationTriggerSubmissionRated: Meine Abgabe wurde korrigiert
+NotificationTriggerSheetActive: Ich kann ein neues Übungsblatt herunterladen
+NotificationTriggerSheetHint: Ich kann die Hinweise für ein Übungsblatt herunterladen
+NotificationTriggerSheetSolution: Ich kann die Lösung für ein Übungsblatt herunterladen
+NotificationTriggerSheetSoonInactive: Ich kann ein Übungsblatt bald nicht mehr abgeben
+NotificationTriggerSheetInactive: Abgabezeitraum eines meiner Übungsblätter ist abgelaufen
+NotificationTriggerCorrectionsAssigned: Mir wurden Abgaben zur Korrektur zugeteilt
+NotificationTriggerCorrectionsNotDistributed: Nicht alle Abgaben eines meiner Übungsblätter konnten einem:einer Korrektor:in zugeteilt werden
+NotificationTriggerUserRightsUpdate: Meine Berechtigungen wurden geändert
+NotificationTriggerUserAuthModeUpdate: Mein Anmelde-Modus wurde geändert
+NotificationTriggerExamRegistrationActive: Ich kann mich für eine Prüfung anmelden
+NotificationTriggerExamRegistrationSoonInactive: Ich kann mich bald nicht mehr für eine Prüfung anmelden
+NotificationTriggerExamDeregistrationSoonInactive: Ich kann mich bald nicht mehr von einer Prüfung abmelden
+NotificationTriggerExamResult: Ich kann ein neues Prüfungsergebnis einsehen
+NotificationTriggerAllocationStaffRegister: Ich kann Kurse bei einer neuen Zentralanmeldung eintragen
+NotificationTriggerAllocationAllocation: Ich kann Zentralanmeldungs-Bewerbungen für einen meiner Kurse bewerten
+NotificationTriggerAllocationRegister: Ich kann mich bei einer neuen Zentralanmeldung bewerben
+NotificationTriggerAllocationOutdatedRatings: Zentralanmeldungs-Bewerbungen für einen meiner Kurse wurden verändert, nachdem sie bewertet wurden
+NotificationTriggerAllocationUnratedApplications: Bewertungen zu Zentralanmeldungs-Bewerbungen für einen meiner Kurse stehen aus
+NotificationTriggerAllocationResults: Plätze wurden für eine meiner Zentralanmeldungen verteilt
+NotificationTriggerExamOfficeExamResults: Ich kann neue Prüfungsergebnisse einsehen
+NotificationTriggerExamOfficeExamResultsChanged: Prüfungsergebnisse wurden verändert
+NotificationTriggerCourseRegistered: Ein:e Kursverwalter:in hat mich zu einem Kurs angemeldet
+NotificationTriggerSubmissionUserCreated: Ich wurde als Mitabgebender zu einer Übungsblatt-Abgabe hinzugefügt
+NotificationTriggerSubmissionEdited: Eine meiner Übungsblatt-Abgaben wurde verändert
+NotificationTriggerSubmissionUserDeleted: Ich wurde als Mitabgebender von einer Übungsblatt-Abgabe entfernt
+NotificationTriggerAllocationNewCourse: Es wurde ein neuer Kurs eingetragen zu einer Zentralanmeldungen, zu der ich meine Teilnahme registriert habe
+NotificationTriggerAllocationNewCourseTip: Kann pro Zentralanmeldung überschrieben werden
+
+UserDisplayNameRules: Vorgaben für den angezeigten Namen
+
+BtnResetTokens: Authorisierungs-Tokens invalidieren
\ No newline at end of file
diff --git a/messages/uniworx/uniworx_new/settings/en-eu.msg b/messages/uniworx/uniworx_new/settings/en-eu.msg
new file mode 100644
index 000000000..3051b877c
--- /dev/null
+++ b/messages/uniworx/uniworx_new/settings/en-eu.msg
@@ -0,0 +1,82 @@
+ProfileFor: Settings for
+FormPersonalAppearance: Public data
+
+UserDisplayName: Display name
+UserDisplayNameInvalid: Display name does not comply with specification
+UserDisplayNameRulesBelow: Specifications of what can be a display name can be found below
+UserDisplayEmail: Display email
+UserDisplayEmailTip: This email address may be displayed publicly alongside your display name. Notifications and other communication from Uni2work or users with elevated permissions are always sent to your primary email address as specified under "personal information".
+UserDisplayEmailChangeSent displayEmail: Instructions to change your display email have been sent to “#{displayEmail}”.
+
+FormCosmetics: Interface
+
+Theme: Theme
+Favourites: Number of saved favourites
+FavouritesTip: Only relevant for automatically generated favourites (“visited recently”)
+FavouriteSemesters: Maximum number of semesters in favourites bar
+DateTimeFormat: Date and time format
+DateFormat: Date format
+TimeFormat: Time format
+
+FormBehaviour: Behaviour
+
+DownloadFiles: Automatically download files
+DownloadFilesTip: When set, files are automatically treated as downloads. Otherwise behaviour is browser dependent (PDFs might, for example, be opened within the browser)
+WarningDays: Deadline-preview
+WarningDaysTip: How many days ahead should deadlines regarding exams etc. be displayed on the homepage?
+ShowSex: Show sex of other users
+ShowSexTip: Should users' sex be displayed in (among others) lists of course participants?
+
+FormNotifications: Notifications
+
+UserSchools: Relevant departments
+UserSchoolsTip: You will only receive department-wide notifications for the selected departments.
+NotificationSettings: Desired notifications
+
+NotificationTriggerKindAll: For all users
+NotificationTriggerKindCourseParticipant: For course participants
+NotificationTriggerKindExamParticipant: For exam participants
+NotificationTriggerKindCorrector: For correctors
+NotificationTriggerKindLecturer: For lecturers
+NotificationTriggerKindCourseLecturer: For course administrators
+NotificationTriggerKindAdmin: For administrators
+NotificationTriggerKindExamOffice: For the exam office
+NotificationTriggerKindEvaluation: For course evaluations
+NotificationTriggerKindAllocationStaff: For central allocations (lecturers)
+NotificationTriggerKindAllocationParticipant: For central allocations
+NotificationTriggerKindSubmissionUser: For participants in an exercise sheet submission
+NotificationTriggerKindAllocationAdmin: For administrators of central allocations
+
+NotificationTriggerSubmissionRatedGraded: My submission for an exercise sheet was marked (not purely informational)
+NotificationTriggerSubmissionRated: My submission for an exercise sheet was marked
+NotificationTriggerSheetActive: I can now download a new exercise sheet
+NotificationTriggerSheetHint: I can now download the hints for an exercise sheet
+NotificationTriggerSheetSolution: I can now download the solutions for an exercise sheet
+NotificationTriggerSheetSoonInactive: I will soon no longer be able to submit for an exercise sheet
+NotificationTriggerSheetInactive: The submission period for one of my exercise sheets is over
+NotificationTriggerCorrectionsAssigned: I was assigned corrections
+NotificationTriggerCorrectionsNotDistributed: Not all submissions for one of my exercise sheets could be assigned a corrector
+NotificationTriggerUserRightsUpdate: My permissions changed
+NotificationTriggerUserAuthModeUpdate: My login mode changed
+NotificationTriggerExamRegistrationActive: I can now register for an exam
+NotificationTriggerExamRegistrationSoonInactive: I will soon no longer be able to register for an exam
+NotificationTriggerExamDeregistrationSoonInactive: I will soon no longer be able to deregister from an exam
+NotificationTriggerExamResult: An exam result is available
+NotificationTriggerAllocationStaffRegister: I can now register a course for central allocation
+NotificationTriggerAllocationAllocation: I can now grade applications to a central alloction for one of my courses
+NotificationTriggerAllocationRegister: I can now apply to a new central allocation
+NotificationTriggerAllocationOutdatedRatings: Applications to a central allocation for one of my courses have changed since they were graded
+NotificationTriggerAllocationUnratedApplications: Grades are pending for applications to a central allocation for one of my courses
+NotificationTriggerAllocationResults: Participants have been placed by one of my central allocations
+NotificationTriggerExamOfficeExamResults: New exam results are available
+NotificationTriggerExamOfficeExamResultsChanged: Exam results have changed
+NotificationTriggerCourseRegistered: A course administrator has enrolled me in a course
+NotificationTriggerSubmissionUserCreated: I was added to an exercise sheet submission
+NotificationTriggerSubmissionEdited: One of my exercise sheet submissions was changed
+NotificationTriggerSubmissionUserDeleted: I was removed from one of my exercise sheet submissions
+NotificationTriggerAllocationNewCourse: A new course was added to a central allocation for which I have registered my participation
+NotificationTriggerAllocationNewCourseTip: Can be overridden per central allocation
+
+UserDisplayNameRules: Specification for display names
+
+BtnResetTokens: Invalidate tokens
\ No newline at end of file
diff --git a/messages/uniworx/uniworx_new/settings/personal_settings/de-de-formal.msg b/messages/uniworx/uniworx_new/settings/personal_settings/de-de-formal.msg
new file mode 100644
index 000000000..f1ca388d9
--- /dev/null
+++ b/messages/uniworx/uniworx_new/settings/personal_settings/de-de-formal.msg
@@ -0,0 +1,23 @@
+ProfileDataHeading: Gespeicherte Benutzerdaten
+Ident: Identifikation
+AuthModeSet: Authentifizierung
+NameSet: Name
+UserCreated: Account erstellt
+LastLogin: Letzter Login
+
+NeverSet: Nie
+ProfileCorrector: Korrektor:in
+ProfileCourses: Eigene Kurse
+ProfileCourseParticipations: Kursanmeldungen
+ProfileCourseExamResults: Prüfungsleistungen
+ProfileTutorials: Eigene Tutorien
+ProfileTutorialParticipations: Tutorien
+ProfileSubmissionGroups: Abgabegruppen
+ProfileSubmissions: Abgaben
+ProfileRemark: Hinweis
+PersonalInfoExamAchievementsWip: Die Anzeige von Prüfungsergebnissen wird momentan an dieser Stelle leider noch nicht unterstützt.
+PersonalInfoOwnTutorialsWip: Die Anzeige von Tutorien, zu denen Sie als Tutor eingetragen sind wird momentan an dieser Stelle leider noch nicht unterstützt.
+PersonalInfoTutorialsWip: Die Anzeige von Tutorien, zu denen Sie angemeldet sind wird momentan an dieser Stelle leider noch nicht unterstützt.
+ProfileGroupSubmissionDates: Bei Gruppenabgaben wird kein Datum angezeigt, wenn Sie die Gruppenabgabe nie selbst hochgeladen haben.
+ProfileCorrectorRemark: Die oberhalb angezeigte Tabelle zeigt nur prinzipielle Einteilungen als Korrektor zu einem Übungsblatt. Auch ohne Einteilung können Korrekturen einzeln zugewiesen werden, welche hier dann nicht aufgeführt werden.
+ProfileCorrections: Auflistung aller zugewiesenen Korrekturen
\ No newline at end of file
diff --git a/messages/uniworx/uniworx_new/settings/personal_settings/en-eu.msg b/messages/uniworx/uniworx_new/settings/personal_settings/en-eu.msg
new file mode 100644
index 000000000..f3f619fe3
--- /dev/null
+++ b/messages/uniworx/uniworx_new/settings/personal_settings/en-eu.msg
@@ -0,0 +1,23 @@
+ProfileDataHeading: Personal information
+Ident: Identification
+AuthModeSet: Authentication
+NameSet: Name
+UserCreated: Account created
+LastLogin: Last login
+
+NeverSet: Never
+ProfileCorrector: Corrector
+ProfileCourses: Own courses
+ProfileCourseParticipations: Course registrations
+ProfileCourseExamResults: Exam achievements
+ProfileTutorials: Own tutorials
+ProfileTutorialParticipations: Tutorials
+ProfileSubmissionGroups: Submission groups
+ProfileSubmissions: Submissions
+ProfileRemark: Remarks
+PersonalInfoExamAchievementsWip: The feature to display your exam achievements has not yet been implemented.
+PersonalInfoOwnTutorialsWip: The feature to display tutorials you have been assigned to as tutor has not yet been implemented.
+PersonalInfoTutorialsWip: The feature to display tutorials you have registered for has not yet been implemented.
+ProfileGroupSubmissionDates: No date is shown for group submissions if you have never uploaded the submission yourself.
+ProfileCorrectorRemark: The table above only shows registration as a corrector in principle. Even without registration corrections can be assigned individually and are not listed.
+ProfileCorrections: List of all assigned corrections
\ No newline at end of file
diff --git a/src/Foundation/I18n.hs b/src/Foundation/I18n.hs
index c0063c387..21b433328 100644
--- a/src/Foundation/I18n.hs
+++ b/src/Foundation/I18n.hs
@@ -3,7 +3,7 @@
module Foundation.I18n
( appLanguages, appLanguagesOpts
- , UniWorXMessage(..), UniWorXTestMessage(..)
+ , UniWorXMessage(..), UniWorXTestMessage(..), UniWorXSettingsMessage(..)
, ShortTermIdentifier(..)
, MsgLanguage(..)
, ShortSex(..)
@@ -133,6 +133,7 @@ maybeToMessage before (Just x) after = before <> toMessage x <> after
-- Messages creates type UniWorXMessage and RenderMessage UniWorX instance
mkMessage ''UniWorX "messages/uniworx/misc" "de-de-formal"
mkMessageAddition ''UniWorX "Test" "messages/uniworx/test" "de-de-formal"
+mkMessageAddition ''UniWorX "Settings" "messages/uniworx/uniworx_new/settings" "de-de-formal"
mkMessageVariant ''UniWorX ''CampusMessage "messages/auth/campus" "de"
mkMessageVariant ''UniWorX ''DummyMessage "messages/auth/dummy" "de"
mkMessageVariant ''UniWorX ''PWHashMessage "messages/auth/pw-hash" "de"
diff --git a/src/Foundation/Navigation.hs b/src/Foundation/Navigation.hs
index 506f7d413..9d2cd9999 100644
--- a/src/Foundation/Navigation.hs
+++ b/src/Foundation/Navigation.hs
@@ -158,7 +158,7 @@ instance BearerAuthSite UniWorX => YesodBreadcrumbs UniWorX where
breadcrumb SetDisplayEmailR = i18nCrumb MsgUserDisplayEmail $ Just ProfileR
breadcrumb ProfileDataR = i18nCrumb MsgMenuProfileData $ Just ProfileR
breadcrumb AuthPredsR = i18nCrumb MsgMenuAuthPreds $ Just ProfileR
- breadcrumb CsvOptionsR = i18nCrumb MsgCsvOptions $ Just ProfileR
+ breadcrumb CsvOptionsR = i18nCrumb MsgCsvOptionsBreadCrum $ Just ProfileR
breadcrumb LangR = i18nCrumb MsgMenuLanguage $ Just ProfileR
breadcrumb StorageKeyR = i18nCrumb MsgBreadcrumbStorageKey Nothing
@@ -1371,7 +1371,7 @@ pageActions ProfileR = return
}
, NavPageActionPrimary
{ navLink = NavLink
- { navLabel = MsgCsvOptions
+ { navLabel = MsgCsvOptionsBreadCrum
, navRoute = CsvOptionsR
, navAccess' = return True
, navType = NavTypeLink { navModal = True }
@@ -2393,7 +2393,7 @@ pageActions (EExamR tid ssh coursen examn EEUsersR) = return
pageActions ParticipantsListR = return
[ NavPageActionPrimary
{ navLink = NavLink
- { navLabel = MsgCsvOptions
+ { navLabel = MsgCsvOptionsBreadCrum
, navRoute = CsvOptionsR
, navAccess' = return True
, navType = NavTypeLink { navModal = True }
diff --git a/src/Handler/Users.hs b/src/Handler/Users.hs
index 97dc383ac..51fc7e967 100644
--- a/src/Handler/Users.hs
+++ b/src/Handler/Users.hs
@@ -84,7 +84,7 @@ postUsersR = do
-- , sortable (Just "last-name") (i18nCell MsgName) $ \DBRow{ dbrOutput = Entity uid User{..} } -> anchorCellM
-- (AdminUserR <$> encrypt uid)
-- (toWidget . display $ last $ impureNonNull $ words $ userDisplayName)
- , sortable (Just "auth-ldap") (i18nCell MsgAuthMode) $ \DBRow{ dbrOutput = Entity _ User{..} } -> i18nCell userAuthentication
+ , sortable (Just "auth-ldap") (i18nCell MsgAuthModeSet) $ \DBRow{ dbrOutput = Entity _ User{..} } -> i18nCell userAuthentication
, sortable (Just "ldap-sync") (i18nCell MsgLdapSynced) $ \DBRow{ dbrOutput = Entity _ User{..} } -> maybe mempty dateTimeCell userLastLdapSynchronisation
, flip foldMap universeF $ \function ->
sortable Nothing (i18nCell function) $ \DBRow{ dbrOutput = Entity uid _ } -> flip (set' cellContents) mempty $ do
@@ -194,7 +194,7 @@ postUsersR = do
[ prismAForm (singletonFilter "user-search") mPrev $ aopt textField (fslI MsgName)
-- , prismAForm (singletonFilter "matriculation" ) mPrev $ aopt textField (fslI MsgMatrikelNr)
, prismAForm (singletonFilter "matriculation") mPrev $ aopt matriculationField (fslI MsgMatrikelNr)
- , prismAForm (singletonFilter "auth-ldap" . maybePrism _PathPiece) mPrev $ aopt (lift `hoistField` selectFieldList [(MsgAuthPWHash "", False), (MsgAuthLDAP, True)]) (fslI MsgAuthMode)
+ , prismAForm (singletonFilter "auth-ldap" . maybePrism _PathPiece) mPrev $ aopt (lift `hoistField` selectFieldList [(MsgAuthPWHash "", False), (MsgAuthLDAP, True)]) (fslI MsgAuthModeSet)
, prismAForm (singletonFilter "school") mPrev $ aopt (lift `hoistField` selectFieldList schoolOptions) (fslI MsgCourseSchool)
, prismAForm (singletonFilter "ldap-sync" . maybePrism _PathPiece) mPrev $ aopt utcTimeField (fslI MsgLdapSyncedBefore)
]
diff --git a/src/Handler/Utils.hs b/src/Handler/Utils.hs
index 31ed5dccd..d80ed079d 100644
--- a/src/Handler/Utils.hs
+++ b/src/Handler/Utils.hs
@@ -89,7 +89,7 @@ studyFeaturesWidget featId = do
(StudyFeatures{studyFeaturesSemester}, (degree, terms)) <- liftHandler . runDB . ($ featId) . runKleisli $ Kleisli getJust >>> Kleisli return &&& Kleisli (getJust . studyFeaturesDegree) &&& Kleisli (getJust . studyFeaturesField)
[whamlet|
$newline never
- _{StudyDegreeTerm degree terms}, _{MsgStudyFeatureAge} #{studyFeaturesSemester}
+ _{StudyDegreeTerm degree terms}, _{MsgStudyFeatureAgeTable} #{studyFeaturesSemester}
|]
diff --git a/src/Handler/Utils/Table/Columns.hs b/src/Handler/Utils/Table/Columns.hs
index fdf602f60..8182899a1 100644
--- a/src/Handler/Utils/Table/Columns.hs
+++ b/src/Handler/Utils/Table/Columns.hs
@@ -590,7 +590,7 @@ fltrUserMatriclenrUI mPrev =
----------------
-- User E-Mail
colUserEmail :: (IsDBTable m c, HasUser a) => Colonnade Sortable a (DBCell m c)
-colUserEmail = sortable (Just "user-email") (i18nCell MsgEMail) cellHasEMail
+colUserEmail = sortable (Just "user-email") (i18nCell MsgEmailTable) cellHasEMail
sortUserEmail :: IsString d => (t -> E.SqlExpr (Entity User)) -> (d, SortColumn t r')
sortUserEmail queryUser = ( "user-email", SortColumn $ queryUser >>> (E.^. UserEmail))
@@ -604,7 +604,7 @@ fltrUserEmail queryUser = ("user-email", FilterColumn . mkContainsFilter $ query
fltrUserEmailUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
fltrUserEmailUI mPrev =
- prismAForm (singletonFilter "user-email") mPrev $ aopt textField (fslI MsgEMail)
+ prismAForm (singletonFilter "user-email") mPrev $ aopt textField (fslI MsgEmailTable)
--------------------
@@ -614,7 +614,7 @@ fltrUserEmailUI mPrev =
colStudyDegree :: OpticColonnade StudyDegree
colStudyDegree resultDegree = Colonnade.singleton (fromSortable header) body
where
- header = Sortable (Just "features-degree") (i18nCell MsgStudyFeatureDegree)
+ header = Sortable (Just "features-degree") (i18nCell MsgStudyFeatureDegreeTable)
body = views resultDegree $ \StudyDegree{..}
-> cell . maybe (toWidget $ toMarkup studyDegreeKey) toWidget $ studyDegreeShorthand <|> studyDegreeName
@@ -648,13 +648,13 @@ fltrStudyDegree queryDegree = singletonMap "features-degree" . FilterColumn $ an
unSqlProject' = E.unSqlProject (Proxy @StudyDegree) (Proxy @studyDegree)
fltrStudyDegreeUI :: DBFilterUI
-fltrStudyDegreeUI mPrev = prismAForm (singletonFilter "features-degree") mPrev $ aopt textField (fslI MsgStudyFeatureDegree)
+fltrStudyDegreeUI mPrev = prismAForm (singletonFilter "features-degree") mPrev $ aopt textField (fslI MsgStudyFeatureDegreeTable)
colStudyTerms :: OpticColonnade StudyTerms
colStudyTerms resultTerms = Colonnade.singleton (fromSortable header) body
where
- header = Sortable (Just "features-terms") (i18nCell MsgStudyTerm)
+ header = Sortable (Just "features-terms") (i18nCell MsgStudyTermTable)
body = views resultTerms $ \StudyTerms{..}
-> cell . maybe (toWidget $ toMarkup studyTermsKey) toWidget $ studyTermsShorthand <|> studyTermsName
@@ -688,13 +688,13 @@ fltrStudyTerms queryTerms = singletonMap "features-terms" . FilterColumn $ anyFi
unSqlProject' = E.unSqlProject (Proxy @StudyTerms) (Proxy @studyTerms)
fltrStudyTermsUI :: DBFilterUI
-fltrStudyTermsUI mPrev = prismAForm (singletonFilter "features-terms") mPrev $ aopt textField (fslI MsgStudyTerm)
+fltrStudyTermsUI mPrev = prismAForm (singletonFilter "features-terms") mPrev $ aopt textField (fslI MsgStudyTermTable)
colStudyFeaturesSemester :: OpticColonnade Int
colStudyFeaturesSemester resultSemester = Colonnade.singleton (fromSortable header) body
where
- header = Sortable (Just "features-semester") (i18nCell MsgStudyFeatureAge)
+ header = Sortable (Just "features-semester") (i18nCell MsgStudyFeatureAgeTable)
body = views resultSemester $ cell . toWidget . toMarkup
sortStudyFeaturesSemester :: forall semester. PersistField semester => OpticSortColumn semester
@@ -711,11 +711,11 @@ fltrStudyFeaturesSemester querySemester = singletonMap "features-semester" . Fil
unSqlProject' = E.unSqlProject (Proxy @StudyFeatures) (Proxy @studyFeatures)
fltrStudyFeaturesSemesterUI :: DBFilterUI
-fltrStudyFeaturesSemesterUI mPrev = prismAForm (singletonFilter "features-semester" . maybePrism _PathPiece) mPrev $ aopt (intField :: Field _ Int) (fslI MsgStudyFeatureAge)
+fltrStudyFeaturesSemesterUI mPrev = prismAForm (singletonFilter "features-semester" . maybePrism _PathPiece) mPrev $ aopt (intField :: Field _ Int) (fslI MsgStudyFeatureAgeTable)
colFeaturesSemester :: (IsDBTable m c, HasStudyFeatures x) => Getting (Leftmost x) a x -> Colonnade Sortable a (DBCell m c)
-colFeaturesSemester feature = sortable (Just "features-semester") (i18nCell MsgStudyFeatureAge) $ maybe mempty cellHasSemester . firstOf feature
+colFeaturesSemester feature = sortable (Just "features-semester") (i18nCell MsgStudyFeatureAgeTable) $ maybe mempty cellHasSemester . firstOf feature
sortFeaturesSemester :: IsString d => (t -> E.SqlExpr (Maybe (Entity StudyFeatures))) -> (d, SortColumn t r')
sortFeaturesSemester queryFeatures = ("features-semester", SortColumn $ queryFeatures >>> (E.?. StudyFeaturesSemester))
@@ -729,11 +729,11 @@ fltrFeaturesSemester queryFeatures = ("features-semester", FilterColumn . mkExac
fltrFeaturesSemesterUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
fltrFeaturesSemesterUI mPrev =
- prismAForm (singletonFilter "features-semester" . maybePrism _PathPiece) mPrev $ aopt (intField :: Field (YesodDB UniWorX) Int) (fslI MsgStudyFeatureAge)
+ prismAForm (singletonFilter "features-semester" . maybePrism _PathPiece) mPrev $ aopt (intField :: Field (YesodDB UniWorX) Int) (fslI MsgStudyFeatureAgeTable)
colField :: (IsDBTable m c, HasStudyTerms x) => Getting (Leftmost x) a x -> Colonnade Sortable a (DBCell m c)
-colField terms = sortable (Just "terms") (i18nCell MsgStudyTerm) $ maybe mempty cellHasField . firstOf terms
+colField terms = sortable (Just "terms") (i18nCell MsgStudyTermTable) $ maybe mempty cellHasField . firstOf terms
sortField :: IsString d => (t -> E.SqlExpr (Maybe (Entity StudyTerms))) -> (d, SortColumn t r')
sortField queryTerms = ("terms", SortColumn $ queryTerms >>> (E.?. StudyTermsName))
@@ -753,7 +753,7 @@ fltrField queryFeatures = ( "terms"
fltrFieldUI :: Maybe (Map FilterKey [Text]) -> AForm (YesodDB UniWorX) (Map FilterKey [Text])
fltrFieldUI mPrev =
- prismAForm (singletonFilter "terms") mPrev $ aopt textField (fslI MsgStudyTerm)
+ prismAForm (singletonFilter "terms") mPrev $ aopt textField (fslI MsgStudyTermTable)
colDegreeShort :: (IsDBTable m c, HasStudyDegree x) => Getting (Leftmost x) a x -> Colonnade Sortable a (DBCell m c)
diff --git a/templates/course/user/profile.hamlet b/templates/course/user/profile.hamlet
index 7fb7dee81..f81c4f92a 100644
--- a/templates/course/user/profile.hamlet
+++ b/templates/course/user/profile.hamlet
@@ -18,7 +18,7 @@ $newline never
$maybe sex <- guardOn showSex =<< userSex
_{MsgSex}
_{sex}
- _{MsgEMail}
+ _{MsgEmailTable}
#{mailtoHtml userEmail}
$maybe date <- mRegAt
_{MsgRegisteredSince}
@@ -38,12 +38,12 @@ $newline never
- | _{MsgStudyTerm}
- | _{MsgStudyFeatureDegree}
- | _{MsgStudyFeatureType}
- | _{MsgStudyFeatureAge}
- | _{MsgStudyFeatureValid}
- | _{MsgStudyFeatureUpdate}
+ | _{MsgStudyTermTable}
+ | _{MsgStudyFeatureDegreeTable}
+ | _{MsgStudyFeatureTypeTable}
+ | _{MsgStudyFeatureAgeTable}
+ | _{MsgStudyFeatureValidTable}
+ | _{MsgStudyFeatureUpdateTable}
$forall ((Entity _ StudyFeatures{studyFeaturesType, studyFeaturesSemester, studyFeaturesValid, studyFeaturesFirstObserved, studyFeaturesLastObserved}), (Entity _ degree), (Entity _ field)) <- studies
|
_{field}
diff --git a/templates/profileData.hamlet b/templates/profileData.hamlet
index d7cb247e9..9b4beac6d 100644
--- a/templates/profileData.hamlet
+++ b/templates/profileData.hamlet
@@ -6,11 +6,11 @@ $newline never
#{userIdent}
- _{MsgAuthMode}
+ _{MsgAuthModeSet}
_{userAuthentication}
- _{MsgName}
+ _{MsgNameSet}
^{nameWidget userDisplayName userSurname}
$maybe matnr <- userMatrikelnummer
@@ -19,7 +19,7 @@ $newline never
#{matnr}
- _{MsgEMail}
+ _{MsgEmailTable}
#{mailtoHtml userEmail}
$if userEmail /= userDisplayEmail
@@ -38,14 +38,14 @@ $newline never
$maybe llogin <- userLastAuthentication
^{formatTimeW SelFormatDateTime llogin}
$nothing
- _{MsgNever}
+ _{MsgNeverSet}
_{MsgProfileLastLdapSynchronisation}
$maybe lsync <- userLastLdapSynchronisation
^{formatTimeW SelFormatDateTime lsync}
$nothing
- _{MsgNever}
+ _{MsgNeverSet}
$maybe pKey <- userLdapPrimaryKey
_{MsgProfileLdapPrimaryKey}
@@ -57,7 +57,7 @@ $newline never
$maybe lastInvalidated <- userTokensIssuedAfter
^{formatTimeW SelFormatDateTime lastInvalidated}
$nothing
- _{MsgNever}
+ _{MsgNeverSet}
$forall (function, schools) <- Map.toList functions
_{function}
@@ -78,12 +78,12 @@ $newline never
- | _{MsgStudyTerm}
- | _{MsgStudyFeatureDegree}
- | _{MsgStudyFeatureType}
- | _{MsgStudyFeatureAge}
- | _{MsgStudyFeatureValid}
- | _{MsgStudyFeatureUpdate}
+ | _{MsgStudyTermTable}
+ | _{MsgStudyFeatureDegreeTable}
+ | _{MsgStudyFeatureTypeTable}
+ | _{MsgStudyFeatureAgeTable}
+ | _{MsgStudyFeatureValidTable}
+ | _{MsgStudyFeatureUpdateTable}
$forall ((Entity _ StudyFeatures{studyFeaturesType, studyFeaturesSemester, studyFeaturesValid, studyFeaturesFirstObserved, studyFeaturesLastObserved}), (Entity _ degree), (Entity _ field)) <- studies
|
|