diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 803985aa8..5ac312c81 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -231,6 +231,105 @@ "residualInMatrixView": "Residual", "probability": "Probability", "riskLevels": "Risk levels", + "riskLevel": "Risk level", "cancel": "Cancel", - "save": "Save" + "save": "Save", + "NA": "N/A", + "threatAgentFactors": "Threat agent factors", + "vulnerabilityFactors": "Vulnerability factors", + "businessImpactFactors": "Business impact factors", + "technicalImpactFactors": "Technical impact factors", + "assessmentVector": "Assessment vector", + "skillLevelText": "How technically skilled is this group of threat agents?", + "skillLevelChoice1": "No technical skills", + "skillLevelChoice2": "Some technical skills", + "skillLevelChoice3": "Advanced computer user", + "skillLevelChoice4": "Network and programming skills", + "skillLevelChoice5": "Security penetration skills", + "motiveText": "How motivated is this group of threat agents to find and exploit this vulnerability?", + "motiveChoice1": "Low or no reward", + "motiveChoice2": "Possible reward", + "motiveChoice3": "High reward", + "opportunityText": "What resources and opportunities are required for this group of threat agents to find and exploit this vulnerability?", + "opportunityChoice1": "Full access or expensive resources required", + "opportunityChoice2": "Specialized access or resources required", + "opportunityChoice3": "Some access or resources required", + "opportunityChoice4": "No access or resources required", + "sizeText": "How large is this group of threat agents?", + "sizeChoice1": "Developers or system administrators", + "sizeChoice2": "Intranet users", + "sizeChoice3": "Partners", + "sizeChoice4": "Authenticated users", + "sizeChoice5": "Anonymous internet users", + "easeOfDiscoveryText": "How easy is it for this group of threat agents to discover this vulnerability?", + "easeOfDiscoveryChoice1": "Practically impossible", + "easeOfDiscoveryChoice2": "Difficult", + "easeOfDiscoveryChoice3": "Easy", + "easeOfDiscoveryChoice4": "Automated tools available", + "easeOfExploitText": "How easy is it for this group of threat agents to actually exploit this vulnerability?", + "easeOfExploitChoice1": "Theoretical", + "easeOfExploitChoice2": "Difficult", + "easeOfExploitChoice3": "Easy", + "easeOfExploitChoice4": "Automated tools available", + "awarenessText": "How well known is this vulnerability to this group of threat agents?", + "awarenessChoice1": "Unknown", + "awarenessChoice2": "Hidden", + "awarenessChoice3": "Obvious", + "awarenessChoice4": "Public knowledge", + "intrusionDetectionText": "How likely is an exploit to be detected?", + "intrusionDetectionChoice1": "Active detection in application", + "intrusionDetectionChoice2": "Logged and reviewed", + "intrusionDetectionChoice3": "Logged without review", + "intrusionDetectionChoice4": "Not logged", + "financialDamageText": "How much financial damage will result from an exploit?", + "financialDamageChoice1": "Less than the cost to fix the vulnerability", + "financialDamageChoice2": "Minor effect on annual profit", + "financialDamageChoice3": "Significant effect on annual profit", + "financialDamageChoice4": "Bankruptcy", + "reputationDamageText": "Would an exploit result in reputation damage that would harm the business?", + "reputationDamageChoice1": "Minimal damage", + "reputationDamageChoice2": "Loss of major accounts", + "reputationDamageChoice3": "Loss of goodwill", + "reputationDamageChoice4": "Brand damage", + "nonComplianceText": "How much exposure does non-compliance introduce?", + "nonComplianceChoice1": "Minor violation", + "nonComplianceChoice2": "Clear violation", + "nonComplianceChoice3": "High profile violation", + "nonComplianceChoice4": "No exposure", + "privacyViolationText": "How much personally identifiable information could be disclosed?", + "privacyViolationChoice1": "One individual", + "privacyViolationChoice2": "Hundreds of people", + "privacyViolationChoice3": "Thousands of people", + "privacyViolationChoice4": "Millions of people", + "lossOfConfidentialityText": "How much data could be disclosed and how sensitive is it?", + "lossOfConfidentialityChoice1": "Minimal non-sensitive data disclosed", + "lossOfConfidentialityChoice2": "Minimal critical data or extensive non-sensitive data disclosed", + "lossOfConfidentialityChoice3": "Extensive critical data disclosed", + "lossOfConfidentialityChoice4": "All data disclosed", + "lossOfIntegrityText": "How much data could be corrupted and how damaged is it?", + "lossOfIntegrityChoice1": "Minimal slightly corrupt data", + "lossOfIntegrityChoice2": "Minimal seriously corrupt data", + "lossOfIntegrityChoice3": "Extensive slightly corrupt data", + "lossOfIntegrityChoice4": "Extensive seriously corrupt data", + "lossOfIntegrityChoice5": "All data totally corrupt", + "lossOfAvailabilityText": "How much service could be lost and how vital is it?", + "lossOfAvailabilityChoice1": "Minimal secondary services interrupted", + "lossOfAvailabilityChoice2": "Minimal primary or extensive secondary services interrupted", + "lossOfAvailabilityChoice3": "Extensive primary services interrupted", + "lossOfAvailabilityChoice4": "All services completely lost", + "lossOfAccountabilityText": "Are the threat agents' actions traceable to an individual?", + "lossOfAccountabilityChoice1": "Fully traceable", + "lossOfAccountabilityChoice2": "Possibly traceable", + "lossOfAccountabilityChoice3": "Completely anonymous", + "ignore": "Ignore", + "importedLibraries": "Imported libraries", + "librariesStore": "Libraries store", + "currentlyNoImportedLibraries": "You currently have no imported libraries", + "loadingLibraryUploadButton": "Loading the library upload button", + "errorOccuredWhileLoadingLibrary": "The following error occured while loading the library form", + "packager": "Packager", + "dependencies": "Dependencies", + "copyright": "Copyright", + "uploadYourLibrary": "Upload your own library", + "libraryFileInYaml": "Library file in YAML format" } diff --git a/frontend/messages/fr.json b/frontend/messages/fr.json index c0faee951..175ff8a75 100644 --- a/frontend/messages/fr.json +++ b/frontend/messages/fr.json @@ -139,7 +139,7 @@ "residualProba": "Probabilité résiduelle", "residualImpact": "Impact résiduel", "existingMeasures": "Mesures existantes", - "strengthOfKnowledge": "Expertise", + "strengthOfKnowledge": "Force des connaissances", "dueDate": "Date d'échéance", "attachment": "Pièce jointe", "observation": "Observation", @@ -231,6 +231,105 @@ "residualInMatrixView": "Residuelle", "probability": "Probabilité", "riskLevels": "Niveaux de risque", + "riskLevel": "Niveau de risque", "cancel": "Annuler", - "save": "Enregistrer" + "save": "Enregistrer", + "NA": "N/A", + "threatAgentFactors": "Facteurs liés aux agents de menace", + "vulnerabilityFactors": "Facteurs de vulnérabilité", + "businessImpactFactors": "Facteurs d’impact sur les entreprises", + "technicalImpactFactors": "Facteurs d’impact techniques", + "assessmentVector": "Vecteur d'évaluation", + "skillLevelText": "Dans quelle mesure ce groupe d’agents menaçants est-il techniquement compétent ?", + "skillLevelChoice1": "Aucune compétence technique", + "skillLevelChoice2": "Quelques compétences techniques", + "skillLevelChoice3": "Utilisateur informatique avancé", + "skillLevelChoice4": "Compétences en réseau et en programmation", + "skillLevelChoice5": "Compétences en matière de pénétration de la sécurité", + "motiveText": "Dans quelle mesure ce groupe d’agents de menace est-il motivé à trouver et à exploiter cette vulnérabilité ?", + "motiveChoice1": "Récompense faible ou inexistante", + "motiveChoice2": "Récompense possible", + "motiveChoice3": "Récompense élevée", + "opportunityText": "Quelles ressources et opportunités sont nécessaires pour que ce groupe d’agents de menace trouve et exploite cette vulnérabilité ?", + "opportunityChoice1": "Accès complet ou ressources coûteuses requises", + "opportunityChoice2": "Accès spécialisé ou ressources requises", + "opportunityChoice3": "Certains accès ou ressources requis", + "opportunityChoice4": "Aucun accès ni ressources requis", + "sizeText": "Quelle est la taille de ce groupe d’agents menaçants ?", + "sizeChoice1": "Développeurs ou administrateurs système", + "sizeChoice2": "Utilisateurs intranet", + "sizeChoice3": "Les partenaires", + "sizeChoice4": "Utilisateurs authentifiés", + "sizeChoice5": "Internautes anonymes", + "easeOfDiscoveryText": "Est-il facile pour ce groupe d’agents menaçants de découvrir cette vulnérabilité ?", + "easeOfDiscoveryChoice1": "Pratiquement impossible", + "easeOfDiscoveryChoice2": "Difficile", + "easeOfDiscoveryChoice3": "Facile", + "easeOfDiscoveryChoice4": "Outils automatisés disponibles", + "easeOfExploitText": "Dans quelle mesure est-il facile pour ce groupe d’agents menaçants d’exploiter cette vulnérabilité ?", + "easeOfExploitChoice1": "Théorique", + "easeOfExploitChoice2": "Difficile", + "easeOfExploitChoice3": "Facile", + "easeOfExploitChoice4": "Outils automatisés disponibles", + "awarenessText": "Dans quelle mesure cette vulnérabilité est-elle connue de ce groupe d’agents menaçants ?", + "awarenessChoice1": "Inconnu", + "awarenessChoice2": "Caché", + "awarenessChoice3": "Évident", + "awarenessChoice4": "Connaissance publique", + "intrusionDetectionText": "Quelle est la probabilité qu’un exploit soit détecté ?", + "intrusionDetectionChoice1": "Détection active dans l'application", + "intrusionDetectionChoice2": "Enregistré et examiné", + "intrusionDetectionChoice3": "Connecté sans avis", + "intrusionDetectionChoice4": "Non connecté", + "financialDamageText": "Quel préjudice financier résultera d’un exploit ?", + "financialDamageChoice1": "Moins que le coût de correction de la vulnérabilité", + "financialDamageChoice2": "Effet mineur sur le bénéfice annuel", + "financialDamageChoice3": "Effet significatif sur le bénéfice annuel", + "financialDamageChoice4": "La faillite", + "reputationDamageText": "Un exploit entraînerait-il une atteinte à la réputation qui nuirait à l’entreprise ?", + "reputationDamageChoice1": "Dommages minimes", + "reputationDamageChoice2": "Perte de grands comptes", + "reputationDamageChoice3": "Perte de bonne volonté", + "reputationDamageChoice4": "Dommages à la marque", + "nonComplianceText": "Quel degré d’exposition la non-conformité introduit-elle ?", + "nonComplianceChoice1": "Violation mineure", + "nonComplianceChoice2": "Violation claire", + "nonComplianceChoice3": "Violation très médiatisée", + "nonComplianceChoice4": "Aucune exposition", + "privacyViolationText": "Quelle quantité d’informations personnellement identifiables pourrait être divulguée ?", + "privacyViolationChoice1": "Un individu", + "privacyViolationChoice2": "Des centaines de personnes", + "privacyViolationChoice3": "Des milliers de personnes", + "privacyViolationChoice4": "Des millions de personnes", + "lossOfConfidentialityText": "Quelle quantité de données pourrait être divulguée et dans quelle mesure sont-elles sensibles ?", + "lossOfConfidentialityChoice1": "Un minimum de données non sensibles divulguées", + "lossOfConfidentialityChoice2": "Données critiques minimales ou données non sensibles étendues divulguées", + "lossOfConfidentialityChoice3": "De nombreuses données critiques divulguées", + "lossOfConfidentialityChoice4": "Toutes les données divulguées", + "lossOfIntegrityText": "Quelle quantité de données pourrait être corrompue et dans quelle mesure ?", + "lossOfIntegrityChoice1": "Données minimales légèrement corrompues", + "lossOfIntegrityChoice2": "Données minimales sérieusement corrompues", + "lossOfIntegrityChoice3": "Données étendues légèrement corrompues", + "lossOfIntegrityChoice4": "De nombreuses données gravement corrompues", + "lossOfIntegrityChoice5": "Toutes les données totalement corrompues", + "lossOfAvailabilityText": "Quelle quantité de service pourrait être perdue et dans quelle mesure est-il vital ?", + "lossOfAvailabilityChoice1": "Services secondaires minimes interrompus", + "lossOfAvailabilityChoice2": "Services primaires minimes ou services secondaires étendus interrompus", + "lossOfAvailabilityChoice3": "De nombreux services primaires interrompus", + "lossOfAvailabilityChoice4": "Tous les services complètement perdus", + "lossOfAccountabilityText": "Les actions des agents menaçants peuvent-elles être attribuées à un individu ?", + "lossOfAccountabilityChoice1": "Entièrement traçable", + "lossOfAccountabilityChoice2": "Peut-être traçable", + "lossOfAccountabilityChoice3": "Complètement anonyme", + "ignore": "Ignorer", + "importedLibraries": "Bibliothèques importées", + "librariesStore": "Magasin de bibliothèques", + "currentlyNoImportedLibraries": "Vous n'avez actuellement aucune bibliothèque importée", + "loadingLibraryUploadButton": "Chargement du bouton de téléchargement de la bibliothèque", + "errorOccuredWhileLoadingLibrary": "L'erreur suivante s'est produite lors du chargement du formulaire de bibliothèque", + "packager": "Éditeur", + "dependencies": "Dépendances", + "copyright": "Droits d'auteur", + "uploadYourLibrary": "Téléchargez votre propre bibliothèque", + "libraryFileInYaml": "Fichier de librairie en format YAML" } diff --git a/frontend/src/lib/utils/locales.ts b/frontend/src/lib/utils/locales.ts index d375032ab..357b6fd2d 100644 --- a/frontend/src/lib/utils/locales.ts +++ b/frontend/src/lib/utils/locales.ts @@ -168,6 +168,93 @@ export function localItems(languageTag: string): LocalItems { associatedDomains: m.associatedDomains({ languageTag: languageTag }), associatedProjects: m.associatedProjects({ languageTag: languageTag }), associatedUsers: m.associatedUsers({ languageTag: languageTag }), + NA: m.NA({ languageTag: languageTag }), + threatAgentFactors: m.threatAgentFactors({ languageTag: languageTag }), + vulnerabilityFactors: m.vulnerabilityFactors({ languageTag: languageTag }), + businessImpactFactors: m.businessImpactFactors({ languageTag: languageTag }), + technicalImpactFactors: m.technicalImpactFactors({ languageTag: languageTag }), + assessmentVector: m.assessmentVector({ languageTag: languageTag }), + skillLevelText: m.skillLevelText({ languageTag: languageTag }), + skillLevelChoice1: m.skillLevelChoice1({ languageTag: languageTag }), + skillLevelChoice2: m.skillLevelChoice2({ languageTag: languageTag }), + skillLevelChoice3: m.skillLevelChoice3({ languageTag: languageTag }), + skillLevelChoice4: m.skillLevelChoice4({ languageTag: languageTag }), + skillLevelChoice5: m.skillLevelChoice5({ languageTag: languageTag }), + motiveText: m.motiveText({ languageTag: languageTag }), + motiveChoice1: m.motiveChoice1({ languageTag: languageTag }), + motiveChoice2: m.motiveChoice2({ languageTag: languageTag }), + motiveChoice3: m.motiveChoice3({ languageTag: languageTag }), + opportunityText: m.opportunityText({ languageTag: languageTag }), + opportunityChoice1: m.opportunityChoice1({ languageTag: languageTag }), + opportunityChoice2: m.opportunityChoice2({ languageTag: languageTag }), + opportunityChoice3: m.opportunityChoice3({ languageTag: languageTag }), + opportunityChoice4: m.opportunityChoice4({ languageTag: languageTag }), + sizeText: m.sizeText({ languageTag: languageTag }), + sizeChoice1: m.sizeChoice1({ languageTag: languageTag }), + sizeChoice2: m.sizeChoice2({ languageTag: languageTag }), + sizeChoice3: m.sizeChoice3({ languageTag: languageTag }), + sizeChoice4: m.sizeChoice4({ languageTag: languageTag }), + sizeChoice5: m.sizeChoice5({ languageTag: languageTag }), + easeOfDiscoveryText: m.easeOfDiscoveryText({ languageTag: languageTag }), + easeOfDiscoveryChoice1: m.easeOfDiscoveryChoice1({ languageTag: languageTag }), + easeOfDiscoveryChoice2: m.easeOfDiscoveryChoice2({ languageTag: languageTag }), + easeOfDiscoveryChoice3: m.easeOfDiscoveryChoice3({ languageTag: languageTag }), + easeOfDiscoveryChoice4: m.easeOfDiscoveryChoice4({ languageTag: languageTag }), + easeOfExploitText: m.easeOfExploitText({ languageTag: languageTag }), + easeOfExploitChoice1: m.easeOfExploitChoice1({ languageTag: languageTag }), + easeOfExploitChoice2: m.easeOfExploitChoice2({ languageTag: languageTag }), + easeOfExploitChoice3: m.easeOfExploitChoice3({ languageTag: languageTag }), + easeOfExploitChoice4: m.easeOfExploitChoice4({ languageTag: languageTag }), + awarenessText: m.awarenessText({ languageTag: languageTag }), + awarenessChoice1: m.awarenessChoice1({ languageTag: languageTag }), + awarenessChoice2: m.awarenessChoice2({ languageTag: languageTag }), + awarenessChoice3: m.awarenessChoice3({ languageTag: languageTag }), + awarenessChoice4: m.awarenessChoice4({ languageTag: languageTag }), + intrusionDetectionText: m.intrusionDetectionText({ languageTag: languageTag }), + intrusionDetectionChoice1: m.intrusionDetectionChoice1({ languageTag: languageTag }), + intrusionDetectionChoice2: m.intrusionDetectionChoice2({ languageTag: languageTag }), + intrusionDetectionChoice3: m.intrusionDetectionChoice3({ languageTag: languageTag }), + intrusionDetectionChoice4: m.intrusionDetectionChoice4({ languageTag: languageTag }), + financialDamageText: m.financialDamageText({ languageTag: languageTag }), + financialDamageChoice1: m.financialDamageChoice1({ languageTag: languageTag }), + financialDamageChoice2: m.financialDamageChoice2({ languageTag: languageTag }), + financialDamageChoice3: m.financialDamageChoice3({ languageTag: languageTag }), + financialDamageChoice4: m.financialDamageChoice4({ languageTag: languageTag }), + reputationDamageText: m.reputationDamageText({ languageTag: languageTag }), + reputationDamageChoice1: m.reputationDamageChoice1({ languageTag: languageTag }), + reputationDamageChoice2: m.reputationDamageChoice2({ languageTag: languageTag }), + reputationDamageChoice3: m.reputationDamageChoice3({ languageTag: languageTag }), + reputationDamageChoice4: m.reputationDamageChoice4({ languageTag: languageTag }), + nonComplianceText: m.nonComplianceText({ languageTag: languageTag }), + nonComplianceChoice1: m.nonComplianceChoice1({ languageTag: languageTag }), + nonComplianceChoice2: m.nonComplianceChoice2({ languageTag: languageTag }), + nonComplianceChoice3: m.nonComplianceChoice3({ languageTag: languageTag }), + nonComplianceChoice4: m.nonComplianceChoice4({ languageTag: languageTag }), + privacyViolationText: m.privacyViolationText({ languageTag: languageTag }), + privacyViolationChoice1: m.privacyViolationChoice1({ languageTag: languageTag }), + privacyViolationChoice2: m.privacyViolationChoice2({ languageTag: languageTag }), + privacyViolationChoice3: m.privacyViolationChoice3({ languageTag: languageTag }), + privacyViolationChoice4: m.privacyViolationChoice4({ languageTag: languageTag }), + lossOfConfidentialityText: m.lossOfConfidentialityText({ languageTag: languageTag }), + lossOfConfidentialityChoice1: m.lossOfConfidentialityChoice1({ languageTag: languageTag }), + lossOfConfidentialityChoice2: m.lossOfConfidentialityChoice2({ languageTag: languageTag }), + lossOfConfidentialityChoice3: m.lossOfConfidentialityChoice3({ languageTag: languageTag }), + lossOfConfidentialityChoice4: m.lossOfConfidentialityChoice4({ languageTag: languageTag }), + lossOfIntegrityText: m.lossOfIntegrityText({ languageTag: languageTag }), + lossOfIntegrityChoice1: m.lossOfIntegrityChoice1({ languageTag: languageTag }), + lossOfIntegrityChoice2: m.lossOfIntegrityChoice2({ languageTag: languageTag }), + lossOfIntegrityChoice3: m.lossOfIntegrityChoice3({ languageTag: languageTag }), + lossOfIntegrityChoice4: m.lossOfIntegrityChoice4({ languageTag: languageTag }), + lossOfIntegrityChoice5: m.lossOfIntegrityChoice5({ languageTag: languageTag }), + lossOfAvailabilityText: m.lossOfAvailabilityText({ languageTag: languageTag }), + lossOfAvailabilityChoice1: m.lossOfAvailabilityChoice1({ languageTag: languageTag }), + lossOfAvailabilityChoice2: m.lossOfAvailabilityChoice2({ languageTag: languageTag }), + lossOfAvailabilityChoice3: m.lossOfAvailabilityChoice3({ languageTag: languageTag }), + lossOfAvailabilityChoice4: m.lossOfAvailabilityChoice4({ languageTag: languageTag }), + lossOfAccountabilityText: m.lossOfAccountabilityText({ languageTag: languageTag }), + lossOfAccountabilityChoice1: m.lossOfAccountabilityChoice1({ languageTag: languageTag }), + lossOfAccountabilityChoice2: m.lossOfAccountabilityChoice2({ languageTag: languageTag }), + lossOfAccountabilityChoice3: m.lossOfAccountabilityChoice3({ languageTag: languageTag }) }; return LOCAL_ITEMS; } diff --git a/frontend/src/routes/(app)/libraries/+page.svelte b/frontend/src/routes/(app)/libraries/+page.svelte index edd4146f7..a6ddb142a 100644 --- a/frontend/src/routes/(app)/libraries/+page.svelte +++ b/frontend/src/routes/(app)/libraries/+page.svelte @@ -1,5 +1,6 @@ -