DrrPH&Xu(%
zCgNCIE=7AaTNdfId>W&ONTM?F7b2RNM!ZaXp!eVx3TKHwh)cv$;&Y+_QIm)vdJ|7Jae#R7_{>(y<4eRbTVIX+h~J6#h$}=e5kmANe$@KwNN_OuxRn^LIuHCx+9Q;D
z2(g&@0HPC7o7hSC(EbsYBpMQhgpM^tX<``hE}>(FgZpP`eRM8R{GJ%Broye|t9lkj
zR;=nBG&VbH;@Cl>qb6nz&6=1sc5qf\n"
"Language-Team: LANGUAGE \n"
@@ -30,7 +30,7 @@ msgstr "Menu"
msgid "Created at"
msgstr "Créé le"
-#: core/base_models.py:11
+#: core/base_models.py:11 core/models.py:1913
msgid "Updated at"
msgstr "Mis à jour le"
@@ -38,21 +38,21 @@ msgstr "Mis à jour le"
msgid "published"
msgstr "publié"
-#: core/base_models.py:110 core/models.py:113
+#: core/base_models.py:110 core/models.py:114
#: core/templates/core/action_plan_pdf.html:42
#: core/templates/snippets/mp_data.html:58
#: core/templates/snippets/ri_list_nested.html:16
msgid "Name"
msgstr "Nom"
-#: core/base_models.py:111 core/models.py:115
+#: core/base_models.py:111 core/models.py:116
#: core/templates/core/action_plan_pdf.html:43
#: core/templates/snippets/mp_data.html:59
#: core/templates/snippets/ra_data.html:43
msgid "Description"
msgstr "Description"
-#: core/base_models.py:126 core/models.py:1310
+#: core/base_models.py:126 core/models.py:1753
#: core/templates/core/action_plan_pdf.html:46
#: core/templates/snippets/mp_data.html:62
msgid "ETA"
@@ -200,130 +200,148 @@ msgstr "Rechercher une preuve..."
msgid "Search framework..."
msgstr "Rechercher un référentiel..."
-#: core/models.py:104 core/models.py:185
+#: core/management/commands/reset_mail.py:16
+msgid "CISO Assistant: Password Reset"
+msgstr "CISO Assistant : réinitialisation de mot de passe"
+
+#: core/models.py:105 core/models.py:214
msgid "URN"
msgstr "URN"
-#: core/models.py:107
+#: core/models.py:108 core/models.py:1884 core/models.py:2464
msgid "Reference ID"
msgstr "ID de référence"
-#: core/models.py:110 core/models.py:826
+#: core/models.py:111 core/models.py:877
msgid "Provider"
msgstr "Fournisseur"
-#: core/models.py:116 core/models.py:1087
+#: core/models.py:117 core/models.py:1184
msgid "Annotation"
msgstr "Annotation"
-#: core/models.py:118
+#: core/models.py:119
msgid "Translations"
msgstr ""
-#: core/models.py:172
+#: core/models.py:173
msgid "Locale"
msgstr "Locale"
-#: core/models.py:174
+#: core/models.py:175
msgid "Default locale"
msgstr "Locale par défaut"
-#: core/models.py:187
+#: core/models.py:184
+msgid "Label"
+msgstr ""
+
+#: core/models.py:202
+msgid "Labels"
+msgstr ""
+
+#: core/models.py:216
msgid "Copyright"
msgstr "Copyright"
-#: core/models.py:189 core/models.py:1444
+#: core/models.py:218 core/models.py:1954
msgid "Version"
msgstr "Version"
-#: core/models.py:194
+#: core/models.py:223
msgid "Packager of the library"
msgstr "Responsable de l'empaquetage de la bibliothèque"
-#: core/models.py:195
+#: core/models.py:224
msgid "Packager"
msgstr "Empaqueteur"
-#: core/models.py:609
+#: core/models.py:659
msgid "Dependencies"
msgstr "Dépendances"
-#: core/models.py:708 core/templates/snippets/ri_list_nested.html:19
+#: core/models.py:758 core/templates/snippets/ri_list_nested.html:19
msgid "Threat"
msgstr "Menace"
-#: core/models.py:709 core/models.py:960 core/models.py:1850
+#: core/models.py:759 core/models.py:1023 core/models.py:2402
msgid "Threats"
msgstr "Menaces"
-#: core/models.py:729 core/models.py:1415
+#: core/models.py:779 core/models.py:1863
msgid "Policy"
msgstr "Politique"
-#: core/models.py:730
+#: core/models.py:780
msgid "Process"
msgstr "Processus"
-#: core/models.py:731
+#: core/models.py:781
msgid "Technical"
msgstr "Technique"
-#: core/models.py:732
+#: core/models.py:782
msgid "Physical"
msgstr "Physique"
-#: core/models.py:736
+#: core/models.py:783
+#, fuzzy
+#| msgid "Process"
+msgid "Procedure"
+msgstr "Processus"
+
+#: core/models.py:787
msgid "Govern"
msgstr ""
-#: core/models.py:737
+#: core/models.py:788
msgid "Identify"
msgstr ""
-#: core/models.py:738
+#: core/models.py:789
msgid "Protect"
msgstr ""
-#: core/models.py:739
+#: core/models.py:790
msgid "Detect"
msgstr ""
-#: core/models.py:740
+#: core/models.py:791
msgid "Respond"
msgstr ""
-#: core/models.py:741
+#: core/models.py:792
msgid "Recover"
msgstr ""
-#: core/models.py:757 core/models.py:1284
+#: core/models.py:808 core/models.py:1721
#: core/templates/core/action_plan_pdf.html:44
msgid "Category"
msgstr "Catégorie"
-#: core/models.py:765 core/models.py:1291
+#: core/models.py:816 core/models.py:1728
#, fuzzy
#| msgid "Search function..."
msgid "CSF Function"
msgstr "Rechercher une fonction..."
-#: core/models.py:769 core/models.py:986
+#: core/models.py:820 core/models.py:1049
msgid "Typical evidence"
msgstr "Preuve type"
-#: core/models.py:775 core/templates/snippets/mp_data.html:61
+#: core/models.py:826 core/templates/snippets/mp_data.html:61
msgid "Reference control"
msgstr "Mesure de référence"
-#: core/models.py:776 core/models.py:966
+#: core/models.py:827 core/models.py:1029
msgid "Reference controls"
msgstr "Mesures de référence"
-#: core/models.py:811
+#: core/models.py:862
msgid "JSON definition"
msgstr "Définition JSON"
-#: core/models.py:813
+#: core/models.py:864
msgid ""
"JSON definition of the risk matrix. See the documentation for more "
"information."
@@ -331,11 +349,11 @@ msgstr ""
"Définition JSON de la matrice de risque. Consultez la documentation pour "
"plus d'informations."
-#: core/models.py:819
+#: core/models.py:870
msgid "enabled"
msgstr "activé"
-#: core/models.py:822
+#: core/models.py:873
msgid ""
"If the risk matrix is set as disabled, it will not be available for "
"selection for new risk assessments."
@@ -343,405 +361,524 @@ msgstr ""
"Si la matrice de risque est désactivée, elle ne sera pas disponible pour la "
"sélection lors de nouvelles évaluations de risque."
-#: core/models.py:891 core/models.py:2066
+#: core/models.py:942 core/models.py:2633
msgid "Minimum score"
msgstr "Score minimum"
-#: core/models.py:892 core/models.py:2067
+#: core/models.py:943 core/models.py:2634
msgid "Maximum score"
msgstr "Score maximum"
-#: core/models.py:894 core/models.py:2069
+#: core/models.py:945 core/models.py:2636
msgid "Score definition"
msgstr "Définition du score"
-#: core/models.py:897
+#: core/models.py:948
msgid "Implementation groups definition"
msgstr "Définition des groupes d'implémentation"
-#: core/models.py:908 core/models.py:974 core/models.py:2060
+#: core/models.py:959 core/models.py:1037 core/models.py:2624
#: core/templates/core/action_plan_pdf.html:20
msgid "Framework"
msgstr "Référentiel"
-#: core/models.py:909
+#: core/models.py:960
msgid "Frameworks"
msgstr "Référentiels"
-#: core/models.py:978
+#: core/models.py:1041
msgid "Parent URN"
msgstr "URN parent"
-#: core/models.py:980
+#: core/models.py:1043
msgid "Order ID"
msgstr "ID de commande"
-#: core/models.py:982
+#: core/models.py:1045
msgid "Implementation groups"
msgstr "Groupes d'implémentation"
-#: core/models.py:984
+#: core/models.py:1047
msgid "Assessable"
msgstr "Évaluable"
-#: core/models.py:988
+#: core/models.py:1051
#, fuzzy
#| msgid "Description"
msgid "Question"
msgstr "Description"
-#: core/models.py:991
+#: core/models.py:1088
#, fuzzy
#| msgid "Requirement"
msgid "RequirementNode"
msgstr "Exigence"
-#: core/models.py:992
+#: core/models.py:1089
#, fuzzy
#| msgid "Requirement"
msgid "RequirementNodes"
msgstr "Exigence"
-#: core/models.py:1007
+#: core/models.py:1104
#, fuzzy
#| msgid "Search framework..."
msgid "Source framework"
msgstr "Rechercher un référentiel..."
-#: core/models.py:1013
+#: core/models.py:1110
#, fuzzy
#| msgid "Search framework..."
msgid "Target framework"
msgstr "Rechercher un référentiel..."
-#: core/models.py:1019
+#: core/models.py:1116
msgid "Source and related frameworks must be different"
msgstr ""
-#: core/models.py:1025
+#: core/models.py:1122
msgid "Full"
msgstr ""
-#: core/models.py:1026
+#: core/models.py:1123
msgid "Partial"
msgstr ""
-#: core/models.py:1027 core/models.py:1034
+#: core/models.py:1124 core/models.py:1131
#, fuzzy
#| msgid "Created"
msgid "Not related"
msgstr "Créé"
-#: core/models.py:1030
+#: core/models.py:1127
msgid "Subset"
msgstr ""
-#: core/models.py:1031
+#: core/models.py:1128
msgid "Intersect"
msgstr ""
-#: core/models.py:1032
+#: core/models.py:1129
msgid "Equal"
msgstr ""
-#: core/models.py:1033
+#: core/models.py:1130
msgid "Superset"
msgstr ""
-#: core/models.py:1037
+#: core/models.py:1134
msgid "Syntactic"
msgstr ""
-#: core/models.py:1038
+#: core/models.py:1135
msgid "Semantic"
msgstr ""
-#: core/models.py:1039
+#: core/models.py:1136
#, fuzzy
#| msgid "Production"
msgid "Functional"
msgstr "Production"
-#: core/models.py:1054
+#: core/models.py:1151
msgid "Mapping set"
msgstr ""
-#: core/models.py:1060
+#: core/models.py:1157
msgid "Target requirement"
msgstr "Exigence cible"
-#: core/models.py:1067
+#: core/models.py:1164
msgid "Relationship"
msgstr ""
-#: core/models.py:1074
+#: core/models.py:1171
msgid "Rationale"
msgstr "Raison"
-#: core/models.py:1079
+#: core/models.py:1176
msgid "Source requirement"
msgstr "Exigence source"
-#: core/models.py:1084
+#: core/models.py:1181
msgid "Strength of relationship"
msgstr ""
-#: core/models.py:1103 core/models.py:1252
+#: core/models.py:1273
+#, fuzzy
+#| msgid "Observation"
+msgid "Abbreviation"
+msgstr "Observation"
+
+#: core/models.py:1276
+#, fuzzy
+#| msgid "Order by"
+msgid "Ordering"
+msgstr "Trier par"
+
+#: core/models.py:1279
+msgid "Security objective ordering"
+msgstr ""
+
+#: core/models.py:1283
+#, fuzzy
+#| msgid "Justification"
+msgid "Qualification"
+msgstr "Justification"
+
+#: core/models.py:1284 core/models.py:2466
+#, fuzzy
+#| msgid "Justification"
+msgid "Qualifications"
+msgstr "Justification"
+
+#: core/models.py:1302 core/models.py:1672 core/models.py:1877
msgid "Undefined"
msgstr "Non défini"
-#: core/models.py:1104
+#: core/models.py:1303
msgid "Design"
msgstr "Conception"
-#: core/models.py:1105
+#: core/models.py:1304
msgid "Development"
msgstr "Développement"
-#: core/models.py:1106
+#: core/models.py:1305
msgid "Production"
msgstr "Production"
-#: core/models.py:1107
+#: core/models.py:1306
msgid "EndOfLife"
msgstr "Fin de vie"
-#: core/models.py:1108
+#: core/models.py:1307
msgid "Dropped"
msgstr "Abandonné"
-#: core/models.py:1111
-msgid "Internal reference"
-msgstr "Référence interne"
+#: core/models.py:1311 core/models.py:1708 core/models.py:1998
+#: core/models.py:2630
+#, fuzzy
+#| msgid "Reference ID"
+msgid "reference id"
+msgstr "ID de référence"
-#: core/models.py:1117 core/models.py:1298 core/models.py:1451
-#: core/models.py:2498 core/templates/snippets/mp_data.html:66
+#: core/models.py:1317 core/models.py:1735 core/models.py:1890
+#: core/models.py:1961 core/models.py:3143
+#: core/templates/snippets/mp_data.html:66
#: core/templates/snippets/ri_list_nested.html:31
msgid "Status"
msgstr "Statut"
-#: core/models.py:1122 core/models.py:1437 core/models.py:1930
+#: core/models.py:1322 core/models.py:1947 core/models.py:2498
#: core/templates/core/action_plan_pdf.html:16
#: core/templates/snippets/mp_data.html:7
msgid "Project"
msgstr "Projet"
-#: core/models.py:1123
+#: core/models.py:1323
msgid "Projects"
msgstr "Projets"
-#: core/models.py:1156
+#: core/models.py:1358
msgid "Primary"
msgstr "Primaire"
-#: core/models.py:1157
+#: core/models.py:1359
msgid "Support"
msgstr "Support"
-#: core/models.py:1160
+#: core/models.py:1431
msgid "business value"
msgstr "valeur métier"
-#: core/models.py:1163
+#: core/models.py:1434
msgid "type"
msgstr "type"
-#: core/models.py:1166
+#: core/models.py:1437
msgid "parent assets"
msgstr "actifs parents"
-#: core/models.py:1172 core/models.py:1837
+#: core/models.py:1443 core/models.py:1765
+msgid "External url for action follow-up (eg. Jira ticket)"
+msgstr "URL externe pour le suivi de l'action (par ex. billet Jira)"
+
+#: core/models.py:1444 core/models.py:1632 core/models.py:1766
+#: core/templates/snippets/mp_data.html:65
+msgid "Link"
+msgstr "Lien"
+
+#: core/models.py:1449
+msgid "Security objectives"
+msgstr ""
+
+#: core/models.py:1450
+msgid "The security objectives of the asset"
+msgstr ""
+
+#: core/models.py:1456
+msgid "Disaster recovery objectives"
+msgstr ""
+
+#: core/models.py:1457
+msgid "The disaster recovery objectives of the asset"
+msgstr ""
+
+#: core/models.py:1465 core/models.py:1740 core/models.py:2424
+msgid "Owner"
+msgstr "Propriétaire"
+
+#: core/models.py:1471 core/models.py:2382
msgid "Assets"
msgstr "Actifs"
-#: core/models.py:1173
+#: core/models.py:1472
msgid "Asset"
msgstr "Actif"
-#: core/models.py:1203
+#: core/models.py:1623
msgid "Attachment for evidence (eg. screenshot, log file, etc.)"
msgstr ""
"Pièce jointe pour la preuve (par ex. capture d'écran, fichier journal, etc.)"
-#: core/models.py:1204
+#: core/models.py:1624
msgid "Attachment"
msgstr "Pièce jointe"
-#: core/models.py:1211
+#: core/models.py:1631
msgid "Link to the evidence (eg. Jira ticket, etc.)"
msgstr "Lien vers la preuve (par ex. billet Jira, etc.)"
-#: core/models.py:1212 core/models.py:1323
-#: core/templates/snippets/mp_data.html:65
-msgid "Link"
-msgstr "Lien"
-
-#: core/models.py:1218
+#: core/models.py:1638
msgid "Evidence"
msgstr "Preuve"
-#: core/models.py:1219 core/models.py:1276 core/models.py:2518
+#: core/models.py:1639 core/models.py:1713 core/models.py:3163
msgid "Evidences"
msgstr "Preuves"
-#: core/models.py:1247 core/models.py:2482
+#: core/models.py:1667 core/models.py:3127
msgid "To do"
msgstr "À faire"
-#: core/models.py:1248 core/models.py:1431 core/models.py:2483
+#: core/models.py:1668 core/models.py:1941 core/models.py:3128
msgid "In progress"
msgstr "En cours"
-#: core/models.py:1249
+#: core/models.py:1669
msgid "On hold"
msgstr ""
-#: core/models.py:1250
+#: core/models.py:1670
msgid "Active"
msgstr "Actif"
-#: core/models.py:1251 core/models.py:1434
+#: core/models.py:1671 core/models.py:1944
msgid "Deprecated"
msgstr "Déprécié"
-#: core/models.py:1258
+#: core/models.py:1675
+msgid "P1"
+msgstr ""
+
+#: core/models.py:1676
+msgid "P2"
+msgstr ""
+
+#: core/models.py:1677
+msgid "P3"
+msgstr ""
+
+#: core/models.py:1678
+msgid "P4"
+msgstr ""
+
+#: core/models.py:1685
+msgid "Priority"
+msgstr ""
+
+#: core/models.py:1692
msgid "Small"
msgstr "Petit"
-#: core/models.py:1259 core/models.py:1814 core/tests/test_helpers.py:77
+#: core/models.py:1693 core/models.py:2359 core/tests/test_helpers.py:77
#: core/tests/test_helpers.py:142
msgid "Medium"
msgstr "Moyen"
-#: core/models.py:1260
+#: core/models.py:1694
msgid "Large"
msgstr "Grand"
-#: core/models.py:1261
+#: core/models.py:1695
msgid "Extra Large"
msgstr "Extra large"
-#: core/models.py:1271
+#: core/models.py:1705
msgid "Reference Control"
msgstr "Mesure de référence"
-#: core/models.py:1303 core/models.py:1866
-msgid "Owner"
-msgstr "Propriétaire"
+#: core/models.py:1746
+msgid "Start date (useful for timeline)"
+msgstr ""
-#: core/models.py:1309
+#: core/models.py:1747
+msgid "Start date"
+msgstr ""
+
+#: core/models.py:1752
msgid "Estimated Time of Arrival"
msgstr "Heure d'arrivée estimée"
-#: core/models.py:1315
+#: core/models.py:1758
msgid "Date after which the applied control is no longer valid"
msgstr "Date à partir de laquelle la mesure appliquée n'est plus valide"
-#: core/models.py:1316 core/models.py:2626
+#: core/models.py:1759 core/models.py:3325
#: core/templates/core/action_plan_pdf.html:47
msgid "Expiry date"
msgstr "Date d'expiration"
-#: core/models.py:1322
-msgid "External url for action follow-up (eg. Jira ticket)"
-msgstr "URL externe pour le suivi de l'action (par ex. billet Jira)"
-
-#: core/models.py:1330
+#: core/models.py:1773
msgid "Relative effort of the measure (using T-Shirt sizing)"
msgstr "Effort relatif de la mesure (en utilisant la taille des T-shirts)"
-#: core/models.py:1331 core/templates/core/action_plan_pdf.html:48
+#: core/models.py:1774 core/templates/core/action_plan_pdf.html:48
#: core/templates/snippets/mp_data.html:63
msgid "Effort"
msgstr "Effort"
-#: core/models.py:1335
+#: core/models.py:1778
msgid "Cost of the measure (using globally-chosen currency)"
msgstr ""
-#: core/models.py:1336 core/templates/core/action_plan_pdf.html:49
+#: core/models.py:1779 core/templates/core/action_plan_pdf.html:49
#: core/templates/snippets/mp_data.html:64
msgid "Cost"
msgstr ""
-#: core/models.py:1342
+#: core/models.py:1785
msgid "Applied control"
msgstr "Mesure appliqué"
-#: core/models.py:1343 core/models.py:1844 core/models.py:2534
+#: core/models.py:1786 core/models.py:1900 core/models.py:2396
+#: core/models.py:3179
msgid "Applied controls"
msgstr "Mesures appliquées"
-#: core/models.py:1416
+#: core/models.py:1864
msgid "Policies"
msgstr "Politiques"
-#: core/models.py:1430
+#: core/models.py:1878
+msgid "Potential"
+msgstr ""
+
+#: core/models.py:1879
+msgid "Exploitable"
+msgstr ""
+
+#: core/models.py:1880
+#, fuzzy
+#| msgid "Mitigate"
+msgid "Mitigated"
+msgstr "Atténuer"
+
+#: core/models.py:1881
+msgid "Fixed"
+msgstr ""
+
+#: core/models.py:1894
+msgid "Severity"
+msgstr ""
+
+#: core/models.py:1895
+msgid "The severity of the vulnerability"
+msgstr ""
+
+#: core/models.py:1909
+msgid "Date"
+msgstr ""
+
+#: core/models.py:1910
+msgid "Historical Data"
+msgstr ""
+
+#: core/models.py:1911
+msgid "Model"
+msgstr ""
+
+#: core/models.py:1912
+msgid "Object ID"
+msgstr ""
+
+#: core/models.py:1940
msgid "Planned"
msgstr "Planifié"
-#: core/models.py:1432 core/models.py:2484
+#: core/models.py:1942 core/models.py:3129
msgid "In review"
msgstr "En examen"
-#: core/models.py:1433 core/models.py:2485
+#: core/models.py:1943 core/models.py:3130
msgid "Done"
msgstr "Terminé"
-#: core/models.py:1443
+#: core/models.py:1953
msgid "Version of the compliance assessment (eg. 1.0, 2.0, etc.)"
msgstr "Version de l'évaluation de conformité (par ex. 1.0, 2.0, etc.)"
-#: core/models.py:1458
+#: core/models.py:1968
msgid "Authors"
msgstr "Auteurs"
-#: core/models.py:1464 core/templates/core/audit_report.html:35
+#: core/models.py:1974 core/templates/core/audit_report.html:35
msgid "Reviewers"
msgstr "Relecteurs"
-#: core/models.py:1467 core/models.py:2521
+#: core/models.py:1977 core/models.py:3166
msgid "Observation"
msgstr "Observation"
-#: core/models.py:1484
+#: core/models.py:1994
msgid "WARNING! After choosing it, you will not be able to change it"
msgstr ""
"ATTENTION ! Une fois que vous l'aurez choisi, vous ne pourrez plus le "
"modifier."
-#: core/models.py:1485
+#: core/models.py:1995
msgid "Risk matrix"
msgstr "Matrice de risque"
-#: core/models.py:1489 core/templates/snippets/mp_data.html:9
+#: core/models.py:2002 core/templates/snippets/mp_data.html:9
#: core/templates/snippets/ra_data.html:8
msgid "Risk assessment"
msgstr "Évaluation de risque"
-#: core/models.py:1490
+#: core/models.py:2003
msgid "Risk assessments"
msgstr "Évaluations de risque"
-#: core/models.py:1514
+#: core/models.py:2056
msgid "{}: Risk assessment is still in progress"
msgstr "{} : L'évaluation des risques est toujours en cours"
-#: core/models.py:1525
+#: core/models.py:2067
msgid "{}: No author assigned to this risk assessment"
msgstr "{} : Aucun auteur n'a été affecté à cette évaluation des risques"
-#: core/models.py:1537
+#: core/models.py:2079
msgid "{}: RiskAssessment is empty. No risk scenario declared yet"
msgstr ""
"{} : L'évaluation des risques est vide. Aucun scénario de risque n'a encore "
"été déclaré."
-#: core/models.py:1558
+#: core/models.py:2100
msgid "{} current risk level has not been assessed"
msgstr "{} : Le niveau de risque actuel n'a pas été évalué"
-#: core/models.py:1571
+#: core/models.py:2113
msgid ""
"{} residual risk level has not been assessed. If no additional measures are "
"applied, it should be at the same level as the current risk"
@@ -750,43 +887,43 @@ msgstr ""
"mesures supplémentaires appliquées, il devrait être au même niveau que le "
"risque actuel."
-#: core/models.py:1582
+#: core/models.py:2124
msgid "{} residual risk level is higher than the current one"
msgstr "{} : Le niveau de risque résiduel est supérieur à l'actuel"
-#: core/models.py:1594
+#: core/models.py:2136
msgid "{} residual risk probability is higher than the current one"
msgstr "{} : La probabilité de risque résiduel est supérieure à l'actuelle"
-#: core/models.py:1606
+#: core/models.py:2148
msgid "{} residual risk impact is higher than the current one"
msgstr "{} : L'impact du risque résiduel est supérieur à l'actuel"
-#: core/models.py:1627
+#: core/models.py:2169
msgid "{}: residual risk level has been lowered without any specific measure"
msgstr ""
"{} : Le niveau de risque résiduel a été réduit sans aucune mesure spécifique"
-#: core/models.py:1641
+#: core/models.py:2183
msgid "{} risk accepted but no risk acceptance attached"
msgstr "{} : Risque accepté mais aucune acceptation de risque jointe"
-#: core/models.py:1664
+#: core/models.py:2206
msgid "{} does not have an ETA"
msgstr "{} : Pas d'ETA"
-#: core/models.py:1676
+#: core/models.py:2218
msgid "{} ETA is in the past now. Consider updating its status or the date"
msgstr ""
"{} : L'ETA est dans le passé maintenant. Envisagez de mettre à jour son "
"statut ou la date."
-#: core/models.py:1689
+#: core/models.py:2231
msgid ""
"{} does not have an estimated effort. This will help you for prioritization"
msgstr "{} : Pas d'effort estimé. Cela vous aidera pour la prioritisation"
-#: core/models.py:1702
+#: core/models.py:2244
#, fuzzy
#| msgid ""
#| "{} does not have an estimated effort. This will help you for "
@@ -795,7 +932,7 @@ msgid ""
"{} does not have an estimated cost. This will help you for prioritization"
msgstr "{} : Pas d'effort estimé. Cela vous aidera pour la prioritisation"
-#: core/models.py:1715
+#: core/models.py:2257
msgid ""
"{}: Applied control does not have an external link attached. This will help "
"you for follow-up"
@@ -803,112 +940,134 @@ msgstr ""
"{} : La mesure appliquée ne comporte pas de lien externe joint. Cela vous "
"aidera pour le suivi"
-#: core/models.py:1738
+#: core/models.py:2280
msgid "{}: Acceptance has no expiry date"
msgstr "{} : L'acceptation n'a pas de date d'expiration"
-#: core/models.py:1752
+#: core/models.py:2294
msgid "{}: Acceptance has expired. Consider updating the status or the date"
msgstr ""
"{} : L'acceptation a expiré. Envisagez de mettre à jour le statut ou la date."
-#: core/models.py:1781
+#: core/models.py:2323
msgid "Open"
msgstr "Ouvert"
-#: core/models.py:1782
+#: core/models.py:2324
msgid "Mitigate"
msgstr "Atténuer"
-#: core/models.py:1783
+#: core/models.py:2325
msgid "Accept"
msgstr "Accepter"
-#: core/models.py:1784
+#: core/models.py:2326
msgid "Avoid"
msgstr "Éviter"
-#: core/models.py:1785
+#: core/models.py:2327
msgid "Transfer"
msgstr "Transférer"
-#: core/models.py:1789
-msgid "Financial"
+#: core/models.py:2331
+msgid "Confidentiality"
msgstr ""
-#: core/models.py:1790
-msgid "Legal"
+#: core/models.py:2332
+msgid "Integrity"
msgstr ""
-#: core/models.py:1791
+#: core/models.py:2333
+#, fuzzy
+#| msgid "Probability"
+msgid "Availability"
+msgstr "Probabilité"
+
+#: core/models.py:2334
+msgid "Proof"
+msgstr ""
+
+#: core/models.py:2335
+msgid "Authenticity"
+msgstr ""
+
+#: core/models.py:2336
+msgid "Privacy"
+msgstr ""
+
+#: core/models.py:2337
+msgid "Safety"
+msgstr ""
+
+#: core/models.py:2338
#, fuzzy
#| msgid "Rationale"
msgid "Reputation"
msgstr "Raison"
-#: core/models.py:1792
+#: core/models.py:2339
#, fuzzy
#| msgid "Observation"
msgid "Operational"
msgstr "Observation"
-#: core/models.py:1793
-msgid "Confidentiality"
-msgstr ""
-
-#: core/models.py:1794
-msgid "Integrity"
+#: core/models.py:2340
+msgid "Legal"
msgstr ""
-#: core/models.py:1795
-#, fuzzy
-#| msgid "Probability"
-msgid "Availability"
-msgstr "Probabilité"
-
-#: core/models.py:1796
-msgid "Authenticity"
+#: core/models.py:2341
+msgid "Financial"
msgstr ""
-#: core/models.py:1801
+#: core/models.py:2346
msgid "--"
msgstr "--"
-#: core/models.py:1803
+#: core/models.py:2348
msgid "The strength of the knowledge supporting the assessment is undefined"
msgstr "La force de la connaissance soutenant l'évaluation est indéfinie"
-#: core/models.py:1807 core/tests/test_helpers.py:76
+#: core/models.py:2352 core/tests/test_helpers.py:76
#: core/tests/test_helpers.py:141
msgid "Low"
msgstr "Faible"
-#: core/models.py:1809
+#: core/models.py:2354
msgid "The strength of the knowledge supporting the assessment is low"
msgstr "La force de la connaissance soutenant l'évaluation est faible"
-#: core/models.py:1816
+#: core/models.py:2361
msgid "The strength of the knowledge supporting the assessment is medium"
msgstr "La force de la connaissance soutenant l'évaluation est moyenne"
-#: core/models.py:1821 core/tests/test_helpers.py:78
+#: core/models.py:2366 core/tests/test_helpers.py:78
#: core/tests/test_helpers.py:143
msgid "High"
msgstr "Élevé"
-#: core/models.py:1823
+#: core/models.py:2368
msgid "The strength of the knowledge supporting the assessment is high"
msgstr "La force de la connaissance soutenant l'évaluation est élevée"
-#: core/models.py:1832
+#: core/models.py:2377
msgid "RiskAssessment"
msgstr "ÉvaluationDesRisques"
-#: core/models.py:1839
+#: core/models.py:2384
msgid "Assets impacted by the risk scenario"
msgstr "Actifs impactés par le scénario de risque"
-#: core/models.py:1857
+#: core/models.py:2389
+msgid "Vulnerabilities"
+msgstr ""
+
+#: core/models.py:2391
+#, fuzzy
+#| msgid "Assets impacted by the risk scenario"
+msgid "Vulnerabities exploited by the risk scenario"
+msgstr "Actifs impactés par le scénario de risque"
+
+#: core/models.py:2409
msgid ""
"The existing controls to manage this risk. Edit the risk scenario to add "
"extra applied controls."
@@ -916,24 +1075,30 @@ msgstr ""
"Les mesures existantes pour gérer ce risque. Modifiez le scénario de risque "
"pour ajouter des mesures appliquées supplémentaires."
-#: core/models.py:1859 core/templates/snippets/mp_data.html:48
+#: core/models.py:2411 core/templates/snippets/mp_data.html:48
#: core/templates/snippets/ri_list_nested.html:22
msgid "Existing controls"
msgstr "Mesures existantes"
-#: core/models.py:1871
+#: core/models.py:2416
+#, fuzzy
+#| msgid "Existing controls"
+msgid "Existing Applied controls"
+msgstr "Mesures existantes"
+
+#: core/models.py:2429
msgid "Current probability"
msgstr "Probabilité actuelle"
-#: core/models.py:1874
+#: core/models.py:2432
msgid "Current impact"
msgstr "Impact actuel"
-#: core/models.py:1878
+#: core/models.py:2436
msgid "Current level"
msgstr "Niveau actuel"
-#: core/models.py:1880
+#: core/models.py:2438
msgid ""
"The risk level given the current measures. Automatically updated on Save, "
"based on the chosen risk matrix"
@@ -942,19 +1107,19 @@ msgstr ""
"automatiquement lors de l'enregistrement, sur la base de la matrice de "
"risque choisie."
-#: core/models.py:1886
+#: core/models.py:2444
msgid "Residual probability"
msgstr "Probabilité résiduelle"
-#: core/models.py:1889
+#: core/models.py:2447
msgid "Residual impact"
msgstr "Impact résiduel"
-#: core/models.py:1893
+#: core/models.py:2451
msgid "Residual level"
msgstr "Niveau résiduel"
-#: core/models.py:1895
+#: core/models.py:2453
msgid ""
"The risk level when all the extra measures are done. Automatically updated "
"on Save, based on the chosen risk matrix"
@@ -963,61 +1128,55 @@ msgstr ""
"œuvre. Mis à jour automatiquement lors de l'enregistrement, sur la base de "
"la matrice de risque choisie."
-#: core/models.py:1903
+#: core/models.py:2461
msgid "Treatment status"
msgstr "Statut de traitement"
-#: core/models.py:1906
-#, fuzzy
-#| msgid "Justification"
-msgid "Qualifications"
-msgstr "Justification"
-
-#: core/models.py:1910
+#: core/models.py:2470
msgid "Strength of Knowledge"
msgstr "Force de la connaissance"
-#: core/models.py:1911
+#: core/models.py:2471
msgid "The strength of the knowledge supporting the assessment"
msgstr "La force de la connaissance soutenant l'évaluation"
-#: core/models.py:1914 core/models.py:2638
+#: core/models.py:2474 core/models.py:3337
msgid "Justification"
msgstr "Justification"
-#: core/models.py:1920
+#: core/models.py:2480
msgid "Risk scenario"
msgstr "Scénario de risque"
-#: core/models.py:1921 core/models.py:2603
+#: core/models.py:2481 core/models.py:3302
msgid "Risk scenarios"
msgstr "Scénarios de risque"
-#: core/models.py:2031
+#: core/models.py:2599
msgid ": "
msgstr ": "
-#: core/models.py:2063 core/templates/core/audit_report.html:43
+#: core/models.py:2627 core/templates/core/audit_report.html:43
msgid "Selected implementation groups"
msgstr "Groupes d'implémentation sélectionnés"
-#: core/models.py:2073 core/models.py:2525
+#: core/models.py:2640 core/models.py:3170
msgid "Compliance assessment"
msgstr "Évaluation de conformité"
-#: core/models.py:2074
+#: core/models.py:2641
msgid "Compliance assessments"
msgstr "Évaluations de conformité"
-#: core/models.py:2311
+#: core/models.py:2922
msgid "{}: Compliance assessment is still in progress"
msgstr "{} : L'évaluation de la conformité est toujours en cours"
-#: core/models.py:2324
+#: core/models.py:2935
msgid "{}: No author assigned to this compliance assessment"
msgstr "{} : Aucun auteur n'a été affecté à cette évaluation de conformité"
-#: core/models.py:2351
+#: core/models.py:2962
#, fuzzy
#| msgid ""
#| "{}: Requirement assessment status is compliant or partially compliant "
@@ -1029,94 +1188,94 @@ msgstr ""
"{} : Le statut de l'évaluation de l'exigence est conforme ou partiellement "
"conforme, sans aucun mesure appliquée"
-#: core/models.py:2376
+#: core/models.py:2987
msgid "{}: Applied control has no reference control selected"
msgstr ""
"{} : La mesure appliquée ne comporte pas de mesure de référence sélectionné"
-#: core/models.py:2402
+#: core/models.py:3013
msgid "{}: Evidence has no file uploaded"
msgstr "{} : La preuve ne comporte pas de fichier téléchargé"
-#: core/models.py:2488
+#: core/models.py:3133
msgid "Not assessed"
msgstr "Non évalué"
-#: core/models.py:2489
+#: core/models.py:3134
msgid "Partially compliant"
msgstr "Partiellement conforme"
-#: core/models.py:2490
+#: core/models.py:3135
#, fuzzy
#| msgid "Non compliant"
msgid "Non-compliant"
msgstr "Non conforme"
-#: core/models.py:2491
+#: core/models.py:3136
msgid "Compliant"
msgstr "Conforme"
-#: core/models.py:2492
+#: core/models.py:3137
msgid "Not applicable"
msgstr "Non applicable"
-#: core/models.py:2503
+#: core/models.py:3148
msgid "Result"
msgstr "Résultat"
-#: core/models.py:2509
+#: core/models.py:3154
msgid "Score"
msgstr "Score"
-#: core/models.py:2513
+#: core/models.py:3158
msgid "Is scored"
msgstr "Est noté"
-#: core/models.py:2529
+#: core/models.py:3174
msgid "Requirement"
msgstr "Exigence"
-#: core/models.py:2539
+#: core/models.py:3184
msgid "Selected"
msgstr "Sélectionné"
-#: core/models.py:2543
+#: core/models.py:3188
msgid "Mapping inference"
msgstr "Inference de mapping"
-#: core/models.py:2548
+#: core/models.py:3193
msgid "Answer"
msgstr ""
-#: core/models.py:2585
+#: core/models.py:3280
msgid "Requirement assessment"
msgstr "Évaluation de l'exigence"
-#: core/models.py:2586
+#: core/models.py:3281
msgid "Requirement assessments"
msgstr "Évaluations de l'exigence"
-#: core/models.py:2594
+#: core/models.py:3293
msgid "Created"
msgstr "Créé"
-#: core/models.py:2595
+#: core/models.py:3294
msgid "Submitted"
msgstr "Soumis"
-#: core/models.py:2596
+#: core/models.py:3295
msgid "Accepted"
msgstr "Accepté"
-#: core/models.py:2597
+#: core/models.py:3296
msgid "Rejected"
msgstr "Rejeté"
-#: core/models.py:2598
+#: core/models.py:3297
msgid "Revoked"
msgstr "Révoqué"
-#: core/models.py:2605
+#: core/models.py:3304
msgid ""
"Select the risk scenarios to be accepted, attention they must be part of the "
"chosen domain"
@@ -1124,39 +1283,39 @@ msgstr ""
"Sélectionnez les scénarios de risque à accepter, faites attention, ils "
"doivent faire partie du domaine choisi"
-#: core/models.py:2611
+#: core/models.py:3310
msgid "Risk owner and approver identity"
msgstr "Identité du propriétaire du risque et de l'approbateur"
-#: core/models.py:2612 core/utils.py:52 core/utils.py:60 core/utils.py:63
+#: core/models.py:3311 core/utils.py:52 core/utils.py:60 core/utils.py:63
msgid "Approver"
msgstr "Approbateur"
-#: core/models.py:2621
+#: core/models.py:3320
msgid "State"
msgstr "État"
-#: core/models.py:2624
+#: core/models.py:3323
msgid "Specify when the risk acceptance will no longer apply"
msgstr "Précisez quand l'acceptation du risque ne sera plus valable"
-#: core/models.py:2629
+#: core/models.py:3328
msgid "Acceptance date"
msgstr "Date d'acceptation"
-#: core/models.py:2632
+#: core/models.py:3331
msgid "Rejection date"
msgstr "Date de rejet"
-#: core/models.py:2635
+#: core/models.py:3334
msgid "Revocation date"
msgstr "Date de révocation"
-#: core/models.py:2647
+#: core/models.py:3346
msgid "Risk acceptance"
msgstr "Acceptation du risque"
-#: core/models.py:2648
+#: core/models.py:3347
msgid "Risk acceptances"
msgstr "Acceptations du risque"
@@ -1249,7 +1408,7 @@ msgstr "ici"
#: core/templates/registration/first_connexion_email.html:49
msgid "and request a password reset"
-msgstr "et demander une réinitialisation du mot de passe"
+msgstr "et demander une réinitialisation de mot de passe"
#: core/templates/registration/first_connexion_email.html:54
#: core/templates/registration/password_reset_email.html:55
@@ -1467,17 +1626,20 @@ msgstr "Lecteur"
msgid "Third-party respondent"
msgstr ""
-#: core/utils.py:74
+#: core/utils.py:78
msgid "French"
msgstr "Français"
-#: core/utils.py:75
+#: core/utils.py:79
msgid "English"
msgstr "Anglais"
-#: core/views.py:1668
+#: core/views.py:2257
msgid "CISO Assistant: A questionnaire has been assigned to you"
-msgstr ""
+msgstr "CISO Assistant : un questionnaire vous a été assigné"
+
+#~ msgid "Internal reference"
+#~ msgstr "Référence interne"
#~ msgid "Inactive"
#~ msgstr "Inactif"
diff --git a/backend/core/management/commands/reset_mail.py b/backend/core/management/commands/reset_mail.py
index 2b3c24cdf..b0b11b4fa 100644
--- a/backend/core/management/commands/reset_mail.py
+++ b/backend/core/management/commands/reset_mail.py
@@ -2,6 +2,7 @@
from core.models import *
from iam.models import User, Folder
from ciso_assistant.settings import CISO_ASSISTANT_SUPERUSER_EMAIL
+from django.utils.translation import gettext_lazy as _
class Command(BaseCommand):
@@ -13,7 +14,7 @@ def handle(self, *args, **kwargs):
try:
admin.mailing(
email_template_name="registration/password_reset_email.html",
- subject="CISO Assistant: Password Reset",
+ subject=_("CISO Assistant: Password Reset"),
)
self.stdout.write("reset mail sent")
except Exception as e:
diff --git a/backend/locale/fr/LC_MESSAGES/django.mo b/backend/locale/fr/LC_MESSAGES/django.mo
index e544355a5722972806eba55adb2666bce224e787..93dbe6bb075848937d0cf0317776dbdfbfd62625 100644
GIT binary patch
delta 191
zcmX@hyq=~0o)F7a1|VPtVi_Pd0b*7l_5orLNC09vAWj5gDIjhDVn;>>hS@;c2#D_j
z*&ulVCI$u|lL1J<0mw`SXU|}N1;^sz%;J*7yb>#gfW+eB^8BI{g`m{p)RK(>ag0W&
rN))UViVm;L%*!mvOw7qFPAtjH&r?WARmjaR0Z|1&{i&1JGAaN7iLfYE
delta 93
zcmZ3_a+W#Zo)F7a1|VPpVi_RT0b*7lwgF-g2moR!APxj#M@9yQ93U+R#Or`;AOh\n"
"Language-Team: LANGUAGE \n"
@@ -18,101 +18,419 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: iam/models.py:75
+#: ebios_rm/models.py:20
+msgid "Planned"
+msgstr ""
+
+#: ebios_rm/models.py:21
+msgid "In progress"
+msgstr ""
+
+#: ebios_rm/models.py:22
+msgid "In review"
+msgstr ""
+
+#: ebios_rm/models.py:23
+msgid "Done"
+msgstr ""
+
+#: ebios_rm/models.py:24
+msgid "Deprecated"
+msgstr ""
+
+#: ebios_rm/models.py:29
+msgid "Risk matrix"
+msgstr ""
+
+#: ebios_rm/models.py:32
+msgid ""
+"Risk matrix used as a reference for the study. Defaults to `urn:intuitem:"
+"risk:library:risk-matrix-4x4-ebios-rm`"
+msgstr ""
+
+#: ebios_rm/models.py:38 ebios_rm/models.py:118
+msgid "Assets"
+msgstr ""
+
+#: ebios_rm/models.py:40
+msgid "Assets that are pertinent to the study"
+msgstr ""
+
+#: ebios_rm/models.py:46
+msgid "Compliance assessments"
+msgstr ""
+
+#: ebios_rm/models.py:49
+msgid ""
+"Compliance assessments established as security baseline during workshop 1.4"
+msgstr ""
+
+#: ebios_rm/models.py:55
+msgid "Risk assessments"
+msgstr ""
+
+#: ebios_rm/models.py:57
+msgid "Risk assessments generated at the end of workshop 4"
+msgstr ""
+
+#: ebios_rm/models.py:62
+msgid "Reference entity"
+msgstr ""
+
+#: ebios_rm/models.py:64
+msgid "Entity that is the focus of the study"
+msgstr ""
+
+#: ebios_rm/models.py:73
+msgid "Version of the Ebios RM study (eg. 1.0, 2.0, etc.)"
+msgstr ""
+
+#: ebios_rm/models.py:74
+msgid "Version"
+msgstr ""
+
+#: ebios_rm/models.py:81
+msgid "Status"
+msgstr ""
+
+#: ebios_rm/models.py:88
+msgid "Authors"
+msgstr ""
+
+#: ebios_rm/models.py:94
+msgid "Reviewers"
+msgstr ""
+
+#: ebios_rm/models.py:97
+msgid "Observation"
+msgstr ""
+
+#: ebios_rm/models.py:100
+msgid "Ebios RM Study"
+msgstr ""
+
+#: ebios_rm/models.py:101
+msgid "Ebios RM Studies"
+msgstr ""
+
+#: ebios_rm/models.py:112 ebios_rm/models.py:201 ebios_rm/models.py:254
+#: ebios_rm/models.py:365 ebios_rm/models.py:401
+msgid "EBIOS RM study"
+msgstr ""
+
+#: ebios_rm/models.py:120
+msgid "Assets that are affected by the feared event"
+msgstr ""
+
+#: ebios_rm/models.py:125
+msgid "Qualifications"
+msgstr ""
+
+#: ebios_rm/models.py:127
+msgid "Qualifications carried by the feared event"
+msgstr ""
+
+#: ebios_rm/models.py:131
+msgid "Gravity"
+msgstr ""
+
+#: ebios_rm/models.py:132 ebios_rm/models.py:230 ebios_rm/models.py:320
+#: ebios_rm/models.py:382 ebios_rm/models.py:421
+msgid "Is selected"
+msgstr ""
+
+#: ebios_rm/models.py:133 ebios_rm/models.py:231 ebios_rm/models.py:321
+#: ebios_rm/models.py:383 ebios_rm/models.py:422
+msgid "Justification"
+msgstr ""
+
+#: ebios_rm/models.py:136
+msgid "Feared event"
+msgstr ""
+
+#: ebios_rm/models.py:137 ebios_rm/models.py:205
+msgid "Feared events"
+msgstr ""
+
+#: ebios_rm/models.py:169
+msgid "State"
+msgstr ""
+
+#: ebios_rm/models.py:170
+msgid "Organized crime"
+msgstr ""
+
+#: ebios_rm/models.py:171
+msgid "Terrorist"
+msgstr ""
+
+#: ebios_rm/models.py:172
+msgid "Activist"
+msgstr ""
+
+#: ebios_rm/models.py:173
+msgid "Professional"
+msgstr ""
+
+#: ebios_rm/models.py:174
+msgid "Amateur"
+msgstr ""
+
+#: ebios_rm/models.py:175
+msgid "Avenger"
+msgstr ""
+
+#: ebios_rm/models.py:176
+msgid "Pathological"
+msgstr ""
+
+#: ebios_rm/models.py:209
+msgid "Risk origin"
+msgstr ""
+
+#: ebios_rm/models.py:211
+msgid "Target objective"
+msgstr ""
+
+#: ebios_rm/models.py:213
+msgid "Motivation"
+msgstr ""
+
+#: ebios_rm/models.py:218
+msgid "Resources"
+msgstr ""
+
+#: ebios_rm/models.py:223
+msgid "Pertinence"
+msgstr ""
+
+#: ebios_rm/models.py:228
+msgid "Activity"
+msgstr ""
+
+#: ebios_rm/models.py:237 ebios_rm/models.py:370
+msgid "RO/TO couple"
+msgstr ""
+
+#: ebios_rm/models.py:238
+msgid "RO/TO couples"
+msgstr ""
+
+#: ebios_rm/models.py:248
+msgid "Client"
+msgstr ""
+
+#: ebios_rm/models.py:249
+msgid "Partner"
+msgstr ""
+
+#: ebios_rm/models.py:250
+msgid "Supplier"
+msgstr ""
+
+#: ebios_rm/models.py:255
+msgid "EBIOS RM study that the stakeholder is part of"
+msgstr ""
+
+#: ebios_rm/models.py:262 tprm/models.py:27 tprm/models.py:97
+msgid "Entity"
+msgstr ""
+
+#: ebios_rm/models.py:264
+msgid "Entity qualified by the stakeholder"
+msgstr ""
+
+#: ebios_rm/models.py:268
+msgid "Applied controls"
+msgstr ""
+
+#: ebios_rm/models.py:271
+msgid "Controls applied to lower stakeholder criticality"
+msgstr ""
+
+#: ebios_rm/models.py:275
+msgid "Category"
+msgstr ""
+
+#: ebios_rm/models.py:279
+msgid "Current dependency"
+msgstr ""
+
+#: ebios_rm/models.py:284
+msgid "Current penetration"
+msgstr ""
+
+#: ebios_rm/models.py:289
+msgid "Current maturity"
+msgstr ""
+
+#: ebios_rm/models.py:294
+msgid "Current trust"
+msgstr ""
+
+#: ebios_rm/models.py:300
+msgid "Residual dependency"
+msgstr ""
+
+#: ebios_rm/models.py:305
+msgid "Residual penetration"
+msgstr ""
+
+#: ebios_rm/models.py:310
+msgid "Residual maturity"
+msgstr ""
+
+#: ebios_rm/models.py:315
+msgid "Residual trust"
+msgstr ""
+
+#: ebios_rm/models.py:324
+msgid "Stakeholder"
+msgstr ""
+
+#: ebios_rm/models.py:325 ebios_rm/models.py:376
+msgid "Stakeholders"
+msgstr ""
+
+#: ebios_rm/models.py:372
+msgid "RO/TO couple from which the attach path is derived"
+msgstr ""
+
+#: ebios_rm/models.py:378
+msgid "Stakeholders leveraged by the attack path"
+msgstr ""
+
+#: ebios_rm/models.py:381 ebios_rm/models.py:419
+msgid "Description"
+msgstr ""
+
+#: ebios_rm/models.py:386
+msgid "Attack path"
+msgstr ""
+
+#: ebios_rm/models.py:387 ebios_rm/models.py:407
+msgid "Attack paths"
+msgstr ""
+
+#: ebios_rm/models.py:409
+msgid "Attack paths that are pertinent to the operational scenario"
+msgstr ""
+
+#: ebios_rm/models.py:413
+msgid "Threats"
+msgstr ""
+
+#: ebios_rm/models.py:416
+msgid "Threats leveraged by the operational scenario"
+msgstr ""
+
+#: ebios_rm/models.py:420
+msgid "Likelihood"
+msgstr ""
+
+#: ebios_rm/models.py:425
+msgid "Operational scenario"
+msgstr ""
+
+#: ebios_rm/models.py:426
+msgid "Operational scenarios"
+msgstr ""
+
+#: iam/models.py:78
msgid "GLOBAL"
msgstr ""
-#: iam/models.py:76
+#: iam/models.py:79
msgid "DOMAIN"
msgstr ""
-#: iam/models.py:77
+#: iam/models.py:80
msgid "ENCLAVE"
msgstr ""
-#: iam/models.py:86
+#: iam/models.py:90
msgid "parent folder"
msgstr ""
-#: iam/models.py:96
+#: iam/models.py:100
msgid "Folder"
msgstr ""
-#: iam/models.py:97
+#: iam/models.py:101
msgid "Folders"
msgstr ""
-#: iam/models.py:221
+#: iam/models.py:223
msgid "user group"
msgstr ""
-#: iam/models.py:222 iam/models.py:350
+#: iam/models.py:224 iam/models.py:371
msgid "user groups"
msgstr ""
-#: iam/models.py:279
+#: iam/models.py:299
msgid "Welcome to Ciso Assistant!"
msgstr "Bienvenue sur CISO Assistant !"
-#: iam/models.py:326
+#: iam/models.py:346
msgid "last name"
msgstr ""
-#: iam/models.py:327
+#: iam/models.py:347
msgid "first name"
msgstr ""
-#: iam/models.py:333
+#: iam/models.py:354
msgid "active"
msgstr ""
-#: iam/models.py:336
+#: iam/models.py:357
msgid ""
"Designates whether this user should be treated as active. Unselect this "
"instead of deleting accounts."
msgstr ""
-#: iam/models.py:340
+#: iam/models.py:361
msgid "date joined"
msgstr ""
-#: iam/models.py:342
+#: iam/models.py:363
msgid "superuser status"
msgstr ""
-#: iam/models.py:345
+#: iam/models.py:366
msgid ""
"Designates that this user has all permissions without explicitly assigning "
"them."
msgstr ""
-#: iam/models.py:353
+#: iam/models.py:374
msgid ""
"The user groups this user belongs to. A user will get all permissions "
"granted to each of their user groups."
msgstr ""
-#: iam/models.py:368
+#: iam/models.py:389
msgid "user"
msgstr ""
-#: iam/models.py:369
+#: iam/models.py:390
msgid "users"
msgstr ""
-#: iam/models.py:511
+#: iam/models.py:557
msgid "permissions"
msgstr ""
-#: iam/models.py:526
+#: iam/models.py:572
msgid "Domain"
msgstr ""
-#: iam/models.py:532
+#: iam/models.py:578
msgid "Role"
msgstr ""
-#: iam/models.py:533
+#: iam/models.py:579
msgid "sub folders are visible"
msgstr ""
@@ -156,87 +474,87 @@ msgstr ""
msgid "Key"
msgstr ""
-#: iam/views.py:97
+#: iam/views.py:128
msgid "CISO Assistant: Password Reset"
-msgstr ""
+msgstr "CISO Assistant : réinitialisation de mot de passe"
#: tprm/models.py:20
msgid "Owned folders"
msgstr ""
-#: tprm/models.py:27 tprm/models.py:82
-msgid "Entity"
-msgstr ""
-
#: tprm/models.py:28
msgid "Entities"
msgstr ""
-#: tprm/models.py:33
+#: tprm/models.py:42
msgid "Blocker"
msgstr ""
-#: tprm/models.py:34
+#: tprm/models.py:43
msgid "Warning"
msgstr ""
-#: tprm/models.py:35
+#: tprm/models.py:44
msgid "Ok"
msgstr ""
-#: tprm/models.py:36
+#: tprm/models.py:45
msgid "Not applicable"
msgstr ""
-#: tprm/models.py:38 tprm/models.py:115
+#: tprm/models.py:47 tprm/models.py:130
msgid "Criticality"
msgstr ""
-#: tprm/models.py:39
+#: tprm/models.py:48
msgid "Penetration"
msgstr ""
-#: tprm/models.py:40
+#: tprm/models.py:49
msgid "Dependency"
msgstr ""
-#: tprm/models.py:41
+#: tprm/models.py:50
msgid "Maturity"
msgstr ""
-#: tprm/models.py:42
+#: tprm/models.py:51
msgid "Trust"
msgstr ""
-#: tprm/models.py:51 tprm/models.py:121
+#: tprm/models.py:55
+msgid "Representative"
+msgstr ""
+
+#: tprm/models.py:66 tprm/models.py:136
msgid "Solutions"
msgstr ""
-#: tprm/models.py:62
+#: tprm/models.py:77
msgid "Conclusion"
msgstr ""
-#: tprm/models.py:68
+#: tprm/models.py:83
msgid "Entity assessment"
msgstr ""
-#: tprm/models.py:69
+#: tprm/models.py:84
msgid "Entity assessments"
msgstr ""
-#: tprm/models.py:104
+#: tprm/models.py:119
msgid "Provider entity"
msgstr ""
-#: tprm/models.py:110
+#: tprm/models.py:125
msgid "Recipient entity"
msgstr ""
-#: tprm/models.py:120
+#: tprm/models.py:135
msgid "Solution"
msgstr ""
-#: tprm/serializers.py:73
+#: tprm/serializers.py:74
msgid "Framework required"
msgstr ""
diff --git a/frontend/messages/cz.json b/frontend/messages/cz.json
index bf0e1bb6a..fe3447b1e 100644
--- a/frontend/messages/cz.json
+++ b/frontend/messages/cz.json
@@ -442,7 +442,7 @@
"yourStreamlined": "Vaše zefektivněné",
"oneStopShop": "jednotné řešení",
"forComplianceRiskManagement": "pro řízení souladu a rizik.",
- "youCanSetPAsswordHere": "Zde si můžete nastavit heslo",
+ "youCanSetPAsswordHere": "Zde si můžete nastavit heslo.",
"setPassword": "Nastavit heslo",
"logIntoYourAccount": "Přihlaste se ke svému účtu",
"youNeedToLogIn": "Pro přístup ke všem funkcím se musíte přihlásit",
diff --git a/frontend/messages/de.json b/frontend/messages/de.json
index 269002270..d14bdbaab 100644
--- a/frontend/messages/de.json
+++ b/frontend/messages/de.json
@@ -444,7 +444,7 @@
"yourStreamlined": "Ihr optimierter",
"oneStopShop": "One-Stop-Shop",
"forComplianceRiskManagement": "für Compliance- und Risikomanagement.",
- "youCanSetPAsswordHere": "Sie können hier Ihr Passwort festlegen",
+ "youCanSetPAsswordHere": "Sie können hier Ihr Passwort festlegen.",
"setPassword": "Passwort festlegen",
"logIntoYourAccount": "Melden Sie sich in Ihrem Konto an",
"youNeedToLogIn": "Sie müssen sich anmelden, um auf alle Funktionen zuzugreifen",
diff --git a/frontend/messages/en.json b/frontend/messages/en.json
index e32bcdeea..dc6f3a23e 100644
--- a/frontend/messages/en.json
+++ b/frontend/messages/en.json
@@ -447,7 +447,7 @@
"yourStreamlined": "Your streamlined",
"oneStopShop": "one-stop shop",
"forComplianceRiskManagement": "for compliance and risk management.",
- "youCanSetPAsswordHere": "You can set your password here",
+ "youCanSetPAsswordHere": "You can set your password here.",
"setPassword": "Set password",
"logIntoYourAccount": "Log into your account",
"youNeedToLogIn": "You need to login to access all the features",
@@ -980,6 +980,9 @@
"attackPaths": "Attack paths",
"currentCriticality": "Current criticality",
"residualCriticality": "Residual criticality",
+ "errorAssetGraphMustNotContainCycles": "The asset graph must not contain cycles.",
+ "resetPasswordHere": "You can reset your password here.",
+ "resetPassword": "Reset password",
"ebiosRm": "Ebios RM",
"workshopOne": "Workshop 1",
"refIdSemiColon": "Refence ID:",
diff --git a/frontend/messages/es.json b/frontend/messages/es.json
index c5804188d..4c2370565 100644
--- a/frontend/messages/es.json
+++ b/frontend/messages/es.json
@@ -444,7 +444,7 @@
"yourStreamlined": "Tu simplificado",
"oneStopShop": "todo en uno",
"forComplianceRiskManagement": "para la gestión de cumplimiento y riesgos.",
- "youCanSetPAsswordHere": "Puede establecer su contraseña aquí",
+ "youCanSetPAsswordHere": "Puede establecer su contraseña aquí.",
"setPassword": "Establecer contraseña",
"logIntoYourAccount": "Inicie sesión en su cuenta",
"youNeedToLogIn": "Debe iniciar sesión para acceder a todas las funciones",
diff --git a/frontend/messages/fr.json b/frontend/messages/fr.json
index 99beff3c0..a7a31ad1d 100644
--- a/frontend/messages/fr.json
+++ b/frontend/messages/fr.json
@@ -447,7 +447,7 @@
"yourStreamlined": "Votre solution",
"oneStopShop": "tout-en-un",
"forComplianceRiskManagement": "pour la conformité et la gestion des risques.",
- "youCanSetPAsswordHere": "Vous pouvez définir votre mot de passe ici",
+ "youCanSetPAsswordHere": "Vous pouvez définir votre mot de passe ici.",
"setPassword": "Définir le mot de passe",
"logIntoYourAccount": "Connectez-vous à votre compte",
"youNeedToLogIn": "Vous devez vous connecter pour accéder à toutes les fonctionnalités",
@@ -871,7 +871,6 @@
"addTag": "Ajouter une étiquette",
"tagsHelpText": "Les étiquettes sont utilisées pour classer et filtrer les éléments. Vous pouvez ajouter des étiquettes dans la section Extra",
"existingMeasures": "Mesures existantes",
- "youCanSetPasswordHere": "Vous pouvez définir votre mot de passe ici",
"forgotPassword": "Mot de passe oublié",
"ssoSettingsUpdated": "Paramètres SSO mis à jour",
"scoreSemiColon": "Score:",
@@ -903,5 +902,7 @@
"bringTheEvidencesHelpText": "Si désactivé, l'objet sera dupliqué sans ses preuves",
"existingControlsHelper": "Que disposez-vous actuellement pour gérer ce risque",
"extraControlsHelper": "Que ferez-vous pour atténuer ce risque",
- "existingContextHelper": "Description des mesures existantes (ce champ sera bientôt obsolète)"
+ "existingContextHelper": "Description des mesures existantes (ce champ sera bientôt obsolète)",
+ "resetPasswordHere": "Vous pouvez réinitialiser votre mot de passe ici.",
+ "resetPassword": "Réinitialiser le mot de passe"
}
diff --git a/frontend/messages/it.json b/frontend/messages/it.json
index 10b260ee0..675fa1f2d 100644
--- a/frontend/messages/it.json
+++ b/frontend/messages/it.json
@@ -444,7 +444,7 @@
"yourStreamlined": "Il tuo",
"oneStopShop": "punto unico di accesso (one-stop-shop)",
"forComplianceRiskManagement": "per la gestione delle conformità e dei rischi.",
- "youCanSetPAsswordHere": "Puoi impostare la tua password qui",
+ "youCanSetPAsswordHere": "Puoi impostare la tua password qui.",
"setPassword": "Imposta password",
"logIntoYourAccount": "Accedi",
"youNeedToLogIn": "Devi accedere per poter utilizzare tutte le funzionalità",
diff --git a/frontend/messages/nl.json b/frontend/messages/nl.json
index f8efeae7a..b70508109 100644
--- a/frontend/messages/nl.json
+++ b/frontend/messages/nl.json
@@ -444,7 +444,7 @@
"yourStreamlined": "Je gestroomlijnde",
"oneStopShop": "one-stop-shop",
"forComplianceRiskManagement": "voor naleving en risicomanagement.",
- "youCanSetPAsswordHere": "Je kunt hier je wachtwoord instellen",
+ "youCanSetPAsswordHere": "Je kunt hier je wachtwoord instellen.",
"setPassword": "Wachtwoord instellen",
"logIntoYourAccount": "Log in op je account",
"youNeedToLogIn": "Je moet inloggen om toegang te krijgen tot alle functies",
diff --git a/frontend/messages/pl.json b/frontend/messages/pl.json
index 7eff89efe..667ebc3b5 100644
--- a/frontend/messages/pl.json
+++ b/frontend/messages/pl.json
@@ -444,7 +444,7 @@
"yourStreamlined": "Twoje usprawnione",
"oneStopShop": "jedno miejsce",
"forComplianceRiskManagement": "dla zgodności i zarządzania ryzykiem.",
- "youCanSetPAsswordHere": "Możesz ustawić swoje hasło tutaj",
+ "youCanSetPAsswordHere": "Możesz ustawić swoje hasło tutaj.",
"setPassword": "Ustaw hasło",
"logIntoYourAccount": "Zaloguj się na swoje konto",
"youNeedToLogIn": "Musisz się zalogować, aby uzyskać dostęp do wszystkich funkcji",
diff --git a/frontend/messages/pt.json b/frontend/messages/pt.json
index 4c4271b0b..5c69c42e9 100644
--- a/frontend/messages/pt.json
+++ b/frontend/messages/pt.json
@@ -444,7 +444,7 @@
"yourStreamlined": "Sua solução",
"oneStopShop": "tudo em um",
"forComplianceRiskManagement": "para conformidade e gerenciamento de riscos.",
- "youCanSetPAsswordHere": "Você pode definir sua senha aqui",
+ "youCanSetPAsswordHere": "Você pode definir sua senha aqui.",
"setPassword": "Definir senha",
"logIntoYourAccount": "Faça login em sua conta",
"youNeedToLogIn": "Você precisa fazer login para acessar todos os recursos",
diff --git a/frontend/messages/ro.json b/frontend/messages/ro.json
index b451cbb0a..f6c73e91c 100644
--- a/frontend/messages/ro.json
+++ b/frontend/messages/ro.json
@@ -444,7 +444,7 @@
"yourStreamlined": "Asistentul tău",
"oneStopShop": "universal",
"forComplianceRiskManagement": "pentru conformitate și managementul riscurilor.",
- "youCanSetPAsswordHere": "Puteți seta parola dvs. aici",
+ "youCanSetPAsswordHere": "Puteți seta parola dvs. aici.",
"setPassword": "Setează parola",
"logIntoYourAccount": "Conectați-vă la contul dvs.",
"youNeedToLogIn": "Trebuie să vă conectați pentru a accesa toate funcțiile",
diff --git a/frontend/messages/sv.json b/frontend/messages/sv.json
index 2493768ff..7396758e8 100644
--- a/frontend/messages/sv.json
+++ b/frontend/messages/sv.json
@@ -859,7 +859,7 @@
"addTag": "Lägg till etikett",
"tagsHelpText": "Etiketter hjälper till att kategorisera och filtrera flera objekt. Du kan hantera dem i menyn Extra.",
"existingMeasures": "Befintliga kontroller",
- "youCanSetPasswordHere": "Du kan ställa in ditt lösenord här",
+ "youCanSetPasswordHere": "Du kan ställa in ditt lösenord här.",
"forgotPassword": "Glömt lösenord",
"ssoSettingsUpdated": "SSO-inställningar uppdaterade",
"scoreSemiColon": "Göra:",
diff --git a/frontend/src/hooks.server.ts b/frontend/src/hooks.server.ts
index cfcd9c03d..2add51d4a 100644
--- a/frontend/src/hooks.server.ts
+++ b/frontend/src/hooks.server.ts
@@ -4,6 +4,7 @@ import type { User } from '$lib/utils/types';
import { redirect, type Handle, type RequestEvent, type HandleFetch } from '@sveltejs/kit';
import { setFlash } from 'sveltekit-flash-message/server';
import { languageTag, setLanguageTag } from '$paraglide/runtime';
+import { DEFAULT_LANGUAGE } from '$lib/utils/constants';
import { loadFeatureFlags } from '$lib/feature-flags';
@@ -66,7 +67,7 @@ export const handle: Handle = async ({ event, resolve }) => {
const errorId = new URL(event.request.url).searchParams.get('error');
if (errorId) {
- setLanguageTag(event.cookies.get('ciso_lang') || 'en');
+ setLanguageTag(event.cookies.get('ciso_lang') || DEFAULT_LANGUAGE);
setFlash({ type: 'error', message: safeTranslate(errorId) }, event);
redirect(302, '/login');
}
diff --git a/frontend/src/lib/utils/constants.ts b/frontend/src/lib/utils/constants.ts
index 3a4843a96..a3db16041 100644
--- a/frontend/src/lib/utils/constants.ts
+++ b/frontend/src/lib/utils/constants.ts
@@ -6,6 +6,10 @@ export const BASE_API_URL = `${
: 'http://localhost:8000/api'
}`;
+export const DEFAULT_LANGUAGE = `${
+ Object.hasOwn(env, 'PUBLIC_DEFAULT_LANGUAGE') ? env.PUBLIC_DEFAULT_LANGUAGE : 'en'
+}`;
+
export const ALLAUTH_API_URL = `${BASE_API_URL}/_allauth/app/v1`;
export const BACKEND_API_EXPOSED_URL = `${
diff --git a/frontend/src/routes/(app)/+layout.server.ts b/frontend/src/routes/(app)/+layout.server.ts
index 9c3ee0634..42dece87a 100644
--- a/frontend/src/routes/(app)/+layout.server.ts
+++ b/frontend/src/routes/(app)/+layout.server.ts
@@ -1,7 +1,8 @@
import type { LayoutServerLoad } from './$types';
import { redirect } from '@sveltejs/kit';
import { loadFlash } from 'sveltekit-flash-message/server';
-import { setLanguageTag, sourceLanguageTag } from '$paraglide/runtime';
+import { setLanguageTag } from '$paraglide/runtime';
+import { DEFAULT_LANGUAGE } from '$lib/utils/constants';
const loginPageRegex = /^[a-zA-Z0-9]+:\/\/[^\/]+\/login\/?.*$/;
@@ -21,6 +22,6 @@ export const load = loadFlash(async ({ locals, url, cookies, request }) => {
});
}
}
- setLanguageTag(cookies.get('ciso_lang') || sourceLanguageTag);
+ setLanguageTag(cookies.get('ciso_lang') || DEFAULT_LANGUAGE);
return { user: locals.user, settings: locals.settings };
}) satisfies LayoutServerLoad;
diff --git a/frontend/src/routes/(authentication)/first-connexion/+page.svelte b/frontend/src/routes/(authentication)/first-connexion/+page.svelte
index 1c092f59b..6031a533c 100644
--- a/frontend/src/routes/(authentication)/first-connexion/+page.svelte
+++ b/frontend/src/routes/(authentication)/first-connexion/+page.svelte
@@ -39,7 +39,7 @@