From 1137033cf18ac3e760d7a907f20df4ada7f5172d Mon Sep 17 00:00:00 2001 From: Nicholas Castelli Date: Thu, 12 Sep 2024 09:35:03 -0500 Subject: [PATCH 1/3] Adding functionality to d ownload component table data as a csv Signed-off-by: Nicholas Castelli --- src/i18n/locales/en.json | 2 + .../portfolio/projects/ProjectComponents.vue | 49 +++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 04ea8105f..b5f516e28 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -419,6 +419,7 @@ "create_vulnerability": "Create Vulnerability", "created": "Created", "credits": "Credits", + "csv_filetype": "CSV", "custom_license": "Custom License", "custom_license_deleted": "Custom License Deleted", "cvss": "CVSS", @@ -475,6 +476,7 @@ "direct_only": "Direct only", "direction": "Direction", "download_bom": "Download BOM", + "download_component":"Download Components", "email": "Email", "empty_selection": "No items selected", "endpoints": "Endpoints", diff --git a/src/views/portfolio/projects/ProjectComponents.vue b/src/views/portfolio/projects/ProjectComponents.vue index 1d4f87d48..f0c5f6370 100644 --- a/src/views/portfolio/projects/ProjectComponents.vue +++ b/src/views/portfolio/projects/ProjectComponents.vue @@ -50,6 +50,18 @@ >{{ $t('message.inventory_with_vulnerabilities') }} + + + {{ + $t('message.csv_filetype') + }} + + header.map(header => get(row, header)).join(','), + ), + ].join('\r\n') + + const url = window.URL.createObjectURL(new Blob([csv])); + const link = document.createElement('a'); + link.href = url; + let filename = 'componentTable.csv'; + link.setAttribute('download', filename); + document.body.appendChild(link); + link.click(); + } + + }, + downloadTable: async function (fileType) { + const result = await this.downloadTableJson(); + this.buildTableFile(result, fileType) + }, + downloadTableJson: async function () { + let url = `${this.$api.BASE_URL}/${this.$api.URL_COMPONENT}/project/${this.uuid}?limit=1000000&offset=0`; + try { + let response = await this.axios.get(url); + return response; + } + catch (e) { + console.log(e); + return e; + } + }, tableLoaded: function (data) { loadUserPreferencesForBootstrapTable( this, From 0cb60b41d09796aac337ef29937b06cdedd83096 Mon Sep 17 00:00:00 2001 From: Nicholas Castelli Date: Tue, 24 Sep 2024 11:29:55 -0500 Subject: [PATCH 2/3] JS prettier changes and localization updates Signed-off-by: Nicholas Castelli --- src/i18n/locales/de.json | 4 +- src/i18n/locales/en.json | 4 +- src/i18n/locales/es.json | 4 +- src/i18n/locales/fr.json | 4 +- src/i18n/locales/hi.json | 4 +- src/i18n/locales/it.json | 4 +- src/i18n/locales/ja.json | 4 +- src/i18n/locales/pl.json | 4 +- src/i18n/locales/pt-BR.json | 4 +- src/i18n/locales/pt.json | 4 +- src/i18n/locales/ru.json | 4 +- src/i18n/locales/uk-UA.json | 4 +- src/i18n/locales/zh.json | 4 +- .../portfolio/projects/ProjectComponents.vue | 46 +++++++++++-------- 14 files changed, 64 insertions(+), 34 deletions(-) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 979d5e06d..629457355 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -855,7 +855,9 @@ "weakness": "Schwäche", "will_not_fix": "Wird nicht repariert", "workaround_available": "Problemumgehung verfügbar", - "x_trust_boundary": "Vertrauensgrenzen überschreiten" + "x_trust_boundary": "Vertrauensgrenzen überschreiten", + "download_component": "Komponenten herunterladen", + "csv_filetype": "CSV" }, "operator": { "contains_all": "enthält alle", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index b5f516e28..f0e8ac2b0 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -419,7 +419,7 @@ "create_vulnerability": "Create Vulnerability", "created": "Created", "credits": "Credits", - "csv_filetype": "CSV", + "csv_filetype": "CSV ", "custom_license": "Custom License", "custom_license_deleted": "Custom License Deleted", "cvss": "CVSS", @@ -476,7 +476,7 @@ "direct_only": "Direct only", "direction": "Direction", "download_bom": "Download BOM", - "download_component":"Download Components", + "download_component": "Download Components", "email": "Email", "empty_selection": "No items selected", "endpoints": "Endpoints", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 7297b7afa..29fb528b5 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -855,7 +855,9 @@ "weakness": "Debilidad", "will_not_fix": "No se reparara", "workaround_available": "Solución alternativa disponible", - "x_trust_boundary": "Cruzar el límite de confianza" + "x_trust_boundary": "Cruzar el límite de confianza", + "download_component": "Descargar componentes", + "csv_filetype": "CSV" }, "operator": { "contains_all": "contiene todo", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 14bba4b07..2b39df532 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -855,7 +855,9 @@ "weakness": "Faiblesse", "will_not_fix": "Ne sera pas corrigée", "workaround_available": "Solution de contournement disponible", - "x_trust_boundary": "Limte de confiance mutuelle" + "x_trust_boundary": "Limte de confiance mutuelle", + "download_component": "Télécharger les composants", + "csv_filetype": "CSV" }, "operator": { "contains_all": "contient tous", diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 47dbed1fe..4de1ef8e3 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -855,7 +855,9 @@ "weakness": "कमजोरी", "will_not_fix": "ठीक नहीं होगा", "workaround_available": "वैकल्पिक उपाय उपलब्ध है", - "x_trust_boundary": "क्रॉस ट्रस्ट सीमा" + "x_trust_boundary": "क्रॉस ट्रस्ट सीमा", + "download_component": "घटक डाउनलोड करें", + "csv_filetype": "CSV" }, "operator": { "contains_all": "इसमें सभी शामिल हैं", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index c58b0c783..609fc0620 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -855,7 +855,9 @@ "weakness": "Debolezza", "will_not_fix": "Non risolverà", "workaround_available": "Soluzione disponibile", - "x_trust_boundary": "Confine di fiducia incrociata" + "x_trust_boundary": "Confine di fiducia incrociata", + "download_component": "Scarica Componenti", + "csv_filetype": "CSV" }, "operator": { "contains_all": "contiene tutto", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index b054b3749..8cb1e2229 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -855,7 +855,9 @@ "weakness": "弱点", "will_not_fix": "修正しない", "workaround_available": "回避策あり", - "x_trust_boundary": "信頼境界を越える" + "x_trust_boundary": "信頼境界を越える", + "download_component": "コンポーネントをダウンロードする", + "csv_filetype": "CSV" }, "operator": { "contains_all": "すべてを含む", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 83cebffef..d16b5226f 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -855,7 +855,9 @@ "weakness": "Słabość", "will_not_fix": "Nie naprawi", "workaround_available": "Dostępne obejście", - "x_trust_boundary": "Granica zaufania krzyżowego" + "x_trust_boundary": "Granica zaufania krzyżowego", + "download_component": "Pobierz komponenty", + "csv_filetype": "CSV" }, "operator": { "contains_all": "zawiera wszystko", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 0b7bc9225..9d698aba9 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -855,7 +855,9 @@ "weakness": "Fraqueza", "will_not_fix": "Não irá corrigir", "workaround_available": "Solução alternativa disponível", - "x_trust_boundary": "Limite de confiança cruzada" + "x_trust_boundary": "Limite de confiança cruzada", + "download_component": "Baixar componentes", + "csv_filetype": "CSV" }, "operator": { "contains_all": "contém tudo", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 9b9ea0e53..87f22599c 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -855,7 +855,9 @@ "weakness": "Fraqueza", "will_not_fix": "Não irá corrigir", "workaround_available": "Solução alternativa disponível", - "x_trust_boundary": "Limite de confiança cruzada" + "x_trust_boundary": "Limite de confiança cruzada", + "download_component": "Baixar componentes", + "csv_filetype": "CSV" }, "operator": { "contains_all": "contém tudo", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 149ccc33d..a1629e22d 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -855,7 +855,9 @@ "weakness": "Слабость", "will_not_fix": "Не будет исправлено", "workaround_available": "Доступное решение", - "x_trust_boundary": "Пересечение границы доверия" + "x_trust_boundary": "Пересечение границы доверия", + "download_component": "Загрузить компоненты", + "csv_filetype": "CSV" }, "operator": { "contains_all": "содержит все", diff --git a/src/i18n/locales/uk-UA.json b/src/i18n/locales/uk-UA.json index afa35d362..eb02ec65d 100644 --- a/src/i18n/locales/uk-UA.json +++ b/src/i18n/locales/uk-UA.json @@ -855,7 +855,9 @@ "weakness": "Слабкість", "will_not_fix": "Не виправить", "workaround_available": "Доступний обхідний шлях", - "x_trust_boundary": "Перетнути кордон довіри" + "x_trust_boundary": "Перетнути кордон довіри", + "download_component": "Завантажити компоненти", + "csv_filetype": "CSV" }, "operator": { "contains_all": "містить усе", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index bcfa26d72..60a3e5e3b 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -855,7 +855,9 @@ "weakness": "弱点", "will_not_fix": "不会修复", "workaround_available": "有解决方法", - "x_trust_boundary": "跨越信任边界" + "x_trust_boundary": "跨越信任边界", + "download_component": "下载组件", + "csv_filetype": "CSV" }, "operator": { "contains_all": "包含全部", diff --git a/src/views/portfolio/projects/ProjectComponents.vue b/src/views/portfolio/projects/ProjectComponents.vue index f0c5f6370..1a8468067 100644 --- a/src/views/portfolio/projects/ProjectComponents.vue +++ b/src/views/portfolio/projects/ProjectComponents.vue @@ -422,38 +422,44 @@ export default { link.click(); }); }, -buildTableFile: function (json, fileType) { - if(fileType == "csv") { + buildTableFile: function (json, fileType) { + if (fileType == 'csv') { const items = json.data; - const header = ['name', 'version', 'group', 'internal', 'resolvedLicense.licenseId', 'lastInheritedRiskScore', 'metrics.vulnerabilities'];//Object.keys(items[0])//as long as the structure of the json doesnt change these can be static + const header = [ + 'name', + 'version', + 'group', + 'internal', + 'resolvedLicense.licenseId', + 'lastInheritedRiskScore', + 'metrics.vulnerabilities', + ]; //Object.keys(items[0])//as long as the structure of the json doesnt change these can be static const csv = [ header.join(','), - ...items.map(row => - header.map(header => get(row, header)).join(','), - ), - ].join('\r\n') - - const url = window.URL.createObjectURL(new Blob([csv])); - const link = document.createElement('a'); - link.href = url; - let filename = 'componentTable.csv'; - link.setAttribute('download', filename); - document.body.appendChild(link); - link.click(); - } + ...items.map((row) => + header.map((header) => get(row, header)).join(','), + ), + ].join('\r\n'); + const url = window.URL.createObjectURL(new Blob([csv])); + const link = document.createElement('a'); + link.href = url; + let filename = 'componentTable.csv'; + link.setAttribute('download', filename); + document.body.appendChild(link); + link.click(); + } }, downloadTable: async function (fileType) { const result = await this.downloadTableJson(); - this.buildTableFile(result, fileType) + this.buildTableFile(result, fileType); }, downloadTableJson: async function () { - let url = `${this.$api.BASE_URL}/${this.$api.URL_COMPONENT}/project/${this.uuid}?limit=1000000&offset=0`; + let url = `${this.$api.BASE_URL}/${this.$api.URL_COMPONENT}/project/${this.uuid}?limit=1000000&offset=0`; try { let response = await this.axios.get(url); return response; - } - catch (e) { + } catch (e) { console.log(e); return e; } From e31c5d8448f6d500f704461d6261546279c3114e Mon Sep 17 00:00:00 2001 From: Nicholas Castelli Date: Tue, 24 Sep 2024 11:39:18 -0500 Subject: [PATCH 3/3] Prettier changes for localization files Signed-off-by: Nicholas Castelli --- src/i18n/locales/de.json | 6 +++--- src/i18n/locales/es.json | 6 +++--- src/i18n/locales/fr.json | 6 +++--- src/i18n/locales/hi.json | 6 +++--- src/i18n/locales/it.json | 6 +++--- src/i18n/locales/ja.json | 6 +++--- src/i18n/locales/pl.json | 6 +++--- src/i18n/locales/pt-BR.json | 6 +++--- src/i18n/locales/pt.json | 6 +++--- src/i18n/locales/ru.json | 6 +++--- src/i18n/locales/uk-UA.json | 6 +++--- src/i18n/locales/zh.json | 6 +++--- 12 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 629457355..cf96c24ba 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -419,6 +419,7 @@ "create_vulnerability": "Schwachstelle schaffen", "created": "Erstellt", "credits": "Credits", + "csv_filetype": "CSV", "custom_license": "Benutzerdefinierte Lizenz", "custom_license_deleted": "Benutzerdefinierte Lizenz gelöscht", "cvss": "CVSS", @@ -475,6 +476,7 @@ "direct_only": "Nur Direkt", "direction": "Richtung", "download_bom": "BOM herunterladen", + "download_component": "Komponenten herunterladen", "email": "E-Mail", "empty_selection": "Keine Elemente ausgewählt", "endpoints": "Endpunkte", @@ -855,9 +857,7 @@ "weakness": "Schwäche", "will_not_fix": "Wird nicht repariert", "workaround_available": "Problemumgehung verfügbar", - "x_trust_boundary": "Vertrauensgrenzen überschreiten", - "download_component": "Komponenten herunterladen", - "csv_filetype": "CSV" + "x_trust_boundary": "Vertrauensgrenzen überschreiten" }, "operator": { "contains_all": "enthält alle", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 29fb528b5..ae93771e8 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -419,6 +419,7 @@ "create_vulnerability": "Crear vulnerabilidad", "created": "Creado", "credits": "Créditos", + "csv_filetype": "CSV", "custom_license": "Licencia personalizada", "custom_license_deleted": "Licencia personalizada eliminada", "cvss": "cvss", @@ -475,6 +476,7 @@ "direct_only": "Solo directo", "direction": "Dirección", "download_bom": "Descargar lista de materiales", + "download_component": "Descargar componentes", "email": "Correo electrónico", "empty_selection": "No hay elementos seleccionados", "endpoints": "Puntos finales", @@ -855,9 +857,7 @@ "weakness": "Debilidad", "will_not_fix": "No se reparara", "workaround_available": "Solución alternativa disponible", - "x_trust_boundary": "Cruzar el límite de confianza", - "download_component": "Descargar componentes", - "csv_filetype": "CSV" + "x_trust_boundary": "Cruzar el límite de confianza" }, "operator": { "contains_all": "contiene todo", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 2b39df532..54f14c30f 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -419,6 +419,7 @@ "create_vulnerability": "Créer une vulnérabilité", "created": "Créé(e)", "credits": "Crédits", + "csv_filetype": "CSV", "custom_license": "Licence personnalisée", "custom_license_deleted": "Licence personnalisée supprimée", "cvss": "CVSS", @@ -475,6 +476,7 @@ "direct_only": "Direct uniquement", "direction": "Direction", "download_bom": "Télécharger la nomenclature", + "download_component": "Télécharger les composants", "email": "Courriel", "empty_selection": "Aucun élément sélectionné", "endpoints": "Points de terminaison", @@ -855,9 +857,7 @@ "weakness": "Faiblesse", "will_not_fix": "Ne sera pas corrigée", "workaround_available": "Solution de contournement disponible", - "x_trust_boundary": "Limte de confiance mutuelle", - "download_component": "Télécharger les composants", - "csv_filetype": "CSV" + "x_trust_boundary": "Limte de confiance mutuelle" }, "operator": { "contains_all": "contient tous", diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index 4de1ef8e3..cc74353bb 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -419,6 +419,7 @@ "create_vulnerability": "भेद्यता बनाएँ", "created": "बनाया था", "credits": "क्रेडिट", + "csv_filetype": "CSV", "custom_license": "कस्टम लाइसेंस", "custom_license_deleted": "कस्टम लाइसेंस हटाया गया", "cvss": "सीवीएसएस", @@ -475,6 +476,7 @@ "direct_only": "केवल प्रत्यक्ष", "direction": "दिशा", "download_bom": "BOM डाउनलोड करें", + "download_component": "घटक डाउनलोड करें", "email": "ईमेल", "empty_selection": "कोई आइटम चयनित नहीं", "endpoints": "अंतिमबिंदुओं", @@ -855,9 +857,7 @@ "weakness": "कमजोरी", "will_not_fix": "ठीक नहीं होगा", "workaround_available": "वैकल्पिक उपाय उपलब्ध है", - "x_trust_boundary": "क्रॉस ट्रस्ट सीमा", - "download_component": "घटक डाउनलोड करें", - "csv_filetype": "CSV" + "x_trust_boundary": "क्रॉस ट्रस्ट सीमा" }, "operator": { "contains_all": "इसमें सभी शामिल हैं", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 609fc0620..23f1e3501 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -419,6 +419,7 @@ "create_vulnerability": "Crea vulnerabilità", "created": "Creato", "credits": "Crediti", + "csv_filetype": "CSV", "custom_license": "Licenza personalizzata", "custom_license_deleted": "Licenza personalizzata eliminata", "cvss": "CVSS", @@ -475,6 +476,7 @@ "direct_only": "Solo diretto", "direction": "Direzione", "download_bom": "Scarica distinta base", + "download_component": "Scarica Componenti", "email": "E-mail", "empty_selection": "Nessun elemento selezionato", "endpoints": "Endpoint", @@ -855,9 +857,7 @@ "weakness": "Debolezza", "will_not_fix": "Non risolverà", "workaround_available": "Soluzione disponibile", - "x_trust_boundary": "Confine di fiducia incrociata", - "download_component": "Scarica Componenti", - "csv_filetype": "CSV" + "x_trust_boundary": "Confine di fiducia incrociata" }, "operator": { "contains_all": "contiene tutto", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 8cb1e2229..7503e29f0 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -419,6 +419,7 @@ "create_vulnerability": "脆弱性の追加", "created": "作成日", "credits": "クレジット", + "csv_filetype": "CSV", "custom_license": "カスタムライセンス", "custom_license_deleted": "カスタムライセンスが削除されました", "cvss": "CVSS", @@ -475,6 +476,7 @@ "direct_only": "直接のみ", "direction": "方向", "download_bom": "BOMをダウンロード", + "download_component": "コンポーネントをダウンロードする", "email": "Eメール", "empty_selection": "項目が選択されていません", "endpoints": "エンドポイント", @@ -855,9 +857,7 @@ "weakness": "弱点", "will_not_fix": "修正しない", "workaround_available": "回避策あり", - "x_trust_boundary": "信頼境界を越える", - "download_component": "コンポーネントをダウンロードする", - "csv_filetype": "CSV" + "x_trust_boundary": "信頼境界を越える" }, "operator": { "contains_all": "すべてを含む", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index d16b5226f..027481e29 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -419,6 +419,7 @@ "create_vulnerability": "Utwórz lukę", "created": "Utworzony", "credits": "Kredyty", + "csv_filetype": "CSV", "custom_license": "Licencja niestandardowa", "custom_license_deleted": "Usunięto licencję niestandardową", "cvss": "CVSS", @@ -475,6 +476,7 @@ "direct_only": "Tylko bezpośrednie", "direction": "Kierunek", "download_bom": "Pobierz BOM", + "download_component": "Pobierz komponenty", "email": "E-mail", "empty_selection": "Nie wybrano żadnych elementów", "endpoints": "Punkty końcowe", @@ -855,9 +857,7 @@ "weakness": "Słabość", "will_not_fix": "Nie naprawi", "workaround_available": "Dostępne obejście", - "x_trust_boundary": "Granica zaufania krzyżowego", - "download_component": "Pobierz komponenty", - "csv_filetype": "CSV" + "x_trust_boundary": "Granica zaufania krzyżowego" }, "operator": { "contains_all": "zawiera wszystko", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 9d698aba9..381d952ac 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -419,6 +419,7 @@ "create_vulnerability": "Criar vulnerabilidade", "created": "Criada", "credits": "Créditos", + "csv_filetype": "CSV", "custom_license": "Licença personalizada", "custom_license_deleted": "Licença personalizada excluída", "cvss": "CVSS", @@ -475,6 +476,7 @@ "direct_only": "Somente direto", "direction": "Direção", "download_bom": "Baixe a lista técnica", + "download_component": "Baixar componentes", "email": "E-mail", "empty_selection": "Nenhum item selecionado", "endpoints": "Pontos finais", @@ -855,9 +857,7 @@ "weakness": "Fraqueza", "will_not_fix": "Não irá corrigir", "workaround_available": "Solução alternativa disponível", - "x_trust_boundary": "Limite de confiança cruzada", - "download_component": "Baixar componentes", - "csv_filetype": "CSV" + "x_trust_boundary": "Limite de confiança cruzada" }, "operator": { "contains_all": "contém tudo", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 87f22599c..b3f80a09d 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -419,6 +419,7 @@ "create_vulnerability": "Criar vulnerabilidade", "created": "Criada", "credits": "Créditos", + "csv_filetype": "CSV", "custom_license": "Licença personalizada", "custom_license_deleted": "Licença personalizada excluída", "cvss": "CVSS", @@ -475,6 +476,7 @@ "direct_only": "Somente direto", "direction": "Direção", "download_bom": "Baixe a lista técnica", + "download_component": "Baixar componentes", "email": "E-mail", "empty_selection": "Nenhum item selecionado", "endpoints": "Pontos finais", @@ -855,9 +857,7 @@ "weakness": "Fraqueza", "will_not_fix": "Não irá corrigir", "workaround_available": "Solução alternativa disponível", - "x_trust_boundary": "Limite de confiança cruzada", - "download_component": "Baixar componentes", - "csv_filetype": "CSV" + "x_trust_boundary": "Limite de confiança cruzada" }, "operator": { "contains_all": "contém tudo", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index a1629e22d..1478568fc 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -419,6 +419,7 @@ "create_vulnerability": "Создать уязвимость", "created": "Созданный", "credits": "Кредиты", + "csv_filetype": "CSV", "custom_license": "Пользовательская лицензия", "custom_license_deleted": "Пользовательская лицензия удалена", "cvss": "CVSS", @@ -475,6 +476,7 @@ "direct_only": "Только прямой", "direction": "Направление", "download_bom": "Скачать спецификацию", + "download_component": "Загрузить компоненты", "email": "Электронная почта", "empty_selection": "Элементы не выбраны", "endpoints": "Конечные точки", @@ -855,9 +857,7 @@ "weakness": "Слабость", "will_not_fix": "Не будет исправлено", "workaround_available": "Доступное решение", - "x_trust_boundary": "Пересечение границы доверия", - "download_component": "Загрузить компоненты", - "csv_filetype": "CSV" + "x_trust_boundary": "Пересечение границы доверия" }, "operator": { "contains_all": "содержит все", diff --git a/src/i18n/locales/uk-UA.json b/src/i18n/locales/uk-UA.json index eb02ec65d..100a5a14b 100644 --- a/src/i18n/locales/uk-UA.json +++ b/src/i18n/locales/uk-UA.json @@ -419,6 +419,7 @@ "create_vulnerability": "Створити вразливість", "created": "Створено", "credits": "Кредити", + "csv_filetype": "CSV", "custom_license": "Спеціальна ліцензія", "custom_license_deleted": "Спеціальну ліцензію видалено", "cvss": "CVSS", @@ -475,6 +476,7 @@ "direct_only": "Тільки прямий", "direction": "Напрямок", "download_bom": "Завантажити BOM", + "download_component": "Завантажити компоненти", "email": "Електронна пошта", "empty_selection": "Елементи не вибрано", "endpoints": "Кінцеві точки", @@ -855,9 +857,7 @@ "weakness": "Слабкість", "will_not_fix": "Не виправить", "workaround_available": "Доступний обхідний шлях", - "x_trust_boundary": "Перетнути кордон довіри", - "download_component": "Завантажити компоненти", - "csv_filetype": "CSV" + "x_trust_boundary": "Перетнути кордон довіри" }, "operator": { "contains_all": "містить усе", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index 60a3e5e3b..4af100822 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -419,6 +419,7 @@ "create_vulnerability": "创建漏洞", "created": "创建", "credits": "Credits", + "csv_filetype": "CSV", "custom_license": "自定义许可证", "custom_license_deleted": "自定义许可证已删除", "cvss": "计算机视觉安全标准", @@ -475,6 +476,7 @@ "direct_only": "仅限直接", "direction": "方向", "download_bom": "下载 BOM", + "download_component": "下载组件", "email": "电子邮件", "empty_selection": "没有选择任何项目", "endpoints": "终结点", @@ -855,9 +857,7 @@ "weakness": "弱点", "will_not_fix": "不会修复", "workaround_available": "有解决方法", - "x_trust_boundary": "跨越信任边界", - "download_component": "下载组件", - "csv_filetype": "CSV" + "x_trust_boundary": "跨越信任边界" }, "operator": { "contains_all": "包含全部",