From 527ece33788c945ac94bfcba193efff5fde97180 Mon Sep 17 00:00:00 2001 From: Kevin Heyer Date: Mon, 22 Sep 2025 10:22:08 +0200 Subject: [PATCH] Add Translation --- locale/de/LC_MESSAGES/django.mo | Bin 11760 -> 11242 bytes locale/de/LC_MESSAGES/django.po | 588 +++++++++++++++++-------------- locale/en/LC_MESSAGES/django.po | 541 ++++++++++++++-------------- templates/risks/risk_matrix.html | 8 +- 4 files changed, 603 insertions(+), 534 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 830a62216cfa664d2cc1851e5ac09446e80d3dba..66e772f52dee4598e5e06ffa975d24bb85aee2fa 100644 GIT binary patch delta 4673 zcmaKtd306P6^BnCkO^c;1PNv!AwYoumZ64*Ng#k2Ac!EumPc|WuVldYUO=SytW^sR z3_d`qv?i7oF;Kx!sunO%z}jk*Raq7*>C)C((iySYFL=)8KQ#MO;}w|B{w}4jbNyME1@*!NNK$SV)CNmnI$QzybM-uw;U=h! zw?GB73u=8MQ~)m+kHDVTCv5&rs6@`gUhMCFM<)&b6Y53R&$m;J*F#leFqEUwQ0t1J z0w{qBXg*Zni{W^9HyjK1*nBHgqVK{)_$L^ZgTK*H>8?NpqIAU`#sN^7S$~YNj zV9$pGpl9RvL#pexLIv6gaqXJSehn(%H&lO>?rjFd_o0s9W2gu(L1lgw>V+hBQ=mPe zE>k*G00Vd^utKQyQ*3;maV1pd_ZqiBCG>m-^_RoL48$)Hl;al2p6;~S7a*tOE<&yA zfXeV+P?@D(?;L+Fi-!Uk51Deapw^W``K^UTFa)*kV3dv`J^{7x7cjmN)LC~JKZmMF z57JP;eV{TJ0Efd|s0!U`^9yZ$DO7*~sKD!u8=;OS`Y;_uvK7i<15`l!q3*y@<0+_s zT8$q--Qsq5BfJ9Tr#}}V3l4*_OUzyhZ@^v$hr;cU_oD6B+&R=J; zjsb171uB3YP?0u5MS1`#fWuJhUNyEr-Qu%Q>)(N@)UToZw441I)Vl83K6@JnX6yW! z$Y(&8Vhq$}nrsV7p(?W!l7w3gby+u?{Tx&REl}&;g9@Y_vZuRb^XWN$#v`B-xe03D zNl_apfr@Z}aT%1ON~nzMpf;$7`WiMt1-cvRz5P%bH$x@T0(IuCQ1AT~>P}sTT9=&b z2Ncbq!>8*8!MSi8oD8G3;DpVefjWwdP#Js#bqD?k#xi6 zGfjsIC===^^WZ@Cchl%-qw@Fwzs!{bnw@HA8==b;>Z1a---+I%w6 z$-xa!84ibfZ!*+fnhz&H56aIT$d97iZ}VrN68IoWM-{jXb+)Nr@JpTt^*N1z%BTox z-7Kg~mcdk54ZFd0P`7#`EQZfO1$4pY+o9g?fJ!uRgnx9=G&*vS0h3^+P2@pcu2E2# z&Vb4AcBnw_f~w3~sDQRWm9_zDT{BFB$Dl6p&usinsC~{uDid`V=_D|q_7K_<@A(f^ zV5-?ijoNf8QhC)P=n?c2G#x#Pa?k;kf^I@zLaFHMXe81P9CzK#(f8lk?zPTiuonH; z?7eUtnuLnb5%dx|gPuY6q1%zlx(tQT1L#}m%ZQVWw@RL0v_ALMWunvCzYghgsHLG7 z5XTg6yLnO|x6wD_XRB^A(gnH|-GkO5wNkVO1!d6I`-ngH@YEeqd)kMee+h=p`a$$V zbOL=JeGgS3oquQBK4~;@<`953&9AtI$Ez*>dT;X2w3aA1z1vL`S1BNG-aM$BXfs8txz7vL25LMvJs632IRTq*F6h%ep?Oi?l7vh* zI~b1Ch1R<{HERMD5kpQXFU8*N_nVYpRb5@B%-CD$`LXdCdlD;y^)=0{86^olOY3XA zP_QEBjzD$27fbJ7ni&X(*VTn0Zh>`j)_S2;UO4R4PHA4zKPNHvQs(|XE7!YmH$gXA@HVWWp6yv0oLe8q}G<|IB3a(AN`V hGe@=!URzh|yigb))sfD<-L%z_`apFs9P}u}e*lzt0@eTk literal 11760 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 Y#}|dw^sJ}LcDw3mD=Eg=twZO30i4NAO8@`> diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 3ef904d..2990bcd 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: wira-risk-management\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 11:02+0200\n" +"POT-Creation-Date: 2025-09-22 10:20+0200\n" "PO-Revision-Date: 2025-09-09 13:45+0200\n" "Last-Translator: Kevin Heyer \n" "Language-Team: German\n" @@ -12,100 +12,101 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: risks/admin.py:21 risks/admin.py:23 +#: risks/admin.py:23 risks/admin.py:25 msgid "Administration" msgstr "Verwaltung" -#: risks/admin.py:22 +#: risks/admin.py:24 msgid "Admin" msgstr "Admin" -#: risks/admin.py:33 risks/models.py:50 templates/risks/list_incidents.html:33 -#: templates/risks/list_risks.html:16 +#: risks/admin.py:35 risks/models/risk.py:15 +#: templates/risks/list_incidents.html:33 templates/risks/list_risks.html:16 msgid "Risks" msgstr "Risiken" -#: risks/admin.py:34 risks/models.py:191 templates/base.html:54 +#: risks/admin.py:36 risks/models/control.py:13 templates/base.html:54 #: templates/risks/item_control.html:5 templates/risks/list_controls.html:5 msgid "Controls" msgstr "Maßnahmen" -#: risks/admin.py:35 +#: risks/admin.py:37 msgid "Residual risks" msgstr "Restrisiken" -#: risks/admin.py:36 +#: risks/admin.py:38 msgid "Reviews" msgstr "Prüfung" -#: risks/admin.py:37 risks/models.py:262 templates/base.html:55 +#: risks/admin.py:39 risks/models/incident.py:13 templates/base.html:55 #: templates/risks/item_incident.html:5 templates/risks/item_risk.html:14 #: templates/risks/list_incidents.html:5 templates/risks/list_incidents.html:18 msgid "Incidents" msgstr "Vorfälle" -#: risks/admin.py:38 +#: risks/admin.py:40 msgid "Users" msgstr "Benutzer" -#: risks/admin.py:166 risks/models.py:370 templates/risks/item_control.html:96 -#: templates/risks/item_incident.html:88 templates/risks/item_risk.html:260 +#: risks/admin.py:168 risks/models/notification_preference.py:15 +#: templates/risks/item_control.html:96 templates/risks/item_incident.html:88 +#: templates/risks/item_risk.html:260 msgid "User" msgstr "Benutzer" -#: risks/admin.py:170 +#: risks/admin.py:172 msgid "Message" msgstr "Nachricht" -#: risks/admin.py:176 +#: risks/admin.py:178 msgid "Mark selected as read" msgstr "Alle als gelesen Markieren" -#: risks/admin.py:179 +#: risks/admin.py:181 #, python-format msgid "%(n)d notifications marked as read." msgstr "%(n)d Benachrichtigungen wurden als gelesen Markiert" -#: risks/admin.py:181 +#: risks/admin.py:183 msgid "Mark selected as unread" msgstr "Alle als gelesen Markieren" -#: risks/admin.py:184 +#: risks/admin.py:186 #, python-format msgid "%(n)d notifications marked as unread." msgstr "%(n)d Benachrichtigungen wurden als ungelesen Markiert" -#: risks/admin.py:186 +#: risks/admin.py:188 msgid "Mark selected as sent" msgstr "Auswahl als gelesen markieren" -#: risks/admin.py:189 +#: risks/admin.py:191 #, python-format msgid "%(n)d notifications marked as sent." msgstr "%(n)d Benachrichtigungen wurden als gelesen Markiert" -#: risks/admin.py:191 +#: risks/admin.py:193 msgid "Mark selected as unsent" msgstr "Auswahl als ungesendet markieren" -#: risks/admin.py:194 +#: risks/admin.py:196 #, python-format msgid "%(n)d notifications marked as unsent." msgstr "%(n)d Benachrichtigungen wurden als gelesen Markiert" -#: risks/admin.py:206 +#: risks/admin.py:208 msgid "Extra recipients" msgstr "Zusätzliche Empfänger" -#: risks/admin.py:218 +#: risks/admin.py:220 msgid "SSO Information" msgstr "SSO-Informationen" -#: risks/admin.py:228 +#: risks/admin.py:230 msgid "Risks Owned" msgstr "Eigene Risiken" -#: risks/admin.py:232 +#: risks/admin.py:234 msgid "Controls Responsible" msgstr "Verantwortlich für Maßnahmen" @@ -113,8 +114,8 @@ msgstr "Verantwortlich für Maßnahmen" msgid "Risk Management" msgstr "Risikomanagement" -#: risks/forms.py:13 risks/models.py:87 templates/risks/dashboard.html:83 -#: templates/risks/dashboard.html:108 templates/risks/dashboard.html:133 +#: risks/forms.py:13 risks/models/risk.py:39 templates/risks/dashboard.html:85 +#: templates/risks/dashboard.html:112 templates/risks/dashboard.html:139 #: templates/risks/item_control.html:35 templates/risks/item_incident.html:36 #: templates/risks/item_risk.html:54 templates/risks/item_risk.html:204 #: templates/risks/item_risk.html:234 templates/risks/list_controls.html:48 @@ -124,293 +125,288 @@ msgstr "Risikomanagement" msgid "Status" msgstr "Status" -#: risks/forms.py:48 risks/models.py:56 +#: risks/forms.py:48 risks/models/risk.py:21 msgid "Review required" msgstr "Prüfung nötig" -#: risks/models.py:49 templates/risks/item_control.html:65 -#: templates/risks/item_incident.html:57 templates/risks/item_risk.html:6 -#: templates/risks/list_controls.html:33 templates/risks/list_risks.html:116 -msgid "Risk" -msgstr "Risiko" +#: risks/models/auditlog.py:26 +msgid "Auditlog" +msgstr "Audit-Log" -#: risks/models.py:53 -msgid "Open" -msgstr "Offen" +#: risks/models/auditlog.py:27 +msgid "Auditlogs" +msgstr "Audit-Logs" -#: risks/models.py:54 risks/models.py:266 -msgid "In Progress" -msgstr "In Bearbeitung" - -#: risks/models.py:55 risks/models.py:267 -msgid "Closed" -msgstr "Geschlossen" - -#: risks/models.py:59 -msgid "Very low – occurs less than once every 5 years" -msgstr "Sehr niedrig – tritt seltener als einmal in fünf Jahren auf" - -#: risks/models.py:60 -msgid "Low – once every 1–5 years" -msgstr "Niedrig – einmal in 1–5 Jahren" - -#: risks/models.py:61 -msgid "Likely – once per year or more" -msgstr "Wahrscheinlich – einmal pro Jahr oder öfter" - -#: risks/models.py:62 -msgid "Very likely – multiple times per year/monthly" -msgstr "Sehr wahrscheinlich – mehrmals pro Jahr/monatlich" - -#: risks/models.py:65 -msgid "Very Low (< 1,000 € – minor operational impact)" -msgstr "Sehr Gering (< 1.000 € – geringe betriebliche Auswirkungen)" - -#: risks/models.py:66 -msgid "Low (1,000–5,000 € – local impact)" -msgstr "Gering (1.000–5.000 € – lokale Auswirkungen)" - -#: risks/models.py:67 -msgid "High (5,000–15,000 € – team-level impact)" -msgstr "Hoch (5.000–15.000 € – Auswirkungen auf Teamebene)" - -#: risks/models.py:68 -msgid "Severe (50,000–100,000 € – regional impact)" -msgstr "Schwerwiegend (50.000–100.000 € – regionale Auswirkungen)" - -#: risks/models.py:69 -msgid "Critical (> 100,000 € – existential threat)" -msgstr "Kritisch (> 100.000 € – existenzielle Bedrohung)" - -#: risks/models.py:72 templates/risks/dashboard.html:57 -#: templates/risks/list_risks.html:112 templates/risks/list_risks.html:143 -msgid "Confidentiality" -msgstr "Vertraulichkeit" - -#: risks/models.py:73 templates/risks/dashboard.html:63 -#: templates/risks/list_risks.html:113 templates/risks/list_risks.html:150 -msgid "Integrity" -msgstr "Integrität" - -#: risks/models.py:74 templates/risks/dashboard.html:69 -#: templates/risks/list_risks.html:114 templates/risks/list_risks.html:157 -msgid "Availability" -msgstr "Verfügbarkeit" - -#: risks/models.py:78 risks/models.py:201 risks/models.py:270 -#: templates/risks/item_risk.html:203 -msgid "Title" -msgstr "Titel" - -#: risks/models.py:79 risks/models.py:271 templates/risks/item_control.html:52 -#: templates/risks/item_incident.html:44 -msgid "Description" -msgstr "Beschreibung" - -#: risks/models.py:80 templates/risks/item_control.html:68 -#: templates/risks/item_incident.html:60 templates/risks/item_risk.html:42 -#: templates/risks/list_risks.html:119 -msgid "Asset" -msgstr "Asset" - -#: risks/models.py:81 templates/risks/item_control.html:69 -#: templates/risks/item_incident.html:61 templates/risks/item_risk.html:43 -#: templates/risks/list_risks.html:125 -msgid "Process" -msgstr "Prozess" - -#: risks/models.py:82 templates/risks/item_control.html:67 -#: templates/risks/item_incident.html:59 templates/risks/item_risk.html:44 -#: templates/risks/list_risks.html:122 -msgid "Category" -msgstr "Kategorie" - -#: risks/models.py:83 templates/risks/item_control.html:46 -#: templates/risks/item_incident.html:39 templates/risks/item_risk.html:70 -msgid "Created at" -msgstr "Erstellt am" - -#: risks/models.py:84 templates/risks/item_control.html:47 -#: templates/risks/item_incident.html:40 templates/risks/item_risk.html:71 -msgid "Updated at" -msgstr "Aktualisiert am" - -#: risks/models.py:85 templates/risks/item_risk.html:78 -msgid "Effects" -msgstr "Auswirkungen" - -#: risks/models.py:147 -msgid "Residual Risk" -msgstr "Restrisiko" - -#: risks/models.py:148 -msgid "Residual Risks" -msgstr "Restrisiken" - -#: risks/models.py:190 templates/risks/item_control.html:33 +#: risks/models/control.py:12 templates/risks/item_control.html:33 #: templates/risks/list_controls.html:18 templates/risks/list_controls.html:97 msgid "Control" msgstr "Maßnahme" -#: risks/models.py:194 +#: risks/models/control.py:16 msgid "Planned" msgstr "Geplant" -#: risks/models.py:195 +#: risks/models/control.py:17 msgid "In progress" msgstr "In Bearbeitung" -#: risks/models.py:196 +#: risks/models/control.py:18 msgid "Completed" msgstr "Abgeschlossen" -#: risks/models.py:197 +#: risks/models/control.py:19 msgid "Verified" msgstr "Verifiziert" -#: risks/models.py:198 +#: risks/models/control.py:20 msgid "Rejected" msgstr "Abgelehnt" -#: risks/models.py:229 -msgid "Auditlog" -msgstr "Audit-Log" +#: risks/models/control.py:23 risks/models/incident.py:21 +#: risks/models/risk.py:30 templates/risks/item_risk.html:203 +msgid "Title" +msgstr "Titel" -#: risks/models.py:230 -msgid "Auditlogs" -msgstr "Audit-Logs" +#: risks/models/impact_choice.py:8 +msgid "Impact Name" +msgstr "Schadensname" -#: risks/models.py:261 templates/risks/item_incident.html:33 +#: risks/models/impact_choice.py:9 risks/models/incident.py:22 +#: risks/models/likelihood_choice.py:9 risks/models/risk.py:31 +#: templates/risks/item_control.html:52 templates/risks/item_incident.html:44 +msgid "Description" +msgstr "Beschreibung" + +#: risks/models/impact_choice.py:10 risks/models/likelihood_choice.py:10 +msgid "Numeric Value" +msgstr "Numerisch" + +#: risks/models/incident.py:12 templates/risks/item_incident.html:33 #: templates/risks/item_risk.html:233 templates/risks/list_incidents.html:97 msgid "Incident" msgstr "Vorfall" -#: risks/models.py:265 +#: risks/models/incident.py:16 msgid "Opened" msgstr "Eröffnet" -#: risks/models.py:272 +#: risks/models/incident.py:17 risks/models/risk.py:19 +msgid "In Progress" +msgstr "In Bearbeitung" + +#: risks/models/incident.py:18 risks/models/risk.py:20 +msgid "Closed" +msgstr "Geschlossen" + +#: risks/models/incident.py:23 msgid "Date reported" msgstr "Meldedatum" -#: risks/models.py:275 templates/risks/item_incident.html:34 +#: risks/models/incident.py:26 templates/risks/item_incident.html:34 #: templates/risks/list_incidents.html:63 #: templates/risks/list_incidents.html:101 msgid "Reported by" msgstr "Gemeldet von" -#: risks/models.py:291 -msgid "Risk created" -msgstr "Risiko erstellt" +#: risks/models/likelihood_choice.py:8 +msgid "Likelihood Name" +msgstr "Eintrittsname" -#: risks/models.py:292 -msgid "Risk updated" -msgstr "Risiko Aktualisiert" - -#: risks/models.py:293 -msgid "Risk deleted" -msgstr "Risiko gelöscht" - -#: risks/models.py:294 -msgid "Risk review required" -msgstr "Risikoprüfung nötig" - -#: risks/models.py:295 -msgid "Risk review completed" -msgstr "Risikoprüfung Abgeschlossen" - -#: risks/models.py:297 -msgid "Control created" -msgstr "Maßnahme erstellt" - -#: risks/models.py:298 -msgid "Control updated" -msgstr "Maßnahme Aktualisiert" - -#: risks/models.py:299 -msgid "Control deleted" -msgstr "Maßnahme '{title}' gelöscht" - -#: risks/models.py:301 -msgid "Residual created" -msgstr "Restrisiko erstellt" - -#: risks/models.py:302 -msgid "Residual updated" -msgstr "Restrisiko Aktualisiert" - -#: risks/models.py:303 -msgid "Residual deleted" -msgstr "Restrisiko gelöscht" - -#: risks/models.py:304 -msgid "Residual review required" -msgstr "Restrisikoprüfung nötig" - -#: risks/models.py:305 -msgid "Residual review completed" -msgstr "Restrisiko geprüft" - -#: risks/models.py:307 -msgid "Incident created" -msgstr "Vorfall erstellt" - -#: risks/models.py:308 -msgid "Incident updated" -msgstr "Vorfall Aktualisiert" - -#: risks/models.py:309 -msgid "Incident deleted" -msgstr "Vorfall gelöscht" - -#: risks/models.py:311 -msgid "User created" -msgstr "Benutzer erstellt" - -#: risks/models.py:312 -msgid "User deleted" -msgstr "Benutzer gelöscht" - -#: risks/models.py:321 risks/utils.py:79 +#: risks/models/notification.py:15 risks/utils.py:79 msgid "Notification" msgstr "Nachricht" -#: risks/models.py:322 templates/base.html:98 +#: risks/models/notification.py:16 templates/base.html:98 #: templates/risks/notifications.html:4 msgid "Notifications" msgstr "Nachrichten" -#: risks/models.py:419 +#: risks/models/notification_kind.py:9 +msgid "Risk created" +msgstr "Risiko erstellt" + +#: risks/models/notification_kind.py:10 +msgid "Risk updated" +msgstr "Risiko Aktualisiert" + +#: risks/models/notification_kind.py:11 +msgid "Risk deleted" +msgstr "Risiko gelöscht" + +#: risks/models/notification_kind.py:12 +msgid "Risk review required" +msgstr "Risikoprüfung nötig" + +#: risks/models/notification_kind.py:13 +msgid "Risk review completed" +msgstr "Risikoprüfung Abgeschlossen" + +#: risks/models/notification_kind.py:15 +msgid "Control created" +msgstr "Maßnahme erstellt" + +#: risks/models/notification_kind.py:16 +msgid "Control updated" +msgstr "Maßnahme Aktualisiert" + +#: risks/models/notification_kind.py:17 +msgid "Control deleted" +msgstr "Maßnahme '{title}' gelöscht" + +#: risks/models/notification_kind.py:19 +msgid "Residual created" +msgstr "Restrisiko erstellt" + +#: risks/models/notification_kind.py:20 +msgid "Residual updated" +msgstr "Restrisiko Aktualisiert" + +#: risks/models/notification_kind.py:21 +msgid "Residual deleted" +msgstr "Restrisiko gelöscht" + +#: risks/models/notification_kind.py:22 +msgid "Residual review required" +msgstr "Restrisikoprüfung nötig" + +#: risks/models/notification_kind.py:23 +msgid "Residual review completed" +msgstr "Restrisiko geprüft" + +#: risks/models/notification_kind.py:25 +msgid "Incident created" +msgstr "Vorfall erstellt" + +#: risks/models/notification_kind.py:26 +msgid "Incident updated" +msgstr "Vorfall Aktualisiert" + +#: risks/models/notification_kind.py:27 +msgid "Incident deleted" +msgstr "Vorfall gelöscht" + +#: risks/models/notification_kind.py:29 +msgid "User created" +msgstr "Benutzer erstellt" + +#: risks/models/notification_kind.py:30 +msgid "User deleted" +msgstr "Benutzer gelöscht" + +#: risks/models/notification_rule.py:12 msgid "Notification rule" msgstr "Benachrichtigungsregel" -#: risks/models.py:420 +#: risks/models/notification_rule.py:13 msgid "Notification rules" msgstr "Benachrichtigungsregeln" -#: risks/models.py:423 +#: risks/models/notification_rule.py:16 msgid "Event" msgstr "Aktion" -#: risks/models.py:428 +#: risks/models/notification_rule.py:21 msgid "Show in app" msgstr "Zeige in der WebApp" -#: risks/models.py:429 +#: risks/models/notification_rule.py:22 msgid "Send via email" msgstr "Sende via E-Mail" -#: risks/models.py:433 +#: risks/models/notification_rule.py:26 msgid "Send to owner/responsible/reporter (if available)" msgstr "Sende an Risikoeigner/Verantwortliche/Melder (Wenn vorhanden)" -#: risks/models.py:436 +#: risks/models/notification_rule.py:29 msgid "Send to all staff" msgstr "Sende an alle App-Mitarbeiter" -#: risks/models.py:438 +#: risks/models/notification_rule.py:31 msgid "Extra recipients (emails, comma or newline separated)" -msgstr "Zusätzliche Empfänger (E-Mails, durch Komma oder Zeilenumbruch getrennt)" +msgstr "" +"Zusätzliche Empfänger (E-Mails, durch Komma oder Zeilenumbruch getrennt)" + +#: risks/models/residual_risk.py:15 +msgid "Residual Risk" +msgstr "Restrisiko" + +#: risks/models/residual_risk.py:16 +msgid "Residual Risks" +msgstr "Restrisiken" + +#: risks/models/residual_risk.py:22 risks/models/risk.py:53 +#: templates/risks/item_risk.html:100 templates/risks/item_risk.html:146 +#: templates/risks/risk_matrix.html:18 templates/risks/risk_matrix.html:74 +#: templates/risks/risk_matrix.html:115 +msgid "Likelihood" +msgstr "Eintritt" + +#: risks/models/residual_risk.py:28 templates/risks/item_risk.html:109 +#: templates/risks/item_risk.html:155 templates/risks/risk_matrix.html:18 +#: templates/risks/risk_matrix.html:74 templates/risks/risk_matrix.html:115 +msgid "Impact" +msgstr "Schaden" + +#: risks/models/risk.py:14 templates/risks/item_control.html:65 +#: templates/risks/item_incident.html:57 templates/risks/item_risk.html:6 +#: templates/risks/list_controls.html:33 templates/risks/list_risks.html:116 +msgid "Risk" +msgstr "Risiko" + +#: risks/models/risk.py:18 +msgid "Open" +msgstr "Offen" + +#: risks/models/risk.py:24 templates/risks/dashboard.html:57 +#: templates/risks/list_risks.html:112 templates/risks/list_risks.html:143 +msgid "Confidentiality" +msgstr "Vertraulichkeit" + +#: risks/models/risk.py:25 templates/risks/dashboard.html:63 +#: templates/risks/list_risks.html:113 templates/risks/list_risks.html:150 +msgid "Integrity" +msgstr "Integrität" + +#: risks/models/risk.py:26 templates/risks/dashboard.html:69 +#: templates/risks/list_risks.html:114 templates/risks/list_risks.html:157 +msgid "Availability" +msgstr "Verfügbarkeit" + +#: risks/models/risk.py:32 templates/risks/item_control.html:68 +#: templates/risks/item_incident.html:60 templates/risks/item_risk.html:42 +#: templates/risks/list_risks.html:119 +msgid "Asset" +msgstr "Asset" + +#: risks/models/risk.py:33 templates/risks/item_control.html:69 +#: templates/risks/item_incident.html:61 templates/risks/item_risk.html:43 +#: templates/risks/list_risks.html:125 +msgid "Process" +msgstr "Prozess" + +#: risks/models/risk.py:34 templates/risks/item_control.html:67 +#: templates/risks/item_incident.html:59 templates/risks/item_risk.html:44 +#: templates/risks/list_risks.html:122 +msgid "Category" +msgstr "Kategorie" + +#: risks/models/risk.py:35 templates/risks/item_control.html:46 +#: templates/risks/item_incident.html:39 templates/risks/item_risk.html:70 +msgid "Created at" +msgstr "Erstellt am" + +#: risks/models/risk.py:36 templates/risks/item_control.html:47 +#: templates/risks/item_incident.html:40 templates/risks/item_risk.html:71 +msgid "Updated at" +msgstr "Aktualisiert am" + +#: risks/models/risk.py:37 templates/risks/item_risk.html:78 +msgid "Effects" +msgstr "Auswirkungen" + +#: risks/models/risk.py:59 +msgid "impact" +msgstr "Schaden" #: risks/signals.py:71 #, python-brace-format @@ -458,7 +454,8 @@ msgstr "Maßnahme gelöscht: {t}" #: risks/signals.py:218 #, python-brace-format msgid "Residual review required for risk '{t}' due to control change" -msgstr "Restrisikoprüfung nötig für das Risiko: '{t}', da Maßnahmen geändert wurden" +msgstr "" +"Restrisikoprüfung nötig für das Risiko: '{t}', da Maßnahmen geändert wurden" #: risks/signals.py:245 #, python-brace-format @@ -506,7 +503,9 @@ msgstr "Das Risiko wurde geprüft und als geschlossen markiert" #: risks/views.py:220 msgid "Not all controls are completed. Risk cannot be closed yet." -msgstr "Nicht alle Maßnhamen sind abgeschlossen, das Risiko kann nicht geschlossen werden." +msgstr "" +"Nicht alle Maßnhamen sind abgeschlossen, das Risiko kann nicht geschlossen " +"werden." #: risks/views.py:409 msgid "Risk status updated." @@ -554,7 +553,7 @@ msgstr "Dark Mode" msgid "Logout" msgstr "Logout" -#: templates/base.html:127 +#: templates/base.html:127 templates/registration/login.html:4 msgid "Login" msgstr "Login" @@ -566,6 +565,26 @@ msgstr "Light Mode" msgid "Dark Mode" msgstr "Dark Mode" +#: templates/registration/login.html:17 +msgid "Bitte anmelden" +msgstr "Bitte anmelden" + +#: templates/registration/login.html:34 +msgid "Benutzername" +msgstr "Benutzername" + +#: templates/registration/login.html:54 +msgid "Passwort" +msgstr "Passwort" + +#: templates/registration/login.html:76 +msgid "Anmelden" +msgstr "Anmelden" + +#: templates/registration/login.html:80 +msgid "Passwort vergessen?" +msgstr "Passwort vergessen?" + #: templates/risks/dashboard.html:13 msgid "Overview of Risks, Controls and Incidents" msgstr "Übersicht der Risiken, Maßnahmen und Vorfälle" @@ -586,29 +605,29 @@ msgstr "Ungelesene Nachrichten" msgid "Risks by CIA" msgstr "CIA Risiken" -#: templates/risks/dashboard.html:78 +#: templates/risks/dashboard.html:80 msgid "Risks by Status" msgstr "Risiken nach Status" -#: templates/risks/dashboard.html:84 templates/risks/dashboard.html:109 -#: templates/risks/dashboard.html:134 +#: templates/risks/dashboard.html:86 templates/risks/dashboard.html:113 +#: templates/risks/dashboard.html:140 msgid "Count" msgstr "Anzahl" -#: templates/risks/dashboard.html:94 templates/risks/dashboard.html:119 -#: templates/risks/dashboard.html:144 templates/risks/list_risks.html:185 +#: templates/risks/dashboard.html:96 templates/risks/dashboard.html:123 +#: templates/risks/dashboard.html:150 templates/risks/list_risks.html:185 msgid "No data" msgstr "Keine Daten" -#: templates/risks/dashboard.html:103 +#: templates/risks/dashboard.html:107 msgid "Controls by Status" msgstr "Maßnahmen nach Status" -#: templates/risks/dashboard.html:128 +#: templates/risks/dashboard.html:134 msgid "Incidents by Status" msgstr "Vorfälle nach Status" -#: templates/risks/dashboard.html:152 +#: templates/risks/dashboard.html:161 msgid "Risk Trend (per Month)" msgstr "Risikotrend (pro Monat)" @@ -726,18 +745,6 @@ msgstr "Risikomanagement" msgid "Gross (before measures)" msgstr "Brutto (vor Maßnahmen)" -#: templates/risks/item_risk.html:100 templates/risks/item_risk.html:146 -#: templates/risks/risk_matrix.html:21 templates/risks/risk_matrix.html:79 -#: templates/risks/risk_matrix.html:121 -msgid "Likelihood" -msgstr "Eintritt" - -#: templates/risks/item_risk.html:109 templates/risks/item_risk.html:155 -#: templates/risks/risk_matrix.html:21 templates/risks/risk_matrix.html:79 -#: templates/risks/risk_matrix.html:121 -msgid "Impact" -msgstr "Schaden" - #: templates/risks/item_risk.html:118 templates/risks/item_risk.html:164 msgid "Level" msgstr "Stufe" @@ -848,18 +855,61 @@ msgstr "Keine Nachrichten" msgid "Detail View" msgstr "Detailansicht" -#: templates/risks/risk_matrix.html:60 +#: templates/risks/risk_matrix.html:35 +msgid "Low" +msgstr "Niedrig" + +#: templates/risks/risk_matrix.html:37 +msgid "Medium" +msgstr "Mittel" + +#: templates/risks/risk_matrix.html:39 +msgid "High" +msgstr "Hoch" + +#: templates/risks/risk_matrix.html:41 +msgid "Critical" +msgstr "Kritisch" + +#: templates/risks/risk_matrix.html:56 msgid "Show" msgstr "Zeige" -#: templates/risks/risk_matrix.html:64 +#: templates/risks/risk_matrix.html:60 msgid "Gross" msgstr "Brutto" -#: templates/risks/risk_matrix.html:67 +#: templates/risks/risk_matrix.html:63 msgid "Net" msgstr "Netto" +#~ msgid "Very low – occurs less than once every 5 years" +#~ msgstr "Sehr niedrig – tritt seltener als einmal in fünf Jahren auf" + +#~ msgid "Low – once every 1–5 years" +#~ msgstr "Niedrig – einmal in 1–5 Jahren" + +#~ msgid "Likely – once per year or more" +#~ msgstr "Wahrscheinlich – einmal pro Jahr oder öfter" + +#~ msgid "Very likely – multiple times per year/monthly" +#~ msgstr "Sehr wahrscheinlich – mehrmals pro Jahr/monatlich" + +#~ msgid "Very Low (< 1,000 € – minor operational impact)" +#~ msgstr "Sehr Gering (< 1.000 € – geringe betriebliche Auswirkungen)" + +#~ msgid "Low (1,000–5,000 € – local impact)" +#~ msgstr "Gering (1.000–5.000 € – lokale Auswirkungen)" + +#~ msgid "High (5,000–15,000 € – team-level impact)" +#~ msgstr "Hoch (5.000–15.000 € – Auswirkungen auf Teamebene)" + +#~ msgid "Severe (50,000–100,000 € – regional impact)" +#~ msgstr "Schwerwiegend (50.000–100.000 € – regionale Auswirkungen)" + +#~ msgid "Critical (> 100,000 € – existential threat)" +#~ msgstr "Kritisch (> 100.000 € – existenzielle Bedrohung)" + #~ msgid "Notification marked as read." #~ msgstr "Nachricht als gelesen markiert" diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 0cc6167..ab5c59f 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-19 11:02+0200\n" +"POT-Creation-Date: 2025-09-22 10:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,100 +18,101 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: risks/admin.py:21 risks/admin.py:23 +#: risks/admin.py:23 risks/admin.py:25 msgid "Administration" msgstr "" -#: risks/admin.py:22 +#: risks/admin.py:24 msgid "Admin" msgstr "" -#: risks/admin.py:33 risks/models.py:50 templates/risks/list_incidents.html:33 -#: templates/risks/list_risks.html:16 +#: risks/admin.py:35 risks/models/risk.py:15 +#: templates/risks/list_incidents.html:33 templates/risks/list_risks.html:16 msgid "Risks" msgstr "" -#: risks/admin.py:34 risks/models.py:191 templates/base.html:54 +#: risks/admin.py:36 risks/models/control.py:13 templates/base.html:54 #: templates/risks/item_control.html:5 templates/risks/list_controls.html:5 msgid "Controls" msgstr "" -#: risks/admin.py:35 +#: risks/admin.py:37 msgid "Residual risks" msgstr "" -#: risks/admin.py:36 +#: risks/admin.py:38 msgid "Reviews" msgstr "" -#: risks/admin.py:37 risks/models.py:262 templates/base.html:55 +#: risks/admin.py:39 risks/models/incident.py:13 templates/base.html:55 #: templates/risks/item_incident.html:5 templates/risks/item_risk.html:14 #: templates/risks/list_incidents.html:5 templates/risks/list_incidents.html:18 msgid "Incidents" msgstr "" -#: risks/admin.py:38 +#: risks/admin.py:40 msgid "Users" msgstr "" -#: risks/admin.py:166 risks/models.py:370 templates/risks/item_control.html:96 -#: templates/risks/item_incident.html:88 templates/risks/item_risk.html:260 +#: risks/admin.py:168 risks/models/notification_preference.py:15 +#: templates/risks/item_control.html:96 templates/risks/item_incident.html:88 +#: templates/risks/item_risk.html:260 msgid "User" msgstr "" -#: risks/admin.py:170 +#: risks/admin.py:172 msgid "Message" msgstr "" -#: risks/admin.py:176 +#: risks/admin.py:178 msgid "Mark selected as read" msgstr "" -#: risks/admin.py:179 +#: risks/admin.py:181 #, python-format msgid "%(n)d notifications marked as read." msgstr "" -#: risks/admin.py:181 +#: risks/admin.py:183 msgid "Mark selected as unread" msgstr "" -#: risks/admin.py:184 +#: risks/admin.py:186 #, python-format msgid "%(n)d notifications marked as unread." msgstr "" -#: risks/admin.py:186 +#: risks/admin.py:188 msgid "Mark selected as sent" msgstr "" -#: risks/admin.py:189 +#: risks/admin.py:191 #, python-format msgid "%(n)d notifications marked as sent." msgstr "" -#: risks/admin.py:191 +#: risks/admin.py:193 msgid "Mark selected as unsent" msgstr "" -#: risks/admin.py:194 +#: risks/admin.py:196 #, python-format msgid "%(n)d notifications marked as unsent." msgstr "" -#: risks/admin.py:206 +#: risks/admin.py:208 msgid "Extra recipients" msgstr "" -#: risks/admin.py:218 +#: risks/admin.py:220 msgid "SSO Information" msgstr "" -#: risks/admin.py:228 +#: risks/admin.py:230 msgid "Risks Owned" msgstr "" -#: risks/admin.py:232 +#: risks/admin.py:234 msgid "Controls Responsible" msgstr "" @@ -119,8 +120,8 @@ msgstr "" msgid "Risk Management" msgstr "" -#: risks/forms.py:13 risks/models.py:87 templates/risks/dashboard.html:83 -#: templates/risks/dashboard.html:108 templates/risks/dashboard.html:133 +#: risks/forms.py:13 risks/models/risk.py:39 templates/risks/dashboard.html:85 +#: templates/risks/dashboard.html:112 templates/risks/dashboard.html:139 #: templates/risks/item_control.html:35 templates/risks/item_incident.html:36 #: templates/risks/item_risk.html:54 templates/risks/item_risk.html:204 #: templates/risks/item_risk.html:234 templates/risks/list_controls.html:48 @@ -130,294 +131,288 @@ msgstr "" msgid "Status" msgstr "" -#: risks/forms.py:48 risks/models.py:56 +#: risks/forms.py:48 risks/models/risk.py:21 msgid "Review required" msgstr "" -#: risks/models.py:49 templates/risks/item_control.html:65 -#: templates/risks/item_incident.html:57 templates/risks/item_risk.html:6 -#: templates/risks/list_controls.html:33 templates/risks/list_risks.html:116 -msgid "Risk" +#: risks/models/auditlog.py:26 +msgid "Auditlog" msgstr "" -#: risks/models.py:53 -msgid "Open" +#: risks/models/auditlog.py:27 +msgid "Auditlogs" msgstr "" -#: risks/models.py:54 risks/models.py:266 -msgid "In Progress" -msgstr "" - -#: risks/models.py:55 risks/models.py:267 -msgid "Closed" -msgstr "" - -#: risks/models.py:59 -msgid "Very low – occurs less than once every 5 years" -msgstr "" - -#: risks/models.py:60 -msgid "Low – once every 1–5 years" -msgstr "" - -#: risks/models.py:61 -msgid "Likely – once per year or more" -msgstr "" - -#: risks/models.py:62 -msgid "Very likely – multiple times per year/monthly" -msgstr "" - -#: risks/models.py:65 -msgid "Very Low (< 1,000 € – minor operational impact)" -msgstr "" - -#: risks/models.py:66 -msgid "Low (1,000–5,000 € – local impact)" -msgstr "" - -#: risks/models.py:67 -msgid "High (5,000–15,000 € – team-level impact)" -msgstr "" - -#: risks/models.py:68 -msgid "Severe (50,000–100,000 € – regional impact)" -msgstr "" - -#: risks/models.py:69 -msgid "Critical (> 100,000 € – existential threat)" -msgstr "" - -#: risks/models.py:72 templates/risks/dashboard.html:57 -#: templates/risks/list_risks.html:112 templates/risks/list_risks.html:143 -msgid "Confidentiality" -msgstr "" - -#: risks/models.py:73 templates/risks/dashboard.html:63 -#: templates/risks/list_risks.html:113 templates/risks/list_risks.html:150 -msgid "Integrity" -msgstr "" - -#: risks/models.py:74 templates/risks/dashboard.html:69 -#: templates/risks/list_risks.html:114 templates/risks/list_risks.html:157 -msgid "Availability" -msgstr "" - -#: risks/models.py:78 risks/models.py:201 risks/models.py:270 -#: templates/risks/item_risk.html:203 -msgid "Title" -msgstr "" - -#: risks/models.py:79 risks/models.py:271 templates/risks/item_control.html:52 -#: templates/risks/item_incident.html:44 -msgid "Description" -msgstr "" - -#: risks/models.py:80 templates/risks/item_control.html:68 -#: templates/risks/item_incident.html:60 templates/risks/item_risk.html:42 -#: templates/risks/list_risks.html:119 -msgid "Asset" -msgstr "" - -#: risks/models.py:81 templates/risks/item_control.html:69 -#: templates/risks/item_incident.html:61 templates/risks/item_risk.html:43 -#: templates/risks/list_risks.html:125 -msgid "Process" -msgstr "" - -#: risks/models.py:82 templates/risks/item_control.html:67 -#: templates/risks/item_incident.html:59 templates/risks/item_risk.html:44 -#: templates/risks/list_risks.html:122 -msgid "Category" -msgstr "" - -#: risks/models.py:83 templates/risks/item_control.html:46 -#: templates/risks/item_incident.html:39 templates/risks/item_risk.html:70 -msgid "Created at" -msgstr "" - -#: risks/models.py:84 templates/risks/item_control.html:47 -#: templates/risks/item_incident.html:40 templates/risks/item_risk.html:71 -msgid "Updated at" -msgstr "" - -#: risks/models.py:85 templates/risks/item_risk.html:78 -msgid "Effects" -msgstr "" - -#: risks/models.py:147 -msgid "Residual Risk" -msgstr "" - -#: risks/models.py:148 -msgid "Residual Risks" -msgstr "" - -#: risks/models.py:190 templates/risks/item_control.html:33 +#: risks/models/control.py:12 templates/risks/item_control.html:33 #: templates/risks/list_controls.html:18 templates/risks/list_controls.html:97 msgid "Control" msgstr "" -#: risks/models.py:194 +#: risks/models/control.py:16 msgid "Planned" msgstr "" -#: risks/models.py:195 +#: risks/models/control.py:17 msgid "In progress" msgstr "" -#: risks/models.py:196 +#: risks/models/control.py:18 msgid "Completed" msgstr "" -#: risks/models.py:197 +#: risks/models/control.py:19 msgid "Verified" msgstr "" -#: risks/models.py:198 +#: risks/models/control.py:20 msgid "Rejected" msgstr "" -#: risks/models.py:229 -msgid "Auditlog" +#: risks/models/control.py:23 risks/models/incident.py:21 +#: risks/models/risk.py:30 templates/risks/item_risk.html:203 +msgid "Title" msgstr "" -#: risks/models.py:230 -msgid "Auditlogs" +#: risks/models/impact_choice.py:8 +msgid "Impact Name" msgstr "" -#: risks/models.py:261 templates/risks/item_incident.html:33 +#: risks/models/impact_choice.py:9 risks/models/incident.py:22 +#: risks/models/likelihood_choice.py:9 risks/models/risk.py:31 +#: templates/risks/item_control.html:52 templates/risks/item_incident.html:44 +msgid "Description" +msgstr "" + +#: risks/models/impact_choice.py:10 risks/models/likelihood_choice.py:10 +msgid "Numeric Value" +msgstr "" + +#: risks/models/incident.py:12 templates/risks/item_incident.html:33 #: templates/risks/item_risk.html:233 templates/risks/list_incidents.html:97 msgid "Incident" msgstr "" -#: risks/models.py:265 +#: risks/models/incident.py:16 msgid "Opened" msgstr "" -#: risks/models.py:272 +#: risks/models/incident.py:17 risks/models/risk.py:19 +msgid "In Progress" +msgstr "" + +#: risks/models/incident.py:18 risks/models/risk.py:20 +msgid "Closed" +msgstr "" + +#: risks/models/incident.py:23 msgid "Date reported" msgstr "" -#: risks/models.py:275 templates/risks/item_incident.html:34 +#: risks/models/incident.py:26 templates/risks/item_incident.html:34 #: templates/risks/list_incidents.html:63 #: templates/risks/list_incidents.html:101 msgid "Reported by" msgstr "" -#: risks/models.py:291 -msgid "Risk created" +#: risks/models/likelihood_choice.py:8 +msgid "Likelihood Name" msgstr "" -#: risks/models.py:292 -msgid "Risk updated" -msgstr "" - -#: risks/models.py:293 -msgid "Risk deleted" -msgstr "" - -#: risks/models.py:294 -msgid "Risk review required" -msgstr "" - -#: risks/models.py:295 -msgid "Risk review completed" -msgstr "" - -#: risks/models.py:297 -msgid "Control created" -msgstr "" - -#: risks/models.py:298 -msgid "Control updated" -msgstr "" - -#: risks/models.py:299 -msgid "Control deleted" -msgstr "" - -#: risks/models.py:301 -msgid "Residual created" -msgstr "" - -#: risks/models.py:302 -msgid "Residual updated" -msgstr "" - -#: risks/models.py:303 -msgid "Residual deleted" -msgstr "" - -#: risks/models.py:304 -msgid "Residual review required" -msgstr "" - -#: risks/models.py:305 -msgid "Residual review completed" -msgstr "" - -#: risks/models.py:307 -msgid "Incident created" -msgstr "" - -#: risks/models.py:308 -msgid "Incident updated" -msgstr "" - -#: risks/models.py:309 -msgid "Incident deleted" -msgstr "" - -#: risks/models.py:311 -msgid "User created" -msgstr "" - -#: risks/models.py:312 -msgid "User deleted" -msgstr "" - -#: risks/models.py:321 risks/utils.py:79 +#: risks/models/notification.py:15 risks/utils.py:79 msgid "Notification" msgstr "" -#: risks/models.py:322 templates/base.html:98 +#: risks/models/notification.py:16 templates/base.html:98 #: templates/risks/notifications.html:4 msgid "Notifications" msgstr "" -#: risks/models.py:419 +#: risks/models/notification_kind.py:9 +msgid "Risk created" +msgstr "" + +#: risks/models/notification_kind.py:10 +msgid "Risk updated" +msgstr "" + +#: risks/models/notification_kind.py:11 +msgid "Risk deleted" +msgstr "" + +#: risks/models/notification_kind.py:12 +msgid "Risk review required" +msgstr "" + +#: risks/models/notification_kind.py:13 +msgid "Risk review completed" +msgstr "" + +#: risks/models/notification_kind.py:15 +msgid "Control created" +msgstr "" + +#: risks/models/notification_kind.py:16 +msgid "Control updated" +msgstr "" + +#: risks/models/notification_kind.py:17 +msgid "Control deleted" +msgstr "" + +#: risks/models/notification_kind.py:19 +msgid "Residual created" +msgstr "" + +#: risks/models/notification_kind.py:20 +msgid "Residual updated" +msgstr "" + +#: risks/models/notification_kind.py:21 +msgid "Residual deleted" +msgstr "" + +#: risks/models/notification_kind.py:22 +msgid "Residual review required" +msgstr "" + +#: risks/models/notification_kind.py:23 +msgid "Residual review completed" +msgstr "" + +#: risks/models/notification_kind.py:25 +msgid "Incident created" +msgstr "" + +#: risks/models/notification_kind.py:26 +msgid "Incident updated" +msgstr "" + +#: risks/models/notification_kind.py:27 +msgid "Incident deleted" +msgstr "" + +#: risks/models/notification_kind.py:29 +msgid "User created" +msgstr "" + +#: risks/models/notification_kind.py:30 +msgid "User deleted" +msgstr "" + +#: risks/models/notification_rule.py:12 msgid "Notification rule" msgstr "" -#: risks/models.py:420 +#: risks/models/notification_rule.py:13 msgid "Notification rules" msgstr "" -#: risks/models.py:423 +#: risks/models/notification_rule.py:16 msgid "Event" msgstr "" -#: risks/models.py:428 +#: risks/models/notification_rule.py:21 msgid "Show in app" msgstr "" -#: risks/models.py:429 +#: risks/models/notification_rule.py:22 msgid "Send via email" msgstr "" -#: risks/models.py:433 +#: risks/models/notification_rule.py:26 msgid "Send to owner/responsible/reporter (if available)" msgstr "" -#: risks/models.py:436 +#: risks/models/notification_rule.py:29 msgid "Send to all staff" msgstr "" -#: risks/models.py:438 +#: risks/models/notification_rule.py:31 msgid "Extra recipients (emails, comma or newline separated)" msgstr "" +#: risks/models/residual_risk.py:15 +msgid "Residual Risk" +msgstr "" + +#: risks/models/residual_risk.py:16 +msgid "Residual Risks" +msgstr "" + +#: risks/models/residual_risk.py:22 risks/models/risk.py:53 +#: templates/risks/item_risk.html:100 templates/risks/item_risk.html:146 +#: templates/risks/risk_matrix.html:18 templates/risks/risk_matrix.html:74 +#: templates/risks/risk_matrix.html:115 +msgid "Likelihood" +msgstr "" + +#: risks/models/residual_risk.py:28 templates/risks/item_risk.html:109 +#: templates/risks/item_risk.html:155 templates/risks/risk_matrix.html:18 +#: templates/risks/risk_matrix.html:74 templates/risks/risk_matrix.html:115 +msgid "Impact" +msgstr "" + +#: risks/models/risk.py:14 templates/risks/item_control.html:65 +#: templates/risks/item_incident.html:57 templates/risks/item_risk.html:6 +#: templates/risks/list_controls.html:33 templates/risks/list_risks.html:116 +msgid "Risk" +msgstr "" + +#: risks/models/risk.py:18 +msgid "Open" +msgstr "" + +#: risks/models/risk.py:24 templates/risks/dashboard.html:57 +#: templates/risks/list_risks.html:112 templates/risks/list_risks.html:143 +msgid "Confidentiality" +msgstr "" + +#: risks/models/risk.py:25 templates/risks/dashboard.html:63 +#: templates/risks/list_risks.html:113 templates/risks/list_risks.html:150 +msgid "Integrity" +msgstr "" + +#: risks/models/risk.py:26 templates/risks/dashboard.html:69 +#: templates/risks/list_risks.html:114 templates/risks/list_risks.html:157 +msgid "Availability" +msgstr "" + +#: risks/models/risk.py:32 templates/risks/item_control.html:68 +#: templates/risks/item_incident.html:60 templates/risks/item_risk.html:42 +#: templates/risks/list_risks.html:119 +msgid "Asset" +msgstr "" + +#: risks/models/risk.py:33 templates/risks/item_control.html:69 +#: templates/risks/item_incident.html:61 templates/risks/item_risk.html:43 +#: templates/risks/list_risks.html:125 +msgid "Process" +msgstr "" + +#: risks/models/risk.py:34 templates/risks/item_control.html:67 +#: templates/risks/item_incident.html:59 templates/risks/item_risk.html:44 +#: templates/risks/list_risks.html:122 +msgid "Category" +msgstr "" + +#: risks/models/risk.py:35 templates/risks/item_control.html:46 +#: templates/risks/item_incident.html:39 templates/risks/item_risk.html:70 +msgid "Created at" +msgstr "" + +#: risks/models/risk.py:36 templates/risks/item_control.html:47 +#: templates/risks/item_incident.html:40 templates/risks/item_risk.html:71 +msgid "Updated at" +msgstr "" + +#: risks/models/risk.py:37 templates/risks/item_risk.html:78 +msgid "Effects" +msgstr "" + +#: risks/models/risk.py:59 +msgid "impact" +msgstr "" + #: risks/signals.py:71 #, python-brace-format msgid "User '{u}' created" @@ -560,7 +555,7 @@ msgstr "" msgid "Logout" msgstr "" -#: templates/base.html:127 +#: templates/base.html:127 templates/registration/login.html:4 msgid "Login" msgstr "" @@ -572,6 +567,26 @@ msgstr "" msgid "Dark Mode" msgstr "" +#: templates/registration/login.html:17 +msgid "Bitte anmelden" +msgstr "" + +#: templates/registration/login.html:34 +msgid "Benutzername" +msgstr "" + +#: templates/registration/login.html:54 +msgid "Passwort" +msgstr "" + +#: templates/registration/login.html:76 +msgid "Anmelden" +msgstr "" + +#: templates/registration/login.html:80 +msgid "Passwort vergessen?" +msgstr "" + #: templates/risks/dashboard.html:13 msgid "Overview of Risks, Controls and Incidents" msgstr "" @@ -592,29 +607,29 @@ msgstr "" msgid "Risks by CIA" msgstr "" -#: templates/risks/dashboard.html:78 +#: templates/risks/dashboard.html:80 msgid "Risks by Status" msgstr "" -#: templates/risks/dashboard.html:84 templates/risks/dashboard.html:109 -#: templates/risks/dashboard.html:134 +#: templates/risks/dashboard.html:86 templates/risks/dashboard.html:113 +#: templates/risks/dashboard.html:140 msgid "Count" msgstr "" -#: templates/risks/dashboard.html:94 templates/risks/dashboard.html:119 -#: templates/risks/dashboard.html:144 templates/risks/list_risks.html:185 +#: templates/risks/dashboard.html:96 templates/risks/dashboard.html:123 +#: templates/risks/dashboard.html:150 templates/risks/list_risks.html:185 msgid "No data" msgstr "" -#: templates/risks/dashboard.html:103 +#: templates/risks/dashboard.html:107 msgid "Controls by Status" msgstr "" -#: templates/risks/dashboard.html:128 +#: templates/risks/dashboard.html:134 msgid "Incidents by Status" msgstr "" -#: templates/risks/dashboard.html:152 +#: templates/risks/dashboard.html:161 msgid "Risk Trend (per Month)" msgstr "" @@ -732,18 +747,6 @@ msgstr "" msgid "Gross (before measures)" msgstr "" -#: templates/risks/item_risk.html:100 templates/risks/item_risk.html:146 -#: templates/risks/risk_matrix.html:21 templates/risks/risk_matrix.html:79 -#: templates/risks/risk_matrix.html:121 -msgid "Likelihood" -msgstr "" - -#: templates/risks/item_risk.html:109 templates/risks/item_risk.html:155 -#: templates/risks/risk_matrix.html:21 templates/risks/risk_matrix.html:79 -#: templates/risks/risk_matrix.html:121 -msgid "Impact" -msgstr "" - #: templates/risks/item_risk.html:118 templates/risks/item_risk.html:164 msgid "Level" msgstr "" @@ -854,14 +857,30 @@ msgstr "" msgid "Detail View" msgstr "" -#: templates/risks/risk_matrix.html:60 +#: templates/risks/risk_matrix.html:35 +msgid "Low" +msgstr "" + +#: templates/risks/risk_matrix.html:37 +msgid "Medium" +msgstr "" + +#: templates/risks/risk_matrix.html:39 +msgid "High" +msgstr "" + +#: templates/risks/risk_matrix.html:41 +msgid "Critical" +msgstr "" + +#: templates/risks/risk_matrix.html:56 msgid "Show" msgstr "" -#: templates/risks/risk_matrix.html:64 +#: templates/risks/risk_matrix.html:60 msgid "Gross" msgstr "" -#: templates/risks/risk_matrix.html:67 +#: templates/risks/risk_matrix.html:63 msgid "Net" msgstr "" diff --git a/templates/risks/risk_matrix.html b/templates/risks/risk_matrix.html index a6110fb..6faf533 100644 --- a/templates/risks/risk_matrix.html +++ b/templates/risks/risk_matrix.html @@ -32,13 +32,13 @@
{% if s <= 4 %} - Low ({{ s }}) + {% trans "Low" %} ({{ s }}) {% elif s <= 8 %} - Medium ({{ s }}) + {% trans "Medium" %} ({{ s }}) {% elif s <= 12 %} - High ({{ s }}) + {% trans "High" %} ({{ s }}) {% else %} - Critical ({{ s }}) + {% trans "Critical" %} ({{ s }}) {% endif %}