Skip to content

Commit

Permalink
Merge pull request #77 from intuitem/translate/extra-category
Browse files Browse the repository at this point in the history
Translate/extra category
  • Loading branch information
eric-intuitem authored Feb 26, 2024
2 parents 27fe975 + 6aa4011 commit c53d796
Show file tree
Hide file tree
Showing 8 changed files with 546 additions and 256 deletions.
101 changes: 100 additions & 1 deletion frontend/messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
103 changes: 101 additions & 2 deletions frontend/messages/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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"
}
87 changes: 87 additions & 0 deletions frontend/src/lib/utils/locales.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Loading

0 comments on commit c53d796

Please sign in to comment.