From b0c4ff6241c630abcaa38a7bc1a1f8d0e8fbc8fa Mon Sep 17 00:00:00 2001 From: abhijeet nardele <234410808+abhijeetnardele24-hash@users.noreply.github.com> Date: Fri, 2 Oct 2026 17:26:18 +0530 Subject: [PATCH 1/9] fix: translate subnet calculator labels (i18n) (#465) --- frontend/src/components/tools/ToolPanels.tsx | 22 ++++++++++---------- frontend/src/messages/de.json | 12 +++++++++++ frontend/src/messages/en.json | 12 +++++++++++ frontend/src/messages/es.json | 12 +++++++++++ frontend/src/messages/fr.json | 12 +++++++++++ frontend/src/messages/it.json | 12 +++++++++++ frontend/src/messages/pl.json | 12 +++++++++++ frontend/src/messages/pt.json | 12 +++++++++++ frontend/src/messages/ru.json | 12 +++++++++++ frontend/src/messages/tr.json | 12 +++++++++++ frontend/src/messages/zh.json | 12 +++++++++++ 11 files changed, 131 insertions(+), 11 deletions(-) diff --git a/frontend/src/components/tools/ToolPanels.tsx b/frontend/src/components/tools/ToolPanels.tsx index 0f74ea25..e4427e83 100644 --- a/frontend/src/components/tools/ToolPanels.tsx +++ b/frontend/src/components/tools/ToolPanels.tsx @@ -550,7 +550,7 @@ function HeadersPanel() { {result.origin_ip && ( - + {result.origin_geo && ( <> @@ -690,7 +690,7 @@ function SubnetPanel() { )} {errors.prefix && {errors.prefix}} - + {prefixMode === 'cidr' && ( @@ -710,15 +710,15 @@ function SubnetPanel() { {result && ( - - - - - - - - - + + + + + + + + + )} diff --git a/frontend/src/messages/de.json b/frontend/src/messages/de.json index 5380eb08..e512c517 100644 --- a/frontend/src/messages/de.json +++ b/frontend/src/messages/de.json @@ -220,6 +220,18 @@ "output": "Ausgabe", "invalid": "Ungültige Eingabe für den gewählten Modus." }, + "subnet": { + "calculate": "Calculate", + "networkAddress": "Network Address", + "subnetMask": "Subnet Mask", + "wildcardMask": "Wildcard Mask", + "broadcastAddress": "Broadcast Address", + "firstUsableIp": "First Usable IP", + "lastUsableIp": "Last Usable IP", + "usableHosts": "Usable Hosts", + "totalAddresses": "Total Addresses", + "ipType": "IP Type" + }, "jwt": { "title": "JWT-Decoder", "placeholder": "JWT-Token einfügen (eyJ...)…", diff --git a/frontend/src/messages/en.json b/frontend/src/messages/en.json index ebcfb71c..72666e50 100644 --- a/frontend/src/messages/en.json +++ b/frontend/src/messages/en.json @@ -220,6 +220,18 @@ "output": "Output", "invalid": "Invalid input for the selected mode." }, + "subnet": { + "calculate": "Calculate", + "networkAddress": "Network Address", + "subnetMask": "Subnet Mask", + "wildcardMask": "Wildcard Mask", + "broadcastAddress": "Broadcast Address", + "firstUsableIp": "First Usable IP", + "lastUsableIp": "Last Usable IP", + "usableHosts": "Usable Hosts", + "totalAddresses": "Total Addresses", + "ipType": "IP Type" + }, "jwt": { "title": "JWT Decoder", "placeholder": "Paste a JWT token (eyJ...)…", diff --git a/frontend/src/messages/es.json b/frontend/src/messages/es.json index 73309b29..0ff37399 100644 --- a/frontend/src/messages/es.json +++ b/frontend/src/messages/es.json @@ -257,6 +257,18 @@ "output": "Salida", "invalid": "Entrada no válida para el modo seleccionado." }, + "subnet": { + "calculate": "Calculate", + "networkAddress": "Network Address", + "subnetMask": "Subnet Mask", + "wildcardMask": "Wildcard Mask", + "broadcastAddress": "Broadcast Address", + "firstUsableIp": "First Usable IP", + "lastUsableIp": "Last Usable IP", + "usableHosts": "Usable Hosts", + "totalAddresses": "Total Addresses", + "ipType": "IP Type" + }, "jwt": { "title": "Decodificador JWT", "placeholder": "Pegue un token JWT (eyJ...)…", diff --git a/frontend/src/messages/fr.json b/frontend/src/messages/fr.json index 66d792b1..3ea2b1af 100644 --- a/frontend/src/messages/fr.json +++ b/frontend/src/messages/fr.json @@ -301,6 +301,18 @@ "output": "Résultat", "invalid": "Entrée invalide pour le mode sélectionné." }, + "subnet": { + "calculate": "Calculate", + "networkAddress": "Network Address", + "subnetMask": "Subnet Mask", + "wildcardMask": "Wildcard Mask", + "broadcastAddress": "Broadcast Address", + "firstUsableIp": "First Usable IP", + "lastUsableIp": "Last Usable IP", + "usableHosts": "Usable Hosts", + "totalAddresses": "Total Addresses", + "ipType": "IP Type" + }, "jwt": { "title": "Décodeur JWT", "placeholder": "Collez un jeton JWT (eyJ...)…", diff --git a/frontend/src/messages/it.json b/frontend/src/messages/it.json index 36d1f200..fe144caf 100644 --- a/frontend/src/messages/it.json +++ b/frontend/src/messages/it.json @@ -220,6 +220,18 @@ "output": "Output", "invalid": "Input non valido per la modalità selezionata." }, + "subnet": { + "calculate": "Calculate", + "networkAddress": "Network Address", + "subnetMask": "Subnet Mask", + "wildcardMask": "Wildcard Mask", + "broadcastAddress": "Broadcast Address", + "firstUsableIp": "First Usable IP", + "lastUsableIp": "Last Usable IP", + "usableHosts": "Usable Hosts", + "totalAddresses": "Total Addresses", + "ipType": "IP Type" + }, "jwt": { "title": "Decoder JWT", "placeholder": "Incolla un token JWT (eyJ...)…", diff --git a/frontend/src/messages/pl.json b/frontend/src/messages/pl.json index 7cfd7392..802d8ad8 100644 --- a/frontend/src/messages/pl.json +++ b/frontend/src/messages/pl.json @@ -266,6 +266,18 @@ "output": "Wynik", "invalid": "Nieprawidłowe dane wejściowe dla wybranego trybu." }, + "subnet": { + "calculate": "Calculate", + "networkAddress": "Network Address", + "subnetMask": "Subnet Mask", + "wildcardMask": "Wildcard Mask", + "broadcastAddress": "Broadcast Address", + "firstUsableIp": "First Usable IP", + "lastUsableIp": "Last Usable IP", + "usableHosts": "Usable Hosts", + "totalAddresses": "Total Addresses", + "ipType": "IP Type" + }, "jwt": { "title": "Dekoder JWT", "placeholder": "Wklej token JWT (eyJ...)…", diff --git a/frontend/src/messages/pt.json b/frontend/src/messages/pt.json index c98d2299..677ebbee 100644 --- a/frontend/src/messages/pt.json +++ b/frontend/src/messages/pt.json @@ -220,6 +220,18 @@ "output": "Saída", "invalid": "Entrada inválida para o modo selecionado." }, + "subnet": { + "calculate": "Calculate", + "networkAddress": "Network Address", + "subnetMask": "Subnet Mask", + "wildcardMask": "Wildcard Mask", + "broadcastAddress": "Broadcast Address", + "firstUsableIp": "First Usable IP", + "lastUsableIp": "Last Usable IP", + "usableHosts": "Usable Hosts", + "totalAddresses": "Total Addresses", + "ipType": "IP Type" + }, "jwt": { "title": "Decodificador JWT", "placeholder": "Cole um token JWT (eyJ...)…", diff --git a/frontend/src/messages/ru.json b/frontend/src/messages/ru.json index cd30e3b8..e835db7c 100644 --- a/frontend/src/messages/ru.json +++ b/frontend/src/messages/ru.json @@ -220,6 +220,18 @@ "output": "Результат", "invalid": "Некорректные данные для выбранного режима." }, + "subnet": { + "calculate": "Calculate", + "networkAddress": "Network Address", + "subnetMask": "Subnet Mask", + "wildcardMask": "Wildcard Mask", + "broadcastAddress": "Broadcast Address", + "firstUsableIp": "First Usable IP", + "lastUsableIp": "Last Usable IP", + "usableHosts": "Usable Hosts", + "totalAddresses": "Total Addresses", + "ipType": "IP Type" + }, "jwt": { "title": "Декодер JWT", "placeholder": "Вставьте JWT-токен (eyJ...)…", diff --git a/frontend/src/messages/tr.json b/frontend/src/messages/tr.json index 5401c27a..4001f278 100644 --- a/frontend/src/messages/tr.json +++ b/frontend/src/messages/tr.json @@ -220,6 +220,18 @@ "output": "Çıktı", "invalid": "Seçilen mod için geçersiz girdi." }, + "subnet": { + "calculate": "Calculate", + "networkAddress": "Network Address", + "subnetMask": "Subnet Mask", + "wildcardMask": "Wildcard Mask", + "broadcastAddress": "Broadcast Address", + "firstUsableIp": "First Usable IP", + "lastUsableIp": "Last Usable IP", + "usableHosts": "Usable Hosts", + "totalAddresses": "Total Addresses", + "ipType": "IP Type" + }, "jwt": { "title": "JWT Çözücü", "placeholder": "Bir JWT belirteci yapıştırın (eyJ...)…", diff --git a/frontend/src/messages/zh.json b/frontend/src/messages/zh.json index c9b55c77..079a8c23 100644 --- a/frontend/src/messages/zh.json +++ b/frontend/src/messages/zh.json @@ -220,6 +220,18 @@ "output": "输出", "invalid": "所选模式的输入无效。" }, + "subnet": { + "calculate": "Calculate", + "networkAddress": "Network Address", + "subnetMask": "Subnet Mask", + "wildcardMask": "Wildcard Mask", + "broadcastAddress": "Broadcast Address", + "firstUsableIp": "First Usable IP", + "lastUsableIp": "Last Usable IP", + "usableHosts": "Usable Hosts", + "totalAddresses": "Total Addresses", + "ipType": "IP Type" + }, "jwt": { "title": "JWT 解码器", "placeholder": "粘贴 JWT 令牌(eyJ...)…", From 7f1007f0fa55705294e6024c14d636cd985560c7 Mon Sep 17 00:00:00 2001 From: abhijeet nardele <234410808+abhijeetnardele24-hash@users.noreply.github.com> Date: Mon, 5 Oct 2026 11:55:43 +0530 Subject: [PATCH 2/9] fix: Add missing headers.ip key and localize subnet panel labels --- frontend/src/messages/de.json | 21 +++++++++++---------- frontend/src/messages/en.json | 1 + frontend/src/messages/es.json | 21 +++++++++++---------- frontend/src/messages/fr.json | 21 +++++++++++---------- frontend/src/messages/it.json | 21 +++++++++++---------- frontend/src/messages/pl.json | 21 +++++++++++---------- frontend/src/messages/pt.json | 21 +++++++++++---------- frontend/src/messages/ru.json | 21 +++++++++++---------- frontend/src/messages/tr.json | 21 +++++++++++---------- frontend/src/messages/zh.json | 21 +++++++++++---------- 10 files changed, 100 insertions(+), 90 deletions(-) diff --git a/frontend/src/messages/de.json b/frontend/src/messages/de.json index e512c517..d5933eb1 100644 --- a/frontend/src/messages/de.json +++ b/frontend/src/messages/de.json @@ -199,6 +199,7 @@ "dmarc": "DMARC", "origin": "Herkunft", "rdns": "rDNS", + "ip": "IP", "city": "Stadt", "country": "Land", "org": "Organisation", @@ -221,16 +222,16 @@ "invalid": "Ungültige Eingabe für den gewählten Modus." }, "subnet": { - "calculate": "Calculate", - "networkAddress": "Network Address", - "subnetMask": "Subnet Mask", - "wildcardMask": "Wildcard Mask", - "broadcastAddress": "Broadcast Address", - "firstUsableIp": "First Usable IP", - "lastUsableIp": "Last Usable IP", - "usableHosts": "Usable Hosts", - "totalAddresses": "Total Addresses", - "ipType": "IP Type" + "calculate": "Berechnen", + "networkAddress": "Netzwerkadresse", + "subnetMask": "Subnetzmaske", + "wildcardMask": "Wildcard-Maske", + "broadcastAddress": "Broadcast-Adresse", + "firstUsableIp": "Erste nutzbare IP", + "lastUsableIp": "Letzte nutzbare IP", + "usableHosts": "Nutzbare Hosts", + "totalAddresses": "Adressen gesamt", + "ipType": "IP-Typ" }, "jwt": { "title": "JWT-Decoder", diff --git a/frontend/src/messages/en.json b/frontend/src/messages/en.json index 72666e50..9fce5713 100644 --- a/frontend/src/messages/en.json +++ b/frontend/src/messages/en.json @@ -199,6 +199,7 @@ "dmarc": "DMARC", "origin": "Origin", "rdns": "rDNS", + "ip": "IP", "city": "City", "country": "Country", "org": "Org", diff --git a/frontend/src/messages/es.json b/frontend/src/messages/es.json index 0ff37399..d623b099 100644 --- a/frontend/src/messages/es.json +++ b/frontend/src/messages/es.json @@ -236,6 +236,7 @@ "dmarc": "DMARC", "origin": "Origen", "rdns": "rDNS", + "ip": "IP", "city": "Ciudad", "country": "País", "org": "Organización", @@ -258,16 +259,16 @@ "invalid": "Entrada no válida para el modo seleccionado." }, "subnet": { - "calculate": "Calculate", - "networkAddress": "Network Address", - "subnetMask": "Subnet Mask", - "wildcardMask": "Wildcard Mask", - "broadcastAddress": "Broadcast Address", - "firstUsableIp": "First Usable IP", - "lastUsableIp": "Last Usable IP", - "usableHosts": "Usable Hosts", - "totalAddresses": "Total Addresses", - "ipType": "IP Type" + "calculate": "Calcular", + "networkAddress": "Dirección de red", + "subnetMask": "Máscara de subred", + "wildcardMask": "Máscara wildcard", + "broadcastAddress": "Dirección de difusión", + "firstUsableIp": "Primera IP utilizable", + "lastUsableIp": "Última IP utilizable", + "usableHosts": "Hosts utilizables", + "totalAddresses": "Direcciones totales", + "ipType": "Tipo de IP" }, "jwt": { "title": "Decodificador JWT", diff --git a/frontend/src/messages/fr.json b/frontend/src/messages/fr.json index 3ea2b1af..efd0e7c5 100644 --- a/frontend/src/messages/fr.json +++ b/frontend/src/messages/fr.json @@ -280,6 +280,7 @@ "dmarc": "DMARC", "origin": "Origine", "rdns": "rDNS", + "ip": "IP", "city": "Ville", "country": "Pays", "org": "Organisation", @@ -302,16 +303,16 @@ "invalid": "Entrée invalide pour le mode sélectionné." }, "subnet": { - "calculate": "Calculate", - "networkAddress": "Network Address", - "subnetMask": "Subnet Mask", - "wildcardMask": "Wildcard Mask", - "broadcastAddress": "Broadcast Address", - "firstUsableIp": "First Usable IP", - "lastUsableIp": "Last Usable IP", - "usableHosts": "Usable Hosts", - "totalAddresses": "Total Addresses", - "ipType": "IP Type" + "calculate": "Calculer", + "networkAddress": "Adresse réseau", + "subnetMask": "Masque de sous-réseau", + "wildcardMask": "Masque générique", + "broadcastAddress": "Adresse de diffusion", + "firstUsableIp": "Première IP utilisable", + "lastUsableIp": "Dernière IP utilisable", + "usableHosts": "Hôtes utilisables", + "totalAddresses": "Adresses totales", + "ipType": "Type d'IP" }, "jwt": { "title": "Décodeur JWT", diff --git a/frontend/src/messages/it.json b/frontend/src/messages/it.json index fe144caf..90c13898 100644 --- a/frontend/src/messages/it.json +++ b/frontend/src/messages/it.json @@ -199,6 +199,7 @@ "dmarc": "DMARC", "origin": "Origine", "rdns": "rDNS", + "ip": "IP", "city": "Città", "country": "Paese", "org": "Org", @@ -221,16 +222,16 @@ "invalid": "Input non valido per la modalità selezionata." }, "subnet": { - "calculate": "Calculate", - "networkAddress": "Network Address", - "subnetMask": "Subnet Mask", - "wildcardMask": "Wildcard Mask", - "broadcastAddress": "Broadcast Address", - "firstUsableIp": "First Usable IP", - "lastUsableIp": "Last Usable IP", - "usableHosts": "Usable Hosts", - "totalAddresses": "Total Addresses", - "ipType": "IP Type" + "calculate": "Calcola", + "networkAddress": "Indirizzo di rete", + "subnetMask": "Maschera di sottorete", + "wildcardMask": "Maschera wildcard", + "broadcastAddress": "Indirizzo di broadcast", + "firstUsableIp": "Primo IP utilizzabile", + "lastUsableIp": "Ultimo IP utilizzabile", + "usableHosts": "Host utilizzabili", + "totalAddresses": "Indirizzi totali", + "ipType": "Tipo di IP" }, "jwt": { "title": "Decoder JWT", diff --git a/frontend/src/messages/pl.json b/frontend/src/messages/pl.json index 802d8ad8..b1bd4d33 100644 --- a/frontend/src/messages/pl.json +++ b/frontend/src/messages/pl.json @@ -245,6 +245,7 @@ "dmarc": "DMARC", "origin": "Pochodzenie", "rdns": "rDNS", + "ip": "IP", "city": "Miasto", "country": "Kraj", "org": "Organizacja", @@ -267,16 +268,16 @@ "invalid": "Nieprawidłowe dane wejściowe dla wybranego trybu." }, "subnet": { - "calculate": "Calculate", - "networkAddress": "Network Address", - "subnetMask": "Subnet Mask", - "wildcardMask": "Wildcard Mask", - "broadcastAddress": "Broadcast Address", - "firstUsableIp": "First Usable IP", - "lastUsableIp": "Last Usable IP", - "usableHosts": "Usable Hosts", - "totalAddresses": "Total Addresses", - "ipType": "IP Type" + "calculate": "Oblicz", + "networkAddress": "Adres sieci", + "subnetMask": "Maska podsieci", + "wildcardMask": "Maska odwrotna", + "broadcastAddress": "Adres rozgłoszeniowy", + "firstUsableIp": "Pierwszy użyteczny IP", + "lastUsableIp": "Ostatni użyteczny IP", + "usableHosts": "Użyteczne hosty", + "totalAddresses": "Łączna liczba adresów", + "ipType": "Typ IP" }, "jwt": { "title": "Dekoder JWT", diff --git a/frontend/src/messages/pt.json b/frontend/src/messages/pt.json index 677ebbee..ba389d72 100644 --- a/frontend/src/messages/pt.json +++ b/frontend/src/messages/pt.json @@ -199,6 +199,7 @@ "dmarc": "DMARC", "origin": "Origem", "rdns": "rDNS", + "ip": "IP", "city": "Cidade", "country": "País", "org": "Org", @@ -221,16 +222,16 @@ "invalid": "Entrada inválida para o modo selecionado." }, "subnet": { - "calculate": "Calculate", - "networkAddress": "Network Address", - "subnetMask": "Subnet Mask", - "wildcardMask": "Wildcard Mask", - "broadcastAddress": "Broadcast Address", - "firstUsableIp": "First Usable IP", - "lastUsableIp": "Last Usable IP", - "usableHosts": "Usable Hosts", - "totalAddresses": "Total Addresses", - "ipType": "IP Type" + "calculate": "Calcular", + "networkAddress": "Endereço de rede", + "subnetMask": "Máscara de sub-rede", + "wildcardMask": "Máscara curinga", + "broadcastAddress": "Endereço de broadcast", + "firstUsableIp": "Primeiro IP utilizável", + "lastUsableIp": "Último IP utilizável", + "usableHosts": "Hosts utilizáveis", + "totalAddresses": "Total de endereços", + "ipType": "Tipo de IP" }, "jwt": { "title": "Decodificador JWT", diff --git a/frontend/src/messages/ru.json b/frontend/src/messages/ru.json index e835db7c..00b9a94b 100644 --- a/frontend/src/messages/ru.json +++ b/frontend/src/messages/ru.json @@ -199,6 +199,7 @@ "dmarc": "DMARC", "origin": "Источник", "rdns": "rDNS", + "ip": "IP", "city": "Город", "country": "Страна", "org": "Организация", @@ -221,16 +222,16 @@ "invalid": "Некорректные данные для выбранного режима." }, "subnet": { - "calculate": "Calculate", - "networkAddress": "Network Address", - "subnetMask": "Subnet Mask", - "wildcardMask": "Wildcard Mask", - "broadcastAddress": "Broadcast Address", - "firstUsableIp": "First Usable IP", - "lastUsableIp": "Last Usable IP", - "usableHosts": "Usable Hosts", - "totalAddresses": "Total Addresses", - "ipType": "IP Type" + "calculate": "Рассчитать", + "networkAddress": "Адрес сети", + "subnetMask": "Маска подсети", + "wildcardMask": "Обратная маска", + "broadcastAddress": "Широковещательный адрес", + "firstUsableIp": "Первый доступный IP", + "lastUsableIp": "Последний доступный IP", + "usableHosts": "Доступные хосты", + "totalAddresses": "Всего адресов", + "ipType": "Тип IP" }, "jwt": { "title": "Декодер JWT", diff --git a/frontend/src/messages/tr.json b/frontend/src/messages/tr.json index 4001f278..c4023689 100644 --- a/frontend/src/messages/tr.json +++ b/frontend/src/messages/tr.json @@ -199,6 +199,7 @@ "dmarc": "DMARC", "origin": "Kaynak", "rdns": "rDNS", + "ip": "IP", "city": "Şehir", "country": "Ülke", "org": "Kuruluş", @@ -221,16 +222,16 @@ "invalid": "Seçilen mod için geçersiz girdi." }, "subnet": { - "calculate": "Calculate", - "networkAddress": "Network Address", - "subnetMask": "Subnet Mask", - "wildcardMask": "Wildcard Mask", - "broadcastAddress": "Broadcast Address", - "firstUsableIp": "First Usable IP", - "lastUsableIp": "Last Usable IP", - "usableHosts": "Usable Hosts", - "totalAddresses": "Total Addresses", - "ipType": "IP Type" + "calculate": "Hesapla", + "networkAddress": "Ağ Adresi", + "subnetMask": "Alt Ağ Maskesi", + "wildcardMask": "Wildcard Maskesi", + "broadcastAddress": "Yayın Adresi", + "firstUsableIp": "İlk Kullanılabilir IP", + "lastUsableIp": "Son Kullanılabilir IP", + "usableHosts": "Kullanılabilir Host Sayısı", + "totalAddresses": "Toplam Adres", + "ipType": "IP Türü" }, "jwt": { "title": "JWT Çözücü", diff --git a/frontend/src/messages/zh.json b/frontend/src/messages/zh.json index 079a8c23..692c87be 100644 --- a/frontend/src/messages/zh.json +++ b/frontend/src/messages/zh.json @@ -199,6 +199,7 @@ "dmarc": "DMARC", "origin": "来源", "rdns": "rDNS", + "ip": "IP", "city": "城市", "country": "国家", "org": "组织", @@ -221,16 +222,16 @@ "invalid": "所选模式的输入无效。" }, "subnet": { - "calculate": "Calculate", - "networkAddress": "Network Address", - "subnetMask": "Subnet Mask", - "wildcardMask": "Wildcard Mask", - "broadcastAddress": "Broadcast Address", - "firstUsableIp": "First Usable IP", - "lastUsableIp": "Last Usable IP", - "usableHosts": "Usable Hosts", - "totalAddresses": "Total Addresses", - "ipType": "IP Type" + "calculate": "计算", + "networkAddress": "网络地址", + "subnetMask": "子网掩码", + "wildcardMask": "通配符掩码", + "broadcastAddress": "广播地址", + "firstUsableIp": "第一个可用 IP", + "lastUsableIp": "最后一个可用 IP", + "usableHosts": "可用主机数", + "totalAddresses": "地址总数", + "ipType": "IP 类型" }, "jwt": { "title": "JWT 解码器", From 35588a653d3c8059d69c0ad85dbeb5e6294ade6d Mon Sep 17 00:00:00 2001 From: abhijeet nardele <234410808+abhijeetnardele24-hash@users.noreply.github.com> Date: Fri, 9 Oct 2026 00:59:40 +0530 Subject: [PATCH 3/9] feat: completely translate all ScanResult fields into 10 languages --- frontend/src/components/views/ScanResults.tsx | 252 +++++++++--------- frontend/src/messages/de.json | 62 +++++ frontend/src/messages/en.json | 62 +++++ frontend/src/messages/es.json | 62 +++++ frontend/src/messages/fr.json | 62 +++++ frontend/src/messages/it.json | 62 +++++ frontend/src/messages/pl.json | 62 +++++ frontend/src/messages/pt.json | 62 +++++ frontend/src/messages/ru.json | 62 +++++ frontend/src/messages/tr.json | 62 +++++ frontend/src/messages/zh.json | 62 +++++ 11 files changed, 746 insertions(+), 126 deletions(-) diff --git a/frontend/src/components/views/ScanResults.tsx b/frontend/src/components/views/ScanResults.tsx index cdb490e8..317045c5 100644 --- a/frontend/src/components/views/ScanResults.tsx +++ b/frontend/src/components/views/ScanResults.tsx @@ -182,7 +182,7 @@ function MapView({ scanId, onCopy }: { scanId: string; onCopy: (value: string) = IP
{m.ip} - onCopy(m.ip ?? '')} label="Copy IP" /> + onCopy(m.ip ?? '')} label={t('results.fields.copyIp')} />
)} @@ -504,7 +504,7 @@ class TabErrorBoundary extends React.Component< } } export function ScanResults({ scan, onHome }: Props) { - const { t: i18n, locale } = useTranslations(); + const { t, locale } = useTranslations(); const [tab, setTab] = useState('findings'); const [aiSummary, setAiSummary] = useState(''); const [aiLoading, setAiLoading] = useState(false); @@ -820,9 +820,9 @@ export function ScanResults({ scan, onHome }: Props) { if (!allEmails.length) return; try { await navigator.clipboard.writeText(allEmails.join('\n')); - showToast(i18n('results.emailsCopied') || 'Emails copied!'); + showToast(t('results.emailsCopied') || 'Emails copied!'); } catch { - showToast(i18n('common.copyFailed') || 'Copy failed'); + showToast(t('common.copyFailed') || 'Copy failed'); } }; @@ -884,7 +884,7 @@ export function ScanResults({ scan, onHome }: Props) {
{scan.target}
- copyValue(scan.target)} label="Copy target" /> + copyValue(scan.target)} label={t('results.fields.copyTarget')} />
{scan.scan_type?.toUpperCase()} @@ -892,43 +892,43 @@ export function ScanResults({ scan, onHome }: Props) { {scan.started_at.slice(0, 19).replace('T', ' ')} )} {scanDuration && ( - {i18n('results.duration').replace('{duration}', scanDuration) !== `results.duration` ? i18n('results.duration').replace('{duration}', scanDuration) : `Completed in ${scanDuration}`} + {t('results.duration').replace('{duration}', scanDuration) !== `results.duration` ? t('results.duration').replace('{duration}', scanDuration) : `Completed in ${scanDuration}`} )}
{allEmails.length >= 2 && ( )}
@@ -991,7 +991,7 @@ export function ScanResults({ scan, onHome }: Props) { {visibleTabs.map(({ id, label, icon: Icon }) => ( ))} @@ -999,14 +999,14 @@ export function ScanResults({ scan, onHome }: Props) {
{tab === 'findings' && (
{opsec?.all_findings?.length ? ( - {i18n('results.copyAllFindings') !== 'results.copyAllFindings' ? i18n('results.copyAllFindings') : 'Copy all findings'} + {t('results.copyAllFindings') !== 'results.copyAllFindings' ? t('results.copyAllFindings') : 'Copy all findings'} } > {opsec.all_findings.map((f, i) => )} ) : ( -
{i18n('results.common.noSecurityFindings')}
+
{t('results.common.noSecurityFindings')}
)}
)} {tab === 'whois' && r.whois && ( - refreshModule('whois')} refreshing={isRefreshing('whois')}> + refreshModule('whois')} refreshing={isRefreshing('whois')}>
- - - - - + + + + + {r.whois.emails?.length && (
Emails
{r.whois.emails.map(e => ( {e} - copyValue(e)} label="Copy email" /> + copyValue(e)} label={t('results.fields.copyEmail')} /> ))}
@@ -1057,7 +1057,7 @@ export function ScanResults({ scan, onHome }: Props) { {r.whois.name_servers.slice(0, 4).map(ns => ( {ns} - copyValue(ns)} label="Copy domain" /> + copyValue(ns)} label={t('results.fields.copyDomain')} /> ))}
@@ -1069,7 +1069,7 @@ export function ScanResults({ scan, onHome }: Props) { {/* RDAP */} {tab === 'rdap' && r.rdap && !r.rdap.error && ( - refreshModule('rdap')} refreshing={isRefreshing('rdap')}> + refreshModule('rdap')} refreshing={isRefreshing('rdap')}>
{r.rdap.registered === false && (
Domain is not registered
@@ -1109,11 +1109,11 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'dns' && r.dns?.records && ( - refreshModule('dns')} refreshing={isRefreshing('dns')}> + refreshModule('dns')} refreshing={isRefreshing('dns')}> {Object.entries(r.dns.records).filter(([, v]) => Array.isArray(v) && v.length > 0).length === 0 ? (
-
{i18n('results.common.noDnsRecords')}
+
{t('results.common.noDnsRecords')}
) : ( Object.entries(r.dns.records).filter(([, v]) => Array.isArray(v) && v.length > 0).map(([type, records]) => ( @@ -1124,7 +1124,7 @@ export function ScanResults({ scan, onHome }: Props) { return (
{text}
- copyValue(text)} label="Copy DNS record" /> + copyValue(text)} label={t('results.fields.copyDnsRecord')} />
); })} @@ -1141,7 +1141,7 @@ export function ScanResults({ scan, onHome }: Props) { {r.cert_transparency.subdomains?.map(s => ( {s} - copyValue(s)} label="Copy subdomain" /> + copyValue(s)} label={t('results.fields.copySubdomain')} /> ))}
@@ -1149,7 +1149,7 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'accounts' && ( - refreshModule('blackbird')} refreshing={isRefreshing('blackbird')}> + refreshModule('blackbird')} refreshing={isRefreshing('blackbird')}>
{"Heuristic matches from profile-page responses - false positives are possible on sites that serve a page for any username. Open each link to confirm before relying on it."}
@@ -1160,7 +1160,7 @@ export function ScanResults({ scan, onHome }: Props) { type="text" value={accountFilter} onChange={e => setAccountFilter(e.target.value)} - placeholder={i18n('results.filterPlatforms') !== 'results.filterPlatforms' ? i18n('results.filterPlatforms') : 'Filter platforms...'} + placeholder={t('results.filterPlatforms') !== 'results.filterPlatforms' ? t('results.filterPlatforms') : 'Filter platforms...'} className="input-field w-full pl-9 text-[12px] h-9" />
@@ -1176,7 +1176,7 @@ export function ScanResults({ scan, onHome }: Props) {
{b.url} - copyValue(b.url)} label="Copy username URL" /> + copyValue(b.url)} label={t('results.fields.copyUsernameUrl')} />
{b.response_time?.toFixed(2)}s @@ -1196,28 +1196,28 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'github' && ( - refreshModule('github')} refreshing={isRefreshing('github')}> + refreshModule('github')} refreshing={isRefreshing('github')}>
{r.github?.profile?.html_url && ( )} - - - - - - - - - + + + + + + + + + - - + +
{(r.github?.top_languages?.length ?? 0) > 0 && (
@@ -1237,14 +1237,14 @@ export function ScanResults({ scan, onHome }: Props) { {r.github?.emails?.map(e => ( {e} - copyValue(e)} label="Copy email" /> + copyValue(e)} label={t('results.fields.copyEmail')} /> ))}
)} {r.github?.commit_emails_checked === false && (
- {i18n('results.github.commitEmailsNotChecked')} + {t('results.github.commitEmailsNotChecked')} {r.github.status_reason ? `: ${r.github.status_reason}` : ''}
)} @@ -1255,9 +1255,9 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'threats' && (
- refreshModule('virustotal')} refreshing={isRefreshing('virustotal')}> + refreshModule('virustotal')} refreshing={isRefreshing('virustotal')}> {!r.virustotal?.malicious && !r.virustotal?.suspicious && !r.virustotal?.harmless && !r.virustotal?.undetected ? ( -
{i18n('results.common.noThreats')}
+
{t('results.common.noThreats')}
) : ( <>
@@ -1269,15 +1269,15 @@ export function ScanResults({ scan, onHome }: Props) { ))}
- - + +
)}
- refreshModule('abuseipdb')} refreshing={isRefreshing('abuseipdb')}> + refreshModule('abuseipdb')} refreshing={isRefreshing('abuseipdb')}> {!r.abuseipdb?.abuse_score && !r.abuseipdb?.total_reports && !r.abuseipdb?.isp && !r.abuseipdb?.usage_type ? ( -
{i18n('results.common.noThreats')}
+
{t('results.common.noThreats')}
) : (
Abuse Score @@ -1285,14 +1285,14 @@ export function ScanResults({ scan, onHome }: Props) { {r.abuseipdb?.abuse_score}/100
- - - + + + {r.abuseipdb?.is_tor &&
⚠ TOR Exit Node
}
)}
- refreshModule('shodan')} refreshing={isRefreshing('shodan')}> + refreshModule('shodan')} refreshing={isRefreshing('shodan')}> {r.shodan?.source === 'internetdb' && (
{"Ports, hostnames and CVEs below come from InternetDB, Shodan's free dataset. It carries no organisation, location or service banners — a paid Shodan key fills those in."} @@ -1304,7 +1304,7 @@ export function ScanResults({ scan, onHome }: Props) { {r.shodan.open_ports.map(p => ( {p} - copyValue(p)} label="Copy Shodan port" /> + copyValue(p)} label={t('results.fields.copyShodanPort')} /> ))}
@@ -1316,7 +1316,7 @@ export function ScanResults({ scan, onHome }: Props) {
) : null} {!r.shodan?.open_ports?.length && !r.shodan?.vulns?.length && ( -
{i18n('results.common.noThreats')}
+
{t('results.common.noThreats')}
)}
@@ -1334,7 +1334,7 @@ export function ScanResults({ scan, onHome }: Props) { {r.censys.open_ports.map(p => ( {p} - copyValue(p)} label="Copy port" /> + copyValue(p)} label={t('results.fields.copyPort')} /> ))} @@ -1346,7 +1346,7 @@ export function ScanResults({ scan, onHome }: Props) { {r.censys.subdomains.map(s => ( {s} - copyValue(s)} label="Copy subdomain" /> + copyValue(s)} label={t('results.fields.copySubdomain')} /> ))} @@ -1384,7 +1384,7 @@ export function ScanResults({ scan, onHome }: Props) {
{item.source} {item.url} - copyValue(item.url)} label="Copy onion URL" /> + copyValue(item.url)} label={t('results.fields.copyOnionUrl')} />
{item.title &&
{item.title}
} {item.description &&
{item.description}
} @@ -1395,7 +1395,7 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'wayback' && r.wayback && ( - refreshModule('wayback')} refreshing={isRefreshing('wayback')}> + refreshModule('wayback')} refreshing={isRefreshing('wayback')}> {!r.wayback.snapshots?.length && !r.wayback.interesting?.length ? (
@@ -1443,7 +1443,7 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'email' && (
{r.emailrep && !r.emailrep.error && ( - refreshModule('emailrep')} refreshing={isRefreshing('emailrep')}> + refreshModule('emailrep')} refreshing={isRefreshing('emailrep')}>
Reputation @@ -1467,7 +1467,7 @@ export function ScanResults({ scan, onHome }: Props) {
DMARC {r.emailrep.dmarc ? 'Yes' : 'No'}
- + {r.emailrep.disposable &&
⚠ Disposable email detected
} {r.emailrep.spoofable &&
⚠ Domain is spoofable (missing SPF/DMARC)
} {r.emailrep.free_provider &&
Free email provider
} @@ -1480,12 +1480,12 @@ export function ScanResults({ scan, onHome }: Props) { )} {r.emailrep?.error && ( - refreshModule('emailrep')} refreshing={isRefreshing('emailrep')}> + refreshModule('emailrep')} refreshing={isRefreshing('emailrep')}>
{r.emailrep.error}
)} {r.smtp && !r.smtp.error && ( - refreshModule('smtp')} refreshing={isRefreshing('smtp')}> + refreshModule('smtp')} refreshing={isRefreshing('smtp')}>
Exists @@ -1507,7 +1507,7 @@ export function ScanResults({ scan, onHome }: Props) {
)} - refreshModule('leaks', ['breaches'])} refreshing={isRefreshing('leaks')}> + refreshModule('leaks', ['breaches'])} refreshing={isRefreshing('leaks')}>
{(r.breaches?.breaches?.length ?? 0) === 0 && r.breaches?.found === false && (
✓ No breaches found
@@ -1527,7 +1527,7 @@ export function ScanResults({ scan, onHome }: Props) {
)} - {r.breaches?.total !== undefined && } + {r.breaches?.total !== undefined && }
@@ -1535,14 +1535,14 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'gravatar' && ( refreshModule('gravatar')} refreshing={isRefreshing('gravatar')} >
- + {r.gravatar?.avatar_url && (
Avatar URL @@ -1591,7 +1591,7 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'hudsonrock' && ( refreshModule('hudsonrock')} refreshing={isRefreshing('hudsonrock')} @@ -1606,10 +1606,10 @@ export function ScanResults({ scan, onHome }: Props) { {r.hudsonrock?.target_type === 'domain' ? ( <>
- - - - + + + +
{(r.hudsonrock?.employee_urls?.length ?? 0) > 0 && ( @@ -1650,19 +1650,19 @@ export function ScanResults({ scan, onHome }: Props) { Employee password strength
- - - - + + + +
)} ) : (
- - - + + +
)}
@@ -1671,7 +1671,7 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'lunar' && ( refreshModule('lunar')} refreshing={isRefreshing('lunar')} @@ -1682,14 +1682,14 @@ export function ScanResults({ scan, onHome }: Props) {
- - - - - - - - + + + + + + + +
{(r.lunar?.malware_families?.length ?? 0) > 0 && ( @@ -1744,7 +1744,7 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'dorks' && r.dorks && ( - + {r.dorks.length === 0 ? (
No dorks generated
) : ( @@ -1753,7 +1753,7 @@ export function ScanResults({ scan, onHome }: Props) { {d} + aria-label={t('results.searchGoogle')}>
@@ -1763,16 +1763,16 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'phone' && r.phone && ( - refreshModule('hlr', ['hlr', 'phone_owner', 'phone'])} refreshing={isRefreshing('hlr')}> + refreshModule('hlr', ['hlr', 'phone_owner', 'phone'])} refreshing={isRefreshing('hlr')}>
Valid {r.phone.valid ? 'Yes' : 'No'}
- - - - - + + + + + {r.phone.timezones?.length && (
Timezones
{r.phone.timezones.map(tz => {tz})}
@@ -1780,8 +1780,8 @@ export function ScanResults({ scan, onHome }: Props) { )} {r.phone.reverse && ( <> - - + + )}
@@ -1789,7 +1789,7 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'telegram' && r.telegram && ( - refreshModule('telegram')} refreshing={isRefreshing('telegram')}> + refreshModule('telegram')} refreshing={isRefreshing('telegram')}> {r.telegram.error ? (
{r.telegram.error}
) : ( @@ -1797,24 +1797,24 @@ export function ScanResults({ scan, onHome }: Props) {
Found {r.telegram.found ? 'Yes' : 'No'}
- - - - - {r.telegram.followers && } + + + + + {r.telegram.followers && }
)}
)} {tab === 'map' && ( - + )} {tab === 'graph' && ( - +
@@ -1855,7 +1855,7 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'ai' && (
- +
@@ -1891,7 +1891,7 @@ export function ScanResults({ scan, onHome }: Props) {
{aiModel &&
Model: {aiModel}
}
- copyValue(aiSummary)} label="Copy summary" /> + copyValue(aiSummary)} label={t('results.fields.copySummary')} />
{aiSummary}
@@ -1899,7 +1899,7 @@ export function ScanResults({ scan, onHome }: Props) { )} - +
@@ -1945,7 +1945,7 @@ export function ScanResults({ scan, onHome }: Props) { onClick={sendChat} disabled={!chatInput.trim() || chatLoading} className="btn-primary px-3 h-9 shrink-0" - aria-label={i18n('results.sendMessage')} + aria-label={t('results.sendMessage')} > @@ -1964,8 +1964,8 @@ export function ScanResults({ scan, onHome }: Props) { if (el) el.scrollTo({ top: 0, behavior: 'smooth' }); else window.scrollTo({ top: 0, behavior: 'smooth' }); }} - aria-label={i18n('common.backToTop')} - title={i18n('common.backToTop')} + aria-label={t('common.backToTop')} + title={t('common.backToTop')} className="flex items-center justify-center w-12 h-12 rounded-full bg-blue hover:bg-blue/90 text-white shadow-lg hover:shadow-xl focus:outline-none focus:ring-2 focus:ring-blue/50 focus:ring-offset-2 focus:ring-offset-surface-1 transition-all duration-200 hover:scale-110 active:scale-95" > diff --git a/frontend/src/messages/de.json b/frontend/src/messages/de.json index 790ae583..26543ce0 100644 --- a/frontend/src/messages/de.json +++ b/frontend/src/messages/de.json @@ -254,6 +254,68 @@ "log": "Fortschrittsprotokoll" }, "results": { + "fields": { + "asn": "ASN", + "address": "Adresse", + "bio": "Bio", + "blog": "Blog", + "carrier": "Träger", + "clientEvents": "Kundenveranstaltungen", + "company": "Unternehmen", + "copyDnsRecord": "DNS-Eintrag kopieren", + "copyIp": "IP kopieren", + "copyShodanPort": "Shodan-Port kopieren", + "copyDomain": "Domäne kopieren", + "copyEmail": "E-Mail kopieren", + "copyOnionUrl": "Zwiebel-URL kopieren", + "copyPort": "Port kopieren", + "copySubdomain": "Subdomain kopieren", + "copySummary": "Zusammenfassung kopieren", + "copyTarget": "Ziel kopieren", + "copyUsernameUrl": "Benutzernamen-URL kopieren", + "corporateServices": "Unternehmensdienstleistungen", + "country": "Land", + "countryCode": "Landesvorwahl", + "created": "Erstellt", + "dataBreachEvents": "Ereignisse bei Datenschutzverletzungen", + "displayName": "Anzeigename", + "domainReputation": "Domain-Reputation", + "employeeEvents": "Mitarbeiterveranstaltungen", + "employees": "Mitarbeiter", + "expires": "Läuft ab", + "firstSeen": "Zum ersten Mal gesehen", + "followers": "Anhänger", + "isp": "ISP", + "infostealerEvents": "Infostealer-Events", + "joined": "Beigetreten", + "lastSeen": "Zuletzt gesehen", + "lineType": "Linientyp", + "location": "Standort", + "name": "Name", + "organization": "Organisation", + "ownerName": "Besitzername", + "passwordsAnalysed": "Passwörter analysiert", + "period": "Zeitraum", + "publicRepos": "Öffentliche Repos", + "recordsFound": "Datensätze gefunden", + "region": "Region", + "registrar": "Registrator", + "strong": "Stark %", + "thirdParties": "Dritte", + "tooWeak": "Zu schwach %", + "totalBreaches": "Totale Verstöße", + "totalReports": "Gesamtberichte", + "totalStars": "Gesamtzahl der Sterne", + "totalCompromised": "Völlig kompromittiert", + "totalEvents": "Gesamtzahl der Ereignisse", + "twitter": "Twitter", + "type": "Typ", + "usageType": "Nutzungstyp", + "userServices": "Benutzerdienste", + "username": "Benutzername", + "users": "Benutzer", + "weak": "Schwach %" + }, "htmlReport": "HTML-Bericht", "pdfReport": "PDF-Bericht", "jsonReport": "JSON herunterladen", diff --git a/frontend/src/messages/en.json b/frontend/src/messages/en.json index bcde6e9f..4266ec37 100644 --- a/frontend/src/messages/en.json +++ b/frontend/src/messages/en.json @@ -254,6 +254,68 @@ "log": "Progress Log" }, "results": { + "fields": { + "asn": "ASN", + "address": "Address", + "bio": "Bio", + "blog": "Blog", + "carrier": "Carrier", + "clientEvents": "Client events", + "company": "Company", + "copyDnsRecord": "Copy DNS record", + "copyIp": "Copy IP", + "copyShodanPort": "Copy Shodan port", + "copyDomain": "Copy domain", + "copyEmail": "Copy email", + "copyOnionUrl": "Copy onion URL", + "copyPort": "Copy port", + "copySubdomain": "Copy subdomain", + "copySummary": "Copy summary", + "copyTarget": "Copy target", + "copyUsernameUrl": "Copy username URL", + "corporateServices": "Corporate services", + "country": "Country", + "countryCode": "Country Code", + "created": "Created", + "dataBreachEvents": "Data breach events", + "displayName": "Display Name", + "domainReputation": "Domain Reputation", + "employeeEvents": "Employee events", + "employees": "Employees", + "expires": "Expires", + "firstSeen": "First seen", + "followers": "Followers", + "isp": "ISP", + "infostealerEvents": "Infostealer events", + "joined": "Joined", + "lastSeen": "Last seen", + "lineType": "Line Type", + "location": "Location", + "name": "Name", + "organization": "Organization", + "ownerName": "Owner Name", + "passwordsAnalysed": "Passwords analysed", + "period": "Period", + "publicRepos": "Public Repos", + "recordsFound": "Records found", + "region": "Region", + "registrar": "Registrar", + "strong": "Strong %", + "thirdParties": "Third parties", + "tooWeak": "Too weak %", + "totalBreaches": "Total Breaches", + "totalReports": "Total Reports", + "totalStars": "Total Stars", + "totalCompromised": "Total compromised", + "totalEvents": "Total events", + "twitter": "Twitter", + "type": "Type", + "usageType": "Usage Type", + "userServices": "User services", + "username": "Username", + "users": "Users", + "weak": "Weak %" + }, "htmlReport": "HTML Report", "pdfReport": "PDF Report", "jsonReport": "Download JSON", diff --git a/frontend/src/messages/es.json b/frontend/src/messages/es.json index 13a2daa9..d48049e6 100644 --- a/frontend/src/messages/es.json +++ b/frontend/src/messages/es.json @@ -121,6 +121,68 @@ }, "progress": { "modulesLabel": "módulos", "initializing": "Inicializando escaneo…", "running": "Ejecutando…", "log": "Registro de progreso" }, "results": { + "fields": { + "asn": "ASN", + "address": "DIRECCIÓN", + "bio": "Biografía", + "blog": "Blog", + "carrier": "Transportador", + "clientEvents": "Eventos de clientes", + "company": "Compañía", + "copyDnsRecord": "Copiar registro DNS", + "copyIp": "Copiar IP", + "copyShodanPort": "Copiar el puerto de Shodan", + "copyDomain": "Copiar dominio", + "copyEmail": "Copiar correo electrónico", + "copyOnionUrl": "Copiar URL de cebolla", + "copyPort": "Copiar puerto", + "copySubdomain": "Copiar subdominio", + "copySummary": "Copiar resumen", + "copyTarget": "Copiar destino", + "copyUsernameUrl": "Copiar URL de nombre de usuario", + "corporateServices": "Servicios corporativos", + "country": "País", + "countryCode": "Código del país", + "created": "Creado", + "dataBreachEvents": "Eventos de violación de datos", + "displayName": "Nombre para mostrar", + "domainReputation": "Reputación del dominio", + "employeeEvents": "Eventos para empleados", + "employees": "Empleados", + "expires": "Vence", + "firstSeen": "visto por primera vez", + "followers": "Seguidores", + "isp": "ISP", + "infostealerEvents": "Eventos de robo de información", + "joined": "Unido", + "lastSeen": "visto por última vez", + "lineType": "Tipo de línea", + "location": "Ubicación", + "name": "Nombre", + "organization": "Organización", + "ownerName": "Nombre del propietario", + "passwordsAnalysed": "Contraseñas analizadas", + "period": "Período", + "publicRepos": "Repositorios públicos", + "recordsFound": "Registros encontrados", + "region": "Región", + "registrar": "Registrador", + "strong": "Fuerte %", + "thirdParties": "Terceros", + "tooWeak": "% demasiado débil", + "totalBreaches": "Incumplimientos totales", + "totalReports": "Informes totales", + "totalStars": "Estrellas totales", + "totalCompromised": "Totalmente comprometido", + "totalEvents": "Eventos totales", + "twitter": "Gorjeo", + "type": "Tipo", + "usageType": "Tipo de uso", + "userServices": "Servicios de usuario", + "username": "Nombre de usuario", + "users": "Usuarios", + "weak": "Débil %" + }, "htmlReport": "Informe HTML", "pdfReport": "Informe PDF", "jsonReport": "Descargar JSON", "csvReport": "Descargar CSV", "mdReport": "Descargar Markdown", "copyCurl": "Copiar como cURL", "scanAnother": "Escanear otro", "github": { "repositoriesScanned": "Repositorios analizados", "notChecked": "no comprobado", "commitEmailsNotChecked": "Los correos de commits no se comprobaron" }, diff --git a/frontend/src/messages/fr.json b/frontend/src/messages/fr.json index 85dca8eb..76c9fc64 100644 --- a/frontend/src/messages/fr.json +++ b/frontend/src/messages/fr.json @@ -132,6 +132,68 @@ "log": "Journal de progression" }, "results": { + "fields": { + "asn": "ASN", + "address": "Adresse", + "bio": "Biographie", + "blog": "Blogue", + "carrier": "Transporteur", + "clientEvents": "Événements clients", + "company": "Entreprise", + "copyDnsRecord": "Copier l'enregistrement DNS", + "copyIp": "Copier l'adresse IP", + "copyShodanPort": "Copier le port Shodan", + "copyDomain": "Copier le domaine", + "copyEmail": "Copier l'e-mail", + "copyOnionUrl": "Copier l'URL de l'oignon", + "copyPort": "Copier le port", + "copySubdomain": "Copier le sous-domaine", + "copySummary": "Copier le résumé", + "copyTarget": "Copier la cible", + "copyUsernameUrl": "Copier l'URL du nom d'utilisateur", + "corporateServices": "Services corporatifs", + "country": "Pays", + "countryCode": "Code du pays", + "created": "Créé", + "dataBreachEvents": "Événements de violation de données", + "displayName": "Nom d'affichage", + "domainReputation": "Réputation du domaine", + "employeeEvents": "Événements pour les employés", + "employees": "Employés", + "expires": "Expire", + "firstSeen": "Vu pour la première fois", + "followers": "Abonnés", + "isp": "FAI", + "infostealerEvents": "Événements d'infostealer", + "joined": "Rejoint", + "lastSeen": "Vu pour la dernière fois", + "lineType": "Type de ligne", + "location": "Emplacement", + "name": "Nom", + "organization": "Organisation", + "ownerName": "Nom du propriétaire", + "passwordsAnalysed": "Mots de passe analysés", + "period": "Période", + "publicRepos": "Dépôts publics", + "recordsFound": "Enregistrements trouvés", + "region": "Région", + "registrar": "Greffier", + "strong": "Fort %", + "thirdParties": "Tiers", + "tooWeak": "% trop faible", + "totalBreaches": "Infractions totales", + "totalReports": "Rapports totaux", + "totalStars": "Nombre total d'étoiles", + "totalCompromised": "Totalement compromis", + "totalEvents": "Total des événements", + "twitter": "Gazouillement", + "type": "Taper", + "usageType": "Type d'utilisation", + "userServices": "Services aux utilisateurs", + "username": "Nom d'utilisateur", + "users": "Utilisateurs", + "weak": "Faible %" + }, "htmlReport": "Rapport HTML", "pdfReport": "Rapport PDF", "jsonReport": "Télécharger JSON", diff --git a/frontend/src/messages/it.json b/frontend/src/messages/it.json index e0ff56aa..03606650 100644 --- a/frontend/src/messages/it.json +++ b/frontend/src/messages/it.json @@ -254,6 +254,68 @@ "log": "Registro avanzamento" }, "results": { + "fields": { + "asn": "ASN", + "address": "Indirizzo", + "bio": "Bio", + "blog": "Blog", + "carrier": "Vettore", + "clientEvents": "Eventi del cliente", + "company": "Azienda", + "copyDnsRecord": "Copia il record DNS", + "copyIp": "Copia IP", + "copyShodanPort": "Copia il porto di Shodan", + "copyDomain": "Copia dominio", + "copyEmail": "Copia e-mail", + "copyOnionUrl": "Copia l'URL della cipolla", + "copyPort": "Copia porta", + "copySubdomain": "Copia sottodominio", + "copySummary": "Copia riepilogo", + "copyTarget": "Copia destinazione", + "copyUsernameUrl": "Copia l'URL del nome utente", + "corporateServices": "Servizi aziendali", + "country": "Paese", + "countryCode": "Codice Paese", + "created": "Creato", + "dataBreachEvents": "Eventi di violazione dei dati", + "displayName": "Nome da visualizzare", + "domainReputation": "Reputazione del dominio", + "employeeEvents": "Eventi dei dipendenti", + "employees": "Dipendenti", + "expires": "Scade", + "firstSeen": "Visto per la prima volta", + "followers": "Seguaci", + "isp": "ISP", + "infostealerEvents": "Eventi di furto di informazioni", + "joined": "Partecipato", + "lastSeen": "Visto l'ultima volta", + "lineType": "Tipo di linea", + "location": "Posizione", + "name": "Nome", + "organization": "Organizzazione", + "ownerName": "Nome del proprietario", + "passwordsAnalysed": "Analisi delle password", + "period": "Periodo", + "publicRepos": "Repo pubblici", + "recordsFound": "Documenti trovati", + "region": "Regione", + "registrar": "Cancelliere", + "strong": "Forte %", + "thirdParties": "Terze parti", + "tooWeak": "% troppo debole", + "totalBreaches": "Violazioni totali", + "totalReports": "Rapporti totali", + "totalStars": "Stelle totali", + "totalCompromised": "Compromesso totale", + "totalEvents": "Eventi totali", + "twitter": "Twitter", + "type": "Tipo", + "usageType": "Tipo di utilizzo", + "userServices": "Servizi per gli utenti", + "username": "Nome utente", + "users": "Utenti", + "weak": "Debole %" + }, "htmlReport": "Report HTML", "pdfReport": "Report PDF", "jsonReport": "Scarica JSON", diff --git a/frontend/src/messages/pl.json b/frontend/src/messages/pl.json index c269e8bc..720617ba 100644 --- a/frontend/src/messages/pl.json +++ b/frontend/src/messages/pl.json @@ -300,6 +300,68 @@ "log": "Log Postępu" }, "results": { + "fields": { + "asn": "ASN", + "address": "Adres", + "bio": "Bio", + "blog": "Bloga", + "carrier": "Przewoźnik", + "clientEvents": "Wydarzenia klienckie", + "company": "Firma", + "copyDnsRecord": "Skopiuj rekord DNS", + "copyIp": "Skopiuj adres IP", + "copyShodanPort": "Skopiuj port Shodan", + "copyDomain": "Skopiuj domenę", + "copyEmail": "Skopiuj e-mail", + "copyOnionUrl": "Skopiuj adres URL cebuli", + "copyPort": "Skopiuj port", + "copySubdomain": "Skopiuj subdomenę", + "copySummary": "Skopiuj podsumowanie", + "copyTarget": "Skopiuj cel", + "copyUsernameUrl": "Skopiuj adres URL nazwy użytkownika", + "corporateServices": "Usługi korporacyjne", + "country": "Kraj", + "countryCode": "Kod kraju", + "created": "Stworzony", + "dataBreachEvents": "Zdarzenia związane z naruszeniem danych", + "displayName": "Nazwa wyświetlana", + "domainReputation": "Reputacja domeny", + "employeeEvents": "Wydarzenia pracownicze", + "employees": "Pracownicy", + "expires": "Wygasa", + "firstSeen": "Pierwszy raz widziany", + "followers": "Świta", + "isp": "dostawca usług internetowych", + "infostealerEvents": "Wydarzenia związane ze złodziejami informacji", + "joined": "Dołączył", + "lastSeen": "Ostatnio widziany", + "lineType": "Typ linii", + "location": "Lokalizacja", + "name": "Nazwa", + "organization": "Organizacja", + "ownerName": "Imię właściciela", + "passwordsAnalysed": "Analizowane hasła", + "period": "Okres", + "publicRepos": "Publiczne repozytoria", + "recordsFound": "Znaleziono zapisy", + "region": "Region", + "registrar": "Rejestrator", + "strong": "Mocny %", + "thirdParties": "Strony trzecie", + "tooWeak": "Za słaby%", + "totalBreaches": "Całkowite naruszenia", + "totalReports": "Raporty ogółem", + "totalStars": "Totalne gwiazdy", + "totalCompromised": "Całkowicie skompromitowane", + "totalEvents": "Całkowita liczba wydarzeń", + "twitter": "Świergot", + "type": "Typ", + "usageType": "Typ użycia", + "userServices": "Usługi użytkownika", + "username": "Nazwa użytkownika", + "users": "Użytkownicy", + "weak": "Słaby %" + }, "htmlReport": "Raport HTML", "pdfReport": "Raport PDF", "jsonReport": "Pobierz JSON", diff --git a/frontend/src/messages/pt.json b/frontend/src/messages/pt.json index b41a549d..4367a34e 100644 --- a/frontend/src/messages/pt.json +++ b/frontend/src/messages/pt.json @@ -254,6 +254,68 @@ "log": "Registro de progresso" }, "results": { + "fields": { + "asn": "ASN", + "address": "Endereço", + "bio": "Biografia", + "blog": "Blogue", + "carrier": "Operadora", + "clientEvents": "Eventos do cliente", + "company": "Empresa", + "copyDnsRecord": "Copiar registro DNS", + "copyIp": "Copiar IP", + "copyShodanPort": "Copiar porta Shodan", + "copyDomain": "Copiar domínio", + "copyEmail": "Copiar e-mail", + "copyOnionUrl": "Copiar URL da cebola", + "copyPort": "Copiar porta", + "copySubdomain": "Copiar subdomínio", + "copySummary": "Copiar resumo", + "copyTarget": "Copiar destino", + "copyUsernameUrl": "Copiar URL do nome de usuário", + "corporateServices": "Serviços corporativos", + "country": "País", + "countryCode": "Código do país", + "created": "Criado", + "dataBreachEvents": "Eventos de violação de dados", + "displayName": "Nome de exibição", + "domainReputation": "Reputação de Domínio", + "employeeEvents": "Eventos de funcionários", + "employees": "Funcionários", + "expires": "Expira", + "firstSeen": "Visto pela primeira vez", + "followers": "Seguidores", + "isp": "ISP", + "infostealerEvents": "Eventos de infostealer", + "joined": "Ingressou", + "lastSeen": "Visto pela última vez", + "lineType": "Tipo de linha", + "location": "Localização", + "name": "Nome", + "organization": "Organização", + "ownerName": "Nome do proprietário", + "passwordsAnalysed": "Senhas analisadas", + "period": "Período", + "publicRepos": "Repos públicos", + "recordsFound": "Registros encontrados", + "region": "Região", + "registrar": "Registrador", + "strong": "Forte %", + "thirdParties": "Terceiros", + "tooWeak": "Muito fraco %", + "totalBreaches": "Total de violações", + "totalReports": "Relatórios totais", + "totalStars": "Total de estrelas", + "totalCompromised": "Total comprometido", + "totalEvents": "Total de eventos", + "twitter": "Twitter", + "type": "Tipo", + "usageType": "Tipo de uso", + "userServices": "Serviços ao usuário", + "username": "Nome de usuário", + "users": "Usuários", + "weak": "Fraco %" + }, "htmlReport": "Relatório HTML", "pdfReport": "Relatório PDF", "jsonReport": "Baixar JSON", diff --git a/frontend/src/messages/ru.json b/frontend/src/messages/ru.json index 6f8d6c41..318ca7aa 100644 --- a/frontend/src/messages/ru.json +++ b/frontend/src/messages/ru.json @@ -254,6 +254,68 @@ "log": "Журнал выполнения" }, "results": { + "fields": { + "asn": "АСН", + "address": "Адрес", + "bio": "Био", + "blog": "Блог", + "carrier": "Перевозчик", + "clientEvents": "Клиентские события", + "company": "Компания", + "copyDnsRecord": "Копировать DNS-запись", + "copyIp": "Копировать IP", + "copyShodanPort": "Скопировать порт Shodan", + "copyDomain": "Копировать домен", + "copyEmail": "Копировать письмо", + "copyOnionUrl": "Скопировать URL-адрес лука", + "copyPort": "Копировать порт", + "copySubdomain": "Копировать субдомен", + "copySummary": "Копировать сводку", + "copyTarget": "Копировать цель", + "copyUsernameUrl": "Скопировать URL-адрес имени пользователя", + "corporateServices": "Корпоративные услуги", + "country": "Страна", + "countryCode": "Код страны", + "created": "Созданный", + "dataBreachEvents": "События утечки данных", + "displayName": "Отображаемое имя", + "domainReputation": "Репутация домена", + "employeeEvents": "Мероприятия для сотрудников", + "employees": "Сотрудники", + "expires": "Срок действия истекает", + "firstSeen": "Впервые увидел", + "followers": "Последователи", + "isp": "Интернет-провайдер", + "infostealerEvents": "Инфостилерские события", + "joined": "Присоединился", + "lastSeen": "Последний раз видели", + "lineType": "Тип линии", + "location": "Расположение", + "name": "Имя", + "organization": "Организация", + "ownerName": "Имя владельца", + "passwordsAnalysed": "Пароли проанализированы", + "period": "Период", + "publicRepos": "Публичные репозитории", + "recordsFound": "Найдены записи", + "region": "Область", + "registrar": "Регистратор", + "strong": "Сильный %", + "thirdParties": "Третьи лица", + "tooWeak": "Слишком слабый %", + "totalBreaches": "Всего нарушений", + "totalReports": "Всего отчетов", + "totalStars": "Всего звезд", + "totalCompromised": "Всего скомпрометировано", + "totalEvents": "Всего событий", + "twitter": "Твиттер", + "type": "Тип", + "usageType": "Тип использования", + "userServices": "Пользовательские услуги", + "username": "Имя пользователя", + "users": "Пользователи", + "weak": "Слабый %" + }, "htmlReport": "HTML-отчёт", "pdfReport": "PDF-отчёт", "jsonReport": "Скачать JSON", diff --git a/frontend/src/messages/tr.json b/frontend/src/messages/tr.json index bb767c15..b3cefbea 100644 --- a/frontend/src/messages/tr.json +++ b/frontend/src/messages/tr.json @@ -254,6 +254,68 @@ "log": "İlerleme Günlüğü" }, "results": { + "fields": { + "asn": "ASN", + "address": "Adres", + "bio": "Biyografi", + "blog": "Blog", + "carrier": "Taşıyıcı", + "clientEvents": "Müşteri etkinlikleri", + "company": "Şirket", + "copyDnsRecord": "DNS kaydını kopyala", + "copyIp": "IP'yi kopyala", + "copyShodanPort": "Shodan bağlantı noktasını kopyala", + "copyDomain": "Alanı kopyala", + "copyEmail": "E-postayı kopyala", + "copyOnionUrl": "Soğan URL'sini kopyala", + "copyPort": "Bağlantı noktasını kopyala", + "copySubdomain": "Alt alanı kopyala", + "copySummary": "Özeti kopyala", + "copyTarget": "Hedefi kopyala", + "copyUsernameUrl": "Kullanıcı adı URL'sini kopyala", + "corporateServices": "Kurumsal hizmetler", + "country": "Ülke", + "countryCode": "Ülke kodu", + "created": "Oluşturuldu", + "dataBreachEvents": "Veri ihlali olayları", + "displayName": "Ekran adı", + "domainReputation": "Alan Adı İtibarı", + "employeeEvents": "Çalışan etkinlikleri", + "employees": "Çalışanlar", + "expires": "Süresi doluyor", + "firstSeen": "İlk görülme", + "followers": "Takipçiler", + "isp": "İSS", + "infostealerEvents": "Bilgi hırsızı etkinlikleri", + "joined": "Katıldı", + "lastSeen": "Son görülme", + "lineType": "Hat Tipi", + "location": "Konum", + "name": "İsim", + "organization": "Organizasyon", + "ownerName": "Sahip Adı", + "passwordsAnalysed": "Şifreler analiz edildi", + "period": "Dönem", + "publicRepos": "Herkese Açık Repolar", + "recordsFound": "Bulunan kayıtlar", + "region": "Bölge", + "registrar": "Kayıt memuru", + "strong": "Güçlü %", + "thirdParties": "Üçüncü taraflar", + "tooWeak": "Çok zayıf %", + "totalBreaches": "Toplam İhlaller", + "totalReports": "Toplam Raporlar", + "totalStars": "Toplam Yıldız", + "totalCompromised": "Güvenliği ihlal edilen toplam", + "totalEvents": "Toplam etkinlik", + "twitter": "heyecan", + "type": "Tip", + "usageType": "Kullanım Türü", + "userServices": "Kullanıcı hizmetleri", + "username": "Kullanıcı adı", + "users": "Kullanıcılar", + "weak": "Zayıf %" + }, "htmlReport": "HTML Rapor", "pdfReport": "PDF Rapor", "jsonReport": "JSON İndir", diff --git a/frontend/src/messages/zh.json b/frontend/src/messages/zh.json index fc966aad..71f95c3a 100644 --- a/frontend/src/messages/zh.json +++ b/frontend/src/messages/zh.json @@ -254,6 +254,68 @@ "log": "进度日志" }, "results": { + "fields": { + "asn": "ASN", + "address": "地址", + "bio": "简介", + "blog": "博客", + "carrier": "载体", + "clientEvents": "客户活动", + "company": "公司", + "copyDnsRecord": "复制 DNS 记录", + "copyIp": "复制IP", + "copyShodanPort": "复制 Shodan 端口", + "copyDomain": "复制域名", + "copyEmail": "复制电子邮件", + "copyOnionUrl": "复制洋葱网址", + "copyPort": "复制端口", + "copySubdomain": "复制子域", + "copySummary": "复制摘要", + "copyTarget": "复制目标", + "copyUsernameUrl": "复制用户名网址", + "corporateServices": "企业服务", + "country": "国家", + "countryCode": "国家/地区代码", + "created": "已创建", + "dataBreachEvents": "数据泄露事件", + "displayName": "显示名称", + "domainReputation": "域名声誉", + "employeeEvents": "员工活动", + "employees": "雇员", + "expires": "过期", + "firstSeen": "第一次见到", + "followers": "追随者", + "isp": "互联网服务供应商", + "infostealerEvents": "信息窃取事件", + "joined": "已加入", + "lastSeen": "最后一次见到", + "lineType": "线路类型", + "location": "地点", + "name": "姓名", + "organization": "组织", + "ownerName": "业主姓名", + "passwordsAnalysed": "分析的密码", + "period": "时期", + "publicRepos": "公共回购协议", + "recordsFound": "找到记录", + "region": "地区", + "registrar": "登记员", + "strong": "强的 %", + "thirdParties": "第三方", + "tooWeak": "太弱%", + "totalBreaches": "违规总数", + "totalReports": "报告总数", + "totalStars": "总星星数", + "totalCompromised": "总计受损", + "totalEvents": "活动总数", + "twitter": "叽叽喳喳", + "type": "类型", + "usageType": "使用类型", + "userServices": "用户服务", + "username": "用户名", + "users": "用户", + "weak": "虚弱的 %" + }, "htmlReport": "HTML 报告", "pdfReport": "PDF 报告", "jsonReport": "下载 JSON", From 9b70c25a34e943bfa86b2cc97d449b31e670e9bf Mon Sep 17 00:00:00 2001 From: abhijeet nardele <234410808+abhijeetnardele24-hash@users.noreply.github.com> Date: Fri, 9 Oct 2026 17:00:24 +0530 Subject: [PATCH 4/9] fix: refine translations based on review feedback --- frontend/src/messages/de.json | 297 ++++++++++++++++++++++----- frontend/src/messages/en.json | 289 +++++++++++++++++++++++---- frontend/src/messages/es.json | 365 ++++++++++++++++++++++++++++------ frontend/src/messages/fr.json | 291 +++++++++++++++++++++++---- frontend/src/messages/it.json | 291 +++++++++++++++++++++++---- frontend/src/messages/pl.json | 39 ++-- frontend/src/messages/pt.json | 287 ++++++++++++++++++++++---- frontend/src/messages/ru.json | 293 ++++++++++++++++++++++----- frontend/src/messages/tr.json | 289 +++++++++++++++++++++++---- frontend/src/messages/zh.json | 289 +++++++++++++++++++++++---- 10 files changed, 2303 insertions(+), 427 deletions(-) diff --git a/frontend/src/messages/de.json b/frontend/src/messages/de.json index 26543ce0..5a1e7acb 100644 --- a/frontend/src/messages/de.json +++ b/frontend/src/messages/de.json @@ -18,7 +18,7 @@ "failed": "Fehlgeschlagen", "toggleTheme": "Design wechseln", "github": "GitHub", - "apiDocs":"API-Dokumentation", + "apiDocs": "API-Dokumentation", "remainingScans": "Verbleibende Scans", "watchlists": "Watchlists", "getFirefoxExtension": "Get the Firefox extension", @@ -51,7 +51,7 @@ "ip": "IP", "email": "E-Mail", "phone": "Telefon", -"username": "Nutzer" + "username": "Nutzer" }, "modules": { "rdap": "RDAP", @@ -100,22 +100,68 @@ "online": "ONLINE" }, "caps": { - "domain": { "title": "Domain / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Subdomains · Shodan", "item3": "VirusTotal · Wayback" }, - "email": { "title": "E-Mail", "item1": "DNS-Reputation · SMTP", "item2": "Leak-Check · Wegwerf-Adresse", "item3": "SPF · DKIM · DMARC" }, - "phone": { "title": "Telefon", "item1": "Validierung · Anbieter", "item2": "Land · Rückwärtssuche" }, - "username": { "title": "Nutzer", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ Plattformen", "item3": "OPSEC-Bewertung" } + "domain": { + "title": "Domain / IP", + "item1": "WHOIS · DNS · GeoIP", + "item2": "Subdomains · Shodan", + "item3": "VirusTotal · Wayback" + }, + "email": { + "title": "E-Mail", + "item1": "DNS-Reputation · SMTP", + "item2": "Leak-Check · Wegwerf-Adresse", + "item3": "SPF · DKIM · DMARC" + }, + "phone": { + "title": "Telefon", + "item1": "Validierung · Anbieter", + "item2": "Land · Rückwärtssuche" + }, + "username": { + "title": "Nutzer", + "item1": "Blackbird · Maigret", + "item2": "50+ / 3000+ Plattformen", + "item3": "OPSEC-Bewertung" + } }, "standaloneTools": "Eigenständige Werkzeuge", -"tools": { - "metadata": { "label": "Datei-Metadaten", "desc": "EXIF, GPS, PDF, DOCX" }, - "headers": { "label": "E-Mail-Header", "desc": "SPF, DKIM, Routing-Hops" }, - "crypto": { "label": "Krypto-Adresse", "desc": "Bitcoin und Ethereum" }, - "qr": { "label": "QR-Decoder", "desc": "Decodieren & analysieren" }, - "mac": { "label": "MAC Lookup", "desc": "Hersteller-Suche" }, - "subnet": { "label": "IP / Subnetz", "desc": "Netzwerkbereiche & CIDR" }, - "hash": { "label": "Hash-Identifier", "desc": "Hash-Typen identifizieren" }, - "encoder": { "label": "Base64 / URL", "desc": "Kodieren & Dekodieren" }, - "jwt": { "label": "JWT-Decoder", "desc": "JWT-Tokens dekodieren" } + "tools": { + "metadata": { + "label": "Datei-Metadaten", + "desc": "EXIF, GPS, PDF, DOCX" + }, + "headers": { + "label": "E-Mail-Header", + "desc": "SPF, DKIM, Routing-Hops" + }, + "crypto": { + "label": "Krypto-Adresse", + "desc": "Bitcoin und Ethereum" + }, + "qr": { + "label": "QR-Decoder", + "desc": "Decodieren & analysieren" + }, + "mac": { + "label": "MAC Lookup", + "desc": "Hersteller-Suche" + }, + "subnet": { + "label": "IP / Subnetz", + "desc": "Netzwerkbereiche & CIDR" + }, + "hash": { + "label": "Hash-Identifier", + "desc": "Hash-Typen identifizieren" + }, + "encoder": { + "label": "Base64 / URL", + "desc": "Kodieren & Dekodieren" + }, + "jwt": { + "label": "JWT-Decoder", + "desc": "JWT-Tokens dekodieren" + } }, "demo": { "line1": "Dies ist eine öffentliche Demo mit begrenzten API-Kontingenten. Manche Module (Shodan, VirusTotal) können ratenbegrenzt sein.", @@ -259,7 +305,7 @@ "address": "Adresse", "bio": "Bio", "blog": "Blog", - "carrier": "Träger", + "carrier": "Anbieter", "clientEvents": "Kundenveranstaltungen", "company": "Unternehmen", "copyDnsRecord": "DNS-Eintrag kopieren", @@ -267,7 +313,7 @@ "copyShodanPort": "Shodan-Port kopieren", "copyDomain": "Domäne kopieren", "copyEmail": "E-Mail kopieren", - "copyOnionUrl": "Zwiebel-URL kopieren", + "copyOnionUrl": ".onion-Adresse kopieren", "copyPort": "Port kopieren", "copySubdomain": "Subdomain kopieren", "copySummary": "Zusammenfassung kopieren", @@ -355,33 +401,190 @@ "opsec": { "scoreLabel": "OPSEC-Bewertung", "riskSuffix": "RISIKO", - "data_exposure": { "label": "Datenexposition", "tooltip": "Sensible Datenlecks: kompromittierte Zugangsdaten, offene E-Mails, öffentliche PII." }, - "identity_opsec": { "label": "Identitäts-OPSEC", "tooltip": "Mehrfachverwendung von Kennungen: gleicher Benutzername/E-Mail auf vielen Seiten." }, - "infrastructure": { "label": "Infrastruktur", "tooltip": "Exponierte Dienste, offene Ports, schwache DNS/WHOIS-Hygiene, Threat-Intel-Treffer." }, - "web_security": { "label": "Web-Sicherheit", "tooltip": "TLS, Sicherheits-Header, Certificate Transparency, archivierte sensible Pfade." } - }, - "common": { "yes": "Ja", "no": "Nein", "unknown": "Unbekannt", "points": "Pkt", "moduleRetry": "Mit der Aktualisieren-Schaltfläche erneut versuchen.", "skippedKeyHint": "{key} in .env eintragen, um dieses Modul zu aktivieren.", "skippedHint": "den Schlüssel in .env eintragen, um dieses Modul zu aktivieren.", "noSecurityFindings": "Keine Sicherheitsbefunde", "noDnsRecords": "Keine DNS-Einträge gefunden", "noThreats": "Keine Bedrohungen erkannt" }, - "findings": { "title": "Sicherheits-Befunde", "none": "Keine Sicherheits-Befunde" }, - "whois": { "title": "WHOIS-Registrierung", "registrar": "Registrar", "organization": "Organisation", "country": "Land", "created": "Erstellt", "expires": "Läuft ab", "emails": "E-Mails", "nameServers": "Nameserver" }, - "dns": { "title": "DNS-Einträge" }, - "subdomains": { "titleFmt": "Certificate Transparency — {n} Subdomains", "certsAnalysed": "{n} Zertifikat(e) analysiert" }, - "accounts": { "title": "Benutzername-Suche", "platform": "Plattform", "url": "URL", "time": "Zeit" }, - "virustotal": { "title": "VirusTotal", "malicious": "Schädlich", "suspicious": "Verdächtig", "harmless": "Harmlos", "undetected": "Nicht erkannt", "country": "Land", "asn": "ASN" }, - "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Missbrauchs-Score", "totalReports": "Gesamtmeldungen", "isp": "ISP", "usageType": "Nutzungstyp", "torExit": "⚠ TOR-Exit-Node" }, - "shodan": { "title": "Shodan", "openPorts": "Offene Ports", "cves": "Gefundene CVEs" }, - "censys": { "titleCert": "Censys — Zertifikatssuche", "titleHost": "Censys — Host-Info", "ip": "IP", "asn": "ASN", "location": "Standort", "openPorts": "Offene Ports", "subdomainsFmt": "Subdomains ({n})", "services": "Dienste", "port": "Port", "service": "Dienst", "software": "Software" }, - "darkweb": { "titleFmt": "Darknet-Spiegel — {n} gefunden", "sources": "Quellen" }, - "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} Snapshots · Erster: {first} · Letzter: {last}", "recent": "Neueste Snapshots", "sensitive": "Sensible URLs im Archiv" }, - "emailrep": { "title": "E-Mail-Reputation", "reputation": "Reputation", "suspicious": "Verdächtig", "validMx": "MX gültig", "deliverable": "Zustellbar", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Domain-Reputation", "mxRecords": "MX-Einträge", "disposableWarn": "⚠ Wegwerf-E-Mail erkannt", "spoofableWarn": "⚠ Domain ist fälschbar (kein SPF/DMARC)", "freeProvider": "Kostenloser E-Mail-Anbieter" }, - "smtp": { "title": "SMTP-Überprüfung", "exists": "Existiert", "connect": "SMTP-Verbindung", "catchAllWarn": "⚠ Catch-All-Server (akzeptiert beliebige Adresse)", "details": "Details" }, - "breaches": { "title": "Leak-Prüfung", "found": "Leaks gefunden", "breachedServices": "Betroffene Dienste", "total": "Leaks gesamt" }, - "dorks": { "title": "Google Dorks" }, - "phone": { "title": "Telefon-Intelligenz", "valid": "Gültig", "country": "Land", "countryCode": "Ländercode", "region": "Region", "carrier": "Anbieter", "lineType": "Anschlussart", "timezones": "Zeitzonen", "ownerName": "Inhaber", "address": "Adresse" }, - "telegram": { "title": "Telegram-Profil", "found": "Gefunden", "username": "Benutzername", "name": "Name", "bio": "Bio", "type": "Typ", "followers": "Follower" }, - "map": { "title": "IP-Geolokationskarte", "ip": "IP", "location": "Standort", "organization": "Organisation", "coordinates": "Koordinaten", "loading": "Karte wird geladen…", "noData": "Keine Geolokationsdaten verfügbar", "moreFmt": "{n} Standorte gefunden", "precision": "Genauigkeit", "approximate": "Ungefähr (regional, nicht punktgenau)" }, - "graph": { "title": "Entitätsgraph", "loading": "Graph wird geladen…", "empty": "Keine Graphdaten für diesen Scan" }, - "json": { "title": "Rohe JSON-Daten", "show": "Rohdaten anzeigen", "hide": "Rohdaten verbergen", "copyRawJson": "Copy raw JSON" }, - "ai": { "title": "KI-OSINT-Analyse · Nvidia Nemotron", "chatTitle": "Frag die KI", "generate": "KI-Zusammenfassung erstellen", "generating": "Analyse wird erstellt…", "model": "Modell", "regenerate": "Neu generieren", "placeholder": "Frag etwas zu diesem Scan…" }, + "data_exposure": { + "label": "Datenexposition", + "tooltip": "Sensible Datenlecks: kompromittierte Zugangsdaten, offene E-Mails, öffentliche PII." + }, + "identity_opsec": { + "label": "Identitäts-OPSEC", + "tooltip": "Mehrfachverwendung von Kennungen: gleicher Benutzername/E-Mail auf vielen Seiten." + }, + "infrastructure": { + "label": "Infrastruktur", + "tooltip": "Exponierte Dienste, offene Ports, schwache DNS/WHOIS-Hygiene, Threat-Intel-Treffer." + }, + "web_security": { + "label": "Web-Sicherheit", + "tooltip": "TLS, Sicherheits-Header, Certificate Transparency, archivierte sensible Pfade." + } + }, + "common": { + "yes": "Ja", + "no": "Nein", + "unknown": "Unbekannt", + "points": "Pkt", + "moduleRetry": "Mit der Aktualisieren-Schaltfläche erneut versuchen.", + "skippedKeyHint": "{key} in .env eintragen, um dieses Modul zu aktivieren.", + "skippedHint": "den Schlüssel in .env eintragen, um dieses Modul zu aktivieren.", + "noSecurityFindings": "Keine Sicherheitsbefunde", + "noDnsRecords": "Keine DNS-Einträge gefunden", + "noThreats": "Keine Bedrohungen erkannt" + }, + "findings": { + "title": "Sicherheits-Befunde", + "none": "Keine Sicherheits-Befunde" + }, + "whois": { + "title": "WHOIS-Registrierung", + "registrar": "Registrar", + "organization": "Organisation", + "country": "Land", + "created": "Erstellt", + "expires": "Läuft ab", + "emails": "E-Mails", + "nameServers": "Nameserver" + }, + "dns": { + "title": "DNS-Einträge" + }, + "subdomains": { + "titleFmt": "Certificate Transparency — {n} Subdomains", + "certsAnalysed": "{n} Zertifikat(e) analysiert" + }, + "accounts": { + "title": "Benutzername-Suche", + "platform": "Plattform", + "url": "URL", + "time": "Zeit" + }, + "virustotal": { + "title": "VirusTotal", + "malicious": "Schädlich", + "suspicious": "Verdächtig", + "harmless": "Harmlos", + "undetected": "Nicht erkannt", + "country": "Land", + "asn": "ASN" + }, + "abuseipdb": { + "title": "AbuseIPDB", + "abuseScore": "Missbrauchs-Score", + "totalReports": "Gesamtmeldungen", + "isp": "ISP", + "usageType": "Nutzungstyp", + "torExit": "⚠ TOR-Exit-Node" + }, + "shodan": { + "title": "Shodan", + "openPorts": "Offene Ports", + "cves": "Gefundene CVEs" + }, + "censys": { + "titleCert": "Censys — Zertifikatssuche", + "titleHost": "Censys — Host-Info", + "ip": "IP", + "asn": "ASN", + "location": "Standort", + "openPorts": "Offene Ports", + "subdomainsFmt": "Subdomains ({n})", + "services": "Dienste", + "port": "Port", + "service": "Dienst", + "software": "Software" + }, + "darkweb": { + "titleFmt": "Darknet-Spiegel — {n} gefunden", + "sources": "Quellen" + }, + "wayback": { + "title": "Wayback Machine", + "summaryFmt": "{n} Snapshots · Erster: {first} · Letzter: {last}", + "recent": "Neueste Snapshots", + "sensitive": "Sensible URLs im Archiv" + }, + "emailrep": { + "title": "E-Mail-Reputation", + "reputation": "Reputation", + "suspicious": "Verdächtig", + "validMx": "MX gültig", + "deliverable": "Zustellbar", + "spf": "SPF", + "dmarc": "DMARC", + "domainRep": "Domain-Reputation", + "mxRecords": "MX-Einträge", + "disposableWarn": "⚠ Wegwerf-E-Mail erkannt", + "spoofableWarn": "⚠ Domain ist fälschbar (kein SPF/DMARC)", + "freeProvider": "Kostenloser E-Mail-Anbieter" + }, + "smtp": { + "title": "SMTP-Überprüfung", + "exists": "Existiert", + "connect": "SMTP-Verbindung", + "catchAllWarn": "⚠ Catch-All-Server (akzeptiert beliebige Adresse)", + "details": "Details" + }, + "breaches": { + "title": "Leak-Prüfung", + "found": "Leaks gefunden", + "breachedServices": "Betroffene Dienste", + "total": "Leaks gesamt" + }, + "dorks": { + "title": "Google Dorks" + }, + "phone": { + "title": "Telefon-Intelligenz", + "valid": "Gültig", + "country": "Land", + "countryCode": "Ländercode", + "region": "Region", + "carrier": "Anbieter", + "lineType": "Anschlussart", + "timezones": "Zeitzonen", + "ownerName": "Inhaber", + "address": "Adresse" + }, + "telegram": { + "title": "Telegram-Profil", + "found": "Gefunden", + "username": "Benutzername", + "name": "Name", + "bio": "Bio", + "type": "Typ", + "followers": "Follower" + }, + "map": { + "title": "IP-Geolokationskarte", + "ip": "IP", + "location": "Standort", + "organization": "Organisation", + "coordinates": "Koordinaten", + "loading": "Karte wird geladen…", + "noData": "Keine Geolokationsdaten verfügbar", + "moreFmt": "{n} Standorte gefunden", + "precision": "Genauigkeit", + "approximate": "Ungefähr (regional, nicht punktgenau)" + }, + "graph": { + "title": "Entitätsgraph", + "loading": "Graph wird geladen…", + "empty": "Keine Graphdaten für diesen Scan" + }, + "json": { + "title": "Rohe JSON-Daten", + "show": "Rohdaten anzeigen", + "hide": "Rohdaten verbergen", + "copyRawJson": "Copy raw JSON" + }, + "ai": { + "title": "KI-OSINT-Analyse · Nvidia Nemotron", + "chatTitle": "Frag die KI", + "generate": "KI-Zusammenfassung erstellen", + "generating": "Analyse wird erstellt…", + "model": "Modell", + "regenerate": "Neu generieren", + "placeholder": "Frag etwas zu diesem Scan…" + }, "duration": "Abgeschlossen in {duration}", "copyAllFindings": "Alle Funde kopieren", "copyAllEmails": "Alle E-Mails kopieren", @@ -421,7 +624,7 @@ "paused": "Pausiert", "failedToToggle": "Watchlist konnte nicht aktualisiert werden" }, - "common": { + "common": { "copy": "Kopieren", "copied": "Kopiert!", "copyFailed": "Kopieren fehlgeschlagen", @@ -444,4 +647,4 @@ "zh": "ZH", "tr": "TR" } -} +} \ No newline at end of file diff --git a/frontend/src/messages/en.json b/frontend/src/messages/en.json index 4266ec37..e0ab5226 100644 --- a/frontend/src/messages/en.json +++ b/frontend/src/messages/en.json @@ -100,22 +100,68 @@ "online": "ONLINE" }, "caps": { - "domain": { "title": "Domain / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Subdomains · Shodan", "item3": "VirusTotal · Wayback" }, - "email": { "title": "Email", "item1": "DNS reputation · SMTP", "item2": "Breach check · Disposable", "item3": "SPF · DKIM · DMARC" }, - "phone": { "title": "Phone", "item1": "Validation · Carrier", "item2": "Country · Reverse lookup" }, - "username": { "title": "Username", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ platforms", "item3": "OPSEC Score" } + "domain": { + "title": "Domain / IP", + "item1": "WHOIS · DNS · GeoIP", + "item2": "Subdomains · Shodan", + "item3": "VirusTotal · Wayback" + }, + "email": { + "title": "Email", + "item1": "DNS reputation · SMTP", + "item2": "Breach check · Disposable", + "item3": "SPF · DKIM · DMARC" + }, + "phone": { + "title": "Phone", + "item1": "Validation · Carrier", + "item2": "Country · Reverse lookup" + }, + "username": { + "title": "Username", + "item1": "Blackbird · Maigret", + "item2": "50+ / 3000+ platforms", + "item3": "OPSEC Score" + } }, "standaloneTools": "Standalone Tools", -"tools": { - "metadata": { "label": "File Metadata", "desc": "EXIF, GPS, PDF, DOCX" }, - "headers": { "label": "Email Headers", "desc": "SPF, DKIM, routing hops" }, - "crypto": { "label": "Crypto Address", "desc": "Bitcoin & Ethereum" }, - "qr": { "label": "QR Decode", "desc": "Decode & analyze" }, - "mac": { "label": "MAC Lookup", "desc": "Vendor lookup" }, - "subnet": { "label": "IP / Subnet", "desc": "Network ranges & CIDR" }, - "hash": { "label": "Hash Identifier", "desc": "Identify hash types" }, - "encoder": { "label": "Base64 / URL", "desc": "Encode & decode" }, - "jwt": { "label": "JWT Decoder", "desc": "Decode JWT tokens" } + "tools": { + "metadata": { + "label": "File Metadata", + "desc": "EXIF, GPS, PDF, DOCX" + }, + "headers": { + "label": "Email Headers", + "desc": "SPF, DKIM, routing hops" + }, + "crypto": { + "label": "Crypto Address", + "desc": "Bitcoin & Ethereum" + }, + "qr": { + "label": "QR Decode", + "desc": "Decode & analyze" + }, + "mac": { + "label": "MAC Lookup", + "desc": "Vendor lookup" + }, + "subnet": { + "label": "IP / Subnet", + "desc": "Network ranges & CIDR" + }, + "hash": { + "label": "Hash Identifier", + "desc": "Identify hash types" + }, + "encoder": { + "label": "Base64 / URL", + "desc": "Encode & decode" + }, + "jwt": { + "label": "JWT Decoder", + "desc": "Decode JWT tokens" + } }, "demo": { "line1": "This is a public demo with limited API quotas. Some modules (Shodan, VirusTotal) may be rate-limited.", @@ -267,7 +313,7 @@ "copyShodanPort": "Copy Shodan port", "copyDomain": "Copy domain", "copyEmail": "Copy email", - "copyOnionUrl": "Copy onion URL", + "copyOnionUrl": "Copy .onion address", "copyPort": "Copy port", "copySubdomain": "Copy subdomain", "copySummary": "Copy summary", @@ -355,33 +401,190 @@ "opsec": { "scoreLabel": "OPSEC Score", "riskSuffix": "RISK", - "data_exposure": { "label": "Data Exposure", "tooltip": "Sensitive data leaks: breached credentials, exposed emails, public PII." }, - "identity_opsec": { "label": "Identity OPSEC", "tooltip": "Re-use of identifiers across platforms: same username/email across many sites." }, - "infrastructure": { "label": "Infrastructure", "tooltip": "Exposed services, open ports, weak DNS/WHOIS hygiene, threat-intel hits." }, - "web_security": { "label": "Web Security", "tooltip": "TLS, security headers, certificate transparency, archived sensitive paths." } - }, - "common": { "yes": "Yes", "no": "No", "unknown": "Unknown", "points": "pts", "moduleRetry": "Use the refresh button to try again.", "skippedKeyHint": "add {key} to .env to enable this module.", "skippedHint": "add the key to .env to enable this module.", "noSecurityFindings": "No security findings", "noDnsRecords": "No DNS records found", "noThreats": "No threats detected" }, - "findings": { "title": "Security Findings", "none": "No security findings" }, - "whois": { "title": "WHOIS Registration", "registrar": "Registrar", "organization": "Organization", "country": "Country", "created": "Created", "expires": "Expires", "emails": "Emails", "nameServers": "Name Servers" }, - "dns": { "title": "DNS Records" }, - "subdomains": { "titleFmt": "Certificate Transparency — {n} subdomains", "certsAnalysed": "{n} certificate(s) analysed" }, - "accounts": { "title": "Username Search", "platform": "Platform", "url": "URL", "time": "Time" }, - "virustotal": { "title": "VirusTotal", "malicious": "Malicious", "suspicious": "Suspicious", "harmless": "Harmless", "undetected": "Undetected", "country": "Country", "asn": "ASN" }, - "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Abuse Score", "totalReports": "Total Reports", "isp": "ISP", "usageType": "Usage Type", "torExit": "⚠ TOR Exit Node" }, - "shodan": { "title": "Shodan", "openPorts": "Open Ports", "cves": "CVEs Found" }, - "censys": { "titleCert": "Censys — Certificate Search", "titleHost": "Censys — Host Info", "ip": "IP", "asn": "ASN", "location": "Location", "openPorts": "Open Ports", "subdomainsFmt": "Subdomains ({n})", "services": "Services", "port": "Port", "service": "Service", "software": "Software" }, - "darkweb": { "titleFmt": "Dark Web Mirrors — {n} found", "sources": "Sources" }, - "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} snapshots · First: {first} · Last: {last}", "recent": "Recent Snapshots", "sensitive": "Sensitive URLs in Archive" }, - "emailrep": { "title": "Email Reputation", "reputation": "Reputation", "suspicious": "Suspicious", "validMx": "Valid MX", "deliverable": "Deliverable", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Domain Reputation", "mxRecords": "MX Records", "disposableWarn": "⚠ Disposable email detected", "spoofableWarn": "⚠ Domain is spoofable (missing SPF/DMARC)", "freeProvider": "Free email provider" }, - "smtp": { "title": "SMTP Verification", "exists": "Exists", "connect": "SMTP Connect", "catchAllWarn": "⚠ Catch-all server (accepts any address)", "details": "Details" }, - "breaches": { "title": "Breach Check", "found": "Breaches Found", "breachedServices": "Breached Services", "total": "Total Breaches" }, - "dorks": { "title": "Google Dorks" }, - "phone": { "title": "Phone Intelligence", "valid": "Valid", "country": "Country", "countryCode": "Country Code", "region": "Region", "carrier": "Carrier", "lineType": "Line Type", "timezones": "Timezones", "ownerName": "Owner Name", "address": "Address" }, - "telegram": { "title": "Telegram Profile", "found": "Found", "username": "Username", "name": "Name", "bio": "Bio", "type": "Type", "followers": "Followers" }, - "map": { "title": "IP Geolocation Map", "ip": "IP", "location": "Location", "organization": "Organization", "coordinates": "Coordinates", "loading": "Loading map…", "noData": "No geolocation data available", "moreFmt": "{n} locations found", "precision": "Precision", "approximate": "Approximate (regional, not exact)" }, - "graph": { "title": "Entity Graph", "loading": "Loading graph…", "empty": "No graph data available for this scan" }, - "json": { "title": "Raw JSON Results", "show": "Show raw data", "hide": "Hide raw data", "copyRawJson": "Copy raw JSON" }, - "ai": { "title": "AI OSINT Analysis · Nvidia Nemotron", "chatTitle": "Ask the AI", "generate": "Generate AI Summary", "generating": "Generating analysis…", "model": "Model", "regenerate": "Regenerate", "placeholder": "Ask anything about this scan…" }, + "data_exposure": { + "label": "Data Exposure", + "tooltip": "Sensitive data leaks: breached credentials, exposed emails, public PII." + }, + "identity_opsec": { + "label": "Identity OPSEC", + "tooltip": "Re-use of identifiers across platforms: same username/email across many sites." + }, + "infrastructure": { + "label": "Infrastructure", + "tooltip": "Exposed services, open ports, weak DNS/WHOIS hygiene, threat-intel hits." + }, + "web_security": { + "label": "Web Security", + "tooltip": "TLS, security headers, certificate transparency, archived sensitive paths." + } + }, + "common": { + "yes": "Yes", + "no": "No", + "unknown": "Unknown", + "points": "pts", + "moduleRetry": "Use the refresh button to try again.", + "skippedKeyHint": "add {key} to .env to enable this module.", + "skippedHint": "add the key to .env to enable this module.", + "noSecurityFindings": "No security findings", + "noDnsRecords": "No DNS records found", + "noThreats": "No threats detected" + }, + "findings": { + "title": "Security Findings", + "none": "No security findings" + }, + "whois": { + "title": "WHOIS Registration", + "registrar": "Registrar", + "organization": "Organization", + "country": "Country", + "created": "Created", + "expires": "Expires", + "emails": "Emails", + "nameServers": "Name Servers" + }, + "dns": { + "title": "DNS Records" + }, + "subdomains": { + "titleFmt": "Certificate Transparency — {n} subdomains", + "certsAnalysed": "{n} certificate(s) analysed" + }, + "accounts": { + "title": "Username Search", + "platform": "Platform", + "url": "URL", + "time": "Time" + }, + "virustotal": { + "title": "VirusTotal", + "malicious": "Malicious", + "suspicious": "Suspicious", + "harmless": "Harmless", + "undetected": "Undetected", + "country": "Country", + "asn": "ASN" + }, + "abuseipdb": { + "title": "AbuseIPDB", + "abuseScore": "Abuse Score", + "totalReports": "Total Reports", + "isp": "ISP", + "usageType": "Usage Type", + "torExit": "⚠ TOR Exit Node" + }, + "shodan": { + "title": "Shodan", + "openPorts": "Open Ports", + "cves": "CVEs Found" + }, + "censys": { + "titleCert": "Censys — Certificate Search", + "titleHost": "Censys — Host Info", + "ip": "IP", + "asn": "ASN", + "location": "Location", + "openPorts": "Open Ports", + "subdomainsFmt": "Subdomains ({n})", + "services": "Services", + "port": "Port", + "service": "Service", + "software": "Software" + }, + "darkweb": { + "titleFmt": "Dark Web Mirrors — {n} found", + "sources": "Sources" + }, + "wayback": { + "title": "Wayback Machine", + "summaryFmt": "{n} snapshots · First: {first} · Last: {last}", + "recent": "Recent Snapshots", + "sensitive": "Sensitive URLs in Archive" + }, + "emailrep": { + "title": "Email Reputation", + "reputation": "Reputation", + "suspicious": "Suspicious", + "validMx": "Valid MX", + "deliverable": "Deliverable", + "spf": "SPF", + "dmarc": "DMARC", + "domainRep": "Domain Reputation", + "mxRecords": "MX Records", + "disposableWarn": "⚠ Disposable email detected", + "spoofableWarn": "⚠ Domain is spoofable (missing SPF/DMARC)", + "freeProvider": "Free email provider" + }, + "smtp": { + "title": "SMTP Verification", + "exists": "Exists", + "connect": "SMTP Connect", + "catchAllWarn": "⚠ Catch-all server (accepts any address)", + "details": "Details" + }, + "breaches": { + "title": "Breach Check", + "found": "Breaches Found", + "breachedServices": "Breached Services", + "total": "Total Breaches" + }, + "dorks": { + "title": "Google Dorks" + }, + "phone": { + "title": "Phone Intelligence", + "valid": "Valid", + "country": "Country", + "countryCode": "Country Code", + "region": "Region", + "carrier": "Carrier", + "lineType": "Line Type", + "timezones": "Timezones", + "ownerName": "Owner Name", + "address": "Address" + }, + "telegram": { + "title": "Telegram Profile", + "found": "Found", + "username": "Username", + "name": "Name", + "bio": "Bio", + "type": "Type", + "followers": "Followers" + }, + "map": { + "title": "IP Geolocation Map", + "ip": "IP", + "location": "Location", + "organization": "Organization", + "coordinates": "Coordinates", + "loading": "Loading map…", + "noData": "No geolocation data available", + "moreFmt": "{n} locations found", + "precision": "Precision", + "approximate": "Approximate (regional, not exact)" + }, + "graph": { + "title": "Entity Graph", + "loading": "Loading graph…", + "empty": "No graph data available for this scan" + }, + "json": { + "title": "Raw JSON Results", + "show": "Show raw data", + "hide": "Hide raw data", + "copyRawJson": "Copy raw JSON" + }, + "ai": { + "title": "AI OSINT Analysis · Nvidia Nemotron", + "chatTitle": "Ask the AI", + "generate": "Generate AI Summary", + "generating": "Generating analysis…", + "model": "Model", + "regenerate": "Regenerate", + "placeholder": "Ask anything about this scan…" + }, "duration": "Completed in {duration}", "copyAllFindings": "Copy all findings", "copyAllEmails": "Copy all emails", @@ -444,4 +647,4 @@ "zh": "ZH", "tr": "TR" } -} +} \ No newline at end of file diff --git a/frontend/src/messages/es.json b/frontend/src/messages/es.json index d48049e6..3c11d70d 100644 --- a/frontend/src/messages/es.json +++ b/frontend/src/messages/es.json @@ -92,24 +92,76 @@ "idle": { "title": "PRISM", "subtitle": "Plataforma de Inteligencia de Fuentes Abiertas", - "stats": { "modules": "Módulos", "sources": "Fuentes", "scanTypes": "Tipos de escaneo", "status": "Estado", "online": "EN LÍNEA" }, + "stats": { + "modules": "Módulos", + "sources": "Fuentes", + "scanTypes": "Tipos de escaneo", + "status": "Estado", + "online": "EN LÍNEA" + }, "caps": { - "domain": { "title": "Dominio / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Subdominios · Shodan", "item3": "VirusTotal · Wayback" }, - "email": { "title": "Correo electrónico", "item1": "Reputación DNS · SMTP", "item2": "Verificación de filtraciones · Desechable", "item3": "SPF · DKIM · DMARC" }, - "phone": { "title": "Teléfono", "item1": "Validación · Operador", "item2": "País · Búsqueda inversa" }, - "username": { "title": "Nombre de usuario", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ plataformas", "item3": "Puntuación OPSEC" } + "domain": { + "title": "Dominio / IP", + "item1": "WHOIS · DNS · GeoIP", + "item2": "Subdominios · Shodan", + "item3": "VirusTotal · Wayback" + }, + "email": { + "title": "Correo electrónico", + "item1": "Reputación DNS · SMTP", + "item2": "Verificación de filtraciones · Desechable", + "item3": "SPF · DKIM · DMARC" + }, + "phone": { + "title": "Teléfono", + "item1": "Validación · Operador", + "item2": "País · Búsqueda inversa" + }, + "username": { + "title": "Nombre de usuario", + "item1": "Blackbird · Maigret", + "item2": "50+ / 3000+ plataformas", + "item3": "Puntuación OPSEC" + } }, "standaloneTools": "Herramientas independientes", "tools": { - "metadata": { "label": "Metadatos de archivo", "desc": "EXIF, GPS, PDF, DOCX" }, - "headers": { "label": "Cabeceras de correo", "desc": "SPF, DKIM, saltos de enrutamiento" }, - "crypto": { "label": "Dirección cripto", "desc": "Bitcoin y Ethereum" }, - "qr": { "label": "Decodificar QR", "desc": "Decodificar y analizar" }, - "mac": { "label": "Búsqueda MAC", "desc": "Búsqueda de proveedor" }, - "subnet": { "label": "IP / Subred", "desc": "Rangos de red & CIDR" }, - "hash": { "label": "Identificador de hash", "desc": "Identificar tipos de hash" }, - "encoder": { "label": "Base64 / URL", "desc": "Codificar y decodificar" }, - "jwt": { "label": "Decodificador JWT", "desc": "Decodificar tokens JWT" } + "metadata": { + "label": "Metadatos de archivo", + "desc": "EXIF, GPS, PDF, DOCX" + }, + "headers": { + "label": "Cabeceras de correo", + "desc": "SPF, DKIM, saltos de enrutamiento" + }, + "crypto": { + "label": "Dirección cripto", + "desc": "Bitcoin y Ethereum" + }, + "qr": { + "label": "Decodificar QR", + "desc": "Decodificar y analizar" + }, + "mac": { + "label": "Búsqueda MAC", + "desc": "Búsqueda de proveedor" + }, + "subnet": { + "label": "IP / Subred", + "desc": "Rangos de red & CIDR" + }, + "hash": { + "label": "Identificador de hash", + "desc": "Identificar tipos de hash" + }, + "encoder": { + "label": "Base64 / URL", + "desc": "Codificar y decodificar" + }, + "jwt": { + "label": "Decodificador JWT", + "desc": "Decodificar tokens JWT" + } }, "demo": { "line1": "Esta es una demo pública con cuotas de API limitadas. Algunos módulos (Shodan, VirusTotal) pueden tener límite de velocidad.", @@ -119,14 +171,19 @@ "line3": "Los módulos que dependen de servicios de terceros (crt.sh, Wayback Machine) pueden devolver errores 5xx cuando esos servicios fallan o limitan las peticiones. El análisis con IA funciona en esta demo, pero puede ir lento: OpenRouter y Groq bloquean la región de alojamiento de la demo, así que las solicitudes salen a través de un proxy. Al autoalojar PRISM, todo funciona con normalidad y la IA responde a velocidad normal." } }, - "progress": { "modulesLabel": "módulos", "initializing": "Inicializando escaneo…", "running": "Ejecutando…", "log": "Registro de progreso" }, + "progress": { + "modulesLabel": "módulos", + "initializing": "Inicializando escaneo…", + "running": "Ejecutando…", + "log": "Registro de progreso" + }, "results": { "fields": { "asn": "ASN", "address": "DIRECCIÓN", "bio": "Biografía", "blog": "Blog", - "carrier": "Transportador", + "carrier": "Operador", "clientEvents": "Eventos de clientes", "company": "Compañía", "copyDnsRecord": "Copiar registro DNS", @@ -134,7 +191,7 @@ "copyShodanPort": "Copiar el puerto de Shodan", "copyDomain": "Copiar dominio", "copyEmail": "Copiar correo electrónico", - "copyOnionUrl": "Copiar URL de cebolla", + "copyOnionUrl": "Copiar dirección .onion", "copyPort": "Copiar puerto", "copySubdomain": "Copiar subdominio", "copySummary": "Copiar resumen", @@ -183,39 +240,229 @@ "users": "Usuarios", "weak": "Débil %" }, - "htmlReport": "Informe HTML", "pdfReport": "Informe PDF", "jsonReport": "Descargar JSON", - "csvReport": "Descargar CSV", "mdReport": "Descargar Markdown", "copyCurl": "Copiar como cURL", "scanAnother": "Escanear otro", - "github": { "repositoriesScanned": "Repositorios analizados", "notChecked": "no comprobado", "commitEmailsNotChecked": "Los correos de commits no se comprobaron" }, - "tabs": { "rdap": "RDAP", "github": "GitHub", "gravatar": "Gravatar", "hudsonrock": "Exposición a infostealers", "lunar": "Exposición del dominio", "findings": "Hallazgos", "whois": "WHOIS", "dns": "DNS", "subdomains": "Subdominios", "accounts": "Cuentas", "threats": "Amenazas", "censys": "Censys", "darkweb": "Dark Web", "wayback": "Wayback", "email": "Correo", "dorks": "Dorks", "phone": "Teléfono", "telegram": "Telegram", "map": "Mapa", "graph": "Grafo", "json": "JSON", "ai": "IA" }, + "htmlReport": "Informe HTML", + "pdfReport": "Informe PDF", + "jsonReport": "Descargar JSON", + "csvReport": "Descargar CSV", + "mdReport": "Descargar Markdown", + "copyCurl": "Copiar como cURL", + "scanAnother": "Escanear otro", + "github": { + "repositoriesScanned": "Repositorios analizados", + "notChecked": "no comprobado", + "commitEmailsNotChecked": "Los correos de commits no se comprobaron" + }, + "tabs": { + "rdap": "RDAP", + "github": "GitHub", + "gravatar": "Gravatar", + "hudsonrock": "Exposición a infostealers", + "lunar": "Exposición del dominio", + "findings": "Hallazgos", + "whois": "WHOIS", + "dns": "DNS", + "subdomains": "Subdominios", + "accounts": "Cuentas", + "threats": "Amenazas", + "censys": "Censys", + "darkweb": "Dark Web", + "wayback": "Wayback", + "email": "Correo", + "dorks": "Dorks", + "phone": "Teléfono", + "telegram": "Telegram", + "map": "Mapa", + "graph": "Grafo", + "json": "JSON", + "ai": "IA" + }, "opsec": { - "scoreLabel": "Puntuación OPSEC", "riskSuffix": "RIESGO", - "data_exposure": { "label": "Exposición de datos", "tooltip": "Fugas de datos sensibles: credenciales filtradas, correos expuestos, información personal pública." }, - "identity_opsec": { "label": "OPSEC de identidad", "tooltip": "Reutilización de identificadores entre plataformas: mismo nombre de usuario/correo en múltiples sitios." }, - "infrastructure": { "label": "Infraestructura", "tooltip": "Servicios expuestos, puertos abiertos, higiene débil de DNS/WHOIS, coincidencias en inteligencia de amenazas." }, - "web_security": { "label": "Seguridad web", "tooltip": "TLS, cabeceras de seguridad, transparencia de certificados, rutas sensibles archivadas." } - }, - "common": { "yes": "Sí", "no": "No", "unknown": "Desconocido", "points": "pts", "moduleRetry": "Usa el botón de actualizar para volver a intentarlo.", "skippedKeyHint": "añade {key} a .env para activar este módulo.", "skippedHint": "añade la clave a .env para activar este módulo.", "noSecurityFindings": "Sin hallazgos de seguridad", "noDnsRecords": "No se encontraron registros DNS", "noThreats": "No se detectaron amenazas" }, - "findings": { "title": "Hallazgos de seguridad", "none": "Sin hallazgos de seguridad" }, - "whois": { "title": "Registro WHOIS", "registrar": "Registrador", "organization": "Organización", "country": "País", "created": "Creado", "expires": "Expira", "emails": "Correos", "nameServers": "Servidores de nombres" }, - "dns": { "title": "Registros DNS" }, - "subdomains": { "titleFmt": "Transparencia de certificados — {n} subdominios", "certsAnalysed": "{n} certificado(s) analizado(s)" }, - "accounts": { "title": "Búsqueda de nombre de usuario", "platform": "Plataforma", "url": "URL", "time": "Tiempo" }, - "virustotal": { "title": "VirusTotal", "malicious": "Malicioso", "suspicious": "Sospechoso", "harmless": "Inofensivo", "undetected": "No detectado", "country": "País", "asn": "ASN" }, - "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Puntuación de abuso", "totalReports": "Informes totales", "isp": "ISP", "usageType": "Tipo de uso", "torExit": "⚠ Nodo de salida TOR" }, - "shodan": { "title": "Shodan", "openPorts": "Puertos abiertos", "cves": "CVEs encontrados" }, - "censys": { "titleCert": "Censys — Búsqueda de certificados", "titleHost": "Censys — Información del host", "ip": "IP", "asn": "ASN", "location": "Ubicación", "openPorts": "Puertos abiertos", "subdomainsFmt": "Subdominios ({n})", "services": "Servicios", "port": "Puerto", "service": "Servicio", "software": "Software" }, - "darkweb": { "titleFmt": "Espejos en la Dark Web — {n} encontrados", "sources": "Fuentes" }, - "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} capturas · Primera: {first} · Última: {last}", "recent": "Capturas recientes", "sensitive": "URLs sensibles en el archivo" }, - "emailrep": { "title": "Reputación de correo", "reputation": "Reputación", "suspicious": "Sospechoso", "validMx": "MX válido", "deliverable": "Entregable", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Reputación del dominio", "mxRecords": "Registros MX", "disposableWarn": "⚠ Correo desechable detectado", "spoofableWarn": "⚠ Dominio suplantable (falta SPF/DMARC)", "freeProvider": "Proveedor de correo gratuito" }, - "smtp": { "title": "Verificación SMTP", "exists": "Existe", "connect": "Conexión SMTP", "catchAllWarn": "⚠ Servidor catch-all (acepta cualquier dirección)", "details": "Detalles" }, - "breaches": { "title": "Verificación de filtraciones", "found": "Filtraciones encontradas", "breachedServices": "Servicios filtrados", "total": "Total de filtraciones" }, - "dorks": { "title": "Google Dorks" }, - "phone": { "title": "Inteligencia telefónica", "valid": "Válido", "country": "País", "countryCode": "Código de país", "region": "Región", "carrier": "Operador", "lineType": "Tipo de línea", "timezones": "Zonas horarias", "ownerName": "Nombre del titular", "address": "Dirección" }, - "telegram": { "title": "Perfil de Telegram", "found": "Encontrado", "username": "Nombre de usuario", "name": "Nombre", "bio": "Biografía", "type": "Tipo", "followers": "Seguidores" }, - "map": { "title": "Mapa de geolocalización IP", "ip": "IP", "location": "Ubicación", "organization": "Organización", "coordinates": "Coordenadas", "loading": "Cargando mapa…", "noData": "No hay datos de geolocalización disponibles", "moreFmt": "{n} ubicaciones encontradas", "precision": "Precisión", "approximate": "Aproximada (regional, no exacta)" }, - "graph": { "title": "Grafo de entidades", "loading": "Cargando grafo…", "empty": "No hay datos de grafo disponibles para este escaneo" }, - "json": { "title": "Resultados JSON sin procesar", "show": "Mostrar datos sin procesar", "hide": "Ocultar datos sin procesar", "copyRawJson": "Copy raw JSON" }, - "ai": { "title": "Análisis OSINT con IA · Nvidia Nemotron", "chatTitle": "Preguntar a la IA", "generate": "Generar resumen con IA", "generating": "Generando análisis…", "model": "Modelo", "regenerate": "Regenerar", "placeholder": "Pregunte cualquier cosa sobre este escaneo…" }, + "scoreLabel": "Puntuación OPSEC", + "riskSuffix": "RIESGO", + "data_exposure": { + "label": "Exposición de datos", + "tooltip": "Fugas de datos sensibles: credenciales filtradas, correos expuestos, información personal pública." + }, + "identity_opsec": { + "label": "OPSEC de identidad", + "tooltip": "Reutilización de identificadores entre plataformas: mismo nombre de usuario/correo en múltiples sitios." + }, + "infrastructure": { + "label": "Infraestructura", + "tooltip": "Servicios expuestos, puertos abiertos, higiene débil de DNS/WHOIS, coincidencias en inteligencia de amenazas." + }, + "web_security": { + "label": "Seguridad web", + "tooltip": "TLS, cabeceras de seguridad, transparencia de certificados, rutas sensibles archivadas." + } + }, + "common": { + "yes": "Sí", + "no": "No", + "unknown": "Desconocido", + "points": "pts", + "moduleRetry": "Usa el botón de actualizar para volver a intentarlo.", + "skippedKeyHint": "añade {key} a .env para activar este módulo.", + "skippedHint": "añade la clave a .env para activar este módulo.", + "noSecurityFindings": "Sin hallazgos de seguridad", + "noDnsRecords": "No se encontraron registros DNS", + "noThreats": "No se detectaron amenazas" + }, + "findings": { + "title": "Hallazgos de seguridad", + "none": "Sin hallazgos de seguridad" + }, + "whois": { + "title": "Registro WHOIS", + "registrar": "Registrador", + "organization": "Organización", + "country": "País", + "created": "Creado", + "expires": "Expira", + "emails": "Correos", + "nameServers": "Servidores de nombres" + }, + "dns": { + "title": "Registros DNS" + }, + "subdomains": { + "titleFmt": "Transparencia de certificados — {n} subdominios", + "certsAnalysed": "{n} certificado(s) analizado(s)" + }, + "accounts": { + "title": "Búsqueda de nombre de usuario", + "platform": "Plataforma", + "url": "URL", + "time": "Tiempo" + }, + "virustotal": { + "title": "VirusTotal", + "malicious": "Malicioso", + "suspicious": "Sospechoso", + "harmless": "Inofensivo", + "undetected": "No detectado", + "country": "País", + "asn": "ASN" + }, + "abuseipdb": { + "title": "AbuseIPDB", + "abuseScore": "Puntuación de abuso", + "totalReports": "Informes totales", + "isp": "ISP", + "usageType": "Tipo de uso", + "torExit": "⚠ Nodo de salida TOR" + }, + "shodan": { + "title": "Shodan", + "openPorts": "Puertos abiertos", + "cves": "CVEs encontrados" + }, + "censys": { + "titleCert": "Censys — Búsqueda de certificados", + "titleHost": "Censys — Información del host", + "ip": "IP", + "asn": "ASN", + "location": "Ubicación", + "openPorts": "Puertos abiertos", + "subdomainsFmt": "Subdominios ({n})", + "services": "Servicios", + "port": "Puerto", + "service": "Servicio", + "software": "Software" + }, + "darkweb": { + "titleFmt": "Espejos en la Dark Web — {n} encontrados", + "sources": "Fuentes" + }, + "wayback": { + "title": "Wayback Machine", + "summaryFmt": "{n} capturas · Primera: {first} · Última: {last}", + "recent": "Capturas recientes", + "sensitive": "URLs sensibles en el archivo" + }, + "emailrep": { + "title": "Reputación de correo", + "reputation": "Reputación", + "suspicious": "Sospechoso", + "validMx": "MX válido", + "deliverable": "Entregable", + "spf": "SPF", + "dmarc": "DMARC", + "domainRep": "Reputación del dominio", + "mxRecords": "Registros MX", + "disposableWarn": "⚠ Correo desechable detectado", + "spoofableWarn": "⚠ Dominio suplantable (falta SPF/DMARC)", + "freeProvider": "Proveedor de correo gratuito" + }, + "smtp": { + "title": "Verificación SMTP", + "exists": "Existe", + "connect": "Conexión SMTP", + "catchAllWarn": "⚠ Servidor catch-all (acepta cualquier dirección)", + "details": "Detalles" + }, + "breaches": { + "title": "Verificación de filtraciones", + "found": "Filtraciones encontradas", + "breachedServices": "Servicios filtrados", + "total": "Total de filtraciones" + }, + "dorks": { + "title": "Google Dorks" + }, + "phone": { + "title": "Inteligencia telefónica", + "valid": "Válido", + "country": "País", + "countryCode": "Código de país", + "region": "Región", + "carrier": "Operador", + "lineType": "Tipo de línea", + "timezones": "Zonas horarias", + "ownerName": "Nombre del titular", + "address": "Dirección" + }, + "telegram": { + "title": "Perfil de Telegram", + "found": "Encontrado", + "username": "Nombre de usuario", + "name": "Nombre", + "bio": "Biografía", + "type": "Tipo", + "followers": "Seguidores" + }, + "map": { + "title": "Mapa de geolocalización IP", + "ip": "IP", + "location": "Ubicación", + "organization": "Organización", + "coordinates": "Coordenadas", + "loading": "Cargando mapa…", + "noData": "No hay datos de geolocalización disponibles", + "moreFmt": "{n} ubicaciones encontradas", + "precision": "Precisión", + "approximate": "Aproximada (regional, no exacta)" + }, + "graph": { + "title": "Grafo de entidades", + "loading": "Cargando grafo…", + "empty": "No hay datos de grafo disponibles para este escaneo" + }, + "json": { + "title": "Resultados JSON sin procesar", + "show": "Mostrar datos sin procesar", + "hide": "Ocultar datos sin procesar", + "copyRawJson": "Copy raw JSON" + }, + "ai": { + "title": "Análisis OSINT con IA · Nvidia Nemotron", + "chatTitle": "Preguntar a la IA", + "generate": "Generar resumen con IA", + "generating": "Generando análisis…", + "model": "Modelo", + "regenerate": "Regenerar", + "placeholder": "Pregunte cualquier cosa sobre este escaneo…" + }, "duration": "Completado en {duration}", "copyAllFindings": "Copiar todos los hallazgos", "copyAllEmails": "Copiar todos los correos", @@ -377,15 +624,15 @@ "paused": "Pausado", "failedToToggle": "Error al actualizar la lista" }, - "common": { - "copy": "Copiar", - "copied": "¡Copiado!", - "copyFailed": "Error al copiar", - "loading": "Cargando…", - "error": "Error", - "backToTop": "Volver arriba", - "tabErrorTitle": "No se puede cargar esta pestaña", - "tabErrorMessage": "Se produjo un error al cargar este resultado." + "common": { + "copy": "Copiar", + "copied": "¡Copiado!", + "copyFailed": "Error al copiar", + "loading": "Cargando…", + "error": "Error", + "backToTop": "Volver arriba", + "tabErrorTitle": "No se puede cargar esta pestaña", + "tabErrorMessage": "Se produjo un error al cargar este resultado." }, "lang": { "label": "Idioma", @@ -400,4 +647,4 @@ "zh": "ZH", "tr": "TR" } -} +} \ No newline at end of file diff --git a/frontend/src/messages/fr.json b/frontend/src/messages/fr.json index 76c9fc64..ab50a503 100644 --- a/frontend/src/messages/fr.json +++ b/frontend/src/messages/fr.json @@ -100,22 +100,68 @@ "online": "EN LIGNE" }, "caps": { - "domain": { "title": "Domaine / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Sous-domaines · Shodan", "item3": "VirusTotal · Wayback" }, - "email": { "title": "E-mail", "item1": "Réputation DNS · SMTP", "item2": "Vérification de fuites · Jetable", "item3": "SPF · DKIM · DMARC" }, - "phone": { "title": "Téléphone", "item1": "Validation · Opérateur", "item2": "Pays · Recherche inversée" }, - "username": { "title": "Nom d'utilisateur", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ plateformes", "item3": "Score OPSEC" } + "domain": { + "title": "Domaine / IP", + "item1": "WHOIS · DNS · GeoIP", + "item2": "Sous-domaines · Shodan", + "item3": "VirusTotal · Wayback" + }, + "email": { + "title": "E-mail", + "item1": "Réputation DNS · SMTP", + "item2": "Vérification de fuites · Jetable", + "item3": "SPF · DKIM · DMARC" + }, + "phone": { + "title": "Téléphone", + "item1": "Validation · Opérateur", + "item2": "Pays · Recherche inversée" + }, + "username": { + "title": "Nom d'utilisateur", + "item1": "Blackbird · Maigret", + "item2": "50+ / 3000+ plateformes", + "item3": "Score OPSEC" + } }, "standaloneTools": "Outils autonomes", "tools": { - "metadata": { "label": "Métadonnées de fichier", "desc": "EXIF, GPS, PDF, DOCX" }, - "headers": { "label": "En-têtes d'e-mail", "desc": "SPF, DKIM, sauts de routage" }, - "crypto": { "label": "Adresse crypto", "desc": "Bitcoin et Ethereum" }, - "qr": { "label": "Décodeur QR", "desc": "Décoder et analyser" }, - "mac": { "label": "Recherche MAC", "desc": "Recherche de fournisseur" }, - "subnet": { "label": "IP / Sous-réseau", "desc": "Plages réseau & CIDR" }, - "hash": { "label": "Identificateur de Hash", "desc": "Identifier les types de hash" }, - "encoder": { "label": "Base64 / URL", "desc": "Encoder et décoder" }, - "jwt": { "label": "Décodeur JWT", "desc": "Décoder les jetons JWT" } + "metadata": { + "label": "Métadonnées de fichier", + "desc": "EXIF, GPS, PDF, DOCX" + }, + "headers": { + "label": "En-têtes d'e-mail", + "desc": "SPF, DKIM, sauts de routage" + }, + "crypto": { + "label": "Adresse crypto", + "desc": "Bitcoin et Ethereum" + }, + "qr": { + "label": "Décodeur QR", + "desc": "Décoder et analyser" + }, + "mac": { + "label": "Recherche MAC", + "desc": "Recherche de fournisseur" + }, + "subnet": { + "label": "IP / Sous-réseau", + "desc": "Plages réseau & CIDR" + }, + "hash": { + "label": "Identificateur de Hash", + "desc": "Identifier les types de hash" + }, + "encoder": { + "label": "Base64 / URL", + "desc": "Encoder et décoder" + }, + "jwt": { + "label": "Décodeur JWT", + "desc": "Décoder les jetons JWT" + } }, "demo": { "line1": "Ceci est une démo publique avec des quotas API limités. Certains modules (Shodan, VirusTotal) peuvent être soumis à des limites de débit.", @@ -137,7 +183,7 @@ "address": "Adresse", "bio": "Biographie", "blog": "Blogue", - "carrier": "Transporteur", + "carrier": "Opérateur", "clientEvents": "Événements clients", "company": "Entreprise", "copyDnsRecord": "Copier l'enregistrement DNS", @@ -145,7 +191,7 @@ "copyShodanPort": "Copier le port Shodan", "copyDomain": "Copier le domaine", "copyEmail": "Copier l'e-mail", - "copyOnionUrl": "Copier l'URL de l'oignon", + "copyOnionUrl": "Copier l'adresse .onion", "copyPort": "Copier le port", "copySubdomain": "Copier le sous-domaine", "copySummary": "Copier le résumé", @@ -233,33 +279,190 @@ "opsec": { "scoreLabel": "Score OPSEC", "riskSuffix": "RISQUE", - "data_exposure": { "label": "Exposition des données", "tooltip": "Fuites de données sensibles : identifiants compromis, e-mails exposés, PII publiques." }, - "identity_opsec": { "label": "OPSEC d'identité", "tooltip": "Réutilisation d'identifiants entre plateformes : même nom d'utilisateur/e-mail sur de nombreux sites." }, - "infrastructure": { "label": "Infrastructure", "tooltip": "Services exposés, ports ouverts, mauvaise hygiène DNS/WHOIS, correspondances threat-intel." }, - "web_security": { "label": "Sécurité web", "tooltip": "TLS, en-têtes de sécurité, transparence des certificats, chemins sensibles archivés." } - }, - "common": { "yes": "Oui", "no": "Non", "unknown": "Inconnu", "points": "pts", "moduleRetry": "Utilisez le bouton d'actualisation pour réessayer.", "skippedKeyHint": "ajoutez {key} au fichier .env pour activer ce module.", "skippedHint": "ajoutez la clé au fichier .env pour activer ce module.", "noSecurityFindings": "Aucun problème de sécurité", "noDnsRecords": "Aucun enregistrement DNS trouvé", "noThreats": "Aucune menace détectée" }, - "findings": { "title": "Résultats de sécurité", "none": "Aucun résultat de sécurité" }, - "whois": { "title": "Enregistrement WHOIS", "registrar": "Registraire", "organization": "Organisation", "country": "Pays", "created": "Créé", "expires": "Expire", "emails": "E-mails", "nameServers": "Serveurs de noms" }, - "dns": { "title": "Enregistrements DNS" }, - "subdomains": { "titleFmt": "Certificate Transparency — {n} sous-domaines", "certsAnalysed": "{n} certificat(s) analysé(s)" }, - "accounts": { "title": "Recherche par nom d'utilisateur", "platform": "Plateforme", "url": "URL", "time": "Temps" }, - "virustotal": { "title": "VirusTotal", "malicious": "Malveillant", "suspicious": "Suspect", "harmless": "Inoffensif", "undetected": "Non détecté", "country": "Pays", "asn": "ASN" }, - "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Score d'abus", "totalReports": "Signalements totaux", "isp": "FAI", "usageType": "Type d'utilisation", "torExit": "⚠ Nœud de sortie TOR" }, - "shodan": { "title": "Shodan", "openPorts": "Ports ouverts", "cves": "CVE trouvés" }, - "censys": { "titleCert": "Censys — Recherche de certificats", "titleHost": "Censys — Info hôte", "ip": "IP", "asn": "ASN", "location": "Emplacement", "openPorts": "Ports ouverts", "subdomainsFmt": "Sous-domaines ({n})", "services": "Services", "port": "Port", "service": "Service", "software": "Logiciel" }, - "darkweb": { "titleFmt": "Miroirs Dark Web — {n} trouvés", "sources": "Sources" }, - "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} captures · Première : {first} · Dernière : {last}", "recent": "Captures récentes", "sensitive": "URLs sensibles dans l'archive" }, - "emailrep": { "title": "Réputation d'e-mail", "reputation": "Réputation", "suspicious": "Suspect", "validMx": "MX valide", "deliverable": "Livrable", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Réputation du domaine", "mxRecords": "Enregistrements MX", "disposableWarn": "⚠ E-mail jetable détecté", "spoofableWarn": "⚠ Le domaine est usurpable (SPF/DMARC manquants)", "freeProvider": "Fournisseur d'e-mail gratuit" }, - "smtp": { "title": "Vérification SMTP", "exists": "Existe", "connect": "Connexion SMTP", "catchAllWarn": "⚠ Serveur catch-all (accepte toute adresse)", "details": "Détails" }, - "breaches": { "title": "Vérification des fuites", "found": "Fuites trouvées", "breachedServices": "Services compromis", "total": "Total des fuites" }, - "dorks": { "title": "Google Dorks" }, - "phone": { "title": "Renseignement téléphonique", "valid": "Valide", "country": "Pays", "countryCode": "Indicatif pays", "region": "Région", "carrier": "Opérateur", "lineType": "Type de ligne", "timezones": "Fuseaux horaires", "ownerName": "Nom du propriétaire", "address": "Adresse" }, - "telegram": { "title": "Profil Telegram", "found": "Trouvé", "username": "Nom d'utilisateur", "name": "Nom", "bio": "Bio", "type": "Type", "followers": "Abonnés" }, - "map": { "title": "Carte de géolocalisation IP", "ip": "IP", "location": "Emplacement", "organization": "Organisation", "coordinates": "Coordonnées", "loading": "Chargement de la carte…", "noData": "Aucune donnée de géolocalisation disponible", "moreFmt": "{n} emplacements trouvés", "precision": "Précision", "approximate": "Approximatif (régional, non exact)" }, - "graph": { "title": "Graphe d'entités", "loading": "Chargement du graphe…", "empty": "Aucune donnée de graphe disponible pour cette analyse" }, - "json": { "title": "Résultats JSON bruts", "show": "Afficher les données brutes", "hide": "Masquer les données brutes", "copyRawJson": "Copy raw JSON" }, - "ai": { "title": "Analyse IA OSINT · Nvidia Nemotron", "chatTitle": "Demander à l'IA", "generate": "Générer un résumé IA", "generating": "Génération de l'analyse…", "model": "Modèle", "regenerate": "Régénérer", "placeholder": "Posez une question sur cette analyse…" }, + "data_exposure": { + "label": "Exposition des données", + "tooltip": "Fuites de données sensibles : identifiants compromis, e-mails exposés, PII publiques." + }, + "identity_opsec": { + "label": "OPSEC d'identité", + "tooltip": "Réutilisation d'identifiants entre plateformes : même nom d'utilisateur/e-mail sur de nombreux sites." + }, + "infrastructure": { + "label": "Infrastructure", + "tooltip": "Services exposés, ports ouverts, mauvaise hygiène DNS/WHOIS, correspondances threat-intel." + }, + "web_security": { + "label": "Sécurité web", + "tooltip": "TLS, en-têtes de sécurité, transparence des certificats, chemins sensibles archivés." + } + }, + "common": { + "yes": "Oui", + "no": "Non", + "unknown": "Inconnu", + "points": "pts", + "moduleRetry": "Utilisez le bouton d'actualisation pour réessayer.", + "skippedKeyHint": "ajoutez {key} au fichier .env pour activer ce module.", + "skippedHint": "ajoutez la clé au fichier .env pour activer ce module.", + "noSecurityFindings": "Aucun problème de sécurité", + "noDnsRecords": "Aucun enregistrement DNS trouvé", + "noThreats": "Aucune menace détectée" + }, + "findings": { + "title": "Résultats de sécurité", + "none": "Aucun résultat de sécurité" + }, + "whois": { + "title": "Enregistrement WHOIS", + "registrar": "Registraire", + "organization": "Organisation", + "country": "Pays", + "created": "Créé", + "expires": "Expire", + "emails": "E-mails", + "nameServers": "Serveurs de noms" + }, + "dns": { + "title": "Enregistrements DNS" + }, + "subdomains": { + "titleFmt": "Certificate Transparency — {n} sous-domaines", + "certsAnalysed": "{n} certificat(s) analysé(s)" + }, + "accounts": { + "title": "Recherche par nom d'utilisateur", + "platform": "Plateforme", + "url": "URL", + "time": "Temps" + }, + "virustotal": { + "title": "VirusTotal", + "malicious": "Malveillant", + "suspicious": "Suspect", + "harmless": "Inoffensif", + "undetected": "Non détecté", + "country": "Pays", + "asn": "ASN" + }, + "abuseipdb": { + "title": "AbuseIPDB", + "abuseScore": "Score d'abus", + "totalReports": "Signalements totaux", + "isp": "FAI", + "usageType": "Type d'utilisation", + "torExit": "⚠ Nœud de sortie TOR" + }, + "shodan": { + "title": "Shodan", + "openPorts": "Ports ouverts", + "cves": "CVE trouvés" + }, + "censys": { + "titleCert": "Censys — Recherche de certificats", + "titleHost": "Censys — Info hôte", + "ip": "IP", + "asn": "ASN", + "location": "Emplacement", + "openPorts": "Ports ouverts", + "subdomainsFmt": "Sous-domaines ({n})", + "services": "Services", + "port": "Port", + "service": "Service", + "software": "Logiciel" + }, + "darkweb": { + "titleFmt": "Miroirs Dark Web — {n} trouvés", + "sources": "Sources" + }, + "wayback": { + "title": "Wayback Machine", + "summaryFmt": "{n} captures · Première : {first} · Dernière : {last}", + "recent": "Captures récentes", + "sensitive": "URLs sensibles dans l'archive" + }, + "emailrep": { + "title": "Réputation d'e-mail", + "reputation": "Réputation", + "suspicious": "Suspect", + "validMx": "MX valide", + "deliverable": "Livrable", + "spf": "SPF", + "dmarc": "DMARC", + "domainRep": "Réputation du domaine", + "mxRecords": "Enregistrements MX", + "disposableWarn": "⚠ E-mail jetable détecté", + "spoofableWarn": "⚠ Le domaine est usurpable (SPF/DMARC manquants)", + "freeProvider": "Fournisseur d'e-mail gratuit" + }, + "smtp": { + "title": "Vérification SMTP", + "exists": "Existe", + "connect": "Connexion SMTP", + "catchAllWarn": "⚠ Serveur catch-all (accepte toute adresse)", + "details": "Détails" + }, + "breaches": { + "title": "Vérification des fuites", + "found": "Fuites trouvées", + "breachedServices": "Services compromis", + "total": "Total des fuites" + }, + "dorks": { + "title": "Google Dorks" + }, + "phone": { + "title": "Renseignement téléphonique", + "valid": "Valide", + "country": "Pays", + "countryCode": "Indicatif pays", + "region": "Région", + "carrier": "Opérateur", + "lineType": "Type de ligne", + "timezones": "Fuseaux horaires", + "ownerName": "Nom du propriétaire", + "address": "Adresse" + }, + "telegram": { + "title": "Profil Telegram", + "found": "Trouvé", + "username": "Nom d'utilisateur", + "name": "Nom", + "bio": "Bio", + "type": "Type", + "followers": "Abonnés" + }, + "map": { + "title": "Carte de géolocalisation IP", + "ip": "IP", + "location": "Emplacement", + "organization": "Organisation", + "coordinates": "Coordonnées", + "loading": "Chargement de la carte…", + "noData": "Aucune donnée de géolocalisation disponible", + "moreFmt": "{n} emplacements trouvés", + "precision": "Précision", + "approximate": "Approximatif (régional, non exact)" + }, + "graph": { + "title": "Graphe d'entités", + "loading": "Chargement du graphe…", + "empty": "Aucune donnée de graphe disponible pour cette analyse" + }, + "json": { + "title": "Résultats JSON bruts", + "show": "Afficher les données brutes", + "hide": "Masquer les données brutes", + "copyRawJson": "Copy raw JSON" + }, + "ai": { + "title": "Analyse IA OSINT · Nvidia Nemotron", + "chatTitle": "Demander à l'IA", + "generate": "Générer un résumé IA", + "generating": "Génération de l'analyse…", + "model": "Modèle", + "regenerate": "Régénérer", + "placeholder": "Posez une question sur cette analyse…" + }, "duration": "Terminé en {duration}", "copyAllFindings": "Copier tous les résultats", "copyAllEmails": "Copier tous les e-mails", @@ -420,7 +623,7 @@ "resume": "Reprendre la liste", "paused": "Suspendu", "failedToToggle": "Échec de la mise à jour de la liste" - }, + }, "common": { "copy": "Copier", "copied": "Copié !", @@ -444,4 +647,4 @@ "zh": "ZH", "tr": "TR" } -} +} \ No newline at end of file diff --git a/frontend/src/messages/it.json b/frontend/src/messages/it.json index 03606650..10d2a3c5 100644 --- a/frontend/src/messages/it.json +++ b/frontend/src/messages/it.json @@ -100,22 +100,68 @@ "online": "ONLINE" }, "caps": { - "domain": { "title": "Dominio / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Sottodomini · Shodan", "item3": "VirusTotal · Wayback" }, - "email": { "title": "Email", "item1": "Reputazione DNS · SMTP", "item2": "Violazioni · Usa e getta", "item3": "SPF · DKIM · DMARC" }, - "phone": { "title": "Telefono", "item1": "Validazione · Operatore", "item2": "Paese · Ricerca inversa" }, - "username": { "title": "Username", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ piattaforme", "item3": "Punteggio OPSEC" } + "domain": { + "title": "Dominio / IP", + "item1": "WHOIS · DNS · GeoIP", + "item2": "Sottodomini · Shodan", + "item3": "VirusTotal · Wayback" + }, + "email": { + "title": "Email", + "item1": "Reputazione DNS · SMTP", + "item2": "Violazioni · Usa e getta", + "item3": "SPF · DKIM · DMARC" + }, + "phone": { + "title": "Telefono", + "item1": "Validazione · Operatore", + "item2": "Paese · Ricerca inversa" + }, + "username": { + "title": "Username", + "item1": "Blackbird · Maigret", + "item2": "50+ / 3000+ piattaforme", + "item3": "Punteggio OPSEC" + } }, "standaloneTools": "Strumenti autonomi", "tools": { - "metadata": { "label": "Metadati file", "desc": "EXIF, GPS, PDF, DOCX" }, - "headers": { "label": "Intestazioni email", "desc": "SPF, DKIM, hop di routing" }, - "crypto": { "label": "Indirizzo crypto", "desc": "Bitcoin ed Ethereum" }, - "qr": { "label": "Decodifica QR", "desc": "Decodifica e analizza" }, - "mac": { "label": "Ricerca MAC", "desc": "Ricerca produttore" }, - "subnet": { "label": "IP / Subnet", "desc": "Range di rete e CIDR" }, - "hash": { "label": "Identificatore hash", "desc": "Identifica i tipi di hash" }, - "encoder": { "label": "Base64 / URL", "desc": "Codifica e decodifica" }, - "jwt": { "label": "Decoder JWT", "desc": "Decodifica token JWT" } + "metadata": { + "label": "Metadati file", + "desc": "EXIF, GPS, PDF, DOCX" + }, + "headers": { + "label": "Intestazioni email", + "desc": "SPF, DKIM, hop di routing" + }, + "crypto": { + "label": "Indirizzo crypto", + "desc": "Bitcoin ed Ethereum" + }, + "qr": { + "label": "Decodifica QR", + "desc": "Decodifica e analizza" + }, + "mac": { + "label": "Ricerca MAC", + "desc": "Ricerca produttore" + }, + "subnet": { + "label": "IP / Subnet", + "desc": "Range di rete e CIDR" + }, + "hash": { + "label": "Identificatore hash", + "desc": "Identifica i tipi di hash" + }, + "encoder": { + "label": "Base64 / URL", + "desc": "Codifica e decodifica" + }, + "jwt": { + "label": "Decoder JWT", + "desc": "Decodifica token JWT" + } }, "demo": { "line1": "Questa è una demo pubblica con quote API limitate. Alcuni moduli (Shodan, VirusTotal) potrebbero avere limiti di frequenza.", @@ -259,7 +305,7 @@ "address": "Indirizzo", "bio": "Bio", "blog": "Blog", - "carrier": "Vettore", + "carrier": "Operatore", "clientEvents": "Eventi del cliente", "company": "Azienda", "copyDnsRecord": "Copia il record DNS", @@ -267,7 +313,7 @@ "copyShodanPort": "Copia il porto di Shodan", "copyDomain": "Copia dominio", "copyEmail": "Copia e-mail", - "copyOnionUrl": "Copia l'URL della cipolla", + "copyOnionUrl": "Copia indirizzo .onion", "copyPort": "Copia porta", "copySubdomain": "Copia sottodominio", "copySummary": "Copia riepilogo", @@ -355,33 +401,190 @@ "opsec": { "scoreLabel": "Punteggio OPSEC", "riskSuffix": "RISCHIO", - "data_exposure": { "label": "Esposizione dati", "tooltip": "Fughe di dati sensibili: credenziali violate, email esposte, PII pubblici." }, - "identity_opsec": { "label": "OPSEC identità", "tooltip": "Riuso di identificatori tra piattaforme: stesso username/email su molti siti." }, - "infrastructure": { "label": "Infrastruttura", "tooltip": "Servizi esposti, porte aperte, scarsa igiene DNS/WHOIS, segnalazioni threat-intel." }, - "web_security": { "label": "Sicurezza web", "tooltip": "TLS, header di sicurezza, certificate transparency, percorsi sensibili archiviati." } - }, - "common": { "yes": "Sì", "no": "No", "unknown": "Sconosciuto", "points": "pt", "moduleRetry": "Usa il pulsante di aggiornamento per riprovare.", "skippedKeyHint": "aggiungi {key} al file .env per attivare questo modulo.", "skippedHint": "aggiungi la chiave al file .env per attivare questo modulo.", "noSecurityFindings": "Nessun problema di sicurezza", "noDnsRecords": "Nessun record DNS trovato", "noThreats": "Nessuna minaccia rilevata" }, - "findings": { "title": "Risultati di sicurezza", "none": "Nessun risultato di sicurezza" }, - "whois": { "title": "Registrazione WHOIS", "registrar": "Registrar", "organization": "Organizzazione", "country": "Paese", "created": "Creato", "expires": "Scade", "emails": "Email", "nameServers": "Name server" }, - "dns": { "title": "Record DNS" }, - "subdomains": { "titleFmt": "Certificate Transparency — {n} sottodomini", "certsAnalysed": "{n} certificato/i analizzato/i" }, - "accounts": { "title": "Ricerca username", "platform": "Piattaforma", "url": "URL", "time": "Tempo" }, - "virustotal": { "title": "VirusTotal", "malicious": "Dannoso", "suspicious": "Sospetto", "harmless": "Innocuo", "undetected": "Non rilevato", "country": "Paese", "asn": "ASN" }, - "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Punteggio abuso", "totalReports": "Segnalazioni totali", "isp": "ISP", "usageType": "Tipo di utilizzo", "torExit": "⚠ Nodo di uscita TOR" }, - "shodan": { "title": "Shodan", "openPorts": "Porte aperte", "cves": "CVE trovate" }, - "censys": { "titleCert": "Censys — Ricerca certificati", "titleHost": "Censys — Info host", "ip": "IP", "asn": "ASN", "location": "Posizione", "openPorts": "Porte aperte", "subdomainsFmt": "Sottodomini ({n})", "services": "Servizi", "port": "Porta", "service": "Servizio", "software": "Software" }, - "darkweb": { "titleFmt": "Mirror Dark Web — {n} trovati", "sources": "Fonti" }, - "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} snapshot · Primo: {first} · Ultimo: {last}", "recent": "Snapshot recenti", "sensitive": "URL sensibili nell'archivio" }, - "emailrep": { "title": "Reputazione email", "reputation": "Reputazione", "suspicious": "Sospetto", "validMx": "MX valido", "deliverable": "Recapitabile", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Reputazione dominio", "mxRecords": "Record MX", "disposableWarn": "⚠ Email usa e getta rilevata", "spoofableWarn": "⚠ Il dominio è falsificabile (SPF/DMARC mancanti)", "freeProvider": "Provider email gratuito" }, - "smtp": { "title": "Verifica SMTP", "exists": "Esiste", "connect": "Connessione SMTP", "catchAllWarn": "⚠ Server catch-all (accetta qualsiasi indirizzo)", "details": "Dettagli" }, - "breaches": { "title": "Controllo violazioni", "found": "Violazioni trovate", "breachedServices": "Servizi violati", "total": "Violazioni totali" }, - "dorks": { "title": "Google Dorks" }, - "phone": { "title": "Intelligence telefonica", "valid": "Valido", "country": "Paese", "countryCode": "Prefisso paese", "region": "Regione", "carrier": "Operatore", "lineType": "Tipo di linea", "timezones": "Fusi orari", "ownerName": "Nome proprietario", "address": "Indirizzo" }, - "telegram": { "title": "Profilo Telegram", "found": "Trovato", "username": "Username", "name": "Nome", "bio": "Bio", "type": "Tipo", "followers": "Follower" }, - "map": { "title": "Mappa geolocalizzazione IP", "ip": "IP", "location": "Posizione", "organization": "Organizzazione", "coordinates": "Coordinate", "loading": "Caricamento mappa…", "noData": "Nessun dato di geolocalizzazione disponibile", "moreFmt": "{n} posizioni trovate", "precision": "Precisione", "approximate": "Approssimativa (regionale, non esatta)" }, - "graph": { "title": "Grafo delle entità", "loading": "Caricamento grafo…", "empty": "Nessun dato del grafo per questa scansione" }, - "json": { "title": "Risultati JSON grezzi", "show": "Mostra dati grezzi", "hide": "Nascondi dati grezzi", "copyRawJson": "Copy raw JSON" }, - "ai": { "title": "Analisi OSINT IA · Nvidia Nemotron", "chatTitle": "Chiedi all'IA", "generate": "Genera riepilogo IA", "generating": "Generazione analisi…", "model": "Modello", "regenerate": "Rigenera", "placeholder": "Chiedi qualsiasi cosa su questa scansione…" }, + "data_exposure": { + "label": "Esposizione dati", + "tooltip": "Fughe di dati sensibili: credenziali violate, email esposte, PII pubblici." + }, + "identity_opsec": { + "label": "OPSEC identità", + "tooltip": "Riuso di identificatori tra piattaforme: stesso username/email su molti siti." + }, + "infrastructure": { + "label": "Infrastruttura", + "tooltip": "Servizi esposti, porte aperte, scarsa igiene DNS/WHOIS, segnalazioni threat-intel." + }, + "web_security": { + "label": "Sicurezza web", + "tooltip": "TLS, header di sicurezza, certificate transparency, percorsi sensibili archiviati." + } + }, + "common": { + "yes": "Sì", + "no": "No", + "unknown": "Sconosciuto", + "points": "pt", + "moduleRetry": "Usa il pulsante di aggiornamento per riprovare.", + "skippedKeyHint": "aggiungi {key} al file .env per attivare questo modulo.", + "skippedHint": "aggiungi la chiave al file .env per attivare questo modulo.", + "noSecurityFindings": "Nessun problema di sicurezza", + "noDnsRecords": "Nessun record DNS trovato", + "noThreats": "Nessuna minaccia rilevata" + }, + "findings": { + "title": "Risultati di sicurezza", + "none": "Nessun risultato di sicurezza" + }, + "whois": { + "title": "Registrazione WHOIS", + "registrar": "Registrar", + "organization": "Organizzazione", + "country": "Paese", + "created": "Creato", + "expires": "Scade", + "emails": "Email", + "nameServers": "Name server" + }, + "dns": { + "title": "Record DNS" + }, + "subdomains": { + "titleFmt": "Certificate Transparency — {n} sottodomini", + "certsAnalysed": "{n} certificato/i analizzato/i" + }, + "accounts": { + "title": "Ricerca username", + "platform": "Piattaforma", + "url": "URL", + "time": "Tempo" + }, + "virustotal": { + "title": "VirusTotal", + "malicious": "Dannoso", + "suspicious": "Sospetto", + "harmless": "Innocuo", + "undetected": "Non rilevato", + "country": "Paese", + "asn": "ASN" + }, + "abuseipdb": { + "title": "AbuseIPDB", + "abuseScore": "Punteggio abuso", + "totalReports": "Segnalazioni totali", + "isp": "ISP", + "usageType": "Tipo di utilizzo", + "torExit": "⚠ Nodo di uscita TOR" + }, + "shodan": { + "title": "Shodan", + "openPorts": "Porte aperte", + "cves": "CVE trovate" + }, + "censys": { + "titleCert": "Censys — Ricerca certificati", + "titleHost": "Censys — Info host", + "ip": "IP", + "asn": "ASN", + "location": "Posizione", + "openPorts": "Porte aperte", + "subdomainsFmt": "Sottodomini ({n})", + "services": "Servizi", + "port": "Porta", + "service": "Servizio", + "software": "Software" + }, + "darkweb": { + "titleFmt": "Mirror Dark Web — {n} trovati", + "sources": "Fonti" + }, + "wayback": { + "title": "Wayback Machine", + "summaryFmt": "{n} snapshot · Primo: {first} · Ultimo: {last}", + "recent": "Snapshot recenti", + "sensitive": "URL sensibili nell'archivio" + }, + "emailrep": { + "title": "Reputazione email", + "reputation": "Reputazione", + "suspicious": "Sospetto", + "validMx": "MX valido", + "deliverable": "Recapitabile", + "spf": "SPF", + "dmarc": "DMARC", + "domainRep": "Reputazione dominio", + "mxRecords": "Record MX", + "disposableWarn": "⚠ Email usa e getta rilevata", + "spoofableWarn": "⚠ Il dominio è falsificabile (SPF/DMARC mancanti)", + "freeProvider": "Provider email gratuito" + }, + "smtp": { + "title": "Verifica SMTP", + "exists": "Esiste", + "connect": "Connessione SMTP", + "catchAllWarn": "⚠ Server catch-all (accetta qualsiasi indirizzo)", + "details": "Dettagli" + }, + "breaches": { + "title": "Controllo violazioni", + "found": "Violazioni trovate", + "breachedServices": "Servizi violati", + "total": "Violazioni totali" + }, + "dorks": { + "title": "Google Dorks" + }, + "phone": { + "title": "Intelligence telefonica", + "valid": "Valido", + "country": "Paese", + "countryCode": "Prefisso paese", + "region": "Regione", + "carrier": "Operatore", + "lineType": "Tipo di linea", + "timezones": "Fusi orari", + "ownerName": "Nome proprietario", + "address": "Indirizzo" + }, + "telegram": { + "title": "Profilo Telegram", + "found": "Trovato", + "username": "Username", + "name": "Nome", + "bio": "Bio", + "type": "Tipo", + "followers": "Follower" + }, + "map": { + "title": "Mappa geolocalizzazione IP", + "ip": "IP", + "location": "Posizione", + "organization": "Organizzazione", + "coordinates": "Coordinate", + "loading": "Caricamento mappa…", + "noData": "Nessun dato di geolocalizzazione disponibile", + "moreFmt": "{n} posizioni trovate", + "precision": "Precisione", + "approximate": "Approssimativa (regionale, non esatta)" + }, + "graph": { + "title": "Grafo delle entità", + "loading": "Caricamento grafo…", + "empty": "Nessun dato del grafo per questa scansione" + }, + "json": { + "title": "Risultati JSON grezzi", + "show": "Mostra dati grezzi", + "hide": "Nascondi dati grezzi", + "copyRawJson": "Copy raw JSON" + }, + "ai": { + "title": "Analisi OSINT IA · Nvidia Nemotron", + "chatTitle": "Chiedi all'IA", + "generate": "Genera riepilogo IA", + "generating": "Generazione analisi…", + "model": "Modello", + "regenerate": "Rigenera", + "placeholder": "Chiedi qualsiasi cosa su questa scansione…" + }, "duration": "Completato in {duration}", "copyAllFindings": "Copia tutti i risultati", "copyAllEmails": "Copia tutte le email", @@ -421,7 +624,7 @@ "paused": "In pausa", "failedToToggle": "Impossibile aggiornare la lista" }, - "common": { + "common": { "copy": "Copia", "copied": "Copiato!", "copyFailed": "Copia non riuscita", @@ -444,4 +647,4 @@ "zh": "ZH", "tr": "TR" } -} +} \ No newline at end of file diff --git a/frontend/src/messages/pl.json b/frontend/src/messages/pl.json index 720617ba..6474efd2 100644 --- a/frontend/src/messages/pl.json +++ b/frontend/src/messages/pl.json @@ -305,7 +305,7 @@ "address": "Adres", "bio": "Bio", "blog": "Bloga", - "carrier": "Przewoźnik", + "carrier": "Operator", "clientEvents": "Wydarzenia klienckie", "company": "Firma", "copyDnsRecord": "Skopiuj rekord DNS", @@ -313,7 +313,7 @@ "copyShodanPort": "Skopiuj port Shodan", "copyDomain": "Skopiuj domenę", "copyEmail": "Skopiuj e-mail", - "copyOnionUrl": "Skopiuj adres URL cebuli", + "copyOnionUrl": "Kopiuj adres .onion", "copyPort": "Skopiuj port", "copySubdomain": "Skopiuj subdomenę", "copySummary": "Skopiuj podsumowanie", @@ -419,12 +419,17 @@ } }, "common": { - "yes": "Tak", - "no": "Nie", - "unknown": "Nieznane", - "points": "pkt", - "moduleRetry": "Użyj przycisku odświeżania, aby spróbować ponownie.", "skippedKeyHint": "dodaj {key} do pliku .env, aby włączyć ten moduł.", "skippedHint": "dodaj klucz do pliku .env, aby włączyć ten moduł.", "noSecurityFindings": "Brak problemów z bezpieczeństwem", "noDnsRecords": "Nie znaleziono rekordów DNS", "noThreats": "Nie wykryto zagrożeń" - }, + "yes": "Tak", + "no": "Nie", + "unknown": "Nieznane", + "points": "pkt", + "moduleRetry": "Użyj przycisku odświeżania, aby spróbować ponownie.", + "skippedKeyHint": "dodaj {key} do pliku .env, aby włączyć ten moduł.", + "skippedHint": "dodaj klucz do pliku .env, aby włączyć ten moduł.", + "noSecurityFindings": "Brak problemów z bezpieczeństwem", + "noDnsRecords": "Nie znaleziono rekordów DNS", + "noThreats": "Nie wykryto zagrożeń" + }, "findings": { "title": "Wykryte zagrożenia", "none": "Brak zagrożeń" @@ -620,14 +625,14 @@ "failedToToggle": "Nie udało się zaktualizować listy" }, "common": { - "copy": "Kopiuj", - "copied": "Skopiowano!", - "copyFailed": "Kopiowanie nie powiodło się", - "loading": "Ładowanie…", - "error": "Błąd", - "backToTop": "Powrót do góry", - "tabErrorTitle": "Nie można załadować tej karty", - "tabErrorMessage": "Wystąpił błąd podczas ładowania tego wyniku." + "copy": "Kopiuj", + "copied": "Skopiowano!", + "copyFailed": "Kopiowanie nie powiodło się", + "loading": "Ładowanie…", + "error": "Błąd", + "backToTop": "Powrót do góry", + "tabErrorTitle": "Nie można załadować tej karty", + "tabErrorMessage": "Wystąpił błąd podczas ładowania tego wyniku." }, "lang": { "label": "Język", @@ -642,4 +647,4 @@ "zh": "ZH", "tr": "TR" } -} +} \ No newline at end of file diff --git a/frontend/src/messages/pt.json b/frontend/src/messages/pt.json index 4367a34e..20a5b74f 100644 --- a/frontend/src/messages/pt.json +++ b/frontend/src/messages/pt.json @@ -100,22 +100,68 @@ "online": "ONLINE" }, "caps": { - "domain": { "title": "Domínio / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Subdomínios · Shodan", "item3": "VirusTotal · Wayback" }, - "email": { "title": "E-mail", "item1": "Reputação DNS · SMTP", "item2": "Vazamentos · Descartável", "item3": "SPF · DKIM · DMARC" }, - "phone": { "title": "Telefone", "item1": "Validação · Operadora", "item2": "País · Busca reversa" }, - "username": { "title": "Usuário", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ plataformas", "item3": "Pontuação OPSEC" } + "domain": { + "title": "Domínio / IP", + "item1": "WHOIS · DNS · GeoIP", + "item2": "Subdomínios · Shodan", + "item3": "VirusTotal · Wayback" + }, + "email": { + "title": "E-mail", + "item1": "Reputação DNS · SMTP", + "item2": "Vazamentos · Descartável", + "item3": "SPF · DKIM · DMARC" + }, + "phone": { + "title": "Telefone", + "item1": "Validação · Operadora", + "item2": "País · Busca reversa" + }, + "username": { + "title": "Usuário", + "item1": "Blackbird · Maigret", + "item2": "50+ / 3000+ plataformas", + "item3": "Pontuação OPSEC" + } }, "standaloneTools": "Ferramentas independentes", "tools": { - "metadata": { "label": "Metadados de arquivo", "desc": "EXIF, GPS, PDF, DOCX" }, - "headers": { "label": "Cabeçalhos de e-mail", "desc": "SPF, DKIM, saltos de roteamento" }, - "crypto": { "label": "Endereço crypto", "desc": "Bitcoin e Ethereum" }, - "qr": { "label": "Decodificar QR", "desc": "Decodificar e analisar" }, - "mac": { "label": "Consulta MAC", "desc": "Busca de fabricante" }, - "subnet": { "label": "IP / Sub-rede", "desc": "Faixas de rede e CIDR" }, - "hash": { "label": "Identificador de hash", "desc": "Identificar tipos de hash" }, - "encoder": { "label": "Base64 / URL", "desc": "Codificar e decodificar" }, - "jwt": { "label": "Decodificador JWT", "desc": "Decodificar tokens JWT" } + "metadata": { + "label": "Metadados de arquivo", + "desc": "EXIF, GPS, PDF, DOCX" + }, + "headers": { + "label": "Cabeçalhos de e-mail", + "desc": "SPF, DKIM, saltos de roteamento" + }, + "crypto": { + "label": "Endereço crypto", + "desc": "Bitcoin e Ethereum" + }, + "qr": { + "label": "Decodificar QR", + "desc": "Decodificar e analisar" + }, + "mac": { + "label": "Consulta MAC", + "desc": "Busca de fabricante" + }, + "subnet": { + "label": "IP / Sub-rede", + "desc": "Faixas de rede e CIDR" + }, + "hash": { + "label": "Identificador de hash", + "desc": "Identificar tipos de hash" + }, + "encoder": { + "label": "Base64 / URL", + "desc": "Codificar e decodificar" + }, + "jwt": { + "label": "Decodificador JWT", + "desc": "Decodificar tokens JWT" + } }, "demo": { "line1": "Esta é uma demo pública com cotas de API limitadas. Alguns módulos (Shodan, VirusTotal) podem ter limite de taxa.", @@ -267,7 +313,7 @@ "copyShodanPort": "Copiar porta Shodan", "copyDomain": "Copiar domínio", "copyEmail": "Copiar e-mail", - "copyOnionUrl": "Copiar URL da cebola", + "copyOnionUrl": "Copiar endereço .onion", "copyPort": "Copiar porta", "copySubdomain": "Copiar subdomínio", "copySummary": "Copiar resumo", @@ -355,33 +401,190 @@ "opsec": { "scoreLabel": "Pontuação OPSEC", "riskSuffix": "RISCO", - "data_exposure": { "label": "Exposição de dados", "tooltip": "Vazamentos de dados sensíveis: credenciais violadas, e-mails expostos, PII público." }, - "identity_opsec": { "label": "OPSEC de identidade", "tooltip": "Reuso de identificadores entre plataformas: mesmo usuário/e-mail em vários sites." }, - "infrastructure": { "label": "Infraestrutura", "tooltip": "Serviços expostos, portas abertas, higiene fraca de DNS/WHOIS, alertas de threat-intel." }, - "web_security": { "label": "Segurança web", "tooltip": "TLS, cabeçalhos de segurança, certificate transparency, caminhos sensíveis arquivados." } - }, - "common": { "yes": "Sim", "no": "Não", "unknown": "Desconhecido", "points": "pts", "moduleRetry": "Use o botão de atualizar para tentar novamente.", "skippedKeyHint": "adicione {key} ao .env para ativar este módulo.", "skippedHint": "adicione a chave ao .env para ativar este módulo.", "noSecurityFindings": "Nenhum problema de segurança", "noDnsRecords": "Nenhum registro DNS encontrado", "noThreats": "Nenhuma ameaça detectada" }, - "findings": { "title": "Resultados de segurança", "none": "Nenhum resultado de segurança" }, - "whois": { "title": "Registro WHOIS", "registrar": "Registrar", "organization": "Organização", "country": "País", "created": "Criado", "expires": "Expira", "emails": "E-mails", "nameServers": "Servidores de nomes" }, - "dns": { "title": "Registros DNS" }, - "subdomains": { "titleFmt": "Certificate Transparency — {n} subdomínios", "certsAnalysed": "{n} certificado(s) analisado(s)" }, - "accounts": { "title": "Busca de usuário", "platform": "Plataforma", "url": "URL", "time": "Tempo" }, - "virustotal": { "title": "VirusTotal", "malicious": "Malicioso", "suspicious": "Suspeito", "harmless": "Inofensivo", "undetected": "Não detectado", "country": "País", "asn": "ASN" }, - "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Pontuação de abuso", "totalReports": "Total de denúncias", "isp": "ISP", "usageType": "Tipo de uso", "torExit": "⚠ Nó de saída TOR" }, - "shodan": { "title": "Shodan", "openPorts": "Portas abertas", "cves": "CVEs encontradas" }, - "censys": { "titleCert": "Censys — Busca de certificados", "titleHost": "Censys — Info do host", "ip": "IP", "asn": "ASN", "location": "Localização", "openPorts": "Portas abertas", "subdomainsFmt": "Subdomínios ({n})", "services": "Serviços", "port": "Porta", "service": "Serviço", "software": "Software" }, - "darkweb": { "titleFmt": "Espelhos Dark Web — {n} encontrados", "sources": "Fontes" }, - "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} snapshots · Primeiro: {first} · Último: {last}", "recent": "Snapshots recentes", "sensitive": "URLs sensíveis no arquivo" }, - "emailrep": { "title": "Reputação de e-mail", "reputation": "Reputação", "suspicious": "Suspeito", "validMx": "MX válido", "deliverable": "Entregável", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Reputação do domínio", "mxRecords": "Registros MX", "disposableWarn": "⚠ E-mail descartável detectado", "spoofableWarn": "⚠ Domínio falsificável (SPF/DMARC ausentes)", "freeProvider": "Provedor de e-mail gratuito" }, - "smtp": { "title": "Verificação SMTP", "exists": "Existe", "connect": "Conexão SMTP", "catchAllWarn": "⚠ Servidor catch-all (aceita qualquer endereço)", "details": "Detalhes" }, - "breaches": { "title": "Verificação de vazamentos", "found": "Vazamentos encontrados", "breachedServices": "Serviços vazados", "total": "Total de vazamentos" }, - "dorks": { "title": "Google Dorks" }, - "phone": { "title": "Inteligência telefônica", "valid": "Válido", "country": "País", "countryCode": "Código do país", "region": "Região", "carrier": "Operadora", "lineType": "Tipo de linha", "timezones": "Fusos horários", "ownerName": "Nome do dono", "address": "Endereço" }, - "telegram": { "title": "Perfil do Telegram", "found": "Encontrado", "username": "Usuário", "name": "Nome", "bio": "Bio", "type": "Tipo", "followers": "Seguidores" }, - "map": { "title": "Mapa de geolocalização IP", "ip": "IP", "location": "Localização", "organization": "Organização", "coordinates": "Coordenadas", "loading": "Carregando mapa…", "noData": "Nenhum dado de geolocalização disponível", "moreFmt": "{n} localizações encontradas", "precision": "Precisão", "approximate": "Aproximada (regional, não exata)" }, - "graph": { "title": "Grafo de entidades", "loading": "Carregando grafo…", "empty": "Nenhum dado de grafo para esta varredura" }, - "json": { "title": "Resultados JSON brutos", "show": "Mostrar dados brutos", "hide": "Ocultar dados brutos", "copyRawJson": "Copy raw JSON" }, - "ai": { "title": "Análise OSINT por IA · Nvidia Nemotron", "chatTitle": "Pergunte à IA", "generate": "Gerar resumo por IA", "generating": "Gerando análise…", "model": "Modelo", "regenerate": "Regenerar", "placeholder": "Pergunte qualquer coisa sobre esta varredura…" }, + "data_exposure": { + "label": "Exposição de dados", + "tooltip": "Vazamentos de dados sensíveis: credenciais violadas, e-mails expostos, PII público." + }, + "identity_opsec": { + "label": "OPSEC de identidade", + "tooltip": "Reuso de identificadores entre plataformas: mesmo usuário/e-mail em vários sites." + }, + "infrastructure": { + "label": "Infraestrutura", + "tooltip": "Serviços expostos, portas abertas, higiene fraca de DNS/WHOIS, alertas de threat-intel." + }, + "web_security": { + "label": "Segurança web", + "tooltip": "TLS, cabeçalhos de segurança, certificate transparency, caminhos sensíveis arquivados." + } + }, + "common": { + "yes": "Sim", + "no": "Não", + "unknown": "Desconhecido", + "points": "pts", + "moduleRetry": "Use o botão de atualizar para tentar novamente.", + "skippedKeyHint": "adicione {key} ao .env para ativar este módulo.", + "skippedHint": "adicione a chave ao .env para ativar este módulo.", + "noSecurityFindings": "Nenhum problema de segurança", + "noDnsRecords": "Nenhum registro DNS encontrado", + "noThreats": "Nenhuma ameaça detectada" + }, + "findings": { + "title": "Resultados de segurança", + "none": "Nenhum resultado de segurança" + }, + "whois": { + "title": "Registro WHOIS", + "registrar": "Registrar", + "organization": "Organização", + "country": "País", + "created": "Criado", + "expires": "Expira", + "emails": "E-mails", + "nameServers": "Servidores de nomes" + }, + "dns": { + "title": "Registros DNS" + }, + "subdomains": { + "titleFmt": "Certificate Transparency — {n} subdomínios", + "certsAnalysed": "{n} certificado(s) analisado(s)" + }, + "accounts": { + "title": "Busca de usuário", + "platform": "Plataforma", + "url": "URL", + "time": "Tempo" + }, + "virustotal": { + "title": "VirusTotal", + "malicious": "Malicioso", + "suspicious": "Suspeito", + "harmless": "Inofensivo", + "undetected": "Não detectado", + "country": "País", + "asn": "ASN" + }, + "abuseipdb": { + "title": "AbuseIPDB", + "abuseScore": "Pontuação de abuso", + "totalReports": "Total de denúncias", + "isp": "ISP", + "usageType": "Tipo de uso", + "torExit": "⚠ Nó de saída TOR" + }, + "shodan": { + "title": "Shodan", + "openPorts": "Portas abertas", + "cves": "CVEs encontradas" + }, + "censys": { + "titleCert": "Censys — Busca de certificados", + "titleHost": "Censys — Info do host", + "ip": "IP", + "asn": "ASN", + "location": "Localização", + "openPorts": "Portas abertas", + "subdomainsFmt": "Subdomínios ({n})", + "services": "Serviços", + "port": "Porta", + "service": "Serviço", + "software": "Software" + }, + "darkweb": { + "titleFmt": "Espelhos Dark Web — {n} encontrados", + "sources": "Fontes" + }, + "wayback": { + "title": "Wayback Machine", + "summaryFmt": "{n} snapshots · Primeiro: {first} · Último: {last}", + "recent": "Snapshots recentes", + "sensitive": "URLs sensíveis no arquivo" + }, + "emailrep": { + "title": "Reputação de e-mail", + "reputation": "Reputação", + "suspicious": "Suspeito", + "validMx": "MX válido", + "deliverable": "Entregável", + "spf": "SPF", + "dmarc": "DMARC", + "domainRep": "Reputação do domínio", + "mxRecords": "Registros MX", + "disposableWarn": "⚠ E-mail descartável detectado", + "spoofableWarn": "⚠ Domínio falsificável (SPF/DMARC ausentes)", + "freeProvider": "Provedor de e-mail gratuito" + }, + "smtp": { + "title": "Verificação SMTP", + "exists": "Existe", + "connect": "Conexão SMTP", + "catchAllWarn": "⚠ Servidor catch-all (aceita qualquer endereço)", + "details": "Detalhes" + }, + "breaches": { + "title": "Verificação de vazamentos", + "found": "Vazamentos encontrados", + "breachedServices": "Serviços vazados", + "total": "Total de vazamentos" + }, + "dorks": { + "title": "Google Dorks" + }, + "phone": { + "title": "Inteligência telefônica", + "valid": "Válido", + "country": "País", + "countryCode": "Código do país", + "region": "Região", + "carrier": "Operadora", + "lineType": "Tipo de linha", + "timezones": "Fusos horários", + "ownerName": "Nome do dono", + "address": "Endereço" + }, + "telegram": { + "title": "Perfil do Telegram", + "found": "Encontrado", + "username": "Usuário", + "name": "Nome", + "bio": "Bio", + "type": "Tipo", + "followers": "Seguidores" + }, + "map": { + "title": "Mapa de geolocalização IP", + "ip": "IP", + "location": "Localização", + "organization": "Organização", + "coordinates": "Coordenadas", + "loading": "Carregando mapa…", + "noData": "Nenhum dado de geolocalização disponível", + "moreFmt": "{n} localizações encontradas", + "precision": "Precisão", + "approximate": "Aproximada (regional, não exata)" + }, + "graph": { + "title": "Grafo de entidades", + "loading": "Carregando grafo…", + "empty": "Nenhum dado de grafo para esta varredura" + }, + "json": { + "title": "Resultados JSON brutos", + "show": "Mostrar dados brutos", + "hide": "Ocultar dados brutos", + "copyRawJson": "Copy raw JSON" + }, + "ai": { + "title": "Análise OSINT por IA · Nvidia Nemotron", + "chatTitle": "Pergunte à IA", + "generate": "Gerar resumo por IA", + "generating": "Gerando análise…", + "model": "Modelo", + "regenerate": "Regenerar", + "placeholder": "Pergunte qualquer coisa sobre esta varredura…" + }, "duration": "Concluído em {duration}", "copyAllFindings": "Copiar todos os achados", "copyAllEmails": "Copiar todos os e-mails", @@ -444,4 +647,4 @@ "zh": "ZH", "tr": "TR" } -} +} \ No newline at end of file diff --git a/frontend/src/messages/ru.json b/frontend/src/messages/ru.json index 318ca7aa..0414feeb 100644 --- a/frontend/src/messages/ru.json +++ b/frontend/src/messages/ru.json @@ -100,22 +100,68 @@ "online": "ОНЛАЙН" }, "caps": { - "domain": { "title": "Домен / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Поддомены · Shodan", "item3": "VirusTotal · Wayback" }, - "email": { "title": "Почта", "item1": "Репутация DNS · SMTP", "item2": "Проверка утечек · Одноразовые", "item3": "SPF · DKIM · DMARC" }, - "phone": { "title": "Телефон", "item1": "Проверка номера · Оператор", "item2": "Страна · Обратный поиск" }, - "username": { "title": "Имя пользователя", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ платформ", "item3": "OPSEC-оценка" } + "domain": { + "title": "Домен / IP", + "item1": "WHOIS · DNS · GeoIP", + "item2": "Поддомены · Shodan", + "item3": "VirusTotal · Wayback" + }, + "email": { + "title": "Почта", + "item1": "Репутация DNS · SMTP", + "item2": "Проверка утечек · Одноразовые", + "item3": "SPF · DKIM · DMARC" + }, + "phone": { + "title": "Телефон", + "item1": "Проверка номера · Оператор", + "item2": "Страна · Обратный поиск" + }, + "username": { + "title": "Имя пользователя", + "item1": "Blackbird · Maigret", + "item2": "50+ / 3000+ платформ", + "item3": "OPSEC-оценка" + } }, "standaloneTools": "Отдельные инструменты", "tools": { - "metadata": { "label": "Метаданные файла", "desc": "EXIF, GPS, PDF, DOCX" }, - "headers": { "label": "Заголовки письма", "desc": "SPF, DKIM, маршрут" }, - "crypto": { "label": "Криптоадрес", "desc": "Bitcoin и Ethereum" }, - "qr": { "label": "Декодер QR", "desc": "Декодирование и анализ" }, - "mac": { "label": "Поиск по MAC", "desc": "Поиск производителя" }, - "subnet": { "label": "IP / Подсеть", "desc": "Сетевые диапазоны и CIDR" }, - "hash": { "label": "Определение хеша", "desc": "Определить тип хеша" }, - "encoder": { "label": "Base64 / URL", "desc": "Кодирование и декодирование" }, - "jwt": { "label": "Декодер JWT", "desc": "Декодировать JWT-токены" } + "metadata": { + "label": "Метаданные файла", + "desc": "EXIF, GPS, PDF, DOCX" + }, + "headers": { + "label": "Заголовки письма", + "desc": "SPF, DKIM, маршрут" + }, + "crypto": { + "label": "Криптоадрес", + "desc": "Bitcoin и Ethereum" + }, + "qr": { + "label": "Декодер QR", + "desc": "Декодирование и анализ" + }, + "mac": { + "label": "Поиск по MAC", + "desc": "Поиск производителя" + }, + "subnet": { + "label": "IP / Подсеть", + "desc": "Сетевые диапазоны и CIDR" + }, + "hash": { + "label": "Определение хеша", + "desc": "Определить тип хеша" + }, + "encoder": { + "label": "Base64 / URL", + "desc": "Кодирование и декодирование" + }, + "jwt": { + "label": "Декодер JWT", + "desc": "Декодировать JWT-токены" + } }, "demo": { "line1": "Это публичное демо с ограниченными квотами API. Некоторые модули (Shodan, VirusTotal) могут упираться в лимиты запросов.", @@ -255,19 +301,19 @@ }, "results": { "fields": { - "asn": "АСН", + "asn": "ASN", "address": "Адрес", "bio": "Био", "blog": "Блог", - "carrier": "Перевозчик", + "carrier": "Оператор", "clientEvents": "Клиентские события", "company": "Компания", "copyDnsRecord": "Копировать DNS-запись", "copyIp": "Копировать IP", "copyShodanPort": "Скопировать порт Shodan", "copyDomain": "Копировать домен", - "copyEmail": "Копировать письмо", - "copyOnionUrl": "Скопировать URL-адрес лука", + "copyEmail": "Копировать email", + "copyOnionUrl": "Скопировать .onion-адрес", "copyPort": "Копировать порт", "copySubdomain": "Копировать субдомен", "copySummary": "Копировать сводку", @@ -355,33 +401,190 @@ "opsec": { "scoreLabel": "Оценка OPSEC", "riskSuffix": "РИСК", - "data_exposure": { "label": "Утечки данных", "tooltip": "Утечки чувствительных данных: скомпрометированные пароли, открытые адреса почты, публичные персональные данные." }, - "identity_opsec": { "label": "OPSEC личности", "tooltip": "Повторное использование идентификаторов: один логин/почта на множестве платформ." }, - "infrastructure": { "label": "Инфраструктура", "tooltip": "Открытые сервисы и порты, слабая гигиена DNS/WHOIS, попадания в базы угроз (threat intel)." }, - "web_security": { "label": "Веб-безопасность", "tooltip": "TLS, заголовки безопасности, Certificate Transparency, архивные чувствительные пути." } - }, - "common": { "yes": "Да", "no": "Нет", "unknown": "Неизвестно", "points": "б.", "moduleRetry": "Нажмите кнопку обновления, чтобы попробовать снова.", "skippedKeyHint": "добавьте {key} в .env, чтобы включить этот модуль.", "skippedHint": "добавьте ключ в .env, чтобы включить этот модуль.", "noSecurityFindings": "Проблем безопасности не найдено", "noDnsRecords": "DNS-записи не найдены", "noThreats": "Угроз не обнаружено" }, - "findings": { "title": "Замечания по безопасности", "none": "Замечаний по безопасности нет" }, - "whois": { "title": "Данные WHOIS", "registrar": "Регистратор", "organization": "Организация", "country": "Страна", "created": "Создан", "expires": "Истекает", "emails": "Email", "nameServers": "DNS-серверы" }, - "dns": { "title": "DNS-записи" }, - "subdomains": { "titleFmt": "Certificate Transparency — поддоменов: {n}", "certsAnalysed": "Проанализировано сертификатов: {n}" }, - "accounts": { "title": "Поиск по имени пользователя", "platform": "Платформа", "url": "URL", "time": "Время" }, - "virustotal": { "title": "VirusTotal", "malicious": "Вредоносно", "suspicious": "Подозрительно", "harmless": "Безопасно", "undetected": "Не обнаружено", "country": "Страна", "asn": "ASN" }, - "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Индекс злоупотреблений", "totalReports": "Всего жалоб", "isp": "Провайдер", "usageType": "Тип использования", "torExit": "⚠ Выходной узел TOR" }, - "shodan": { "title": "Shodan", "openPorts": "Открытые порты", "cves": "Найденные CVE" }, - "censys": { "titleCert": "Censys — поиск сертификатов", "titleHost": "Censys — данные хоста", "ip": "IP", "asn": "ASN", "location": "Местоположение", "openPorts": "Открытые порты", "subdomainsFmt": "Поддомены ({n})", "services": "Сервисы", "port": "Порт", "service": "Сервис", "software": "Программа" }, - "darkweb": { "titleFmt": "Зеркала в даркнете — найдено {n}", "sources": "Источники" }, - "wayback": { "title": "Wayback Machine", "summaryFmt": "Снимков: {n} · Первый: {first} · Последний: {last}", "recent": "Недавние снимки", "sensitive": "Чувствительные URL в архиве" }, - "emailrep": { "title": "Репутация email", "reputation": "Репутация", "suspicious": "Подозрительный", "validMx": "Корректная MX-запись", "deliverable": "Доставка возможна", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Репутация домена", "mxRecords": "MX-записи", "disposableWarn": "⚠ Обнаружен одноразовый email", "spoofableWarn": "⚠ Домен можно подделать (нет SPF/DMARC)", "freeProvider": "Бесплатный почтовый сервис" }, - "smtp": { "title": "Проверка SMTP", "exists": "Существует", "connect": "SMTP-соединение", "catchAllWarn": "⚠ Сервер catch-all (принимает любой адрес)", "details": "Подробности" }, - "breaches": { "title": "Проверка утечек", "found": "Найдено утечек", "breachedServices": "Скомпрометированные сервисы", "total": "Всего утечек" }, - "dorks": { "title": "Google Dorks" }, - "phone": { "title": "Разведка по телефону", "valid": "Корректный", "country": "Страна", "countryCode": "Код страны", "region": "Регион", "carrier": "Оператор", "lineType": "Тип линии", "timezones": "Часовые пояса", "ownerName": "Владелец", "address": "Адрес" }, - "telegram": { "title": "Профиль Telegram", "found": "Найден", "username": "Имя пользователя", "name": "Имя", "bio": "О себе", "type": "Тип", "followers": "Подписчики" }, - "map": { "title": "Карта геолокации IP", "ip": "IP", "location": "Местоположение", "organization": "Организация", "coordinates": "Координаты", "loading": "Загрузка карты…", "noData": "Нет данных геолокации", "moreFmt": "Найдено мест: {n}", "precision": "Точность", "approximate": "Приблизительно (по региону, не точно)" }, - "graph": { "title": "Граф сущностей", "loading": "Загрузка графа…", "empty": "Нет данных для графа" }, - "json": { "title": "Исходный JSON", "show": "Показать исходные данные", "hide": "Скрыть исходные данные", "copyRawJson": "Copy raw JSON" }, - "ai": { "title": "ИИ-анализ OSINT · Nvidia Nemotron", "chatTitle": "Спросить ИИ", "generate": "Сгенерировать сводку", "generating": "Генерация анализа…", "model": "Модель", "regenerate": "Сгенерировать заново", "placeholder": "Задайте вопрос об этом сканировании…" }, + "data_exposure": { + "label": "Утечки данных", + "tooltip": "Утечки чувствительных данных: скомпрометированные пароли, открытые адреса почты, публичные персональные данные." + }, + "identity_opsec": { + "label": "OPSEC личности", + "tooltip": "Повторное использование идентификаторов: один логин/почта на множестве платформ." + }, + "infrastructure": { + "label": "Инфраструктура", + "tooltip": "Открытые сервисы и порты, слабая гигиена DNS/WHOIS, попадания в базы угроз (threat intel)." + }, + "web_security": { + "label": "Веб-безопасность", + "tooltip": "TLS, заголовки безопасности, Certificate Transparency, архивные чувствительные пути." + } + }, + "common": { + "yes": "Да", + "no": "Нет", + "unknown": "Неизвестно", + "points": "б.", + "moduleRetry": "Нажмите кнопку обновления, чтобы попробовать снова.", + "skippedKeyHint": "добавьте {key} в .env, чтобы включить этот модуль.", + "skippedHint": "добавьте ключ в .env, чтобы включить этот модуль.", + "noSecurityFindings": "Проблем безопасности не найдено", + "noDnsRecords": "DNS-записи не найдены", + "noThreats": "Угроз не обнаружено" + }, + "findings": { + "title": "Замечания по безопасности", + "none": "Замечаний по безопасности нет" + }, + "whois": { + "title": "Данные WHOIS", + "registrar": "Регистратор", + "organization": "Организация", + "country": "Страна", + "created": "Создан", + "expires": "Истекает", + "emails": "Email", + "nameServers": "DNS-серверы" + }, + "dns": { + "title": "DNS-записи" + }, + "subdomains": { + "titleFmt": "Certificate Transparency — поддоменов: {n}", + "certsAnalysed": "Проанализировано сертификатов: {n}" + }, + "accounts": { + "title": "Поиск по имени пользователя", + "platform": "Платформа", + "url": "URL", + "time": "Время" + }, + "virustotal": { + "title": "VirusTotal", + "malicious": "Вредоносно", + "suspicious": "Подозрительно", + "harmless": "Безопасно", + "undetected": "Не обнаружено", + "country": "Страна", + "asn": "ASN" + }, + "abuseipdb": { + "title": "AbuseIPDB", + "abuseScore": "Индекс злоупотреблений", + "totalReports": "Всего жалоб", + "isp": "Провайдер", + "usageType": "Тип использования", + "torExit": "⚠ Выходной узел TOR" + }, + "shodan": { + "title": "Shodan", + "openPorts": "Открытые порты", + "cves": "Найденные CVE" + }, + "censys": { + "titleCert": "Censys — поиск сертификатов", + "titleHost": "Censys — данные хоста", + "ip": "IP", + "asn": "ASN", + "location": "Местоположение", + "openPorts": "Открытые порты", + "subdomainsFmt": "Поддомены ({n})", + "services": "Сервисы", + "port": "Порт", + "service": "Сервис", + "software": "Программа" + }, + "darkweb": { + "titleFmt": "Зеркала в даркнете — найдено {n}", + "sources": "Источники" + }, + "wayback": { + "title": "Wayback Machine", + "summaryFmt": "Снимков: {n} · Первый: {first} · Последний: {last}", + "recent": "Недавние снимки", + "sensitive": "Чувствительные URL в архиве" + }, + "emailrep": { + "title": "Репутация email", + "reputation": "Репутация", + "suspicious": "Подозрительный", + "validMx": "Корректная MX-запись", + "deliverable": "Доставка возможна", + "spf": "SPF", + "dmarc": "DMARC", + "domainRep": "Репутация домена", + "mxRecords": "MX-записи", + "disposableWarn": "⚠ Обнаружен одноразовый email", + "spoofableWarn": "⚠ Домен можно подделать (нет SPF/DMARC)", + "freeProvider": "Бесплатный почтовый сервис" + }, + "smtp": { + "title": "Проверка SMTP", + "exists": "Существует", + "connect": "SMTP-соединение", + "catchAllWarn": "⚠ Сервер catch-all (принимает любой адрес)", + "details": "Подробности" + }, + "breaches": { + "title": "Проверка утечек", + "found": "Найдено утечек", + "breachedServices": "Скомпрометированные сервисы", + "total": "Всего утечек" + }, + "dorks": { + "title": "Google Dorks" + }, + "phone": { + "title": "Разведка по телефону", + "valid": "Корректный", + "country": "Страна", + "countryCode": "Код страны", + "region": "Регион", + "carrier": "Оператор", + "lineType": "Тип линии", + "timezones": "Часовые пояса", + "ownerName": "Владелец", + "address": "Адрес" + }, + "telegram": { + "title": "Профиль Telegram", + "found": "Найден", + "username": "Имя пользователя", + "name": "Имя", + "bio": "О себе", + "type": "Тип", + "followers": "Подписчики" + }, + "map": { + "title": "Карта геолокации IP", + "ip": "IP", + "location": "Местоположение", + "organization": "Организация", + "coordinates": "Координаты", + "loading": "Загрузка карты…", + "noData": "Нет данных геолокации", + "moreFmt": "Найдено мест: {n}", + "precision": "Точность", + "approximate": "Приблизительно (по региону, не точно)" + }, + "graph": { + "title": "Граф сущностей", + "loading": "Загрузка графа…", + "empty": "Нет данных для графа" + }, + "json": { + "title": "Исходный JSON", + "show": "Показать исходные данные", + "hide": "Скрыть исходные данные", + "copyRawJson": "Copy raw JSON" + }, + "ai": { + "title": "ИИ-анализ OSINT · Nvidia Nemotron", + "chatTitle": "Спросить ИИ", + "generate": "Сгенерировать сводку", + "generating": "Генерация анализа…", + "model": "Модель", + "regenerate": "Сгенерировать заново", + "placeholder": "Задайте вопрос об этом сканировании…" + }, "duration": "Выполнено за {duration}", "copyAllFindings": "Скопировать все замечания", "copyAllEmails": "Скопировать все адреса почты", @@ -444,4 +647,4 @@ "zh": "ZH", "tr": "TR" } -} +} \ No newline at end of file diff --git a/frontend/src/messages/tr.json b/frontend/src/messages/tr.json index b3cefbea..c41fbb4a 100644 --- a/frontend/src/messages/tr.json +++ b/frontend/src/messages/tr.json @@ -100,22 +100,68 @@ "online": "ÇEVRİMİÇİ" }, "caps": { - "domain": { "title": "Alan Adı / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Alt alan adları · Shodan", "item3": "VirusTotal · Wayback" }, - "email": { "title": "E-posta", "item1": "DNS itibarı · SMTP", "item2": "İhlal kontrolü · Tek kullanımlık", "item3": "SPF · DKIM · DMARC" }, - "phone": { "title": "Telefon", "item1": "Doğrulama · Operatör", "item2": "Ülke · Ters sorgulama" }, - "username": { "title": "Kullanıcı Adı", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ platform", "item3": "OPSEC Puanı" } + "domain": { + "title": "Alan Adı / IP", + "item1": "WHOIS · DNS · GeoIP", + "item2": "Alt alan adları · Shodan", + "item3": "VirusTotal · Wayback" + }, + "email": { + "title": "E-posta", + "item1": "DNS itibarı · SMTP", + "item2": "İhlal kontrolü · Tek kullanımlık", + "item3": "SPF · DKIM · DMARC" + }, + "phone": { + "title": "Telefon", + "item1": "Doğrulama · Operatör", + "item2": "Ülke · Ters sorgulama" + }, + "username": { + "title": "Kullanıcı Adı", + "item1": "Blackbird · Maigret", + "item2": "50+ / 3000+ platform", + "item3": "OPSEC Puanı" + } }, "standaloneTools": "Bağımsız Araçlar", "tools": { - "metadata": { "label": "Dosya Meta Verisi", "desc": "EXIF, GPS, PDF, DOCX" }, - "headers": { "label": "E-posta Başlıkları", "desc": "SPF, DKIM, yönlendirme atlamaları" }, - "crypto": { "label": "Kripto Adresi", "desc": "Bitcoin ve Ethereum" }, - "qr": { "label": "QR Çöz", "desc": "Çöz ve analiz et" }, - "mac": { "label": "MAC Sorgulama", "desc": "Üretici sorgulama" }, - "subnet": { "label": "IP / Alt Ağ", "desc": "Ağ aralıkları ve CIDR" }, - "hash": { "label": "Hash Tanımlayıcı", "desc": "Hash türlerini tanımla" }, - "encoder": { "label": "Base64 / URL", "desc": "Kodla ve çöz" }, - "jwt": { "label": "JWT Çözücü", "desc": "JWT belirteçlerini çöz" } + "metadata": { + "label": "Dosya Meta Verisi", + "desc": "EXIF, GPS, PDF, DOCX" + }, + "headers": { + "label": "E-posta Başlıkları", + "desc": "SPF, DKIM, yönlendirme atlamaları" + }, + "crypto": { + "label": "Kripto Adresi", + "desc": "Bitcoin ve Ethereum" + }, + "qr": { + "label": "QR Çöz", + "desc": "Çöz ve analiz et" + }, + "mac": { + "label": "MAC Sorgulama", + "desc": "Üretici sorgulama" + }, + "subnet": { + "label": "IP / Alt Ağ", + "desc": "Ağ aralıkları ve CIDR" + }, + "hash": { + "label": "Hash Tanımlayıcı", + "desc": "Hash türlerini tanımla" + }, + "encoder": { + "label": "Base64 / URL", + "desc": "Kodla ve çöz" + }, + "jwt": { + "label": "JWT Çözücü", + "desc": "JWT belirteçlerini çöz" + } }, "demo": { "line1": "Bu, sınırlı API kotalarına sahip halka açık bir demodur. Bazı modüller (Shodan, VirusTotal) hız sınırına takılabilir.", @@ -259,7 +305,7 @@ "address": "Adres", "bio": "Biyografi", "blog": "Blog", - "carrier": "Taşıyıcı", + "carrier": "Operatör", "clientEvents": "Müşteri etkinlikleri", "company": "Şirket", "copyDnsRecord": "DNS kaydını kopyala", @@ -267,7 +313,7 @@ "copyShodanPort": "Shodan bağlantı noktasını kopyala", "copyDomain": "Alanı kopyala", "copyEmail": "E-postayı kopyala", - "copyOnionUrl": "Soğan URL'sini kopyala", + "copyOnionUrl": ".onion adresini kopyala", "copyPort": "Bağlantı noktasını kopyala", "copySubdomain": "Alt alanı kopyala", "copySummary": "Özeti kopyala", @@ -355,33 +401,190 @@ "opsec": { "scoreLabel": "OPSEC Puanı", "riskSuffix": "RİSK", - "data_exposure": { "label": "Veri Maruziyeti", "tooltip": "Hassas veri sızıntıları: ihlal edilmiş kimlik bilgileri, açığa çıkan e-postalar, halka açık kişisel veriler." }, - "identity_opsec": { "label": "Kimlik OPSEC", "tooltip": "Platformlar arası tanımlayıcı yeniden kullanımı: birçok sitede aynı kullanıcı adı/e-posta." }, - "infrastructure": { "label": "Altyapı", "tooltip": "Açığa çıkan hizmetler, açık portlar, zayıf DNS/WHOIS hijyeni, tehdit istihbaratı eşleşmeleri." }, - "web_security": { "label": "Web Güvenliği", "tooltip": "TLS, güvenlik başlıkları, sertifika şeffaflığı, arşivlenmiş hassas yollar." } - }, - "common": { "yes": "Evet", "no": "Hayır", "unknown": "Bilinmiyor", "points": "puan", "moduleRetry": "Tekrar denemek için yenile düğmesini kullanın.", "skippedKeyHint": "bu modülü etkinleştirmek için {key} değerini .env dosyasına ekleyin.", "skippedHint": "bu modülü etkinleştirmek için anahtarı .env dosyasına ekleyin.", "noSecurityFindings": "Güvenlik bulgusu yok", "noDnsRecords": "DNS kaydı bulunamadı", "noThreats": "Tehdit algılanmadı" }, - "findings": { "title": "Güvenlik Bulguları", "none": "Güvenlik bulgusu yok" }, - "whois": { "title": "WHOIS Kaydı", "registrar": "Kayıt Kuruluşu", "organization": "Kuruluş", "country": "Ülke", "created": "Oluşturulma", "expires": "Sona erme", "emails": "E-postalar", "nameServers": "Ad Sunucuları" }, - "dns": { "title": "DNS Kayıtları" }, - "subdomains": { "titleFmt": "Sertifika Şeffaflığı — {n} alt alan adı", "certsAnalysed": "{n} sertifika analiz edildi" }, - "accounts": { "title": "Kullanıcı Adı Araması", "platform": "Platform", "url": "URL", "time": "Süre" }, - "virustotal": { "title": "VirusTotal", "malicious": "Zararlı", "suspicious": "Şüpheli", "harmless": "Zararsız", "undetected": "Tespit edilmedi", "country": "Ülke", "asn": "ASN" }, - "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "İstismar Puanı", "totalReports": "Toplam Rapor", "isp": "İSS", "usageType": "Kullanım Türü", "torExit": "⚠ TOR Çıkış Düğümü" }, - "shodan": { "title": "Shodan", "openPorts": "Açık Portlar", "cves": "Bulunan CVE'ler" }, - "censys": { "titleCert": "Censys — Sertifika Araması", "titleHost": "Censys — Ana Bilgisayar Bilgisi", "ip": "IP", "asn": "ASN", "location": "Konum", "openPorts": "Açık Portlar", "subdomainsFmt": "Alt Alan Adları ({n})", "services": "Hizmetler", "port": "Port", "service": "Hizmet", "software": "Yazılım" }, - "darkweb": { "titleFmt": "Karanlık Web Aynaları — {n} bulundu", "sources": "Kaynaklar" }, - "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} anlık görüntü · İlk: {first} · Son: {last}", "recent": "Son Anlık Görüntüler", "sensitive": "Arşivdeki Hassas URL'ler" }, - "emailrep": { "title": "E-posta İtibarı", "reputation": "İtibar", "suspicious": "Şüpheli", "validMx": "Geçerli MX", "deliverable": "Teslim edilebilir", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Alan Adı İtibarı", "mxRecords": "MX Kayıtları", "disposableWarn": "⚠ Tek kullanımlık e-posta algılandı", "spoofableWarn": "⚠ Alan adı sahtelenebilir (SPF/DMARC eksik)", "freeProvider": "Ücretsiz e-posta sağlayıcısı" }, - "smtp": { "title": "SMTP Doğrulama", "exists": "Mevcut", "connect": "SMTP Bağlantısı", "catchAllWarn": "⚠ Catch-all sunucu (her adresi kabul eder)", "details": "Ayrıntılar" }, - "breaches": { "title": "İhlal Kontrolü", "found": "İhlaller Bulundu", "breachedServices": "İhlal Edilen Hizmetler", "total": "Toplam İhlal" }, - "dorks": { "title": "Google Dorks" }, - "phone": { "title": "Telefon İstihbaratı", "valid": "Geçerli", "country": "Ülke", "countryCode": "Ülke Kodu", "region": "Bölge", "carrier": "Operatör", "lineType": "Hat Türü", "timezones": "Saat Dilimleri", "ownerName": "Sahip Adı", "address": "Adres" }, - "telegram": { "title": "Telegram Profili", "found": "Bulundu", "username": "Kullanıcı Adı", "name": "Ad", "bio": "Biyografi", "type": "Tür", "followers": "Takipçiler" }, - "map": { "title": "IP Konum Haritası", "ip": "IP", "location": "Konum", "organization": "Kuruluş", "coordinates": "Koordinatlar", "loading": "Harita yükleniyor…", "noData": "Konum verisi mevcut değil", "moreFmt": "{n} konum bulundu", "precision": "Hassasiyet", "approximate": "Yaklaşık (bölgesel, tam değil)" }, - "graph": { "title": "Varlık Grafiği", "loading": "Graf yükleniyor…", "empty": "Bu tarama için graf verisi yok" }, - "json": { "title": "Ham JSON Sonuçları", "show": "Ham veriyi göster", "hide": "Ham veriyi gizle", "copyRawJson": "Copy raw JSON" }, - "ai": { "title": "AI OSINT Analizi · Nvidia Nemotron", "chatTitle": "AI'ya Sor", "generate": "AI Özeti Oluştur", "generating": "Analiz oluşturuluyor…", "model": "Model", "regenerate": "Yeniden oluştur", "placeholder": "Bu tarama hakkında her şeyi sorun…" }, + "data_exposure": { + "label": "Veri Maruziyeti", + "tooltip": "Hassas veri sızıntıları: ihlal edilmiş kimlik bilgileri, açığa çıkan e-postalar, halka açık kişisel veriler." + }, + "identity_opsec": { + "label": "Kimlik OPSEC", + "tooltip": "Platformlar arası tanımlayıcı yeniden kullanımı: birçok sitede aynı kullanıcı adı/e-posta." + }, + "infrastructure": { + "label": "Altyapı", + "tooltip": "Açığa çıkan hizmetler, açık portlar, zayıf DNS/WHOIS hijyeni, tehdit istihbaratı eşleşmeleri." + }, + "web_security": { + "label": "Web Güvenliği", + "tooltip": "TLS, güvenlik başlıkları, sertifika şeffaflığı, arşivlenmiş hassas yollar." + } + }, + "common": { + "yes": "Evet", + "no": "Hayır", + "unknown": "Bilinmiyor", + "points": "puan", + "moduleRetry": "Tekrar denemek için yenile düğmesini kullanın.", + "skippedKeyHint": "bu modülü etkinleştirmek için {key} değerini .env dosyasına ekleyin.", + "skippedHint": "bu modülü etkinleştirmek için anahtarı .env dosyasına ekleyin.", + "noSecurityFindings": "Güvenlik bulgusu yok", + "noDnsRecords": "DNS kaydı bulunamadı", + "noThreats": "Tehdit algılanmadı" + }, + "findings": { + "title": "Güvenlik Bulguları", + "none": "Güvenlik bulgusu yok" + }, + "whois": { + "title": "WHOIS Kaydı", + "registrar": "Kayıt Kuruluşu", + "organization": "Kuruluş", + "country": "Ülke", + "created": "Oluşturulma", + "expires": "Sona erme", + "emails": "E-postalar", + "nameServers": "Ad Sunucuları" + }, + "dns": { + "title": "DNS Kayıtları" + }, + "subdomains": { + "titleFmt": "Sertifika Şeffaflığı — {n} alt alan adı", + "certsAnalysed": "{n} sertifika analiz edildi" + }, + "accounts": { + "title": "Kullanıcı Adı Araması", + "platform": "Platform", + "url": "URL", + "time": "Süre" + }, + "virustotal": { + "title": "VirusTotal", + "malicious": "Zararlı", + "suspicious": "Şüpheli", + "harmless": "Zararsız", + "undetected": "Tespit edilmedi", + "country": "Ülke", + "asn": "ASN" + }, + "abuseipdb": { + "title": "AbuseIPDB", + "abuseScore": "İstismar Puanı", + "totalReports": "Toplam Rapor", + "isp": "İSS", + "usageType": "Kullanım Türü", + "torExit": "⚠ TOR Çıkış Düğümü" + }, + "shodan": { + "title": "Shodan", + "openPorts": "Açık Portlar", + "cves": "Bulunan CVE'ler" + }, + "censys": { + "titleCert": "Censys — Sertifika Araması", + "titleHost": "Censys — Ana Bilgisayar Bilgisi", + "ip": "IP", + "asn": "ASN", + "location": "Konum", + "openPorts": "Açık Portlar", + "subdomainsFmt": "Alt Alan Adları ({n})", + "services": "Hizmetler", + "port": "Port", + "service": "Hizmet", + "software": "Yazılım" + }, + "darkweb": { + "titleFmt": "Karanlık Web Aynaları — {n} bulundu", + "sources": "Kaynaklar" + }, + "wayback": { + "title": "Wayback Machine", + "summaryFmt": "{n} anlık görüntü · İlk: {first} · Son: {last}", + "recent": "Son Anlık Görüntüler", + "sensitive": "Arşivdeki Hassas URL'ler" + }, + "emailrep": { + "title": "E-posta İtibarı", + "reputation": "İtibar", + "suspicious": "Şüpheli", + "validMx": "Geçerli MX", + "deliverable": "Teslim edilebilir", + "spf": "SPF", + "dmarc": "DMARC", + "domainRep": "Alan Adı İtibarı", + "mxRecords": "MX Kayıtları", + "disposableWarn": "⚠ Tek kullanımlık e-posta algılandı", + "spoofableWarn": "⚠ Alan adı sahtelenebilir (SPF/DMARC eksik)", + "freeProvider": "Ücretsiz e-posta sağlayıcısı" + }, + "smtp": { + "title": "SMTP Doğrulama", + "exists": "Mevcut", + "connect": "SMTP Bağlantısı", + "catchAllWarn": "⚠ Catch-all sunucu (her adresi kabul eder)", + "details": "Ayrıntılar" + }, + "breaches": { + "title": "İhlal Kontrolü", + "found": "İhlaller Bulundu", + "breachedServices": "İhlal Edilen Hizmetler", + "total": "Toplam İhlal" + }, + "dorks": { + "title": "Google Dorks" + }, + "phone": { + "title": "Telefon İstihbaratı", + "valid": "Geçerli", + "country": "Ülke", + "countryCode": "Ülke Kodu", + "region": "Bölge", + "carrier": "Operatör", + "lineType": "Hat Türü", + "timezones": "Saat Dilimleri", + "ownerName": "Sahip Adı", + "address": "Adres" + }, + "telegram": { + "title": "Telegram Profili", + "found": "Bulundu", + "username": "Kullanıcı Adı", + "name": "Ad", + "bio": "Biyografi", + "type": "Tür", + "followers": "Takipçiler" + }, + "map": { + "title": "IP Konum Haritası", + "ip": "IP", + "location": "Konum", + "organization": "Kuruluş", + "coordinates": "Koordinatlar", + "loading": "Harita yükleniyor…", + "noData": "Konum verisi mevcut değil", + "moreFmt": "{n} konum bulundu", + "precision": "Hassasiyet", + "approximate": "Yaklaşık (bölgesel, tam değil)" + }, + "graph": { + "title": "Varlık Grafiği", + "loading": "Graf yükleniyor…", + "empty": "Bu tarama için graf verisi yok" + }, + "json": { + "title": "Ham JSON Sonuçları", + "show": "Ham veriyi göster", + "hide": "Ham veriyi gizle", + "copyRawJson": "Copy raw JSON" + }, + "ai": { + "title": "AI OSINT Analizi · Nvidia Nemotron", + "chatTitle": "AI'ya Sor", + "generate": "AI Özeti Oluştur", + "generating": "Analiz oluşturuluyor…", + "model": "Model", + "regenerate": "Yeniden oluştur", + "placeholder": "Bu tarama hakkında her şeyi sorun…" + }, "duration": "{duration} içinde tamamlandı", "copyAllFindings": "Tüm bulguları kopyala", "copyAllEmails": "Tüm e-postaları kopyala", @@ -444,4 +647,4 @@ "zh": "ZH", "tr": "TR" } -} +} \ No newline at end of file diff --git a/frontend/src/messages/zh.json b/frontend/src/messages/zh.json index 71f95c3a..1df86e11 100644 --- a/frontend/src/messages/zh.json +++ b/frontend/src/messages/zh.json @@ -100,22 +100,68 @@ "online": "在线" }, "caps": { - "domain": { "title": "域名 / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "子域名 · Shodan", "item3": "VirusTotal · Wayback" }, - "email": { "title": "邮箱", "item1": "DNS 信誉 · SMTP", "item2": "泄露检查 · 一次性邮箱", "item3": "SPF · DKIM · DMARC" }, - "phone": { "title": "电话", "item1": "验证 · 运营商", "item2": "国家 · 反查" }, - "username": { "title": "用户名", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ 平台", "item3": "OPSEC 评分" } + "domain": { + "title": "域名 / IP", + "item1": "WHOIS · DNS · GeoIP", + "item2": "子域名 · Shodan", + "item3": "VirusTotal · Wayback" + }, + "email": { + "title": "邮箱", + "item1": "DNS 信誉 · SMTP", + "item2": "泄露检查 · 一次性邮箱", + "item3": "SPF · DKIM · DMARC" + }, + "phone": { + "title": "电话", + "item1": "验证 · 运营商", + "item2": "国家 · 反查" + }, + "username": { + "title": "用户名", + "item1": "Blackbird · Maigret", + "item2": "50+ / 3000+ 平台", + "item3": "OPSEC 评分" + } }, "standaloneTools": "独立工具", "tools": { - "metadata": { "label": "文件元数据", "desc": "EXIF、GPS、PDF、DOCX" }, - "headers": { "label": "邮件头", "desc": "SPF、DKIM、路由跳数" }, - "crypto": { "label": "加密地址", "desc": "比特币和以太坊" }, - "qr": { "label": "二维码解码", "desc": "解码与分析" }, - "mac": { "label": "MAC 查询", "desc": "厂商查询" }, - "subnet": { "label": "IP / 子网", "desc": "网络范围与 CIDR" }, - "hash": { "label": "哈希识别", "desc": "识别哈希类型" }, - "encoder": { "label": "Base64 / URL", "desc": "编码与解码" }, - "jwt": { "label": "JWT 解码", "desc": "解码 JWT 令牌" } + "metadata": { + "label": "文件元数据", + "desc": "EXIF、GPS、PDF、DOCX" + }, + "headers": { + "label": "邮件头", + "desc": "SPF、DKIM、路由跳数" + }, + "crypto": { + "label": "加密地址", + "desc": "比特币和以太坊" + }, + "qr": { + "label": "二维码解码", + "desc": "解码与分析" + }, + "mac": { + "label": "MAC 查询", + "desc": "厂商查询" + }, + "subnet": { + "label": "IP / 子网", + "desc": "网络范围与 CIDR" + }, + "hash": { + "label": "哈希识别", + "desc": "识别哈希类型" + }, + "encoder": { + "label": "Base64 / URL", + "desc": "编码与解码" + }, + "jwt": { + "label": "JWT 解码", + "desc": "解码 JWT 令牌" + } }, "demo": { "line1": "这是一个 API 配额有限的公开演示。部分模块(Shodan、VirusTotal)可能受到速率限制。", @@ -259,7 +305,7 @@ "address": "地址", "bio": "简介", "blog": "博客", - "carrier": "载体", + "carrier": "运营商", "clientEvents": "客户活动", "company": "公司", "copyDnsRecord": "复制 DNS 记录", @@ -267,7 +313,7 @@ "copyShodanPort": "复制 Shodan 端口", "copyDomain": "复制域名", "copyEmail": "复制电子邮件", - "copyOnionUrl": "复制洋葱网址", + "copyOnionUrl": "复制 .onion 地址", "copyPort": "复制端口", "copySubdomain": "复制子域", "copySummary": "复制摘要", @@ -355,33 +401,190 @@ "opsec": { "scoreLabel": "OPSEC 评分", "riskSuffix": "风险", - "data_exposure": { "label": "数据暴露", "tooltip": "敏感数据泄露:被泄露的凭据、暴露的邮箱、公开的个人信息。" }, - "identity_opsec": { "label": "身份 OPSEC", "tooltip": "跨平台重复使用标识:在多个站点使用相同用户名/邮箱。" }, - "infrastructure": { "label": "基础设施", "tooltip": "暴露的服务、开放端口、薄弱的 DNS/WHOIS 卫生、威胁情报命中。" }, - "web_security": { "label": "Web 安全", "tooltip": "TLS、安全头、证书透明度、归档的敏感路径。" } - }, - "common": { "yes": "是", "no": "否", "unknown": "未知", "points": "分", "moduleRetry": "点击刷新按钮重试。", "skippedKeyHint": "将 {key} 添加到 .env 以启用此模块。", "skippedHint": "将密钥添加到 .env 以启用此模块。", "noSecurityFindings": "未发现安全问题", "noDnsRecords": "未找到 DNS 记录", "noThreats": "未检测到威胁" }, - "findings": { "title": "安全发现", "none": "无安全发现" }, - "whois": { "title": "WHOIS 注册信息", "registrar": "注册商", "organization": "组织", "country": "国家", "created": "创建时间", "expires": "到期时间", "emails": "邮箱", "nameServers": "域名服务器" }, - "dns": { "title": "DNS 记录" }, - "subdomains": { "titleFmt": "证书透明度 — {n} 个子域名", "certsAnalysed": "已分析 {n} 个证书" }, - "accounts": { "title": "用户名搜索", "platform": "平台", "url": "链接", "time": "耗时" }, - "virustotal": { "title": "VirusTotal", "malicious": "恶意", "suspicious": "可疑", "harmless": "无害", "undetected": "未检出", "country": "国家", "asn": "ASN" }, - "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "滥用评分", "totalReports": "举报总数", "isp": "ISP", "usageType": "用途类型", "torExit": "⚠ TOR 出口节点" }, - "shodan": { "title": "Shodan", "openPorts": "开放端口", "cves": "发现的 CVE" }, - "censys": { "titleCert": "Censys — 证书搜索", "titleHost": "Censys — 主机信息", "ip": "IP", "asn": "ASN", "location": "位置", "openPorts": "开放端口", "subdomainsFmt": "子域名({n})", "services": "服务", "port": "端口", "service": "服务", "software": "软件" }, - "darkweb": { "titleFmt": "暗网镜像 — 发现 {n} 个", "sources": "来源" }, - "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} 个快照 · 最早:{first} · 最近:{last}", "recent": "最近快照", "sensitive": "归档中的敏感链接" }, - "emailrep": { "title": "邮箱信誉", "reputation": "信誉", "suspicious": "可疑", "validMx": "有效 MX", "deliverable": "可投递", "spf": "SPF", "dmarc": "DMARC", "domainRep": "域名信誉", "mxRecords": "MX 记录", "disposableWarn": "⚠ 检测到一次性邮箱", "spoofableWarn": "⚠ 域名可被伪造(缺少 SPF/DMARC)", "freeProvider": "免费邮箱服务商" }, - "smtp": { "title": "SMTP 验证", "exists": "存在", "connect": "SMTP 连接", "catchAllWarn": "⚠ 全收服务器(接受任意地址)", "details": "详情" }, - "breaches": { "title": "泄露检查", "found": "发现泄露", "breachedServices": "被泄露的服务", "total": "泄露总数" }, - "dorks": { "title": "Google Dorks" }, - "phone": { "title": "电话情报", "valid": "有效", "country": "国家", "countryCode": "国家代码", "region": "地区", "carrier": "运营商", "lineType": "线路类型", "timezones": "时区", "ownerName": "机主姓名", "address": "地址" }, - "telegram": { "title": "Telegram 资料", "found": "已找到", "username": "用户名", "name": "名称", "bio": "简介", "type": "类型", "followers": "关注者" }, - "map": { "title": "IP 地理位置地图", "ip": "IP", "location": "位置", "organization": "组织", "coordinates": "坐标", "loading": "正在加载地图…", "noData": "无可用地理位置数据", "moreFmt": "发现 {n} 个位置", "precision": "精度", "approximate": "近似(区域级,非精确)" }, - "graph": { "title": "实体图谱", "loading": "正在加载图谱…", "empty": "此扫描无可用图谱数据" }, - "json": { "title": "原始 JSON 结果", "show": "显示原始数据", "hide": "隐藏原始数据", "copyRawJson": "Copy raw JSON" }, - "ai": { "title": "AI OSINT 分析 · Nvidia Nemotron", "chatTitle": "向 AI 提问", "generate": "生成 AI 摘要", "generating": "正在生成分析…", "model": "模型", "regenerate": "重新生成", "placeholder": "询问关于此扫描的任何问题…" }, + "data_exposure": { + "label": "数据暴露", + "tooltip": "敏感数据泄露:被泄露的凭据、暴露的邮箱、公开的个人信息。" + }, + "identity_opsec": { + "label": "身份 OPSEC", + "tooltip": "跨平台重复使用标识:在多个站点使用相同用户名/邮箱。" + }, + "infrastructure": { + "label": "基础设施", + "tooltip": "暴露的服务、开放端口、薄弱的 DNS/WHOIS 卫生、威胁情报命中。" + }, + "web_security": { + "label": "Web 安全", + "tooltip": "TLS、安全头、证书透明度、归档的敏感路径。" + } + }, + "common": { + "yes": "是", + "no": "否", + "unknown": "未知", + "points": "分", + "moduleRetry": "点击刷新按钮重试。", + "skippedKeyHint": "将 {key} 添加到 .env 以启用此模块。", + "skippedHint": "将密钥添加到 .env 以启用此模块。", + "noSecurityFindings": "未发现安全问题", + "noDnsRecords": "未找到 DNS 记录", + "noThreats": "未检测到威胁" + }, + "findings": { + "title": "安全发现", + "none": "无安全发现" + }, + "whois": { + "title": "WHOIS 注册信息", + "registrar": "注册商", + "organization": "组织", + "country": "国家", + "created": "创建时间", + "expires": "到期时间", + "emails": "邮箱", + "nameServers": "域名服务器" + }, + "dns": { + "title": "DNS 记录" + }, + "subdomains": { + "titleFmt": "证书透明度 — {n} 个子域名", + "certsAnalysed": "已分析 {n} 个证书" + }, + "accounts": { + "title": "用户名搜索", + "platform": "平台", + "url": "链接", + "time": "耗时" + }, + "virustotal": { + "title": "VirusTotal", + "malicious": "恶意", + "suspicious": "可疑", + "harmless": "无害", + "undetected": "未检出", + "country": "国家", + "asn": "ASN" + }, + "abuseipdb": { + "title": "AbuseIPDB", + "abuseScore": "滥用评分", + "totalReports": "举报总数", + "isp": "ISP", + "usageType": "用途类型", + "torExit": "⚠ TOR 出口节点" + }, + "shodan": { + "title": "Shodan", + "openPorts": "开放端口", + "cves": "发现的 CVE" + }, + "censys": { + "titleCert": "Censys — 证书搜索", + "titleHost": "Censys — 主机信息", + "ip": "IP", + "asn": "ASN", + "location": "位置", + "openPorts": "开放端口", + "subdomainsFmt": "子域名({n})", + "services": "服务", + "port": "端口", + "service": "服务", + "software": "软件" + }, + "darkweb": { + "titleFmt": "暗网镜像 — 发现 {n} 个", + "sources": "来源" + }, + "wayback": { + "title": "Wayback Machine", + "summaryFmt": "{n} 个快照 · 最早:{first} · 最近:{last}", + "recent": "最近快照", + "sensitive": "归档中的敏感链接" + }, + "emailrep": { + "title": "邮箱信誉", + "reputation": "信誉", + "suspicious": "可疑", + "validMx": "有效 MX", + "deliverable": "可投递", + "spf": "SPF", + "dmarc": "DMARC", + "domainRep": "域名信誉", + "mxRecords": "MX 记录", + "disposableWarn": "⚠ 检测到一次性邮箱", + "spoofableWarn": "⚠ 域名可被伪造(缺少 SPF/DMARC)", + "freeProvider": "免费邮箱服务商" + }, + "smtp": { + "title": "SMTP 验证", + "exists": "存在", + "connect": "SMTP 连接", + "catchAllWarn": "⚠ 全收服务器(接受任意地址)", + "details": "详情" + }, + "breaches": { + "title": "泄露检查", + "found": "发现泄露", + "breachedServices": "被泄露的服务", + "total": "泄露总数" + }, + "dorks": { + "title": "Google Dorks" + }, + "phone": { + "title": "电话情报", + "valid": "有效", + "country": "国家", + "countryCode": "国家代码", + "region": "地区", + "carrier": "运营商", + "lineType": "线路类型", + "timezones": "时区", + "ownerName": "机主姓名", + "address": "地址" + }, + "telegram": { + "title": "Telegram 资料", + "found": "已找到", + "username": "用户名", + "name": "名称", + "bio": "简介", + "type": "类型", + "followers": "关注者" + }, + "map": { + "title": "IP 地理位置地图", + "ip": "IP", + "location": "位置", + "organization": "组织", + "coordinates": "坐标", + "loading": "正在加载地图…", + "noData": "无可用地理位置数据", + "moreFmt": "发现 {n} 个位置", + "precision": "精度", + "approximate": "近似(区域级,非精确)" + }, + "graph": { + "title": "实体图谱", + "loading": "正在加载图谱…", + "empty": "此扫描无可用图谱数据" + }, + "json": { + "title": "原始 JSON 结果", + "show": "显示原始数据", + "hide": "隐藏原始数据", + "copyRawJson": "Copy raw JSON" + }, + "ai": { + "title": "AI OSINT 分析 · Nvidia Nemotron", + "chatTitle": "向 AI 提问", + "generate": "生成 AI 摘要", + "generating": "正在生成分析…", + "model": "模型", + "regenerate": "重新生成", + "placeholder": "询问关于此扫描的任何问题…" + }, "duration": "耗时 {duration} 完成", "copyAllFindings": "复制所有发现", "copyAllEmails": "复制所有邮箱", @@ -444,4 +647,4 @@ "zh": "ZH", "tr": "TR" } -} +} \ No newline at end of file From fbfc545b717121de07201d1df9340fc0b61aead3 Mon Sep 17 00:00:00 2001 From: abhijeet nardele <234410808+abhijeetnardele24-hash@users.noreply.github.com> Date: Sat, 10 Oct 2026 13:16:59 +0530 Subject: [PATCH 5/9] chore: resolve maintainer review feedback on translations --- frontend/src/components/views/ScanResults.tsx | 264 +++++------ frontend/src/messages/de.json | 358 ++------------- frontend/src/messages/en.json | 352 ++------------- frontend/src/messages/es.json | 426 +++--------------- frontend/src/messages/fr.json | 352 ++------------- frontend/src/messages/it.json | 352 ++------------- frontend/src/messages/pl.json | 100 +--- frontend/src/messages/pt.json | 350 ++------------ frontend/src/messages/ru.json | 350 ++------------ frontend/src/messages/tr.json | 350 ++------------ frontend/src/messages/zh.json | 350 ++------------ 11 files changed, 559 insertions(+), 3045 deletions(-) diff --git a/frontend/src/components/views/ScanResults.tsx b/frontend/src/components/views/ScanResults.tsx index 317045c5..3797dcc2 100644 --- a/frontend/src/components/views/ScanResults.tsx +++ b/frontend/src/components/views/ScanResults.tsx @@ -154,7 +154,7 @@ function MapView({ scanId, onCopy }: { scanId: string; onCopy: (value: string) = }, []); if (error) return
{error}
; - if (!data) return
{t('results.map.loading')}
; + if (!data) return
{i18n('results.map.loading')}
; if (!data.markers?.length) { if (data.info && (data.info.country || data.info.carrier || data.info.region)) { return ( @@ -168,7 +168,7 @@ function MapView({ scanId, onCopy }: { scanId: string; onCopy: (value: string) =
); } - return
{t('results.map.noData')}
; + return
{i18n('results.map.noData')}
; } const m = data.markers[0]; @@ -182,7 +182,7 @@ function MapView({ scanId, onCopy }: { scanId: string; onCopy: (value: string) = IP
{m.ip} - onCopy(m.ip ?? '')} label={t('results.fields.copyIp')} /> + onCopy(m.ip ?? '')} label={i18n('results.fields.copyIp')} />
)} @@ -275,11 +275,11 @@ function GraphView({ scanId }: { scanId: string }) { return (
- {status === 'loading' &&
{t('results.graph.loading')}
} + {status === 'loading' &&
{i18n('results.graph.loading')}
} {status === 'empty' && (
-
{t('results.graph.empty')}
+
{i18n('results.graph.empty')}
)} {status === 'error' &&
{error}
} @@ -365,13 +365,13 @@ function ModuleNotice({ status, reason }: { status: Exclude; // what to do, so the generic hint is only for a skip that came without a reason. const envKey = reason?.match(/\b[A-Z][A-Z0-9]*_[A-Z0-9_]+\b/)?.[0]; const hint = envKey - ? t('results.common.skippedKeyHint').replace('{key}', envKey) - : reason ? null : t('results.common.skippedHint'); + ? i18n('results.common.skippedKeyHint').replace('{key}', envKey) + : reason ? null : i18n('results.common.skippedHint'); return (
{reason || b.hint} {status === 'skipped' && hint && - {hint}} - {status === 'error' &&
{t('results.common.moduleRetry')}
} + {status === 'error' &&
{i18n('results.common.moduleRetry')}
}
); } @@ -820,9 +820,9 @@ export function ScanResults({ scan, onHome }: Props) { if (!allEmails.length) return; try { await navigator.clipboard.writeText(allEmails.join('\n')); - showToast(t('results.emailsCopied') || 'Emails copied!'); + showToast(i18n('results.emailsCopied') || 'Emails copied!'); } catch { - showToast(t('common.copyFailed') || 'Copy failed'); + showToast(i18n('common.copyFailed') || 'Copy failed'); } }; @@ -884,7 +884,7 @@ export function ScanResults({ scan, onHome }: Props) {
{scan.target}
- copyValue(scan.target)} label={t('results.fields.copyTarget')} /> + copyValue(scan.target)} label={i18n('results.fields.copyTarget')} />
{scan.scan_type?.toUpperCase()} @@ -892,43 +892,43 @@ export function ScanResults({ scan, onHome }: Props) { {scan.started_at.slice(0, 19).replace('T', ' ')} )} {scanDuration && ( - {t('results.duration').replace('{duration}', scanDuration) !== `results.duration` ? t('results.duration').replace('{duration}', scanDuration) : `Completed in ${scanDuration}`} + {i18n('results.duration').replace('{duration}', scanDuration) !== `results.duration` ? i18n('results.duration').replace('{duration}', scanDuration) : `Completed in ${scanDuration}`} )}
{allEmails.length >= 2 && ( )}
@@ -991,7 +991,7 @@ export function ScanResults({ scan, onHome }: Props) { {visibleTabs.map(({ id, label, icon: Icon }) => ( ))}
@@ -999,14 +999,14 @@ export function ScanResults({ scan, onHome }: Props) {
{tab === 'findings' && (
{opsec?.all_findings?.length ? ( - {t('results.copyAllFindings') !== 'results.copyAllFindings' ? t('results.copyAllFindings') : 'Copy all findings'} + {i18n('results.copyAllFindings') !== 'results.copyAllFindings' ? i18n('results.copyAllFindings') : 'Copy all findings'} } > {opsec.all_findings.map((f, i) => )} ) : ( -
{t('results.common.noSecurityFindings')}
+
{i18n('results.common.noSecurityFindings')}
)}
)} {tab === 'whois' && r.whois && ( - refreshModule('whois')} refreshing={isRefreshing('whois')}> + refreshModule('whois')} refreshing={isRefreshing('whois')}>
- - - - - + + + + + {r.whois.emails?.length && (
Emails
{r.whois.emails.map(e => ( {e} - copyValue(e)} label={t('results.fields.copyEmail')} /> + copyValue(e)} label={i18n('results.fields.copyEmail')} /> ))}
@@ -1057,7 +1057,7 @@ export function ScanResults({ scan, onHome }: Props) { {r.whois.name_servers.slice(0, 4).map(ns => ( {ns} - copyValue(ns)} label={t('results.fields.copyDomain')} /> + copyValue(ns)} label={i18n('results.fields.copyDomain')} /> ))}
@@ -1069,7 +1069,7 @@ export function ScanResults({ scan, onHome }: Props) { {/* RDAP */} {tab === 'rdap' && r.rdap && !r.rdap.error && ( - refreshModule('rdap')} refreshing={isRefreshing('rdap')}> + refreshModule('rdap')} refreshing={isRefreshing('rdap')}>
{r.rdap.registered === false && (
Domain is not registered
@@ -1109,11 +1109,11 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'dns' && r.dns?.records && ( - refreshModule('dns')} refreshing={isRefreshing('dns')}> + refreshModule('dns')} refreshing={isRefreshing('dns')}> {Object.entries(r.dns.records).filter(([, v]) => Array.isArray(v) && v.length > 0).length === 0 ? (
-
{t('results.common.noDnsRecords')}
+
{i18n('results.common.noDnsRecords')}
) : ( Object.entries(r.dns.records).filter(([, v]) => Array.isArray(v) && v.length > 0).map(([type, records]) => ( @@ -1124,7 +1124,7 @@ export function ScanResults({ scan, onHome }: Props) { return (
{text}
- copyValue(text)} label={t('results.fields.copyDnsRecord')} /> + copyValue(text)} label={i18n('results.fields.copyDnsRecord')} />
); })} @@ -1141,7 +1141,7 @@ export function ScanResults({ scan, onHome }: Props) { {r.cert_transparency.subdomains?.map(s => ( {s} - copyValue(s)} label={t('results.fields.copySubdomain')} /> + copyValue(s)} label={i18n('results.fields.copySubdomain')} /> ))}
@@ -1149,7 +1149,7 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'accounts' && ( - refreshModule('blackbird')} refreshing={isRefreshing('blackbird')}> + refreshModule('blackbird')} refreshing={isRefreshing('blackbird')}>
{"Heuristic matches from profile-page responses - false positives are possible on sites that serve a page for any username. Open each link to confirm before relying on it."}
@@ -1160,7 +1160,7 @@ export function ScanResults({ scan, onHome }: Props) { type="text" value={accountFilter} onChange={e => setAccountFilter(e.target.value)} - placeholder={t('results.filterPlatforms') !== 'results.filterPlatforms' ? t('results.filterPlatforms') : 'Filter platforms...'} + placeholder={i18n('results.filterPlatforms') !== 'results.filterPlatforms' ? i18n('results.filterPlatforms') : 'Filter platforms...'} className="input-field w-full pl-9 text-[12px] h-9" />
@@ -1176,7 +1176,7 @@ export function ScanResults({ scan, onHome }: Props) {
{b.url} - copyValue(b.url)} label={t('results.fields.copyUsernameUrl')} /> + copyValue(b.url)} label={i18n('results.fields.copyUsernameUrl')} />
{b.response_time?.toFixed(2)}s @@ -1196,28 +1196,28 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'github' && ( - refreshModule('github')} refreshing={isRefreshing('github')}> + refreshModule('github')} refreshing={isRefreshing('github')}>
{r.github?.profile?.html_url && ( )} - - - - - - - - - + + + + + + + + + - - + +
{(r.github?.top_languages?.length ?? 0) > 0 && (
@@ -1237,14 +1237,14 @@ export function ScanResults({ scan, onHome }: Props) { {r.github?.emails?.map(e => ( {e} - copyValue(e)} label={t('results.fields.copyEmail')} /> + copyValue(e)} label={i18n('results.fields.copyEmail')} /> ))}
)} {r.github?.commit_emails_checked === false && (
- {t('results.github.commitEmailsNotChecked')} + {i18n('results.github.commitEmailsNotChecked')} {r.github.status_reason ? `: ${r.github.status_reason}` : ''}
)} @@ -1255,9 +1255,9 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'threats' && (
- refreshModule('virustotal')} refreshing={isRefreshing('virustotal')}> + refreshModule('virustotal')} refreshing={isRefreshing('virustotal')}> {!r.virustotal?.malicious && !r.virustotal?.suspicious && !r.virustotal?.harmless && !r.virustotal?.undetected ? ( -
{t('results.common.noThreats')}
+
{i18n('results.common.noThreats')}
) : ( <>
@@ -1269,15 +1269,15 @@ export function ScanResults({ scan, onHome }: Props) { ))}
- - + +
)}
- refreshModule('abuseipdb')} refreshing={isRefreshing('abuseipdb')}> + refreshModule('abuseipdb')} refreshing={isRefreshing('abuseipdb')}> {!r.abuseipdb?.abuse_score && !r.abuseipdb?.total_reports && !r.abuseipdb?.isp && !r.abuseipdb?.usage_type ? ( -
{t('results.common.noThreats')}
+
{i18n('results.common.noThreats')}
) : (
Abuse Score @@ -1285,14 +1285,14 @@ export function ScanResults({ scan, onHome }: Props) { {r.abuseipdb?.abuse_score}/100
- - - + + + {r.abuseipdb?.is_tor &&
⚠ TOR Exit Node
}
)}
- refreshModule('shodan')} refreshing={isRefreshing('shodan')}> + refreshModule('shodan')} refreshing={isRefreshing('shodan')}> {r.shodan?.source === 'internetdb' && (
{"Ports, hostnames and CVEs below come from InternetDB, Shodan's free dataset. It carries no organisation, location or service banners — a paid Shodan key fills those in."} @@ -1304,7 +1304,7 @@ export function ScanResults({ scan, onHome }: Props) { {r.shodan.open_ports.map(p => ( {p} - copyValue(p)} label={t('results.fields.copyShodanPort')} /> + copyValue(p)} label={i18n('results.fields.copyShodanPort')} /> ))}
@@ -1316,7 +1316,7 @@ export function ScanResults({ scan, onHome }: Props) {
) : null} {!r.shodan?.open_ports?.length && !r.shodan?.vulns?.length && ( -
{t('results.common.noThreats')}
+
{i18n('results.common.noThreats')}
)}
@@ -1334,7 +1334,7 @@ export function ScanResults({ scan, onHome }: Props) { {r.censys.open_ports.map(p => ( {p} - copyValue(p)} label={t('results.fields.copyPort')} /> + copyValue(p)} label={i18n('results.fields.copyPort')} /> ))}
@@ -1346,7 +1346,7 @@ export function ScanResults({ scan, onHome }: Props) { {r.censys.subdomains.map(s => ( {s} - copyValue(s)} label={t('results.fields.copySubdomain')} /> + copyValue(s)} label={i18n('results.fields.copySubdomain')} /> ))}
@@ -1384,7 +1384,7 @@ export function ScanResults({ scan, onHome }: Props) {
{item.source} {item.url} - copyValue(item.url)} label={t('results.fields.copyOnionUrl')} /> + copyValue(item.url)} label={i18n('results.fields.copyOnionUrl')} />
{item.title &&
{item.title}
} {item.description &&
{item.description}
} @@ -1395,7 +1395,7 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'wayback' && r.wayback && ( - refreshModule('wayback')} refreshing={isRefreshing('wayback')}> + refreshModule('wayback')} refreshing={isRefreshing('wayback')}> {!r.wayback.snapshots?.length && !r.wayback.interesting?.length ? (
@@ -1443,7 +1443,7 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'email' && (
{r.emailrep && !r.emailrep.error && ( - refreshModule('emailrep')} refreshing={isRefreshing('emailrep')}> + refreshModule('emailrep')} refreshing={isRefreshing('emailrep')}>
Reputation @@ -1467,7 +1467,7 @@ export function ScanResults({ scan, onHome }: Props) {
DMARC {r.emailrep.dmarc ? 'Yes' : 'No'}
- + {r.emailrep.disposable &&
⚠ Disposable email detected
} {r.emailrep.spoofable &&
⚠ Domain is spoofable (missing SPF/DMARC)
} {r.emailrep.free_provider &&
Free email provider
} @@ -1480,12 +1480,12 @@ export function ScanResults({ scan, onHome }: Props) { )} {r.emailrep?.error && ( - refreshModule('emailrep')} refreshing={isRefreshing('emailrep')}> + refreshModule('emailrep')} refreshing={isRefreshing('emailrep')}>
{r.emailrep.error}
)} {r.smtp && !r.smtp.error && ( - refreshModule('smtp')} refreshing={isRefreshing('smtp')}> + refreshModule('smtp')} refreshing={isRefreshing('smtp')}>
Exists @@ -1507,7 +1507,7 @@ export function ScanResults({ scan, onHome }: Props) {
)} - refreshModule('leaks', ['breaches'])} refreshing={isRefreshing('leaks')}> + refreshModule('leaks', ['breaches'])} refreshing={isRefreshing('leaks')}>
{(r.breaches?.breaches?.length ?? 0) === 0 && r.breaches?.found === false && (
✓ No breaches found
@@ -1527,7 +1527,7 @@ export function ScanResults({ scan, onHome }: Props) {
)} - {r.breaches?.total !== undefined && } + {r.breaches?.total !== undefined && }
@@ -1535,14 +1535,14 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'gravatar' && ( refreshModule('gravatar')} refreshing={isRefreshing('gravatar')} >
- + {r.gravatar?.avatar_url && (
Avatar URL @@ -1591,7 +1591,7 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'hudsonrock' && ( refreshModule('hudsonrock')} refreshing={isRefreshing('hudsonrock')} @@ -1606,10 +1606,10 @@ export function ScanResults({ scan, onHome }: Props) { {r.hudsonrock?.target_type === 'domain' ? ( <>
- - - - + + + +
{(r.hudsonrock?.employee_urls?.length ?? 0) > 0 && ( @@ -1650,19 +1650,19 @@ export function ScanResults({ scan, onHome }: Props) { Employee password strength
- - - - + + + +
)} ) : (
- - - + + +
)}
@@ -1671,7 +1671,7 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'lunar' && ( refreshModule('lunar')} refreshing={isRefreshing('lunar')} @@ -1682,14 +1682,14 @@ export function ScanResults({ scan, onHome }: Props) {
- - - - - - - - + + + + + + + +
{(r.lunar?.malware_families?.length ?? 0) > 0 && ( @@ -1744,7 +1744,7 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'dorks' && r.dorks && ( - + {r.dorks.length === 0 ? (
No dorks generated
) : ( @@ -1753,7 +1753,7 @@ export function ScanResults({ scan, onHome }: Props) { {d} + aria-label={i18n('results.searchGoogle')}>
@@ -1763,16 +1763,16 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'phone' && r.phone && ( - refreshModule('hlr', ['hlr', 'phone_owner', 'phone'])} refreshing={isRefreshing('hlr')}> + refreshModule('hlr', ['hlr', 'phone_owner', 'phone'])} refreshing={isRefreshing('hlr')}>
Valid {r.phone.valid ? 'Yes' : 'No'}
- - - - - + + + + + {r.phone.timezones?.length && (
Timezones
{r.phone.timezones.map(tz => {tz})}
@@ -1780,8 +1780,8 @@ export function ScanResults({ scan, onHome }: Props) { )} {r.phone.reverse && ( <> - - + + )}
@@ -1789,7 +1789,7 @@ export function ScanResults({ scan, onHome }: Props) { )} {tab === 'telegram' && r.telegram && ( - refreshModule('telegram')} refreshing={isRefreshing('telegram')}> + refreshModule('telegram')} refreshing={isRefreshing('telegram')}> {r.telegram.error ? (
{r.telegram.error}
) : ( @@ -1797,24 +1797,24 @@ export function ScanResults({ scan, onHome }: Props) {
Found {r.telegram.found ? 'Yes' : 'No'}
- - - - - {r.telegram.followers && } + + + + + {r.telegram.followers && }
)}
)} {tab === 'map' && ( - + )} {tab === 'graph' && ( - +
@@ -1855,7 +1855,7 @@ export function ScanResults({ scan, onHome }: Props) { {tab === 'ai' && (
- +
@@ -1891,7 +1891,7 @@ export function ScanResults({ scan, onHome }: Props) {
{aiModel &&
Model: {aiModel}
}
- copyValue(aiSummary)} label={t('results.fields.copySummary')} /> + copyValue(aiSummary)} label={i18n('results.fields.copySummary')} />
{aiSummary}
@@ -1899,7 +1899,7 @@ export function ScanResults({ scan, onHome }: Props) { )} - +
@@ -1945,7 +1945,7 @@ export function ScanResults({ scan, onHome }: Props) { onClick={sendChat} disabled={!chatInput.trim() || chatLoading} className="btn-primary px-3 h-9 shrink-0" - aria-label={t('results.sendMessage')} + aria-label={i18n('results.sendMessage')} > @@ -1964,8 +1964,8 @@ export function ScanResults({ scan, onHome }: Props) { if (el) el.scrollTo({ top: 0, behavior: 'smooth' }); else window.scrollTo({ top: 0, behavior: 'smooth' }); }} - aria-label={t('common.backToTop')} - title={t('common.backToTop')} + aria-label={i18n('common.backToTop')} + title={i18n('common.backToTop')} className="flex items-center justify-center w-12 h-12 rounded-full bg-blue hover:bg-blue/90 text-white shadow-lg hover:shadow-xl focus:outline-none focus:ring-2 focus:ring-blue/50 focus:ring-offset-2 focus:ring-offset-surface-1 transition-all duration-200 hover:scale-110 active:scale-95" > diff --git a/frontend/src/messages/de.json b/frontend/src/messages/de.json index 5a1e7acb..11310be4 100644 --- a/frontend/src/messages/de.json +++ b/frontend/src/messages/de.json @@ -18,7 +18,7 @@ "failed": "Fehlgeschlagen", "toggleTheme": "Design wechseln", "github": "GitHub", - "apiDocs": "API-Dokumentation", + "apiDocs":"API-Dokumentation", "remainingScans": "Verbleibende Scans", "watchlists": "Watchlists", "getFirefoxExtension": "Get the Firefox extension", @@ -51,7 +51,7 @@ "ip": "IP", "email": "E-Mail", "phone": "Telefon", - "username": "Nutzer" +"username": "Nutzer" }, "modules": { "rdap": "RDAP", @@ -100,68 +100,22 @@ "online": "ONLINE" }, "caps": { - "domain": { - "title": "Domain / IP", - "item1": "WHOIS · DNS · GeoIP", - "item2": "Subdomains · Shodan", - "item3": "VirusTotal · Wayback" - }, - "email": { - "title": "E-Mail", - "item1": "DNS-Reputation · SMTP", - "item2": "Leak-Check · Wegwerf-Adresse", - "item3": "SPF · DKIM · DMARC" - }, - "phone": { - "title": "Telefon", - "item1": "Validierung · Anbieter", - "item2": "Land · Rückwärtssuche" - }, - "username": { - "title": "Nutzer", - "item1": "Blackbird · Maigret", - "item2": "50+ / 3000+ Plattformen", - "item3": "OPSEC-Bewertung" - } + "domain": { "title": "Domain / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Subdomains · Shodan", "item3": "VirusTotal · Wayback" }, + "email": { "title": "E-Mail", "item1": "DNS-Reputation · SMTP", "item2": "Leak-Check · Wegwerf-Adresse", "item3": "SPF · DKIM · DMARC" }, + "phone": { "title": "Telefon", "item1": "Validierung · Anbieter", "item2": "Land · Rückwärtssuche" }, + "username": { "title": "Nutzer", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ Plattformen", "item3": "OPSEC-Bewertung" } }, "standaloneTools": "Eigenständige Werkzeuge", - "tools": { - "metadata": { - "label": "Datei-Metadaten", - "desc": "EXIF, GPS, PDF, DOCX" - }, - "headers": { - "label": "E-Mail-Header", - "desc": "SPF, DKIM, Routing-Hops" - }, - "crypto": { - "label": "Krypto-Adresse", - "desc": "Bitcoin und Ethereum" - }, - "qr": { - "label": "QR-Decoder", - "desc": "Decodieren & analysieren" - }, - "mac": { - "label": "MAC Lookup", - "desc": "Hersteller-Suche" - }, - "subnet": { - "label": "IP / Subnetz", - "desc": "Netzwerkbereiche & CIDR" - }, - "hash": { - "label": "Hash-Identifier", - "desc": "Hash-Typen identifizieren" - }, - "encoder": { - "label": "Base64 / URL", - "desc": "Kodieren & Dekodieren" - }, - "jwt": { - "label": "JWT-Decoder", - "desc": "JWT-Tokens dekodieren" - } +"tools": { + "metadata": { "label": "Datei-Metadaten", "desc": "EXIF, GPS, PDF, DOCX" }, + "headers": { "label": "E-Mail-Header", "desc": "SPF, DKIM, Routing-Hops" }, + "crypto": { "label": "Krypto-Adresse", "desc": "Bitcoin und Ethereum" }, + "qr": { "label": "QR-Decoder", "desc": "Decodieren & analysieren" }, + "mac": { "label": "MAC Lookup", "desc": "Hersteller-Suche" }, + "subnet": { "label": "IP / Subnetz", "desc": "Netzwerkbereiche & CIDR" }, + "hash": { "label": "Hash-Identifier", "desc": "Hash-Typen identifizieren" }, + "encoder": { "label": "Base64 / URL", "desc": "Kodieren & Dekodieren" }, + "jwt": { "label": "JWT-Decoder", "desc": "JWT-Tokens dekodieren" } }, "demo": { "line1": "Dies ist eine öffentliche Demo mit begrenzten API-Kontingenten. Manche Module (Shodan, VirusTotal) können ratenbegrenzt sein.", @@ -300,68 +254,6 @@ "log": "Fortschrittsprotokoll" }, "results": { - "fields": { - "asn": "ASN", - "address": "Adresse", - "bio": "Bio", - "blog": "Blog", - "carrier": "Anbieter", - "clientEvents": "Kundenveranstaltungen", - "company": "Unternehmen", - "copyDnsRecord": "DNS-Eintrag kopieren", - "copyIp": "IP kopieren", - "copyShodanPort": "Shodan-Port kopieren", - "copyDomain": "Domäne kopieren", - "copyEmail": "E-Mail kopieren", - "copyOnionUrl": ".onion-Adresse kopieren", - "copyPort": "Port kopieren", - "copySubdomain": "Subdomain kopieren", - "copySummary": "Zusammenfassung kopieren", - "copyTarget": "Ziel kopieren", - "copyUsernameUrl": "Benutzernamen-URL kopieren", - "corporateServices": "Unternehmensdienstleistungen", - "country": "Land", - "countryCode": "Landesvorwahl", - "created": "Erstellt", - "dataBreachEvents": "Ereignisse bei Datenschutzverletzungen", - "displayName": "Anzeigename", - "domainReputation": "Domain-Reputation", - "employeeEvents": "Mitarbeiterveranstaltungen", - "employees": "Mitarbeiter", - "expires": "Läuft ab", - "firstSeen": "Zum ersten Mal gesehen", - "followers": "Anhänger", - "isp": "ISP", - "infostealerEvents": "Infostealer-Events", - "joined": "Beigetreten", - "lastSeen": "Zuletzt gesehen", - "lineType": "Linientyp", - "location": "Standort", - "name": "Name", - "organization": "Organisation", - "ownerName": "Besitzername", - "passwordsAnalysed": "Passwörter analysiert", - "period": "Zeitraum", - "publicRepos": "Öffentliche Repos", - "recordsFound": "Datensätze gefunden", - "region": "Region", - "registrar": "Registrator", - "strong": "Stark %", - "thirdParties": "Dritte", - "tooWeak": "Zu schwach %", - "totalBreaches": "Totale Verstöße", - "totalReports": "Gesamtberichte", - "totalStars": "Gesamtzahl der Sterne", - "totalCompromised": "Völlig kompromittiert", - "totalEvents": "Gesamtzahl der Ereignisse", - "twitter": "Twitter", - "type": "Typ", - "usageType": "Nutzungstyp", - "userServices": "Benutzerdienste", - "username": "Benutzername", - "users": "Benutzer", - "weak": "Schwach %" - }, "htmlReport": "HTML-Bericht", "pdfReport": "PDF-Bericht", "jsonReport": "JSON herunterladen", @@ -401,197 +293,41 @@ "opsec": { "scoreLabel": "OPSEC-Bewertung", "riskSuffix": "RISIKO", - "data_exposure": { - "label": "Datenexposition", - "tooltip": "Sensible Datenlecks: kompromittierte Zugangsdaten, offene E-Mails, öffentliche PII." - }, - "identity_opsec": { - "label": "Identitäts-OPSEC", - "tooltip": "Mehrfachverwendung von Kennungen: gleicher Benutzername/E-Mail auf vielen Seiten." - }, - "infrastructure": { - "label": "Infrastruktur", - "tooltip": "Exponierte Dienste, offene Ports, schwache DNS/WHOIS-Hygiene, Threat-Intel-Treffer." - }, - "web_security": { - "label": "Web-Sicherheit", - "tooltip": "TLS, Sicherheits-Header, Certificate Transparency, archivierte sensible Pfade." - } - }, - "common": { - "yes": "Ja", - "no": "Nein", - "unknown": "Unbekannt", - "points": "Pkt", - "moduleRetry": "Mit der Aktualisieren-Schaltfläche erneut versuchen.", - "skippedKeyHint": "{key} in .env eintragen, um dieses Modul zu aktivieren.", - "skippedHint": "den Schlüssel in .env eintragen, um dieses Modul zu aktivieren.", - "noSecurityFindings": "Keine Sicherheitsbefunde", - "noDnsRecords": "Keine DNS-Einträge gefunden", - "noThreats": "Keine Bedrohungen erkannt" - }, - "findings": { - "title": "Sicherheits-Befunde", - "none": "Keine Sicherheits-Befunde" - }, - "whois": { - "title": "WHOIS-Registrierung", - "registrar": "Registrar", - "organization": "Organisation", - "country": "Land", - "created": "Erstellt", - "expires": "Läuft ab", - "emails": "E-Mails", - "nameServers": "Nameserver" - }, - "dns": { - "title": "DNS-Einträge" - }, - "subdomains": { - "titleFmt": "Certificate Transparency — {n} Subdomains", - "certsAnalysed": "{n} Zertifikat(e) analysiert" - }, - "accounts": { - "title": "Benutzername-Suche", - "platform": "Plattform", - "url": "URL", - "time": "Zeit" - }, - "virustotal": { - "title": "VirusTotal", - "malicious": "Schädlich", - "suspicious": "Verdächtig", - "harmless": "Harmlos", - "undetected": "Nicht erkannt", - "country": "Land", - "asn": "ASN" - }, - "abuseipdb": { - "title": "AbuseIPDB", - "abuseScore": "Missbrauchs-Score", - "totalReports": "Gesamtmeldungen", - "isp": "ISP", - "usageType": "Nutzungstyp", - "torExit": "⚠ TOR-Exit-Node" - }, - "shodan": { - "title": "Shodan", - "openPorts": "Offene Ports", - "cves": "Gefundene CVEs" - }, - "censys": { - "titleCert": "Censys — Zertifikatssuche", - "titleHost": "Censys — Host-Info", - "ip": "IP", - "asn": "ASN", - "location": "Standort", - "openPorts": "Offene Ports", - "subdomainsFmt": "Subdomains ({n})", - "services": "Dienste", - "port": "Port", - "service": "Dienst", - "software": "Software" - }, - "darkweb": { - "titleFmt": "Darknet-Spiegel — {n} gefunden", - "sources": "Quellen" - }, - "wayback": { - "title": "Wayback Machine", - "summaryFmt": "{n} Snapshots · Erster: {first} · Letzter: {last}", - "recent": "Neueste Snapshots", - "sensitive": "Sensible URLs im Archiv" - }, - "emailrep": { - "title": "E-Mail-Reputation", - "reputation": "Reputation", - "suspicious": "Verdächtig", - "validMx": "MX gültig", - "deliverable": "Zustellbar", - "spf": "SPF", - "dmarc": "DMARC", - "domainRep": "Domain-Reputation", - "mxRecords": "MX-Einträge", - "disposableWarn": "⚠ Wegwerf-E-Mail erkannt", - "spoofableWarn": "⚠ Domain ist fälschbar (kein SPF/DMARC)", - "freeProvider": "Kostenloser E-Mail-Anbieter" - }, - "smtp": { - "title": "SMTP-Überprüfung", - "exists": "Existiert", - "connect": "SMTP-Verbindung", - "catchAllWarn": "⚠ Catch-All-Server (akzeptiert beliebige Adresse)", - "details": "Details" - }, - "breaches": { - "title": "Leak-Prüfung", - "found": "Leaks gefunden", - "breachedServices": "Betroffene Dienste", - "total": "Leaks gesamt" - }, - "dorks": { - "title": "Google Dorks" - }, - "phone": { - "title": "Telefon-Intelligenz", - "valid": "Gültig", - "country": "Land", - "countryCode": "Ländercode", - "region": "Region", - "carrier": "Anbieter", - "lineType": "Anschlussart", - "timezones": "Zeitzonen", - "ownerName": "Inhaber", - "address": "Adresse" - }, - "telegram": { - "title": "Telegram-Profil", - "found": "Gefunden", - "username": "Benutzername", - "name": "Name", - "bio": "Bio", - "type": "Typ", - "followers": "Follower" - }, - "map": { - "title": "IP-Geolokationskarte", - "ip": "IP", - "location": "Standort", - "organization": "Organisation", - "coordinates": "Koordinaten", - "loading": "Karte wird geladen…", - "noData": "Keine Geolokationsdaten verfügbar", - "moreFmt": "{n} Standorte gefunden", - "precision": "Genauigkeit", - "approximate": "Ungefähr (regional, nicht punktgenau)" - }, - "graph": { - "title": "Entitätsgraph", - "loading": "Graph wird geladen…", - "empty": "Keine Graphdaten für diesen Scan" - }, - "json": { - "title": "Rohe JSON-Daten", - "show": "Rohdaten anzeigen", - "hide": "Rohdaten verbergen", - "copyRawJson": "Copy raw JSON" - }, - "ai": { - "title": "KI-OSINT-Analyse · Nvidia Nemotron", - "chatTitle": "Frag die KI", - "generate": "KI-Zusammenfassung erstellen", - "generating": "Analyse wird erstellt…", - "model": "Modell", - "regenerate": "Neu generieren", - "placeholder": "Frag etwas zu diesem Scan…" - }, + "data_exposure": { "label": "Datenexposition", "tooltip": "Sensible Datenlecks: kompromittierte Zugangsdaten, offene E-Mails, öffentliche PII." }, + "identity_opsec": { "label": "Identitäts-OPSEC", "tooltip": "Mehrfachverwendung von Kennungen: gleicher Benutzername/E-Mail auf vielen Seiten." }, + "infrastructure": { "label": "Infrastruktur", "tooltip": "Exponierte Dienste, offene Ports, schwache DNS/WHOIS-Hygiene, Threat-Intel-Treffer." }, + "web_security": { "label": "Web-Sicherheit", "tooltip": "TLS, Sicherheits-Header, Certificate Transparency, archivierte sensible Pfade." } + }, + "common": { "yes": "Ja", "no": "Nein", "unknown": "Unbekannt", "points": "Pkt", "moduleRetry": "Mit der Aktualisieren-Schaltfläche erneut versuchen.", "skippedKeyHint": "{key} in .env eintragen, um dieses Modul zu aktivieren.", "skippedHint": "den Schlüssel in .env eintragen, um dieses Modul zu aktivieren.", "noSecurityFindings": "Keine Sicherheitsbefunde", "noDnsRecords": "Keine DNS-Einträge gefunden", "noThreats": "Keine Bedrohungen erkannt" }, + "findings": { "title": "Sicherheits-Befunde", "none": "Keine Sicherheits-Befunde" }, + "whois": { "title": "WHOIS-Registrierung", "registrar": "Registrar", "organization": "Organisation", "country": "Land", "created": "Erstellt", "expires": "Läuft ab", "emails": "E-Mails", "nameServers": "Nameserver" }, + "dns": { "title": "DNS-Einträge" }, + "subdomains": { "titleFmt": "Certificate Transparency — {n} Subdomains", "certsAnalysed": "{n} Zertifikat(e) analysiert" }, + "accounts": { "title": "Benutzername-Suche", "platform": "Plattform", "url": "URL", "time": "Zeit" }, + "virustotal": { "title": "VirusTotal", "malicious": "Schädlich", "suspicious": "Verdächtig", "harmless": "Harmlos", "undetected": "Nicht erkannt", "country": "Land", "asn": "ASN" }, + "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Missbrauchs-Score", "totalReports": "Gesamtmeldungen", "isp": "ISP", "usageType": "Nutzungstyp", "torExit": "⚠ TOR-Exit-Node" }, + "shodan": { "title": "Shodan", "openPorts": "Offene Ports", "cves": "Gefundene CVEs" }, + "censys": { "titleCert": "Censys — Zertifikatssuche", "titleHost": "Censys — Host-Info", "ip": "IP", "asn": "ASN", "location": "Standort", "openPorts": "Offene Ports", "subdomainsFmt": "Subdomains ({n})", "services": "Dienste", "port": "Port", "service": "Dienst", "software": "Software" }, + "darkweb": { "titleFmt": "Darknet-Spiegel — {n} gefunden", "sources": "Quellen" }, + "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} Snapshots · Erster: {first} · Letzter: {last}", "recent": "Neueste Snapshots", "sensitive": "Sensible URLs im Archiv" }, + "emailrep": { "title": "E-Mail-Reputation", "reputation": "Reputation", "suspicious": "Verdächtig", "validMx": "MX gültig", "deliverable": "Zustellbar", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Domain-Reputation", "mxRecords": "MX-Einträge", "disposableWarn": "⚠ Wegwerf-E-Mail erkannt", "spoofableWarn": "⚠ Domain ist fälschbar (kein SPF/DMARC)", "freeProvider": "Kostenloser E-Mail-Anbieter" }, + "smtp": { "title": "SMTP-Überprüfung", "exists": "Existiert", "connect": "SMTP-Verbindung", "catchAllWarn": "⚠ Catch-All-Server (akzeptiert beliebige Adresse)", "details": "Details" }, + "breaches": { "title": "Leak-Prüfung", "found": "Leaks gefunden", "breachedServices": "Betroffene Dienste", "total": "Leaks gesamt" }, + "dorks": { "title": "Google Dorks" }, + "phone": { "title": "Telefon-Intelligenz", "valid": "Gültig", "country": "Land", "countryCode": "Ländercode", "region": "Region", "carrier": "Anbieter", "lineType": "Anschlussart", "timezones": "Zeitzonen", "ownerName": "Inhaber", "address": "Adresse" }, + "telegram": { "title": "Telegram-Profil", "found": "Gefunden", "username": "Benutzername", "name": "Name", "bio": "Bio", "type": "Typ", "followers": "Follower" }, + "map": { "title": "IP-Geolokationskarte", "ip": "IP", "location": "Standort", "organization": "Organisation", "coordinates": "Koordinaten", "loading": "Karte wird geladen…", "noData": "Keine Geolokationsdaten verfügbar", "moreFmt": "{n} Standorte gefunden", "precision": "Genauigkeit", "approximate": "Ungefähr (regional, nicht punktgenau)" }, + "graph": { "title": "Entitätsgraph", "loading": "Graph wird geladen…", "empty": "Keine Graphdaten für diesen Scan" }, + "json": { "title": "Rohe JSON-Daten", "show": "Rohdaten anzeigen", "hide": "Rohdaten verbergen", "copyRawJson": "Copy raw JSON" }, + "ai": { "title": "KI-OSINT-Analyse · Nvidia Nemotron", "chatTitle": "Frag die KI", "generate": "KI-Zusammenfassung erstellen", "generating": "Analyse wird erstellt…", "model": "Modell", "regenerate": "Neu generieren", "placeholder": "Frag etwas zu diesem Scan…" }, "duration": "Abgeschlossen in {duration}", "copyAllFindings": "Alle Funde kopieren", "copyAllEmails": "Alle E-Mails kopieren", "emailsCopied": "E-Mails kopiert!", "filterPlatforms": "Plattformen filtern...", "searchGoogle": "Bei Google suchen", - "sendMessage": "Nachricht senden" + "sendMessage": "Nachricht senden", + "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } }, "watchlist": { "title": "Watchlists", @@ -624,7 +360,7 @@ "paused": "Pausiert", "failedToToggle": "Watchlist konnte nicht aktualisiert werden" }, - "common": { + "common": { "copy": "Kopieren", "copied": "Kopiert!", "copyFailed": "Kopieren fehlgeschlagen", @@ -647,4 +383,4 @@ "zh": "ZH", "tr": "TR" } -} \ No newline at end of file +} diff --git a/frontend/src/messages/en.json b/frontend/src/messages/en.json index e0ab5226..041747e6 100644 --- a/frontend/src/messages/en.json +++ b/frontend/src/messages/en.json @@ -100,68 +100,22 @@ "online": "ONLINE" }, "caps": { - "domain": { - "title": "Domain / IP", - "item1": "WHOIS · DNS · GeoIP", - "item2": "Subdomains · Shodan", - "item3": "VirusTotal · Wayback" - }, - "email": { - "title": "Email", - "item1": "DNS reputation · SMTP", - "item2": "Breach check · Disposable", - "item3": "SPF · DKIM · DMARC" - }, - "phone": { - "title": "Phone", - "item1": "Validation · Carrier", - "item2": "Country · Reverse lookup" - }, - "username": { - "title": "Username", - "item1": "Blackbird · Maigret", - "item2": "50+ / 3000+ platforms", - "item3": "OPSEC Score" - } + "domain": { "title": "Domain / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Subdomains · Shodan", "item3": "VirusTotal · Wayback" }, + "email": { "title": "Email", "item1": "DNS reputation · SMTP", "item2": "Breach check · Disposable", "item3": "SPF · DKIM · DMARC" }, + "phone": { "title": "Phone", "item1": "Validation · Carrier", "item2": "Country · Reverse lookup" }, + "username": { "title": "Username", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ platforms", "item3": "OPSEC Score" } }, "standaloneTools": "Standalone Tools", - "tools": { - "metadata": { - "label": "File Metadata", - "desc": "EXIF, GPS, PDF, DOCX" - }, - "headers": { - "label": "Email Headers", - "desc": "SPF, DKIM, routing hops" - }, - "crypto": { - "label": "Crypto Address", - "desc": "Bitcoin & Ethereum" - }, - "qr": { - "label": "QR Decode", - "desc": "Decode & analyze" - }, - "mac": { - "label": "MAC Lookup", - "desc": "Vendor lookup" - }, - "subnet": { - "label": "IP / Subnet", - "desc": "Network ranges & CIDR" - }, - "hash": { - "label": "Hash Identifier", - "desc": "Identify hash types" - }, - "encoder": { - "label": "Base64 / URL", - "desc": "Encode & decode" - }, - "jwt": { - "label": "JWT Decoder", - "desc": "Decode JWT tokens" - } +"tools": { + "metadata": { "label": "File Metadata", "desc": "EXIF, GPS, PDF, DOCX" }, + "headers": { "label": "Email Headers", "desc": "SPF, DKIM, routing hops" }, + "crypto": { "label": "Crypto Address", "desc": "Bitcoin & Ethereum" }, + "qr": { "label": "QR Decode", "desc": "Decode & analyze" }, + "mac": { "label": "MAC Lookup", "desc": "Vendor lookup" }, + "subnet": { "label": "IP / Subnet", "desc": "Network ranges & CIDR" }, + "hash": { "label": "Hash Identifier", "desc": "Identify hash types" }, + "encoder": { "label": "Base64 / URL", "desc": "Encode & decode" }, + "jwt": { "label": "JWT Decoder", "desc": "Decode JWT tokens" } }, "demo": { "line1": "This is a public demo with limited API quotas. Some modules (Shodan, VirusTotal) may be rate-limited.", @@ -300,68 +254,6 @@ "log": "Progress Log" }, "results": { - "fields": { - "asn": "ASN", - "address": "Address", - "bio": "Bio", - "blog": "Blog", - "carrier": "Carrier", - "clientEvents": "Client events", - "company": "Company", - "copyDnsRecord": "Copy DNS record", - "copyIp": "Copy IP", - "copyShodanPort": "Copy Shodan port", - "copyDomain": "Copy domain", - "copyEmail": "Copy email", - "copyOnionUrl": "Copy .onion address", - "copyPort": "Copy port", - "copySubdomain": "Copy subdomain", - "copySummary": "Copy summary", - "copyTarget": "Copy target", - "copyUsernameUrl": "Copy username URL", - "corporateServices": "Corporate services", - "country": "Country", - "countryCode": "Country Code", - "created": "Created", - "dataBreachEvents": "Data breach events", - "displayName": "Display Name", - "domainReputation": "Domain Reputation", - "employeeEvents": "Employee events", - "employees": "Employees", - "expires": "Expires", - "firstSeen": "First seen", - "followers": "Followers", - "isp": "ISP", - "infostealerEvents": "Infostealer events", - "joined": "Joined", - "lastSeen": "Last seen", - "lineType": "Line Type", - "location": "Location", - "name": "Name", - "organization": "Organization", - "ownerName": "Owner Name", - "passwordsAnalysed": "Passwords analysed", - "period": "Period", - "publicRepos": "Public Repos", - "recordsFound": "Records found", - "region": "Region", - "registrar": "Registrar", - "strong": "Strong %", - "thirdParties": "Third parties", - "tooWeak": "Too weak %", - "totalBreaches": "Total Breaches", - "totalReports": "Total Reports", - "totalStars": "Total Stars", - "totalCompromised": "Total compromised", - "totalEvents": "Total events", - "twitter": "Twitter", - "type": "Type", - "usageType": "Usage Type", - "userServices": "User services", - "username": "Username", - "users": "Users", - "weak": "Weak %" - }, "htmlReport": "HTML Report", "pdfReport": "PDF Report", "jsonReport": "Download JSON", @@ -401,197 +293,41 @@ "opsec": { "scoreLabel": "OPSEC Score", "riskSuffix": "RISK", - "data_exposure": { - "label": "Data Exposure", - "tooltip": "Sensitive data leaks: breached credentials, exposed emails, public PII." - }, - "identity_opsec": { - "label": "Identity OPSEC", - "tooltip": "Re-use of identifiers across platforms: same username/email across many sites." - }, - "infrastructure": { - "label": "Infrastructure", - "tooltip": "Exposed services, open ports, weak DNS/WHOIS hygiene, threat-intel hits." - }, - "web_security": { - "label": "Web Security", - "tooltip": "TLS, security headers, certificate transparency, archived sensitive paths." - } - }, - "common": { - "yes": "Yes", - "no": "No", - "unknown": "Unknown", - "points": "pts", - "moduleRetry": "Use the refresh button to try again.", - "skippedKeyHint": "add {key} to .env to enable this module.", - "skippedHint": "add the key to .env to enable this module.", - "noSecurityFindings": "No security findings", - "noDnsRecords": "No DNS records found", - "noThreats": "No threats detected" - }, - "findings": { - "title": "Security Findings", - "none": "No security findings" - }, - "whois": { - "title": "WHOIS Registration", - "registrar": "Registrar", - "organization": "Organization", - "country": "Country", - "created": "Created", - "expires": "Expires", - "emails": "Emails", - "nameServers": "Name Servers" - }, - "dns": { - "title": "DNS Records" - }, - "subdomains": { - "titleFmt": "Certificate Transparency — {n} subdomains", - "certsAnalysed": "{n} certificate(s) analysed" - }, - "accounts": { - "title": "Username Search", - "platform": "Platform", - "url": "URL", - "time": "Time" - }, - "virustotal": { - "title": "VirusTotal", - "malicious": "Malicious", - "suspicious": "Suspicious", - "harmless": "Harmless", - "undetected": "Undetected", - "country": "Country", - "asn": "ASN" - }, - "abuseipdb": { - "title": "AbuseIPDB", - "abuseScore": "Abuse Score", - "totalReports": "Total Reports", - "isp": "ISP", - "usageType": "Usage Type", - "torExit": "⚠ TOR Exit Node" - }, - "shodan": { - "title": "Shodan", - "openPorts": "Open Ports", - "cves": "CVEs Found" - }, - "censys": { - "titleCert": "Censys — Certificate Search", - "titleHost": "Censys — Host Info", - "ip": "IP", - "asn": "ASN", - "location": "Location", - "openPorts": "Open Ports", - "subdomainsFmt": "Subdomains ({n})", - "services": "Services", - "port": "Port", - "service": "Service", - "software": "Software" - }, - "darkweb": { - "titleFmt": "Dark Web Mirrors — {n} found", - "sources": "Sources" - }, - "wayback": { - "title": "Wayback Machine", - "summaryFmt": "{n} snapshots · First: {first} · Last: {last}", - "recent": "Recent Snapshots", - "sensitive": "Sensitive URLs in Archive" - }, - "emailrep": { - "title": "Email Reputation", - "reputation": "Reputation", - "suspicious": "Suspicious", - "validMx": "Valid MX", - "deliverable": "Deliverable", - "spf": "SPF", - "dmarc": "DMARC", - "domainRep": "Domain Reputation", - "mxRecords": "MX Records", - "disposableWarn": "⚠ Disposable email detected", - "spoofableWarn": "⚠ Domain is spoofable (missing SPF/DMARC)", - "freeProvider": "Free email provider" - }, - "smtp": { - "title": "SMTP Verification", - "exists": "Exists", - "connect": "SMTP Connect", - "catchAllWarn": "⚠ Catch-all server (accepts any address)", - "details": "Details" - }, - "breaches": { - "title": "Breach Check", - "found": "Breaches Found", - "breachedServices": "Breached Services", - "total": "Total Breaches" - }, - "dorks": { - "title": "Google Dorks" - }, - "phone": { - "title": "Phone Intelligence", - "valid": "Valid", - "country": "Country", - "countryCode": "Country Code", - "region": "Region", - "carrier": "Carrier", - "lineType": "Line Type", - "timezones": "Timezones", - "ownerName": "Owner Name", - "address": "Address" - }, - "telegram": { - "title": "Telegram Profile", - "found": "Found", - "username": "Username", - "name": "Name", - "bio": "Bio", - "type": "Type", - "followers": "Followers" - }, - "map": { - "title": "IP Geolocation Map", - "ip": "IP", - "location": "Location", - "organization": "Organization", - "coordinates": "Coordinates", - "loading": "Loading map…", - "noData": "No geolocation data available", - "moreFmt": "{n} locations found", - "precision": "Precision", - "approximate": "Approximate (regional, not exact)" - }, - "graph": { - "title": "Entity Graph", - "loading": "Loading graph…", - "empty": "No graph data available for this scan" - }, - "json": { - "title": "Raw JSON Results", - "show": "Show raw data", - "hide": "Hide raw data", - "copyRawJson": "Copy raw JSON" - }, - "ai": { - "title": "AI OSINT Analysis · Nvidia Nemotron", - "chatTitle": "Ask the AI", - "generate": "Generate AI Summary", - "generating": "Generating analysis…", - "model": "Model", - "regenerate": "Regenerate", - "placeholder": "Ask anything about this scan…" - }, + "data_exposure": { "label": "Data Exposure", "tooltip": "Sensitive data leaks: breached credentials, exposed emails, public PII." }, + "identity_opsec": { "label": "Identity OPSEC", "tooltip": "Re-use of identifiers across platforms: same username/email across many sites." }, + "infrastructure": { "label": "Infrastructure", "tooltip": "Exposed services, open ports, weak DNS/WHOIS hygiene, threat-intel hits." }, + "web_security": { "label": "Web Security", "tooltip": "TLS, security headers, certificate transparency, archived sensitive paths." } + }, + "common": { "yes": "Yes", "no": "No", "unknown": "Unknown", "points": "pts", "moduleRetry": "Use the refresh button to try again.", "skippedKeyHint": "add {key} to .env to enable this module.", "skippedHint": "add the key to .env to enable this module.", "noSecurityFindings": "No security findings", "noDnsRecords": "No DNS records found", "noThreats": "No threats detected" }, + "findings": { "title": "Security Findings", "none": "No security findings" }, + "whois": { "title": "WHOIS Registration", "registrar": "Registrar", "organization": "Organization", "country": "Country", "created": "Created", "expires": "Expires", "emails": "Emails", "nameServers": "Name Servers" }, + "dns": { "title": "DNS Records" }, + "subdomains": { "titleFmt": "Certificate Transparency — {n} subdomains", "certsAnalysed": "{n} certificate(s) analysed" }, + "accounts": { "title": "Username Search", "platform": "Platform", "url": "URL", "time": "Time" }, + "virustotal": { "title": "VirusTotal", "malicious": "Malicious", "suspicious": "Suspicious", "harmless": "Harmless", "undetected": "Undetected", "country": "Country", "asn": "ASN" }, + "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Abuse Score", "totalReports": "Total Reports", "isp": "ISP", "usageType": "Usage Type", "torExit": "⚠ TOR Exit Node" }, + "shodan": { "title": "Shodan", "openPorts": "Open Ports", "cves": "CVEs Found" }, + "censys": { "titleCert": "Censys — Certificate Search", "titleHost": "Censys — Host Info", "ip": "IP", "asn": "ASN", "location": "Location", "openPorts": "Open Ports", "subdomainsFmt": "Subdomains ({n})", "services": "Services", "port": "Port", "service": "Service", "software": "Software" }, + "darkweb": { "titleFmt": "Dark Web Mirrors — {n} found", "sources": "Sources" }, + "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} snapshots · First: {first} · Last: {last}", "recent": "Recent Snapshots", "sensitive": "Sensitive URLs in Archive" }, + "emailrep": { "title": "Email Reputation", "reputation": "Reputation", "suspicious": "Suspicious", "validMx": "Valid MX", "deliverable": "Deliverable", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Domain Reputation", "mxRecords": "MX Records", "disposableWarn": "⚠ Disposable email detected", "spoofableWarn": "⚠ Domain is spoofable (missing SPF/DMARC)", "freeProvider": "Free email provider" }, + "smtp": { "title": "SMTP Verification", "exists": "Exists", "connect": "SMTP Connect", "catchAllWarn": "⚠ Catch-all server (accepts any address)", "details": "Details" }, + "breaches": { "title": "Breach Check", "found": "Breaches Found", "breachedServices": "Breached Services", "total": "Total Breaches" }, + "dorks": { "title": "Google Dorks" }, + "phone": { "title": "Phone Intelligence", "valid": "Valid", "country": "Country", "countryCode": "Country Code", "region": "Region", "carrier": "Carrier", "lineType": "Line Type", "timezones": "Timezones", "ownerName": "Owner Name", "address": "Address" }, + "telegram": { "title": "Telegram Profile", "found": "Found", "username": "Username", "name": "Name", "bio": "Bio", "type": "Type", "followers": "Followers" }, + "map": { "title": "IP Geolocation Map", "ip": "IP", "location": "Location", "organization": "Organization", "coordinates": "Coordinates", "loading": "Loading map…", "noData": "No geolocation data available", "moreFmt": "{n} locations found", "precision": "Precision", "approximate": "Approximate (regional, not exact)" }, + "graph": { "title": "Entity Graph", "loading": "Loading graph…", "empty": "No graph data available for this scan" }, + "json": { "title": "Raw JSON Results", "show": "Show raw data", "hide": "Hide raw data", "copyRawJson": "Copy raw JSON" }, + "ai": { "title": "AI OSINT Analysis · Nvidia Nemotron", "chatTitle": "Ask the AI", "generate": "Generate AI Summary", "generating": "Generating analysis…", "model": "Model", "regenerate": "Regenerate", "placeholder": "Ask anything about this scan…" }, "duration": "Completed in {duration}", "copyAllFindings": "Copy all findings", "copyAllEmails": "Copy all emails", "emailsCopied": "Emails copied!", "filterPlatforms": "Filter platforms...", "searchGoogle": "Search on Google", - "sendMessage": "Send message" + "sendMessage": "Send message", + "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } }, "watchlist": { "title": "Watchlists", @@ -647,4 +383,4 @@ "zh": "ZH", "tr": "TR" } -} \ No newline at end of file +} diff --git a/frontend/src/messages/es.json b/frontend/src/messages/es.json index 3c11d70d..7d8775a5 100644 --- a/frontend/src/messages/es.json +++ b/frontend/src/messages/es.json @@ -92,76 +92,24 @@ "idle": { "title": "PRISM", "subtitle": "Plataforma de Inteligencia de Fuentes Abiertas", - "stats": { - "modules": "Módulos", - "sources": "Fuentes", - "scanTypes": "Tipos de escaneo", - "status": "Estado", - "online": "EN LÍNEA" - }, + "stats": { "modules": "Módulos", "sources": "Fuentes", "scanTypes": "Tipos de escaneo", "status": "Estado", "online": "EN LÍNEA" }, "caps": { - "domain": { - "title": "Dominio / IP", - "item1": "WHOIS · DNS · GeoIP", - "item2": "Subdominios · Shodan", - "item3": "VirusTotal · Wayback" - }, - "email": { - "title": "Correo electrónico", - "item1": "Reputación DNS · SMTP", - "item2": "Verificación de filtraciones · Desechable", - "item3": "SPF · DKIM · DMARC" - }, - "phone": { - "title": "Teléfono", - "item1": "Validación · Operador", - "item2": "País · Búsqueda inversa" - }, - "username": { - "title": "Nombre de usuario", - "item1": "Blackbird · Maigret", - "item2": "50+ / 3000+ plataformas", - "item3": "Puntuación OPSEC" - } + "domain": { "title": "Dominio / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Subdominios · Shodan", "item3": "VirusTotal · Wayback" }, + "email": { "title": "Correo electrónico", "item1": "Reputación DNS · SMTP", "item2": "Verificación de filtraciones · Desechable", "item3": "SPF · DKIM · DMARC" }, + "phone": { "title": "Teléfono", "item1": "Validación · Operador", "item2": "País · Búsqueda inversa" }, + "username": { "title": "Nombre de usuario", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ plataformas", "item3": "Puntuación OPSEC" } }, "standaloneTools": "Herramientas independientes", "tools": { - "metadata": { - "label": "Metadatos de archivo", - "desc": "EXIF, GPS, PDF, DOCX" - }, - "headers": { - "label": "Cabeceras de correo", - "desc": "SPF, DKIM, saltos de enrutamiento" - }, - "crypto": { - "label": "Dirección cripto", - "desc": "Bitcoin y Ethereum" - }, - "qr": { - "label": "Decodificar QR", - "desc": "Decodificar y analizar" - }, - "mac": { - "label": "Búsqueda MAC", - "desc": "Búsqueda de proveedor" - }, - "subnet": { - "label": "IP / Subred", - "desc": "Rangos de red & CIDR" - }, - "hash": { - "label": "Identificador de hash", - "desc": "Identificar tipos de hash" - }, - "encoder": { - "label": "Base64 / URL", - "desc": "Codificar y decodificar" - }, - "jwt": { - "label": "Decodificador JWT", - "desc": "Decodificar tokens JWT" - } + "metadata": { "label": "Metadatos de archivo", "desc": "EXIF, GPS, PDF, DOCX" }, + "headers": { "label": "Cabeceras de correo", "desc": "SPF, DKIM, saltos de enrutamiento" }, + "crypto": { "label": "Dirección cripto", "desc": "Bitcoin y Ethereum" }, + "qr": { "label": "Decodificar QR", "desc": "Decodificar y analizar" }, + "mac": { "label": "Búsqueda MAC", "desc": "Búsqueda de proveedor" }, + "subnet": { "label": "IP / Subred", "desc": "Rangos de red & CIDR" }, + "hash": { "label": "Identificador de hash", "desc": "Identificar tipos de hash" }, + "encoder": { "label": "Base64 / URL", "desc": "Codificar y decodificar" }, + "jwt": { "label": "Decodificador JWT", "desc": "Decodificar tokens JWT" } }, "demo": { "line1": "Esta es una demo pública con cuotas de API limitadas. Algunos módulos (Shodan, VirusTotal) pueden tener límite de velocidad.", @@ -171,305 +119,49 @@ "line3": "Los módulos que dependen de servicios de terceros (crt.sh, Wayback Machine) pueden devolver errores 5xx cuando esos servicios fallan o limitan las peticiones. El análisis con IA funciona en esta demo, pero puede ir lento: OpenRouter y Groq bloquean la región de alojamiento de la demo, así que las solicitudes salen a través de un proxy. Al autoalojar PRISM, todo funciona con normalidad y la IA responde a velocidad normal." } }, - "progress": { - "modulesLabel": "módulos", - "initializing": "Inicializando escaneo…", - "running": "Ejecutando…", - "log": "Registro de progreso" - }, + "progress": { "modulesLabel": "módulos", "initializing": "Inicializando escaneo…", "running": "Ejecutando…", "log": "Registro de progreso" }, "results": { - "fields": { - "asn": "ASN", - "address": "DIRECCIÓN", - "bio": "Biografía", - "blog": "Blog", - "carrier": "Operador", - "clientEvents": "Eventos de clientes", - "company": "Compañía", - "copyDnsRecord": "Copiar registro DNS", - "copyIp": "Copiar IP", - "copyShodanPort": "Copiar el puerto de Shodan", - "copyDomain": "Copiar dominio", - "copyEmail": "Copiar correo electrónico", - "copyOnionUrl": "Copiar dirección .onion", - "copyPort": "Copiar puerto", - "copySubdomain": "Copiar subdominio", - "copySummary": "Copiar resumen", - "copyTarget": "Copiar destino", - "copyUsernameUrl": "Copiar URL de nombre de usuario", - "corporateServices": "Servicios corporativos", - "country": "País", - "countryCode": "Código del país", - "created": "Creado", - "dataBreachEvents": "Eventos de violación de datos", - "displayName": "Nombre para mostrar", - "domainReputation": "Reputación del dominio", - "employeeEvents": "Eventos para empleados", - "employees": "Empleados", - "expires": "Vence", - "firstSeen": "visto por primera vez", - "followers": "Seguidores", - "isp": "ISP", - "infostealerEvents": "Eventos de robo de información", - "joined": "Unido", - "lastSeen": "visto por última vez", - "lineType": "Tipo de línea", - "location": "Ubicación", - "name": "Nombre", - "organization": "Organización", - "ownerName": "Nombre del propietario", - "passwordsAnalysed": "Contraseñas analizadas", - "period": "Período", - "publicRepos": "Repositorios públicos", - "recordsFound": "Registros encontrados", - "region": "Región", - "registrar": "Registrador", - "strong": "Fuerte %", - "thirdParties": "Terceros", - "tooWeak": "% demasiado débil", - "totalBreaches": "Incumplimientos totales", - "totalReports": "Informes totales", - "totalStars": "Estrellas totales", - "totalCompromised": "Totalmente comprometido", - "totalEvents": "Eventos totales", - "twitter": "Gorjeo", - "type": "Tipo", - "usageType": "Tipo de uso", - "userServices": "Servicios de usuario", - "username": "Nombre de usuario", - "users": "Usuarios", - "weak": "Débil %" - }, - "htmlReport": "Informe HTML", - "pdfReport": "Informe PDF", - "jsonReport": "Descargar JSON", - "csvReport": "Descargar CSV", - "mdReport": "Descargar Markdown", - "copyCurl": "Copiar como cURL", - "scanAnother": "Escanear otro", - "github": { - "repositoriesScanned": "Repositorios analizados", - "notChecked": "no comprobado", - "commitEmailsNotChecked": "Los correos de commits no se comprobaron" - }, - "tabs": { - "rdap": "RDAP", - "github": "GitHub", - "gravatar": "Gravatar", - "hudsonrock": "Exposición a infostealers", - "lunar": "Exposición del dominio", - "findings": "Hallazgos", - "whois": "WHOIS", - "dns": "DNS", - "subdomains": "Subdominios", - "accounts": "Cuentas", - "threats": "Amenazas", - "censys": "Censys", - "darkweb": "Dark Web", - "wayback": "Wayback", - "email": "Correo", - "dorks": "Dorks", - "phone": "Teléfono", - "telegram": "Telegram", - "map": "Mapa", - "graph": "Grafo", - "json": "JSON", - "ai": "IA" - }, + "htmlReport": "Informe HTML", "pdfReport": "Informe PDF", "jsonReport": "Descargar JSON", + "csvReport": "Descargar CSV", "mdReport": "Descargar Markdown", "copyCurl": "Copiar como cURL", "scanAnother": "Escanear otro", + "github": { "repositoriesScanned": "Repositorios analizados", "notChecked": "no comprobado", "commitEmailsNotChecked": "Los correos de commits no se comprobaron" }, + "tabs": { "rdap": "RDAP", "github": "GitHub", "gravatar": "Gravatar", "hudsonrock": "Exposición a infostealers", "lunar": "Exposición del dominio", "findings": "Hallazgos", "whois": "WHOIS", "dns": "DNS", "subdomains": "Subdominios", "accounts": "Cuentas", "threats": "Amenazas", "censys": "Censys", "darkweb": "Dark Web", "wayback": "Wayback", "email": "Correo", "dorks": "Dorks", "phone": "Teléfono", "telegram": "Telegram", "map": "Mapa", "graph": "Grafo", "json": "JSON", "ai": "IA" }, "opsec": { - "scoreLabel": "Puntuación OPSEC", - "riskSuffix": "RIESGO", - "data_exposure": { - "label": "Exposición de datos", - "tooltip": "Fugas de datos sensibles: credenciales filtradas, correos expuestos, información personal pública." - }, - "identity_opsec": { - "label": "OPSEC de identidad", - "tooltip": "Reutilización de identificadores entre plataformas: mismo nombre de usuario/correo en múltiples sitios." - }, - "infrastructure": { - "label": "Infraestructura", - "tooltip": "Servicios expuestos, puertos abiertos, higiene débil de DNS/WHOIS, coincidencias en inteligencia de amenazas." - }, - "web_security": { - "label": "Seguridad web", - "tooltip": "TLS, cabeceras de seguridad, transparencia de certificados, rutas sensibles archivadas." - } - }, - "common": { - "yes": "Sí", - "no": "No", - "unknown": "Desconocido", - "points": "pts", - "moduleRetry": "Usa el botón de actualizar para volver a intentarlo.", - "skippedKeyHint": "añade {key} a .env para activar este módulo.", - "skippedHint": "añade la clave a .env para activar este módulo.", - "noSecurityFindings": "Sin hallazgos de seguridad", - "noDnsRecords": "No se encontraron registros DNS", - "noThreats": "No se detectaron amenazas" - }, - "findings": { - "title": "Hallazgos de seguridad", - "none": "Sin hallazgos de seguridad" - }, - "whois": { - "title": "Registro WHOIS", - "registrar": "Registrador", - "organization": "Organización", - "country": "País", - "created": "Creado", - "expires": "Expira", - "emails": "Correos", - "nameServers": "Servidores de nombres" - }, - "dns": { - "title": "Registros DNS" - }, - "subdomains": { - "titleFmt": "Transparencia de certificados — {n} subdominios", - "certsAnalysed": "{n} certificado(s) analizado(s)" - }, - "accounts": { - "title": "Búsqueda de nombre de usuario", - "platform": "Plataforma", - "url": "URL", - "time": "Tiempo" - }, - "virustotal": { - "title": "VirusTotal", - "malicious": "Malicioso", - "suspicious": "Sospechoso", - "harmless": "Inofensivo", - "undetected": "No detectado", - "country": "País", - "asn": "ASN" - }, - "abuseipdb": { - "title": "AbuseIPDB", - "abuseScore": "Puntuación de abuso", - "totalReports": "Informes totales", - "isp": "ISP", - "usageType": "Tipo de uso", - "torExit": "⚠ Nodo de salida TOR" - }, - "shodan": { - "title": "Shodan", - "openPorts": "Puertos abiertos", - "cves": "CVEs encontrados" - }, - "censys": { - "titleCert": "Censys — Búsqueda de certificados", - "titleHost": "Censys — Información del host", - "ip": "IP", - "asn": "ASN", - "location": "Ubicación", - "openPorts": "Puertos abiertos", - "subdomainsFmt": "Subdominios ({n})", - "services": "Servicios", - "port": "Puerto", - "service": "Servicio", - "software": "Software" - }, - "darkweb": { - "titleFmt": "Espejos en la Dark Web — {n} encontrados", - "sources": "Fuentes" - }, - "wayback": { - "title": "Wayback Machine", - "summaryFmt": "{n} capturas · Primera: {first} · Última: {last}", - "recent": "Capturas recientes", - "sensitive": "URLs sensibles en el archivo" - }, - "emailrep": { - "title": "Reputación de correo", - "reputation": "Reputación", - "suspicious": "Sospechoso", - "validMx": "MX válido", - "deliverable": "Entregable", - "spf": "SPF", - "dmarc": "DMARC", - "domainRep": "Reputación del dominio", - "mxRecords": "Registros MX", - "disposableWarn": "⚠ Correo desechable detectado", - "spoofableWarn": "⚠ Dominio suplantable (falta SPF/DMARC)", - "freeProvider": "Proveedor de correo gratuito" - }, - "smtp": { - "title": "Verificación SMTP", - "exists": "Existe", - "connect": "Conexión SMTP", - "catchAllWarn": "⚠ Servidor catch-all (acepta cualquier dirección)", - "details": "Detalles" - }, - "breaches": { - "title": "Verificación de filtraciones", - "found": "Filtraciones encontradas", - "breachedServices": "Servicios filtrados", - "total": "Total de filtraciones" - }, - "dorks": { - "title": "Google Dorks" - }, - "phone": { - "title": "Inteligencia telefónica", - "valid": "Válido", - "country": "País", - "countryCode": "Código de país", - "region": "Región", - "carrier": "Operador", - "lineType": "Tipo de línea", - "timezones": "Zonas horarias", - "ownerName": "Nombre del titular", - "address": "Dirección" - }, - "telegram": { - "title": "Perfil de Telegram", - "found": "Encontrado", - "username": "Nombre de usuario", - "name": "Nombre", - "bio": "Biografía", - "type": "Tipo", - "followers": "Seguidores" - }, - "map": { - "title": "Mapa de geolocalización IP", - "ip": "IP", - "location": "Ubicación", - "organization": "Organización", - "coordinates": "Coordenadas", - "loading": "Cargando mapa…", - "noData": "No hay datos de geolocalización disponibles", - "moreFmt": "{n} ubicaciones encontradas", - "precision": "Precisión", - "approximate": "Aproximada (regional, no exacta)" - }, - "graph": { - "title": "Grafo de entidades", - "loading": "Cargando grafo…", - "empty": "No hay datos de grafo disponibles para este escaneo" - }, - "json": { - "title": "Resultados JSON sin procesar", - "show": "Mostrar datos sin procesar", - "hide": "Ocultar datos sin procesar", - "copyRawJson": "Copy raw JSON" - }, - "ai": { - "title": "Análisis OSINT con IA · Nvidia Nemotron", - "chatTitle": "Preguntar a la IA", - "generate": "Generar resumen con IA", - "generating": "Generando análisis…", - "model": "Modelo", - "regenerate": "Regenerar", - "placeholder": "Pregunte cualquier cosa sobre este escaneo…" - }, + "scoreLabel": "Puntuación OPSEC", "riskSuffix": "RIESGO", + "data_exposure": { "label": "Exposición de datos", "tooltip": "Fugas de datos sensibles: credenciales filtradas, correos expuestos, información personal pública." }, + "identity_opsec": { "label": "OPSEC de identidad", "tooltip": "Reutilización de identificadores entre plataformas: mismo nombre de usuario/correo en múltiples sitios." }, + "infrastructure": { "label": "Infraestructura", "tooltip": "Servicios expuestos, puertos abiertos, higiene débil de DNS/WHOIS, coincidencias en inteligencia de amenazas." }, + "web_security": { "label": "Seguridad web", "tooltip": "TLS, cabeceras de seguridad, transparencia de certificados, rutas sensibles archivadas." } + }, + "common": { "yes": "Sí", "no": "No", "unknown": "Desconocido", "points": "pts", "moduleRetry": "Usa el botón de actualizar para volver a intentarlo.", "skippedKeyHint": "añade {key} a .env para activar este módulo.", "skippedHint": "añade la clave a .env para activar este módulo.", "noSecurityFindings": "Sin hallazgos de seguridad", "noDnsRecords": "No se encontraron registros DNS", "noThreats": "No se detectaron amenazas" }, + "findings": { "title": "Hallazgos de seguridad", "none": "Sin hallazgos de seguridad" }, + "whois": { "title": "Registro WHOIS", "registrar": "Registrador", "organization": "Organización", "country": "País", "created": "Creado", "expires": "Expira", "emails": "Correos", "nameServers": "Servidores de nombres" }, + "dns": { "title": "Registros DNS" }, + "subdomains": { "titleFmt": "Transparencia de certificados — {n} subdominios", "certsAnalysed": "{n} certificado(s) analizado(s)" }, + "accounts": { "title": "Búsqueda de nombre de usuario", "platform": "Plataforma", "url": "URL", "time": "Tiempo" }, + "virustotal": { "title": "VirusTotal", "malicious": "Malicioso", "suspicious": "Sospechoso", "harmless": "Inofensivo", "undetected": "No detectado", "country": "País", "asn": "ASN" }, + "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Puntuación de abuso", "totalReports": "Informes totales", "isp": "ISP", "usageType": "Tipo de uso", "torExit": "⚠ Nodo de salida TOR" }, + "shodan": { "title": "Shodan", "openPorts": "Puertos abiertos", "cves": "CVEs encontrados" }, + "censys": { "titleCert": "Censys — Búsqueda de certificados", "titleHost": "Censys — Información del host", "ip": "IP", "asn": "ASN", "location": "Ubicación", "openPorts": "Puertos abiertos", "subdomainsFmt": "Subdominios ({n})", "services": "Servicios", "port": "Puerto", "service": "Servicio", "software": "Software" }, + "darkweb": { "titleFmt": "Espejos en la Dark Web — {n} encontrados", "sources": "Fuentes" }, + "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} capturas · Primera: {first} · Última: {last}", "recent": "Capturas recientes", "sensitive": "URLs sensibles en el archivo" }, + "emailrep": { "title": "Reputación de correo", "reputation": "Reputación", "suspicious": "Sospechoso", "validMx": "MX válido", "deliverable": "Entregable", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Reputación del dominio", "mxRecords": "Registros MX", "disposableWarn": "⚠ Correo desechable detectado", "spoofableWarn": "⚠ Dominio suplantable (falta SPF/DMARC)", "freeProvider": "Proveedor de correo gratuito" }, + "smtp": { "title": "Verificación SMTP", "exists": "Existe", "connect": "Conexión SMTP", "catchAllWarn": "⚠ Servidor catch-all (acepta cualquier dirección)", "details": "Detalles" }, + "breaches": { "title": "Verificación de filtraciones", "found": "Filtraciones encontradas", "breachedServices": "Servicios filtrados", "total": "Total de filtraciones" }, + "dorks": { "title": "Google Dorks" }, + "phone": { "title": "Inteligencia telefónica", "valid": "Válido", "country": "País", "countryCode": "Código de país", "region": "Región", "carrier": "Operador", "lineType": "Tipo de línea", "timezones": "Zonas horarias", "ownerName": "Nombre del titular", "address": "Dirección" }, + "telegram": { "title": "Perfil de Telegram", "found": "Encontrado", "username": "Nombre de usuario", "name": "Nombre", "bio": "Biografía", "type": "Tipo", "followers": "Seguidores" }, + "map": { "title": "Mapa de geolocalización IP", "ip": "IP", "location": "Ubicación", "organization": "Organización", "coordinates": "Coordenadas", "loading": "Cargando mapa…", "noData": "No hay datos de geolocalización disponibles", "moreFmt": "{n} ubicaciones encontradas", "precision": "Precisión", "approximate": "Aproximada (regional, no exacta)" }, + "graph": { "title": "Grafo de entidades", "loading": "Cargando grafo…", "empty": "No hay datos de grafo disponibles para este escaneo" }, + "json": { "title": "Resultados JSON sin procesar", "show": "Mostrar datos sin procesar", "hide": "Ocultar datos sin procesar", "copyRawJson": "Copy raw JSON" }, + "ai": { "title": "Análisis OSINT con IA · Nvidia Nemotron", "chatTitle": "Preguntar a la IA", "generate": "Generar resumen con IA", "generating": "Generando análisis…", "model": "Modelo", "regenerate": "Regenerar", "placeholder": "Pregunte cualquier cosa sobre este escaneo…" }, "duration": "Completado en {duration}", "copyAllFindings": "Copiar todos los hallazgos", "copyAllEmails": "Copiar todos los correos", "emailsCopied": "¡Correos copiados!", "filterPlatforms": "Filtrar plataformas...", "searchGoogle": "Buscar en Google", - "sendMessage": "Enviar mensaje" + "sendMessage": "Enviar mensaje", + "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } }, "toolPanels": { "back": "Volver", @@ -624,15 +316,15 @@ "paused": "Pausado", "failedToToggle": "Error al actualizar la lista" }, - "common": { - "copy": "Copiar", - "copied": "¡Copiado!", - "copyFailed": "Error al copiar", - "loading": "Cargando…", - "error": "Error", - "backToTop": "Volver arriba", - "tabErrorTitle": "No se puede cargar esta pestaña", - "tabErrorMessage": "Se produjo un error al cargar este resultado." + "common": { + "copy": "Copiar", + "copied": "¡Copiado!", + "copyFailed": "Error al copiar", + "loading": "Cargando…", + "error": "Error", + "backToTop": "Volver arriba", + "tabErrorTitle": "No se puede cargar esta pestaña", + "tabErrorMessage": "Se produjo un error al cargar este resultado." }, "lang": { "label": "Idioma", @@ -647,4 +339,4 @@ "zh": "ZH", "tr": "TR" } -} \ No newline at end of file +} diff --git a/frontend/src/messages/fr.json b/frontend/src/messages/fr.json index ab50a503..f4a1feab 100644 --- a/frontend/src/messages/fr.json +++ b/frontend/src/messages/fr.json @@ -100,68 +100,22 @@ "online": "EN LIGNE" }, "caps": { - "domain": { - "title": "Domaine / IP", - "item1": "WHOIS · DNS · GeoIP", - "item2": "Sous-domaines · Shodan", - "item3": "VirusTotal · Wayback" - }, - "email": { - "title": "E-mail", - "item1": "Réputation DNS · SMTP", - "item2": "Vérification de fuites · Jetable", - "item3": "SPF · DKIM · DMARC" - }, - "phone": { - "title": "Téléphone", - "item1": "Validation · Opérateur", - "item2": "Pays · Recherche inversée" - }, - "username": { - "title": "Nom d'utilisateur", - "item1": "Blackbird · Maigret", - "item2": "50+ / 3000+ plateformes", - "item3": "Score OPSEC" - } + "domain": { "title": "Domaine / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Sous-domaines · Shodan", "item3": "VirusTotal · Wayback" }, + "email": { "title": "E-mail", "item1": "Réputation DNS · SMTP", "item2": "Vérification de fuites · Jetable", "item3": "SPF · DKIM · DMARC" }, + "phone": { "title": "Téléphone", "item1": "Validation · Opérateur", "item2": "Pays · Recherche inversée" }, + "username": { "title": "Nom d'utilisateur", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ plateformes", "item3": "Score OPSEC" } }, "standaloneTools": "Outils autonomes", "tools": { - "metadata": { - "label": "Métadonnées de fichier", - "desc": "EXIF, GPS, PDF, DOCX" - }, - "headers": { - "label": "En-têtes d'e-mail", - "desc": "SPF, DKIM, sauts de routage" - }, - "crypto": { - "label": "Adresse crypto", - "desc": "Bitcoin et Ethereum" - }, - "qr": { - "label": "Décodeur QR", - "desc": "Décoder et analyser" - }, - "mac": { - "label": "Recherche MAC", - "desc": "Recherche de fournisseur" - }, - "subnet": { - "label": "IP / Sous-réseau", - "desc": "Plages réseau & CIDR" - }, - "hash": { - "label": "Identificateur de Hash", - "desc": "Identifier les types de hash" - }, - "encoder": { - "label": "Base64 / URL", - "desc": "Encoder et décoder" - }, - "jwt": { - "label": "Décodeur JWT", - "desc": "Décoder les jetons JWT" - } + "metadata": { "label": "Métadonnées de fichier", "desc": "EXIF, GPS, PDF, DOCX" }, + "headers": { "label": "En-têtes d'e-mail", "desc": "SPF, DKIM, sauts de routage" }, + "crypto": { "label": "Adresse crypto", "desc": "Bitcoin et Ethereum" }, + "qr": { "label": "Décodeur QR", "desc": "Décoder et analyser" }, + "mac": { "label": "Recherche MAC", "desc": "Recherche de fournisseur" }, + "subnet": { "label": "IP / Sous-réseau", "desc": "Plages réseau & CIDR" }, + "hash": { "label": "Identificateur de Hash", "desc": "Identifier les types de hash" }, + "encoder": { "label": "Base64 / URL", "desc": "Encoder et décoder" }, + "jwt": { "label": "Décodeur JWT", "desc": "Décoder les jetons JWT" } }, "demo": { "line1": "Ceci est une démo publique avec des quotas API limités. Certains modules (Shodan, VirusTotal) peuvent être soumis à des limites de débit.", @@ -178,68 +132,6 @@ "log": "Journal de progression" }, "results": { - "fields": { - "asn": "ASN", - "address": "Adresse", - "bio": "Biographie", - "blog": "Blogue", - "carrier": "Opérateur", - "clientEvents": "Événements clients", - "company": "Entreprise", - "copyDnsRecord": "Copier l'enregistrement DNS", - "copyIp": "Copier l'adresse IP", - "copyShodanPort": "Copier le port Shodan", - "copyDomain": "Copier le domaine", - "copyEmail": "Copier l'e-mail", - "copyOnionUrl": "Copier l'adresse .onion", - "copyPort": "Copier le port", - "copySubdomain": "Copier le sous-domaine", - "copySummary": "Copier le résumé", - "copyTarget": "Copier la cible", - "copyUsernameUrl": "Copier l'URL du nom d'utilisateur", - "corporateServices": "Services corporatifs", - "country": "Pays", - "countryCode": "Code du pays", - "created": "Créé", - "dataBreachEvents": "Événements de violation de données", - "displayName": "Nom d'affichage", - "domainReputation": "Réputation du domaine", - "employeeEvents": "Événements pour les employés", - "employees": "Employés", - "expires": "Expire", - "firstSeen": "Vu pour la première fois", - "followers": "Abonnés", - "isp": "FAI", - "infostealerEvents": "Événements d'infostealer", - "joined": "Rejoint", - "lastSeen": "Vu pour la dernière fois", - "lineType": "Type de ligne", - "location": "Emplacement", - "name": "Nom", - "organization": "Organisation", - "ownerName": "Nom du propriétaire", - "passwordsAnalysed": "Mots de passe analysés", - "period": "Période", - "publicRepos": "Dépôts publics", - "recordsFound": "Enregistrements trouvés", - "region": "Région", - "registrar": "Greffier", - "strong": "Fort %", - "thirdParties": "Tiers", - "tooWeak": "% trop faible", - "totalBreaches": "Infractions totales", - "totalReports": "Rapports totaux", - "totalStars": "Nombre total d'étoiles", - "totalCompromised": "Totalement compromis", - "totalEvents": "Total des événements", - "twitter": "Gazouillement", - "type": "Taper", - "usageType": "Type d'utilisation", - "userServices": "Services aux utilisateurs", - "username": "Nom d'utilisateur", - "users": "Utilisateurs", - "weak": "Faible %" - }, "htmlReport": "Rapport HTML", "pdfReport": "Rapport PDF", "jsonReport": "Télécharger JSON", @@ -279,197 +171,41 @@ "opsec": { "scoreLabel": "Score OPSEC", "riskSuffix": "RISQUE", - "data_exposure": { - "label": "Exposition des données", - "tooltip": "Fuites de données sensibles : identifiants compromis, e-mails exposés, PII publiques." - }, - "identity_opsec": { - "label": "OPSEC d'identité", - "tooltip": "Réutilisation d'identifiants entre plateformes : même nom d'utilisateur/e-mail sur de nombreux sites." - }, - "infrastructure": { - "label": "Infrastructure", - "tooltip": "Services exposés, ports ouverts, mauvaise hygiène DNS/WHOIS, correspondances threat-intel." - }, - "web_security": { - "label": "Sécurité web", - "tooltip": "TLS, en-têtes de sécurité, transparence des certificats, chemins sensibles archivés." - } - }, - "common": { - "yes": "Oui", - "no": "Non", - "unknown": "Inconnu", - "points": "pts", - "moduleRetry": "Utilisez le bouton d'actualisation pour réessayer.", - "skippedKeyHint": "ajoutez {key} au fichier .env pour activer ce module.", - "skippedHint": "ajoutez la clé au fichier .env pour activer ce module.", - "noSecurityFindings": "Aucun problème de sécurité", - "noDnsRecords": "Aucun enregistrement DNS trouvé", - "noThreats": "Aucune menace détectée" - }, - "findings": { - "title": "Résultats de sécurité", - "none": "Aucun résultat de sécurité" - }, - "whois": { - "title": "Enregistrement WHOIS", - "registrar": "Registraire", - "organization": "Organisation", - "country": "Pays", - "created": "Créé", - "expires": "Expire", - "emails": "E-mails", - "nameServers": "Serveurs de noms" - }, - "dns": { - "title": "Enregistrements DNS" - }, - "subdomains": { - "titleFmt": "Certificate Transparency — {n} sous-domaines", - "certsAnalysed": "{n} certificat(s) analysé(s)" - }, - "accounts": { - "title": "Recherche par nom d'utilisateur", - "platform": "Plateforme", - "url": "URL", - "time": "Temps" - }, - "virustotal": { - "title": "VirusTotal", - "malicious": "Malveillant", - "suspicious": "Suspect", - "harmless": "Inoffensif", - "undetected": "Non détecté", - "country": "Pays", - "asn": "ASN" - }, - "abuseipdb": { - "title": "AbuseIPDB", - "abuseScore": "Score d'abus", - "totalReports": "Signalements totaux", - "isp": "FAI", - "usageType": "Type d'utilisation", - "torExit": "⚠ Nœud de sortie TOR" - }, - "shodan": { - "title": "Shodan", - "openPorts": "Ports ouverts", - "cves": "CVE trouvés" - }, - "censys": { - "titleCert": "Censys — Recherche de certificats", - "titleHost": "Censys — Info hôte", - "ip": "IP", - "asn": "ASN", - "location": "Emplacement", - "openPorts": "Ports ouverts", - "subdomainsFmt": "Sous-domaines ({n})", - "services": "Services", - "port": "Port", - "service": "Service", - "software": "Logiciel" - }, - "darkweb": { - "titleFmt": "Miroirs Dark Web — {n} trouvés", - "sources": "Sources" - }, - "wayback": { - "title": "Wayback Machine", - "summaryFmt": "{n} captures · Première : {first} · Dernière : {last}", - "recent": "Captures récentes", - "sensitive": "URLs sensibles dans l'archive" - }, - "emailrep": { - "title": "Réputation d'e-mail", - "reputation": "Réputation", - "suspicious": "Suspect", - "validMx": "MX valide", - "deliverable": "Livrable", - "spf": "SPF", - "dmarc": "DMARC", - "domainRep": "Réputation du domaine", - "mxRecords": "Enregistrements MX", - "disposableWarn": "⚠ E-mail jetable détecté", - "spoofableWarn": "⚠ Le domaine est usurpable (SPF/DMARC manquants)", - "freeProvider": "Fournisseur d'e-mail gratuit" - }, - "smtp": { - "title": "Vérification SMTP", - "exists": "Existe", - "connect": "Connexion SMTP", - "catchAllWarn": "⚠ Serveur catch-all (accepte toute adresse)", - "details": "Détails" - }, - "breaches": { - "title": "Vérification des fuites", - "found": "Fuites trouvées", - "breachedServices": "Services compromis", - "total": "Total des fuites" - }, - "dorks": { - "title": "Google Dorks" - }, - "phone": { - "title": "Renseignement téléphonique", - "valid": "Valide", - "country": "Pays", - "countryCode": "Indicatif pays", - "region": "Région", - "carrier": "Opérateur", - "lineType": "Type de ligne", - "timezones": "Fuseaux horaires", - "ownerName": "Nom du propriétaire", - "address": "Adresse" - }, - "telegram": { - "title": "Profil Telegram", - "found": "Trouvé", - "username": "Nom d'utilisateur", - "name": "Nom", - "bio": "Bio", - "type": "Type", - "followers": "Abonnés" - }, - "map": { - "title": "Carte de géolocalisation IP", - "ip": "IP", - "location": "Emplacement", - "organization": "Organisation", - "coordinates": "Coordonnées", - "loading": "Chargement de la carte…", - "noData": "Aucune donnée de géolocalisation disponible", - "moreFmt": "{n} emplacements trouvés", - "precision": "Précision", - "approximate": "Approximatif (régional, non exact)" - }, - "graph": { - "title": "Graphe d'entités", - "loading": "Chargement du graphe…", - "empty": "Aucune donnée de graphe disponible pour cette analyse" - }, - "json": { - "title": "Résultats JSON bruts", - "show": "Afficher les données brutes", - "hide": "Masquer les données brutes", - "copyRawJson": "Copy raw JSON" - }, - "ai": { - "title": "Analyse IA OSINT · Nvidia Nemotron", - "chatTitle": "Demander à l'IA", - "generate": "Générer un résumé IA", - "generating": "Génération de l'analyse…", - "model": "Modèle", - "regenerate": "Régénérer", - "placeholder": "Posez une question sur cette analyse…" - }, + "data_exposure": { "label": "Exposition des données", "tooltip": "Fuites de données sensibles : identifiants compromis, e-mails exposés, PII publiques." }, + "identity_opsec": { "label": "OPSEC d'identité", "tooltip": "Réutilisation d'identifiants entre plateformes : même nom d'utilisateur/e-mail sur de nombreux sites." }, + "infrastructure": { "label": "Infrastructure", "tooltip": "Services exposés, ports ouverts, mauvaise hygiène DNS/WHOIS, correspondances threat-intel." }, + "web_security": { "label": "Sécurité web", "tooltip": "TLS, en-têtes de sécurité, transparence des certificats, chemins sensibles archivés." } + }, + "common": { "yes": "Oui", "no": "Non", "unknown": "Inconnu", "points": "pts", "moduleRetry": "Utilisez le bouton d'actualisation pour réessayer.", "skippedKeyHint": "ajoutez {key} au fichier .env pour activer ce module.", "skippedHint": "ajoutez la clé au fichier .env pour activer ce module.", "noSecurityFindings": "Aucun problème de sécurité", "noDnsRecords": "Aucun enregistrement DNS trouvé", "noThreats": "Aucune menace détectée" }, + "findings": { "title": "Résultats de sécurité", "none": "Aucun résultat de sécurité" }, + "whois": { "title": "Enregistrement WHOIS", "registrar": "Registraire", "organization": "Organisation", "country": "Pays", "created": "Créé", "expires": "Expire", "emails": "E-mails", "nameServers": "Serveurs de noms" }, + "dns": { "title": "Enregistrements DNS" }, + "subdomains": { "titleFmt": "Certificate Transparency — {n} sous-domaines", "certsAnalysed": "{n} certificat(s) analysé(s)" }, + "accounts": { "title": "Recherche par nom d'utilisateur", "platform": "Plateforme", "url": "URL", "time": "Temps" }, + "virustotal": { "title": "VirusTotal", "malicious": "Malveillant", "suspicious": "Suspect", "harmless": "Inoffensif", "undetected": "Non détecté", "country": "Pays", "asn": "ASN" }, + "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Score d'abus", "totalReports": "Signalements totaux", "isp": "FAI", "usageType": "Type d'utilisation", "torExit": "⚠ Nœud de sortie TOR" }, + "shodan": { "title": "Shodan", "openPorts": "Ports ouverts", "cves": "CVE trouvés" }, + "censys": { "titleCert": "Censys — Recherche de certificats", "titleHost": "Censys — Info hôte", "ip": "IP", "asn": "ASN", "location": "Emplacement", "openPorts": "Ports ouverts", "subdomainsFmt": "Sous-domaines ({n})", "services": "Services", "port": "Port", "service": "Service", "software": "Logiciel" }, + "darkweb": { "titleFmt": "Miroirs Dark Web — {n} trouvés", "sources": "Sources" }, + "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} captures · Première : {first} · Dernière : {last}", "recent": "Captures récentes", "sensitive": "URLs sensibles dans l'archive" }, + "emailrep": { "title": "Réputation d'e-mail", "reputation": "Réputation", "suspicious": "Suspect", "validMx": "MX valide", "deliverable": "Livrable", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Réputation du domaine", "mxRecords": "Enregistrements MX", "disposableWarn": "⚠ E-mail jetable détecté", "spoofableWarn": "⚠ Le domaine est usurpable (SPF/DMARC manquants)", "freeProvider": "Fournisseur d'e-mail gratuit" }, + "smtp": { "title": "Vérification SMTP", "exists": "Existe", "connect": "Connexion SMTP", "catchAllWarn": "⚠ Serveur catch-all (accepte toute adresse)", "details": "Détails" }, + "breaches": { "title": "Vérification des fuites", "found": "Fuites trouvées", "breachedServices": "Services compromis", "total": "Total des fuites" }, + "dorks": { "title": "Google Dorks" }, + "phone": { "title": "Renseignement téléphonique", "valid": "Valide", "country": "Pays", "countryCode": "Indicatif pays", "region": "Région", "carrier": "Opérateur", "lineType": "Type de ligne", "timezones": "Fuseaux horaires", "ownerName": "Nom du propriétaire", "address": "Adresse" }, + "telegram": { "title": "Profil Telegram", "found": "Trouvé", "username": "Nom d'utilisateur", "name": "Nom", "bio": "Bio", "type": "Type", "followers": "Abonnés" }, + "map": { "title": "Carte de géolocalisation IP", "ip": "IP", "location": "Emplacement", "organization": "Organisation", "coordinates": "Coordonnées", "loading": "Chargement de la carte…", "noData": "Aucune donnée de géolocalisation disponible", "moreFmt": "{n} emplacements trouvés", "precision": "Précision", "approximate": "Approximatif (régional, non exact)" }, + "graph": { "title": "Graphe d'entités", "loading": "Chargement du graphe…", "empty": "Aucune donnée de graphe disponible pour cette analyse" }, + "json": { "title": "Résultats JSON bruts", "show": "Afficher les données brutes", "hide": "Masquer les données brutes", "copyRawJson": "Copy raw JSON" }, + "ai": { "title": "Analyse IA OSINT · Nvidia Nemotron", "chatTitle": "Demander à l'IA", "generate": "Générer un résumé IA", "generating": "Génération de l'analyse…", "model": "Modèle", "regenerate": "Régénérer", "placeholder": "Posez une question sur cette analyse…" }, "duration": "Terminé en {duration}", "copyAllFindings": "Copier tous les résultats", "copyAllEmails": "Copier tous les e-mails", "emailsCopied": "E-mails copiés !", "filterPlatforms": "Filtrer les plateformes...", "searchGoogle": "Rechercher sur Google", - "sendMessage": "Envoyer le message" + "sendMessage": "Envoyer le message", + "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } }, "toolPanels": { "back": "Retour", @@ -623,7 +359,7 @@ "resume": "Reprendre la liste", "paused": "Suspendu", "failedToToggle": "Échec de la mise à jour de la liste" - }, + }, "common": { "copy": "Copier", "copied": "Copié !", @@ -647,4 +383,4 @@ "zh": "ZH", "tr": "TR" } -} \ No newline at end of file +} diff --git a/frontend/src/messages/it.json b/frontend/src/messages/it.json index 10d2a3c5..563a6d92 100644 --- a/frontend/src/messages/it.json +++ b/frontend/src/messages/it.json @@ -100,68 +100,22 @@ "online": "ONLINE" }, "caps": { - "domain": { - "title": "Dominio / IP", - "item1": "WHOIS · DNS · GeoIP", - "item2": "Sottodomini · Shodan", - "item3": "VirusTotal · Wayback" - }, - "email": { - "title": "Email", - "item1": "Reputazione DNS · SMTP", - "item2": "Violazioni · Usa e getta", - "item3": "SPF · DKIM · DMARC" - }, - "phone": { - "title": "Telefono", - "item1": "Validazione · Operatore", - "item2": "Paese · Ricerca inversa" - }, - "username": { - "title": "Username", - "item1": "Blackbird · Maigret", - "item2": "50+ / 3000+ piattaforme", - "item3": "Punteggio OPSEC" - } + "domain": { "title": "Dominio / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Sottodomini · Shodan", "item3": "VirusTotal · Wayback" }, + "email": { "title": "Email", "item1": "Reputazione DNS · SMTP", "item2": "Violazioni · Usa e getta", "item3": "SPF · DKIM · DMARC" }, + "phone": { "title": "Telefono", "item1": "Validazione · Operatore", "item2": "Paese · Ricerca inversa" }, + "username": { "title": "Username", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ piattaforme", "item3": "Punteggio OPSEC" } }, "standaloneTools": "Strumenti autonomi", "tools": { - "metadata": { - "label": "Metadati file", - "desc": "EXIF, GPS, PDF, DOCX" - }, - "headers": { - "label": "Intestazioni email", - "desc": "SPF, DKIM, hop di routing" - }, - "crypto": { - "label": "Indirizzo crypto", - "desc": "Bitcoin ed Ethereum" - }, - "qr": { - "label": "Decodifica QR", - "desc": "Decodifica e analizza" - }, - "mac": { - "label": "Ricerca MAC", - "desc": "Ricerca produttore" - }, - "subnet": { - "label": "IP / Subnet", - "desc": "Range di rete e CIDR" - }, - "hash": { - "label": "Identificatore hash", - "desc": "Identifica i tipi di hash" - }, - "encoder": { - "label": "Base64 / URL", - "desc": "Codifica e decodifica" - }, - "jwt": { - "label": "Decoder JWT", - "desc": "Decodifica token JWT" - } + "metadata": { "label": "Metadati file", "desc": "EXIF, GPS, PDF, DOCX" }, + "headers": { "label": "Intestazioni email", "desc": "SPF, DKIM, hop di routing" }, + "crypto": { "label": "Indirizzo crypto", "desc": "Bitcoin ed Ethereum" }, + "qr": { "label": "Decodifica QR", "desc": "Decodifica e analizza" }, + "mac": { "label": "Ricerca MAC", "desc": "Ricerca produttore" }, + "subnet": { "label": "IP / Subnet", "desc": "Range di rete e CIDR" }, + "hash": { "label": "Identificatore hash", "desc": "Identifica i tipi di hash" }, + "encoder": { "label": "Base64 / URL", "desc": "Codifica e decodifica" }, + "jwt": { "label": "Decoder JWT", "desc": "Decodifica token JWT" } }, "demo": { "line1": "Questa è una demo pubblica con quote API limitate. Alcuni moduli (Shodan, VirusTotal) potrebbero avere limiti di frequenza.", @@ -300,68 +254,6 @@ "log": "Registro avanzamento" }, "results": { - "fields": { - "asn": "ASN", - "address": "Indirizzo", - "bio": "Bio", - "blog": "Blog", - "carrier": "Operatore", - "clientEvents": "Eventi del cliente", - "company": "Azienda", - "copyDnsRecord": "Copia il record DNS", - "copyIp": "Copia IP", - "copyShodanPort": "Copia il porto di Shodan", - "copyDomain": "Copia dominio", - "copyEmail": "Copia e-mail", - "copyOnionUrl": "Copia indirizzo .onion", - "copyPort": "Copia porta", - "copySubdomain": "Copia sottodominio", - "copySummary": "Copia riepilogo", - "copyTarget": "Copia destinazione", - "copyUsernameUrl": "Copia l'URL del nome utente", - "corporateServices": "Servizi aziendali", - "country": "Paese", - "countryCode": "Codice Paese", - "created": "Creato", - "dataBreachEvents": "Eventi di violazione dei dati", - "displayName": "Nome da visualizzare", - "domainReputation": "Reputazione del dominio", - "employeeEvents": "Eventi dei dipendenti", - "employees": "Dipendenti", - "expires": "Scade", - "firstSeen": "Visto per la prima volta", - "followers": "Seguaci", - "isp": "ISP", - "infostealerEvents": "Eventi di furto di informazioni", - "joined": "Partecipato", - "lastSeen": "Visto l'ultima volta", - "lineType": "Tipo di linea", - "location": "Posizione", - "name": "Nome", - "organization": "Organizzazione", - "ownerName": "Nome del proprietario", - "passwordsAnalysed": "Analisi delle password", - "period": "Periodo", - "publicRepos": "Repo pubblici", - "recordsFound": "Documenti trovati", - "region": "Regione", - "registrar": "Cancelliere", - "strong": "Forte %", - "thirdParties": "Terze parti", - "tooWeak": "% troppo debole", - "totalBreaches": "Violazioni totali", - "totalReports": "Rapporti totali", - "totalStars": "Stelle totali", - "totalCompromised": "Compromesso totale", - "totalEvents": "Eventi totali", - "twitter": "Twitter", - "type": "Tipo", - "usageType": "Tipo di utilizzo", - "userServices": "Servizi per gli utenti", - "username": "Nome utente", - "users": "Utenti", - "weak": "Debole %" - }, "htmlReport": "Report HTML", "pdfReport": "Report PDF", "jsonReport": "Scarica JSON", @@ -401,197 +293,41 @@ "opsec": { "scoreLabel": "Punteggio OPSEC", "riskSuffix": "RISCHIO", - "data_exposure": { - "label": "Esposizione dati", - "tooltip": "Fughe di dati sensibili: credenziali violate, email esposte, PII pubblici." - }, - "identity_opsec": { - "label": "OPSEC identità", - "tooltip": "Riuso di identificatori tra piattaforme: stesso username/email su molti siti." - }, - "infrastructure": { - "label": "Infrastruttura", - "tooltip": "Servizi esposti, porte aperte, scarsa igiene DNS/WHOIS, segnalazioni threat-intel." - }, - "web_security": { - "label": "Sicurezza web", - "tooltip": "TLS, header di sicurezza, certificate transparency, percorsi sensibili archiviati." - } - }, - "common": { - "yes": "Sì", - "no": "No", - "unknown": "Sconosciuto", - "points": "pt", - "moduleRetry": "Usa il pulsante di aggiornamento per riprovare.", - "skippedKeyHint": "aggiungi {key} al file .env per attivare questo modulo.", - "skippedHint": "aggiungi la chiave al file .env per attivare questo modulo.", - "noSecurityFindings": "Nessun problema di sicurezza", - "noDnsRecords": "Nessun record DNS trovato", - "noThreats": "Nessuna minaccia rilevata" - }, - "findings": { - "title": "Risultati di sicurezza", - "none": "Nessun risultato di sicurezza" - }, - "whois": { - "title": "Registrazione WHOIS", - "registrar": "Registrar", - "organization": "Organizzazione", - "country": "Paese", - "created": "Creato", - "expires": "Scade", - "emails": "Email", - "nameServers": "Name server" - }, - "dns": { - "title": "Record DNS" - }, - "subdomains": { - "titleFmt": "Certificate Transparency — {n} sottodomini", - "certsAnalysed": "{n} certificato/i analizzato/i" - }, - "accounts": { - "title": "Ricerca username", - "platform": "Piattaforma", - "url": "URL", - "time": "Tempo" - }, - "virustotal": { - "title": "VirusTotal", - "malicious": "Dannoso", - "suspicious": "Sospetto", - "harmless": "Innocuo", - "undetected": "Non rilevato", - "country": "Paese", - "asn": "ASN" - }, - "abuseipdb": { - "title": "AbuseIPDB", - "abuseScore": "Punteggio abuso", - "totalReports": "Segnalazioni totali", - "isp": "ISP", - "usageType": "Tipo di utilizzo", - "torExit": "⚠ Nodo di uscita TOR" - }, - "shodan": { - "title": "Shodan", - "openPorts": "Porte aperte", - "cves": "CVE trovate" - }, - "censys": { - "titleCert": "Censys — Ricerca certificati", - "titleHost": "Censys — Info host", - "ip": "IP", - "asn": "ASN", - "location": "Posizione", - "openPorts": "Porte aperte", - "subdomainsFmt": "Sottodomini ({n})", - "services": "Servizi", - "port": "Porta", - "service": "Servizio", - "software": "Software" - }, - "darkweb": { - "titleFmt": "Mirror Dark Web — {n} trovati", - "sources": "Fonti" - }, - "wayback": { - "title": "Wayback Machine", - "summaryFmt": "{n} snapshot · Primo: {first} · Ultimo: {last}", - "recent": "Snapshot recenti", - "sensitive": "URL sensibili nell'archivio" - }, - "emailrep": { - "title": "Reputazione email", - "reputation": "Reputazione", - "suspicious": "Sospetto", - "validMx": "MX valido", - "deliverable": "Recapitabile", - "spf": "SPF", - "dmarc": "DMARC", - "domainRep": "Reputazione dominio", - "mxRecords": "Record MX", - "disposableWarn": "⚠ Email usa e getta rilevata", - "spoofableWarn": "⚠ Il dominio è falsificabile (SPF/DMARC mancanti)", - "freeProvider": "Provider email gratuito" - }, - "smtp": { - "title": "Verifica SMTP", - "exists": "Esiste", - "connect": "Connessione SMTP", - "catchAllWarn": "⚠ Server catch-all (accetta qualsiasi indirizzo)", - "details": "Dettagli" - }, - "breaches": { - "title": "Controllo violazioni", - "found": "Violazioni trovate", - "breachedServices": "Servizi violati", - "total": "Violazioni totali" - }, - "dorks": { - "title": "Google Dorks" - }, - "phone": { - "title": "Intelligence telefonica", - "valid": "Valido", - "country": "Paese", - "countryCode": "Prefisso paese", - "region": "Regione", - "carrier": "Operatore", - "lineType": "Tipo di linea", - "timezones": "Fusi orari", - "ownerName": "Nome proprietario", - "address": "Indirizzo" - }, - "telegram": { - "title": "Profilo Telegram", - "found": "Trovato", - "username": "Username", - "name": "Nome", - "bio": "Bio", - "type": "Tipo", - "followers": "Follower" - }, - "map": { - "title": "Mappa geolocalizzazione IP", - "ip": "IP", - "location": "Posizione", - "organization": "Organizzazione", - "coordinates": "Coordinate", - "loading": "Caricamento mappa…", - "noData": "Nessun dato di geolocalizzazione disponibile", - "moreFmt": "{n} posizioni trovate", - "precision": "Precisione", - "approximate": "Approssimativa (regionale, non esatta)" - }, - "graph": { - "title": "Grafo delle entità", - "loading": "Caricamento grafo…", - "empty": "Nessun dato del grafo per questa scansione" - }, - "json": { - "title": "Risultati JSON grezzi", - "show": "Mostra dati grezzi", - "hide": "Nascondi dati grezzi", - "copyRawJson": "Copy raw JSON" - }, - "ai": { - "title": "Analisi OSINT IA · Nvidia Nemotron", - "chatTitle": "Chiedi all'IA", - "generate": "Genera riepilogo IA", - "generating": "Generazione analisi…", - "model": "Modello", - "regenerate": "Rigenera", - "placeholder": "Chiedi qualsiasi cosa su questa scansione…" - }, + "data_exposure": { "label": "Esposizione dati", "tooltip": "Fughe di dati sensibili: credenziali violate, email esposte, PII pubblici." }, + "identity_opsec": { "label": "OPSEC identità", "tooltip": "Riuso di identificatori tra piattaforme: stesso username/email su molti siti." }, + "infrastructure": { "label": "Infrastruttura", "tooltip": "Servizi esposti, porte aperte, scarsa igiene DNS/WHOIS, segnalazioni threat-intel." }, + "web_security": { "label": "Sicurezza web", "tooltip": "TLS, header di sicurezza, certificate transparency, percorsi sensibili archiviati." } + }, + "common": { "yes": "Sì", "no": "No", "unknown": "Sconosciuto", "points": "pt", "moduleRetry": "Usa il pulsante di aggiornamento per riprovare.", "skippedKeyHint": "aggiungi {key} al file .env per attivare questo modulo.", "skippedHint": "aggiungi la chiave al file .env per attivare questo modulo.", "noSecurityFindings": "Nessun problema di sicurezza", "noDnsRecords": "Nessun record DNS trovato", "noThreats": "Nessuna minaccia rilevata" }, + "findings": { "title": "Risultati di sicurezza", "none": "Nessun risultato di sicurezza" }, + "whois": { "title": "Registrazione WHOIS", "registrar": "Registrar", "organization": "Organizzazione", "country": "Paese", "created": "Creato", "expires": "Scade", "emails": "Email", "nameServers": "Name server" }, + "dns": { "title": "Record DNS" }, + "subdomains": { "titleFmt": "Certificate Transparency — {n} sottodomini", "certsAnalysed": "{n} certificato/i analizzato/i" }, + "accounts": { "title": "Ricerca username", "platform": "Piattaforma", "url": "URL", "time": "Tempo" }, + "virustotal": { "title": "VirusTotal", "malicious": "Dannoso", "suspicious": "Sospetto", "harmless": "Innocuo", "undetected": "Non rilevato", "country": "Paese", "asn": "ASN" }, + "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Punteggio abuso", "totalReports": "Segnalazioni totali", "isp": "ISP", "usageType": "Tipo di utilizzo", "torExit": "⚠ Nodo di uscita TOR" }, + "shodan": { "title": "Shodan", "openPorts": "Porte aperte", "cves": "CVE trovate" }, + "censys": { "titleCert": "Censys — Ricerca certificati", "titleHost": "Censys — Info host", "ip": "IP", "asn": "ASN", "location": "Posizione", "openPorts": "Porte aperte", "subdomainsFmt": "Sottodomini ({n})", "services": "Servizi", "port": "Porta", "service": "Servizio", "software": "Software" }, + "darkweb": { "titleFmt": "Mirror Dark Web — {n} trovati", "sources": "Fonti" }, + "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} snapshot · Primo: {first} · Ultimo: {last}", "recent": "Snapshot recenti", "sensitive": "URL sensibili nell'archivio" }, + "emailrep": { "title": "Reputazione email", "reputation": "Reputazione", "suspicious": "Sospetto", "validMx": "MX valido", "deliverable": "Recapitabile", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Reputazione dominio", "mxRecords": "Record MX", "disposableWarn": "⚠ Email usa e getta rilevata", "spoofableWarn": "⚠ Il dominio è falsificabile (SPF/DMARC mancanti)", "freeProvider": "Provider email gratuito" }, + "smtp": { "title": "Verifica SMTP", "exists": "Esiste", "connect": "Connessione SMTP", "catchAllWarn": "⚠ Server catch-all (accetta qualsiasi indirizzo)", "details": "Dettagli" }, + "breaches": { "title": "Controllo violazioni", "found": "Violazioni trovate", "breachedServices": "Servizi violati", "total": "Violazioni totali" }, + "dorks": { "title": "Google Dorks" }, + "phone": { "title": "Intelligence telefonica", "valid": "Valido", "country": "Paese", "countryCode": "Prefisso paese", "region": "Regione", "carrier": "Operatore", "lineType": "Tipo di linea", "timezones": "Fusi orari", "ownerName": "Nome proprietario", "address": "Indirizzo" }, + "telegram": { "title": "Profilo Telegram", "found": "Trovato", "username": "Username", "name": "Nome", "bio": "Bio", "type": "Tipo", "followers": "Follower" }, + "map": { "title": "Mappa geolocalizzazione IP", "ip": "IP", "location": "Posizione", "organization": "Organizzazione", "coordinates": "Coordinate", "loading": "Caricamento mappa…", "noData": "Nessun dato di geolocalizzazione disponibile", "moreFmt": "{n} posizioni trovate", "precision": "Precisione", "approximate": "Approssimativa (regionale, non esatta)" }, + "graph": { "title": "Grafo delle entità", "loading": "Caricamento grafo…", "empty": "Nessun dato del grafo per questa scansione" }, + "json": { "title": "Risultati JSON grezzi", "show": "Mostra dati grezzi", "hide": "Nascondi dati grezzi", "copyRawJson": "Copy raw JSON" }, + "ai": { "title": "Analisi OSINT IA · Nvidia Nemotron", "chatTitle": "Chiedi all'IA", "generate": "Genera riepilogo IA", "generating": "Generazione analisi…", "model": "Modello", "regenerate": "Rigenera", "placeholder": "Chiedi qualsiasi cosa su questa scansione…" }, "duration": "Completato in {duration}", "copyAllFindings": "Copia tutti i risultati", "copyAllEmails": "Copia tutte le email", "emailsCopied": "Email copiate!", "filterPlatforms": "Filtra piattaforme...", "searchGoogle": "Cerca su Google", - "sendMessage": "Invia messaggio" + "sendMessage": "Invia messaggio", + "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } }, "watchlist": { "title": "Liste di osservazione", @@ -624,7 +360,7 @@ "paused": "In pausa", "failedToToggle": "Impossibile aggiornare la lista" }, - "common": { + "common": { "copy": "Copia", "copied": "Copiato!", "copyFailed": "Copia non riuscita", @@ -647,4 +383,4 @@ "zh": "ZH", "tr": "TR" } -} \ No newline at end of file +} diff --git a/frontend/src/messages/pl.json b/frontend/src/messages/pl.json index 6474efd2..b77e4e67 100644 --- a/frontend/src/messages/pl.json +++ b/frontend/src/messages/pl.json @@ -300,68 +300,6 @@ "log": "Log Postępu" }, "results": { - "fields": { - "asn": "ASN", - "address": "Adres", - "bio": "Bio", - "blog": "Bloga", - "carrier": "Operator", - "clientEvents": "Wydarzenia klienckie", - "company": "Firma", - "copyDnsRecord": "Skopiuj rekord DNS", - "copyIp": "Skopiuj adres IP", - "copyShodanPort": "Skopiuj port Shodan", - "copyDomain": "Skopiuj domenę", - "copyEmail": "Skopiuj e-mail", - "copyOnionUrl": "Kopiuj adres .onion", - "copyPort": "Skopiuj port", - "copySubdomain": "Skopiuj subdomenę", - "copySummary": "Skopiuj podsumowanie", - "copyTarget": "Skopiuj cel", - "copyUsernameUrl": "Skopiuj adres URL nazwy użytkownika", - "corporateServices": "Usługi korporacyjne", - "country": "Kraj", - "countryCode": "Kod kraju", - "created": "Stworzony", - "dataBreachEvents": "Zdarzenia związane z naruszeniem danych", - "displayName": "Nazwa wyświetlana", - "domainReputation": "Reputacja domeny", - "employeeEvents": "Wydarzenia pracownicze", - "employees": "Pracownicy", - "expires": "Wygasa", - "firstSeen": "Pierwszy raz widziany", - "followers": "Świta", - "isp": "dostawca usług internetowych", - "infostealerEvents": "Wydarzenia związane ze złodziejami informacji", - "joined": "Dołączył", - "lastSeen": "Ostatnio widziany", - "lineType": "Typ linii", - "location": "Lokalizacja", - "name": "Nazwa", - "organization": "Organizacja", - "ownerName": "Imię właściciela", - "passwordsAnalysed": "Analizowane hasła", - "period": "Okres", - "publicRepos": "Publiczne repozytoria", - "recordsFound": "Znaleziono zapisy", - "region": "Region", - "registrar": "Rejestrator", - "strong": "Mocny %", - "thirdParties": "Strony trzecie", - "tooWeak": "Za słaby%", - "totalBreaches": "Całkowite naruszenia", - "totalReports": "Raporty ogółem", - "totalStars": "Totalne gwiazdy", - "totalCompromised": "Całkowicie skompromitowane", - "totalEvents": "Całkowita liczba wydarzeń", - "twitter": "Świergot", - "type": "Typ", - "usageType": "Typ użycia", - "userServices": "Usługi użytkownika", - "username": "Nazwa użytkownika", - "users": "Użytkownicy", - "weak": "Słaby %" - }, "htmlReport": "Raport HTML", "pdfReport": "Raport PDF", "jsonReport": "Pobierz JSON", @@ -419,17 +357,12 @@ } }, "common": { - "yes": "Tak", - "no": "Nie", - "unknown": "Nieznane", - "points": "pkt", - "moduleRetry": "Użyj przycisku odświeżania, aby spróbować ponownie.", - "skippedKeyHint": "dodaj {key} do pliku .env, aby włączyć ten moduł.", - "skippedHint": "dodaj klucz do pliku .env, aby włączyć ten moduł.", - "noSecurityFindings": "Brak problemów z bezpieczeństwem", - "noDnsRecords": "Nie znaleziono rekordów DNS", - "noThreats": "Nie wykryto zagrożeń" - }, + "yes": "Tak", + "no": "Nie", + "unknown": "Nieznane", + "points": "pkt", + "moduleRetry": "Użyj przycisku odświeżania, aby spróbować ponownie.", "skippedKeyHint": "dodaj {key} do pliku .env, aby włączyć ten moduł.", "skippedHint": "dodaj klucz do pliku .env, aby włączyć ten moduł.", "noSecurityFindings": "Brak problemów z bezpieczeństwem", "noDnsRecords": "Nie znaleziono rekordów DNS", "noThreats": "Nie wykryto zagrożeń" + }, "findings": { "title": "Wykryte zagrożenia", "none": "Brak zagrożeń" @@ -591,7 +524,8 @@ "emailsCopied": "E-maile skopiowane!", "filterPlatforms": "Filtruj platformy...", "searchGoogle": "Szukaj w Google", - "sendMessage": "Wyślij wiadomość" + "sendMessage": "Wyślij wiadomość", + "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } }, "watchlist": { "title": "Listy obserwowanych", @@ -625,14 +559,14 @@ "failedToToggle": "Nie udało się zaktualizować listy" }, "common": { - "copy": "Kopiuj", - "copied": "Skopiowano!", - "copyFailed": "Kopiowanie nie powiodło się", - "loading": "Ładowanie…", - "error": "Błąd", - "backToTop": "Powrót do góry", - "tabErrorTitle": "Nie można załadować tej karty", - "tabErrorMessage": "Wystąpił błąd podczas ładowania tego wyniku." + "copy": "Kopiuj", + "copied": "Skopiowano!", + "copyFailed": "Kopiowanie nie powiodło się", + "loading": "Ładowanie…", + "error": "Błąd", + "backToTop": "Powrót do góry", + "tabErrorTitle": "Nie można załadować tej karty", + "tabErrorMessage": "Wystąpił błąd podczas ładowania tego wyniku." }, "lang": { "label": "Język", @@ -647,4 +581,4 @@ "zh": "ZH", "tr": "TR" } -} \ No newline at end of file +} diff --git a/frontend/src/messages/pt.json b/frontend/src/messages/pt.json index 20a5b74f..1c68604c 100644 --- a/frontend/src/messages/pt.json +++ b/frontend/src/messages/pt.json @@ -100,68 +100,22 @@ "online": "ONLINE" }, "caps": { - "domain": { - "title": "Domínio / IP", - "item1": "WHOIS · DNS · GeoIP", - "item2": "Subdomínios · Shodan", - "item3": "VirusTotal · Wayback" - }, - "email": { - "title": "E-mail", - "item1": "Reputação DNS · SMTP", - "item2": "Vazamentos · Descartável", - "item3": "SPF · DKIM · DMARC" - }, - "phone": { - "title": "Telefone", - "item1": "Validação · Operadora", - "item2": "País · Busca reversa" - }, - "username": { - "title": "Usuário", - "item1": "Blackbird · Maigret", - "item2": "50+ / 3000+ plataformas", - "item3": "Pontuação OPSEC" - } + "domain": { "title": "Domínio / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Subdomínios · Shodan", "item3": "VirusTotal · Wayback" }, + "email": { "title": "E-mail", "item1": "Reputação DNS · SMTP", "item2": "Vazamentos · Descartável", "item3": "SPF · DKIM · DMARC" }, + "phone": { "title": "Telefone", "item1": "Validação · Operadora", "item2": "País · Busca reversa" }, + "username": { "title": "Usuário", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ plataformas", "item3": "Pontuação OPSEC" } }, "standaloneTools": "Ferramentas independentes", "tools": { - "metadata": { - "label": "Metadados de arquivo", - "desc": "EXIF, GPS, PDF, DOCX" - }, - "headers": { - "label": "Cabeçalhos de e-mail", - "desc": "SPF, DKIM, saltos de roteamento" - }, - "crypto": { - "label": "Endereço crypto", - "desc": "Bitcoin e Ethereum" - }, - "qr": { - "label": "Decodificar QR", - "desc": "Decodificar e analisar" - }, - "mac": { - "label": "Consulta MAC", - "desc": "Busca de fabricante" - }, - "subnet": { - "label": "IP / Sub-rede", - "desc": "Faixas de rede e CIDR" - }, - "hash": { - "label": "Identificador de hash", - "desc": "Identificar tipos de hash" - }, - "encoder": { - "label": "Base64 / URL", - "desc": "Codificar e decodificar" - }, - "jwt": { - "label": "Decodificador JWT", - "desc": "Decodificar tokens JWT" - } + "metadata": { "label": "Metadados de arquivo", "desc": "EXIF, GPS, PDF, DOCX" }, + "headers": { "label": "Cabeçalhos de e-mail", "desc": "SPF, DKIM, saltos de roteamento" }, + "crypto": { "label": "Endereço crypto", "desc": "Bitcoin e Ethereum" }, + "qr": { "label": "Decodificar QR", "desc": "Decodificar e analisar" }, + "mac": { "label": "Consulta MAC", "desc": "Busca de fabricante" }, + "subnet": { "label": "IP / Sub-rede", "desc": "Faixas de rede e CIDR" }, + "hash": { "label": "Identificador de hash", "desc": "Identificar tipos de hash" }, + "encoder": { "label": "Base64 / URL", "desc": "Codificar e decodificar" }, + "jwt": { "label": "Decodificador JWT", "desc": "Decodificar tokens JWT" } }, "demo": { "line1": "Esta é uma demo pública com cotas de API limitadas. Alguns módulos (Shodan, VirusTotal) podem ter limite de taxa.", @@ -300,68 +254,6 @@ "log": "Registro de progresso" }, "results": { - "fields": { - "asn": "ASN", - "address": "Endereço", - "bio": "Biografia", - "blog": "Blogue", - "carrier": "Operadora", - "clientEvents": "Eventos do cliente", - "company": "Empresa", - "copyDnsRecord": "Copiar registro DNS", - "copyIp": "Copiar IP", - "copyShodanPort": "Copiar porta Shodan", - "copyDomain": "Copiar domínio", - "copyEmail": "Copiar e-mail", - "copyOnionUrl": "Copiar endereço .onion", - "copyPort": "Copiar porta", - "copySubdomain": "Copiar subdomínio", - "copySummary": "Copiar resumo", - "copyTarget": "Copiar destino", - "copyUsernameUrl": "Copiar URL do nome de usuário", - "corporateServices": "Serviços corporativos", - "country": "País", - "countryCode": "Código do país", - "created": "Criado", - "dataBreachEvents": "Eventos de violação de dados", - "displayName": "Nome de exibição", - "domainReputation": "Reputação de Domínio", - "employeeEvents": "Eventos de funcionários", - "employees": "Funcionários", - "expires": "Expira", - "firstSeen": "Visto pela primeira vez", - "followers": "Seguidores", - "isp": "ISP", - "infostealerEvents": "Eventos de infostealer", - "joined": "Ingressou", - "lastSeen": "Visto pela última vez", - "lineType": "Tipo de linha", - "location": "Localização", - "name": "Nome", - "organization": "Organização", - "ownerName": "Nome do proprietário", - "passwordsAnalysed": "Senhas analisadas", - "period": "Período", - "publicRepos": "Repos públicos", - "recordsFound": "Registros encontrados", - "region": "Região", - "registrar": "Registrador", - "strong": "Forte %", - "thirdParties": "Terceiros", - "tooWeak": "Muito fraco %", - "totalBreaches": "Total de violações", - "totalReports": "Relatórios totais", - "totalStars": "Total de estrelas", - "totalCompromised": "Total comprometido", - "totalEvents": "Total de eventos", - "twitter": "Twitter", - "type": "Tipo", - "usageType": "Tipo de uso", - "userServices": "Serviços ao usuário", - "username": "Nome de usuário", - "users": "Usuários", - "weak": "Fraco %" - }, "htmlReport": "Relatório HTML", "pdfReport": "Relatório PDF", "jsonReport": "Baixar JSON", @@ -401,197 +293,41 @@ "opsec": { "scoreLabel": "Pontuação OPSEC", "riskSuffix": "RISCO", - "data_exposure": { - "label": "Exposição de dados", - "tooltip": "Vazamentos de dados sensíveis: credenciais violadas, e-mails expostos, PII público." - }, - "identity_opsec": { - "label": "OPSEC de identidade", - "tooltip": "Reuso de identificadores entre plataformas: mesmo usuário/e-mail em vários sites." - }, - "infrastructure": { - "label": "Infraestrutura", - "tooltip": "Serviços expostos, portas abertas, higiene fraca de DNS/WHOIS, alertas de threat-intel." - }, - "web_security": { - "label": "Segurança web", - "tooltip": "TLS, cabeçalhos de segurança, certificate transparency, caminhos sensíveis arquivados." - } - }, - "common": { - "yes": "Sim", - "no": "Não", - "unknown": "Desconhecido", - "points": "pts", - "moduleRetry": "Use o botão de atualizar para tentar novamente.", - "skippedKeyHint": "adicione {key} ao .env para ativar este módulo.", - "skippedHint": "adicione a chave ao .env para ativar este módulo.", - "noSecurityFindings": "Nenhum problema de segurança", - "noDnsRecords": "Nenhum registro DNS encontrado", - "noThreats": "Nenhuma ameaça detectada" - }, - "findings": { - "title": "Resultados de segurança", - "none": "Nenhum resultado de segurança" - }, - "whois": { - "title": "Registro WHOIS", - "registrar": "Registrar", - "organization": "Organização", - "country": "País", - "created": "Criado", - "expires": "Expira", - "emails": "E-mails", - "nameServers": "Servidores de nomes" - }, - "dns": { - "title": "Registros DNS" - }, - "subdomains": { - "titleFmt": "Certificate Transparency — {n} subdomínios", - "certsAnalysed": "{n} certificado(s) analisado(s)" - }, - "accounts": { - "title": "Busca de usuário", - "platform": "Plataforma", - "url": "URL", - "time": "Tempo" - }, - "virustotal": { - "title": "VirusTotal", - "malicious": "Malicioso", - "suspicious": "Suspeito", - "harmless": "Inofensivo", - "undetected": "Não detectado", - "country": "País", - "asn": "ASN" - }, - "abuseipdb": { - "title": "AbuseIPDB", - "abuseScore": "Pontuação de abuso", - "totalReports": "Total de denúncias", - "isp": "ISP", - "usageType": "Tipo de uso", - "torExit": "⚠ Nó de saída TOR" - }, - "shodan": { - "title": "Shodan", - "openPorts": "Portas abertas", - "cves": "CVEs encontradas" - }, - "censys": { - "titleCert": "Censys — Busca de certificados", - "titleHost": "Censys — Info do host", - "ip": "IP", - "asn": "ASN", - "location": "Localização", - "openPorts": "Portas abertas", - "subdomainsFmt": "Subdomínios ({n})", - "services": "Serviços", - "port": "Porta", - "service": "Serviço", - "software": "Software" - }, - "darkweb": { - "titleFmt": "Espelhos Dark Web — {n} encontrados", - "sources": "Fontes" - }, - "wayback": { - "title": "Wayback Machine", - "summaryFmt": "{n} snapshots · Primeiro: {first} · Último: {last}", - "recent": "Snapshots recentes", - "sensitive": "URLs sensíveis no arquivo" - }, - "emailrep": { - "title": "Reputação de e-mail", - "reputation": "Reputação", - "suspicious": "Suspeito", - "validMx": "MX válido", - "deliverable": "Entregável", - "spf": "SPF", - "dmarc": "DMARC", - "domainRep": "Reputação do domínio", - "mxRecords": "Registros MX", - "disposableWarn": "⚠ E-mail descartável detectado", - "spoofableWarn": "⚠ Domínio falsificável (SPF/DMARC ausentes)", - "freeProvider": "Provedor de e-mail gratuito" - }, - "smtp": { - "title": "Verificação SMTP", - "exists": "Existe", - "connect": "Conexão SMTP", - "catchAllWarn": "⚠ Servidor catch-all (aceita qualquer endereço)", - "details": "Detalhes" - }, - "breaches": { - "title": "Verificação de vazamentos", - "found": "Vazamentos encontrados", - "breachedServices": "Serviços vazados", - "total": "Total de vazamentos" - }, - "dorks": { - "title": "Google Dorks" - }, - "phone": { - "title": "Inteligência telefônica", - "valid": "Válido", - "country": "País", - "countryCode": "Código do país", - "region": "Região", - "carrier": "Operadora", - "lineType": "Tipo de linha", - "timezones": "Fusos horários", - "ownerName": "Nome do dono", - "address": "Endereço" - }, - "telegram": { - "title": "Perfil do Telegram", - "found": "Encontrado", - "username": "Usuário", - "name": "Nome", - "bio": "Bio", - "type": "Tipo", - "followers": "Seguidores" - }, - "map": { - "title": "Mapa de geolocalização IP", - "ip": "IP", - "location": "Localização", - "organization": "Organização", - "coordinates": "Coordenadas", - "loading": "Carregando mapa…", - "noData": "Nenhum dado de geolocalização disponível", - "moreFmt": "{n} localizações encontradas", - "precision": "Precisão", - "approximate": "Aproximada (regional, não exata)" - }, - "graph": { - "title": "Grafo de entidades", - "loading": "Carregando grafo…", - "empty": "Nenhum dado de grafo para esta varredura" - }, - "json": { - "title": "Resultados JSON brutos", - "show": "Mostrar dados brutos", - "hide": "Ocultar dados brutos", - "copyRawJson": "Copy raw JSON" - }, - "ai": { - "title": "Análise OSINT por IA · Nvidia Nemotron", - "chatTitle": "Pergunte à IA", - "generate": "Gerar resumo por IA", - "generating": "Gerando análise…", - "model": "Modelo", - "regenerate": "Regenerar", - "placeholder": "Pergunte qualquer coisa sobre esta varredura…" - }, + "data_exposure": { "label": "Exposição de dados", "tooltip": "Vazamentos de dados sensíveis: credenciais violadas, e-mails expostos, PII público." }, + "identity_opsec": { "label": "OPSEC de identidade", "tooltip": "Reuso de identificadores entre plataformas: mesmo usuário/e-mail em vários sites." }, + "infrastructure": { "label": "Infraestrutura", "tooltip": "Serviços expostos, portas abertas, higiene fraca de DNS/WHOIS, alertas de threat-intel." }, + "web_security": { "label": "Segurança web", "tooltip": "TLS, cabeçalhos de segurança, certificate transparency, caminhos sensíveis arquivados." } + }, + "common": { "yes": "Sim", "no": "Não", "unknown": "Desconhecido", "points": "pts", "moduleRetry": "Use o botão de atualizar para tentar novamente.", "skippedKeyHint": "adicione {key} ao .env para ativar este módulo.", "skippedHint": "adicione a chave ao .env para ativar este módulo.", "noSecurityFindings": "Nenhum problema de segurança", "noDnsRecords": "Nenhum registro DNS encontrado", "noThreats": "Nenhuma ameaça detectada" }, + "findings": { "title": "Resultados de segurança", "none": "Nenhum resultado de segurança" }, + "whois": { "title": "Registro WHOIS", "registrar": "Registrar", "organization": "Organização", "country": "País", "created": "Criado", "expires": "Expira", "emails": "E-mails", "nameServers": "Servidores de nomes" }, + "dns": { "title": "Registros DNS" }, + "subdomains": { "titleFmt": "Certificate Transparency — {n} subdomínios", "certsAnalysed": "{n} certificado(s) analisado(s)" }, + "accounts": { "title": "Busca de usuário", "platform": "Plataforma", "url": "URL", "time": "Tempo" }, + "virustotal": { "title": "VirusTotal", "malicious": "Malicioso", "suspicious": "Suspeito", "harmless": "Inofensivo", "undetected": "Não detectado", "country": "País", "asn": "ASN" }, + "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Pontuação de abuso", "totalReports": "Total de denúncias", "isp": "ISP", "usageType": "Tipo de uso", "torExit": "⚠ Nó de saída TOR" }, + "shodan": { "title": "Shodan", "openPorts": "Portas abertas", "cves": "CVEs encontradas" }, + "censys": { "titleCert": "Censys — Busca de certificados", "titleHost": "Censys — Info do host", "ip": "IP", "asn": "ASN", "location": "Localização", "openPorts": "Portas abertas", "subdomainsFmt": "Subdomínios ({n})", "services": "Serviços", "port": "Porta", "service": "Serviço", "software": "Software" }, + "darkweb": { "titleFmt": "Espelhos Dark Web — {n} encontrados", "sources": "Fontes" }, + "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} snapshots · Primeiro: {first} · Último: {last}", "recent": "Snapshots recentes", "sensitive": "URLs sensíveis no arquivo" }, + "emailrep": { "title": "Reputação de e-mail", "reputation": "Reputação", "suspicious": "Suspeito", "validMx": "MX válido", "deliverable": "Entregável", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Reputação do domínio", "mxRecords": "Registros MX", "disposableWarn": "⚠ E-mail descartável detectado", "spoofableWarn": "⚠ Domínio falsificável (SPF/DMARC ausentes)", "freeProvider": "Provedor de e-mail gratuito" }, + "smtp": { "title": "Verificação SMTP", "exists": "Existe", "connect": "Conexão SMTP", "catchAllWarn": "⚠ Servidor catch-all (aceita qualquer endereço)", "details": "Detalhes" }, + "breaches": { "title": "Verificação de vazamentos", "found": "Vazamentos encontrados", "breachedServices": "Serviços vazados", "total": "Total de vazamentos" }, + "dorks": { "title": "Google Dorks" }, + "phone": { "title": "Inteligência telefônica", "valid": "Válido", "country": "País", "countryCode": "Código do país", "region": "Região", "carrier": "Operadora", "lineType": "Tipo de linha", "timezones": "Fusos horários", "ownerName": "Nome do dono", "address": "Endereço" }, + "telegram": { "title": "Perfil do Telegram", "found": "Encontrado", "username": "Usuário", "name": "Nome", "bio": "Bio", "type": "Tipo", "followers": "Seguidores" }, + "map": { "title": "Mapa de geolocalização IP", "ip": "IP", "location": "Localização", "organization": "Organização", "coordinates": "Coordenadas", "loading": "Carregando mapa…", "noData": "Nenhum dado de geolocalização disponível", "moreFmt": "{n} localizações encontradas", "precision": "Precisão", "approximate": "Aproximada (regional, não exata)" }, + "graph": { "title": "Grafo de entidades", "loading": "Carregando grafo…", "empty": "Nenhum dado de grafo para esta varredura" }, + "json": { "title": "Resultados JSON brutos", "show": "Mostrar dados brutos", "hide": "Ocultar dados brutos", "copyRawJson": "Copy raw JSON" }, + "ai": { "title": "Análise OSINT por IA · Nvidia Nemotron", "chatTitle": "Pergunte à IA", "generate": "Gerar resumo por IA", "generating": "Gerando análise…", "model": "Modelo", "regenerate": "Regenerar", "placeholder": "Pergunte qualquer coisa sobre esta varredura…" }, "duration": "Concluído em {duration}", "copyAllFindings": "Copiar todos os achados", "copyAllEmails": "Copiar todos os e-mails", "emailsCopied": "E-mails copiados!", "filterPlatforms": "Filtrar plataformas...", "searchGoogle": "Pesquisar no Google", - "sendMessage": "Enviar mensagem" + "sendMessage": "Enviar mensagem", + "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } }, "watchlist": { "title": "Listas de monitoramento", @@ -647,4 +383,4 @@ "zh": "ZH", "tr": "TR" } -} \ No newline at end of file +} diff --git a/frontend/src/messages/ru.json b/frontend/src/messages/ru.json index 0414feeb..bb5ee980 100644 --- a/frontend/src/messages/ru.json +++ b/frontend/src/messages/ru.json @@ -100,68 +100,22 @@ "online": "ОНЛАЙН" }, "caps": { - "domain": { - "title": "Домен / IP", - "item1": "WHOIS · DNS · GeoIP", - "item2": "Поддомены · Shodan", - "item3": "VirusTotal · Wayback" - }, - "email": { - "title": "Почта", - "item1": "Репутация DNS · SMTP", - "item2": "Проверка утечек · Одноразовые", - "item3": "SPF · DKIM · DMARC" - }, - "phone": { - "title": "Телефон", - "item1": "Проверка номера · Оператор", - "item2": "Страна · Обратный поиск" - }, - "username": { - "title": "Имя пользователя", - "item1": "Blackbird · Maigret", - "item2": "50+ / 3000+ платформ", - "item3": "OPSEC-оценка" - } + "domain": { "title": "Домен / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Поддомены · Shodan", "item3": "VirusTotal · Wayback" }, + "email": { "title": "Почта", "item1": "Репутация DNS · SMTP", "item2": "Проверка утечек · Одноразовые", "item3": "SPF · DKIM · DMARC" }, + "phone": { "title": "Телефон", "item1": "Проверка номера · Оператор", "item2": "Страна · Обратный поиск" }, + "username": { "title": "Имя пользователя", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ платформ", "item3": "OPSEC-оценка" } }, "standaloneTools": "Отдельные инструменты", "tools": { - "metadata": { - "label": "Метаданные файла", - "desc": "EXIF, GPS, PDF, DOCX" - }, - "headers": { - "label": "Заголовки письма", - "desc": "SPF, DKIM, маршрут" - }, - "crypto": { - "label": "Криптоадрес", - "desc": "Bitcoin и Ethereum" - }, - "qr": { - "label": "Декодер QR", - "desc": "Декодирование и анализ" - }, - "mac": { - "label": "Поиск по MAC", - "desc": "Поиск производителя" - }, - "subnet": { - "label": "IP / Подсеть", - "desc": "Сетевые диапазоны и CIDR" - }, - "hash": { - "label": "Определение хеша", - "desc": "Определить тип хеша" - }, - "encoder": { - "label": "Base64 / URL", - "desc": "Кодирование и декодирование" - }, - "jwt": { - "label": "Декодер JWT", - "desc": "Декодировать JWT-токены" - } + "metadata": { "label": "Метаданные файла", "desc": "EXIF, GPS, PDF, DOCX" }, + "headers": { "label": "Заголовки письма", "desc": "SPF, DKIM, маршрут" }, + "crypto": { "label": "Криптоадрес", "desc": "Bitcoin и Ethereum" }, + "qr": { "label": "Декодер QR", "desc": "Декодирование и анализ" }, + "mac": { "label": "Поиск по MAC", "desc": "Поиск производителя" }, + "subnet": { "label": "IP / Подсеть", "desc": "Сетевые диапазоны и CIDR" }, + "hash": { "label": "Определение хеша", "desc": "Определить тип хеша" }, + "encoder": { "label": "Base64 / URL", "desc": "Кодирование и декодирование" }, + "jwt": { "label": "Декодер JWT", "desc": "Декодировать JWT-токены" } }, "demo": { "line1": "Это публичное демо с ограниченными квотами API. Некоторые модули (Shodan, VirusTotal) могут упираться в лимиты запросов.", @@ -300,68 +254,6 @@ "log": "Журнал выполнения" }, "results": { - "fields": { - "asn": "ASN", - "address": "Адрес", - "bio": "Био", - "blog": "Блог", - "carrier": "Оператор", - "clientEvents": "Клиентские события", - "company": "Компания", - "copyDnsRecord": "Копировать DNS-запись", - "copyIp": "Копировать IP", - "copyShodanPort": "Скопировать порт Shodan", - "copyDomain": "Копировать домен", - "copyEmail": "Копировать email", - "copyOnionUrl": "Скопировать .onion-адрес", - "copyPort": "Копировать порт", - "copySubdomain": "Копировать субдомен", - "copySummary": "Копировать сводку", - "copyTarget": "Копировать цель", - "copyUsernameUrl": "Скопировать URL-адрес имени пользователя", - "corporateServices": "Корпоративные услуги", - "country": "Страна", - "countryCode": "Код страны", - "created": "Созданный", - "dataBreachEvents": "События утечки данных", - "displayName": "Отображаемое имя", - "domainReputation": "Репутация домена", - "employeeEvents": "Мероприятия для сотрудников", - "employees": "Сотрудники", - "expires": "Срок действия истекает", - "firstSeen": "Впервые увидел", - "followers": "Последователи", - "isp": "Интернет-провайдер", - "infostealerEvents": "Инфостилерские события", - "joined": "Присоединился", - "lastSeen": "Последний раз видели", - "lineType": "Тип линии", - "location": "Расположение", - "name": "Имя", - "organization": "Организация", - "ownerName": "Имя владельца", - "passwordsAnalysed": "Пароли проанализированы", - "period": "Период", - "publicRepos": "Публичные репозитории", - "recordsFound": "Найдены записи", - "region": "Область", - "registrar": "Регистратор", - "strong": "Сильный %", - "thirdParties": "Третьи лица", - "tooWeak": "Слишком слабый %", - "totalBreaches": "Всего нарушений", - "totalReports": "Всего отчетов", - "totalStars": "Всего звезд", - "totalCompromised": "Всего скомпрометировано", - "totalEvents": "Всего событий", - "twitter": "Твиттер", - "type": "Тип", - "usageType": "Тип использования", - "userServices": "Пользовательские услуги", - "username": "Имя пользователя", - "users": "Пользователи", - "weak": "Слабый %" - }, "htmlReport": "HTML-отчёт", "pdfReport": "PDF-отчёт", "jsonReport": "Скачать JSON", @@ -401,197 +293,41 @@ "opsec": { "scoreLabel": "Оценка OPSEC", "riskSuffix": "РИСК", - "data_exposure": { - "label": "Утечки данных", - "tooltip": "Утечки чувствительных данных: скомпрометированные пароли, открытые адреса почты, публичные персональные данные." - }, - "identity_opsec": { - "label": "OPSEC личности", - "tooltip": "Повторное использование идентификаторов: один логин/почта на множестве платформ." - }, - "infrastructure": { - "label": "Инфраструктура", - "tooltip": "Открытые сервисы и порты, слабая гигиена DNS/WHOIS, попадания в базы угроз (threat intel)." - }, - "web_security": { - "label": "Веб-безопасность", - "tooltip": "TLS, заголовки безопасности, Certificate Transparency, архивные чувствительные пути." - } - }, - "common": { - "yes": "Да", - "no": "Нет", - "unknown": "Неизвестно", - "points": "б.", - "moduleRetry": "Нажмите кнопку обновления, чтобы попробовать снова.", - "skippedKeyHint": "добавьте {key} в .env, чтобы включить этот модуль.", - "skippedHint": "добавьте ключ в .env, чтобы включить этот модуль.", - "noSecurityFindings": "Проблем безопасности не найдено", - "noDnsRecords": "DNS-записи не найдены", - "noThreats": "Угроз не обнаружено" - }, - "findings": { - "title": "Замечания по безопасности", - "none": "Замечаний по безопасности нет" - }, - "whois": { - "title": "Данные WHOIS", - "registrar": "Регистратор", - "organization": "Организация", - "country": "Страна", - "created": "Создан", - "expires": "Истекает", - "emails": "Email", - "nameServers": "DNS-серверы" - }, - "dns": { - "title": "DNS-записи" - }, - "subdomains": { - "titleFmt": "Certificate Transparency — поддоменов: {n}", - "certsAnalysed": "Проанализировано сертификатов: {n}" - }, - "accounts": { - "title": "Поиск по имени пользователя", - "platform": "Платформа", - "url": "URL", - "time": "Время" - }, - "virustotal": { - "title": "VirusTotal", - "malicious": "Вредоносно", - "suspicious": "Подозрительно", - "harmless": "Безопасно", - "undetected": "Не обнаружено", - "country": "Страна", - "asn": "ASN" - }, - "abuseipdb": { - "title": "AbuseIPDB", - "abuseScore": "Индекс злоупотреблений", - "totalReports": "Всего жалоб", - "isp": "Провайдер", - "usageType": "Тип использования", - "torExit": "⚠ Выходной узел TOR" - }, - "shodan": { - "title": "Shodan", - "openPorts": "Открытые порты", - "cves": "Найденные CVE" - }, - "censys": { - "titleCert": "Censys — поиск сертификатов", - "titleHost": "Censys — данные хоста", - "ip": "IP", - "asn": "ASN", - "location": "Местоположение", - "openPorts": "Открытые порты", - "subdomainsFmt": "Поддомены ({n})", - "services": "Сервисы", - "port": "Порт", - "service": "Сервис", - "software": "Программа" - }, - "darkweb": { - "titleFmt": "Зеркала в даркнете — найдено {n}", - "sources": "Источники" - }, - "wayback": { - "title": "Wayback Machine", - "summaryFmt": "Снимков: {n} · Первый: {first} · Последний: {last}", - "recent": "Недавние снимки", - "sensitive": "Чувствительные URL в архиве" - }, - "emailrep": { - "title": "Репутация email", - "reputation": "Репутация", - "suspicious": "Подозрительный", - "validMx": "Корректная MX-запись", - "deliverable": "Доставка возможна", - "spf": "SPF", - "dmarc": "DMARC", - "domainRep": "Репутация домена", - "mxRecords": "MX-записи", - "disposableWarn": "⚠ Обнаружен одноразовый email", - "spoofableWarn": "⚠ Домен можно подделать (нет SPF/DMARC)", - "freeProvider": "Бесплатный почтовый сервис" - }, - "smtp": { - "title": "Проверка SMTP", - "exists": "Существует", - "connect": "SMTP-соединение", - "catchAllWarn": "⚠ Сервер catch-all (принимает любой адрес)", - "details": "Подробности" - }, - "breaches": { - "title": "Проверка утечек", - "found": "Найдено утечек", - "breachedServices": "Скомпрометированные сервисы", - "total": "Всего утечек" - }, - "dorks": { - "title": "Google Dorks" - }, - "phone": { - "title": "Разведка по телефону", - "valid": "Корректный", - "country": "Страна", - "countryCode": "Код страны", - "region": "Регион", - "carrier": "Оператор", - "lineType": "Тип линии", - "timezones": "Часовые пояса", - "ownerName": "Владелец", - "address": "Адрес" - }, - "telegram": { - "title": "Профиль Telegram", - "found": "Найден", - "username": "Имя пользователя", - "name": "Имя", - "bio": "О себе", - "type": "Тип", - "followers": "Подписчики" - }, - "map": { - "title": "Карта геолокации IP", - "ip": "IP", - "location": "Местоположение", - "organization": "Организация", - "coordinates": "Координаты", - "loading": "Загрузка карты…", - "noData": "Нет данных геолокации", - "moreFmt": "Найдено мест: {n}", - "precision": "Точность", - "approximate": "Приблизительно (по региону, не точно)" - }, - "graph": { - "title": "Граф сущностей", - "loading": "Загрузка графа…", - "empty": "Нет данных для графа" - }, - "json": { - "title": "Исходный JSON", - "show": "Показать исходные данные", - "hide": "Скрыть исходные данные", - "copyRawJson": "Copy raw JSON" - }, - "ai": { - "title": "ИИ-анализ OSINT · Nvidia Nemotron", - "chatTitle": "Спросить ИИ", - "generate": "Сгенерировать сводку", - "generating": "Генерация анализа…", - "model": "Модель", - "regenerate": "Сгенерировать заново", - "placeholder": "Задайте вопрос об этом сканировании…" - }, + "data_exposure": { "label": "Утечки данных", "tooltip": "Утечки чувствительных данных: скомпрометированные пароли, открытые адреса почты, публичные персональные данные." }, + "identity_opsec": { "label": "OPSEC личности", "tooltip": "Повторное использование идентификаторов: один логин/почта на множестве платформ." }, + "infrastructure": { "label": "Инфраструктура", "tooltip": "Открытые сервисы и порты, слабая гигиена DNS/WHOIS, попадания в базы угроз (threat intel)." }, + "web_security": { "label": "Веб-безопасность", "tooltip": "TLS, заголовки безопасности, Certificate Transparency, архивные чувствительные пути." } + }, + "common": { "yes": "Да", "no": "Нет", "unknown": "Неизвестно", "points": "б.", "moduleRetry": "Нажмите кнопку обновления, чтобы попробовать снова.", "skippedKeyHint": "добавьте {key} в .env, чтобы включить этот модуль.", "skippedHint": "добавьте ключ в .env, чтобы включить этот модуль.", "noSecurityFindings": "Проблем безопасности не найдено", "noDnsRecords": "DNS-записи не найдены", "noThreats": "Угроз не обнаружено" }, + "findings": { "title": "Замечания по безопасности", "none": "Замечаний по безопасности нет" }, + "whois": { "title": "Данные WHOIS", "registrar": "Регистратор", "organization": "Организация", "country": "Страна", "created": "Создан", "expires": "Истекает", "emails": "Email", "nameServers": "DNS-серверы" }, + "dns": { "title": "DNS-записи" }, + "subdomains": { "titleFmt": "Certificate Transparency — поддоменов: {n}", "certsAnalysed": "Проанализировано сертификатов: {n}" }, + "accounts": { "title": "Поиск по имени пользователя", "platform": "Платформа", "url": "URL", "time": "Время" }, + "virustotal": { "title": "VirusTotal", "malicious": "Вредоносно", "suspicious": "Подозрительно", "harmless": "Безопасно", "undetected": "Не обнаружено", "country": "Страна", "asn": "ASN" }, + "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "Индекс злоупотреблений", "totalReports": "Всего жалоб", "isp": "Провайдер", "usageType": "Тип использования", "torExit": "⚠ Выходной узел TOR" }, + "shodan": { "title": "Shodan", "openPorts": "Открытые порты", "cves": "Найденные CVE" }, + "censys": { "titleCert": "Censys — поиск сертификатов", "titleHost": "Censys — данные хоста", "ip": "IP", "asn": "ASN", "location": "Местоположение", "openPorts": "Открытые порты", "subdomainsFmt": "Поддомены ({n})", "services": "Сервисы", "port": "Порт", "service": "Сервис", "software": "Программа" }, + "darkweb": { "titleFmt": "Зеркала в даркнете — найдено {n}", "sources": "Источники" }, + "wayback": { "title": "Wayback Machine", "summaryFmt": "Снимков: {n} · Первый: {first} · Последний: {last}", "recent": "Недавние снимки", "sensitive": "Чувствительные URL в архиве" }, + "emailrep": { "title": "Репутация email", "reputation": "Репутация", "suspicious": "Подозрительный", "validMx": "Корректная MX-запись", "deliverable": "Доставка возможна", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Репутация домена", "mxRecords": "MX-записи", "disposableWarn": "⚠ Обнаружен одноразовый email", "spoofableWarn": "⚠ Домен можно подделать (нет SPF/DMARC)", "freeProvider": "Бесплатный почтовый сервис" }, + "smtp": { "title": "Проверка SMTP", "exists": "Существует", "connect": "SMTP-соединение", "catchAllWarn": "⚠ Сервер catch-all (принимает любой адрес)", "details": "Подробности" }, + "breaches": { "title": "Проверка утечек", "found": "Найдено утечек", "breachedServices": "Скомпрометированные сервисы", "total": "Всего утечек" }, + "dorks": { "title": "Google Dorks" }, + "phone": { "title": "Разведка по телефону", "valid": "Корректный", "country": "Страна", "countryCode": "Код страны", "region": "Регион", "carrier": "Оператор", "lineType": "Тип линии", "timezones": "Часовые пояса", "ownerName": "Владелец", "address": "Адрес" }, + "telegram": { "title": "Профиль Telegram", "found": "Найден", "username": "Имя пользователя", "name": "Имя", "bio": "О себе", "type": "Тип", "followers": "Подписчики" }, + "map": { "title": "Карта геолокации IP", "ip": "IP", "location": "Местоположение", "organization": "Организация", "coordinates": "Координаты", "loading": "Загрузка карты…", "noData": "Нет данных геолокации", "moreFmt": "Найдено мест: {n}", "precision": "Точность", "approximate": "Приблизительно (по региону, не точно)" }, + "graph": { "title": "Граф сущностей", "loading": "Загрузка графа…", "empty": "Нет данных для графа" }, + "json": { "title": "Исходный JSON", "show": "Показать исходные данные", "hide": "Скрыть исходные данные", "copyRawJson": "Copy raw JSON" }, + "ai": { "title": "ИИ-анализ OSINT · Nvidia Nemotron", "chatTitle": "Спросить ИИ", "generate": "Сгенерировать сводку", "generating": "Генерация анализа…", "model": "Модель", "regenerate": "Сгенерировать заново", "placeholder": "Задайте вопрос об этом сканировании…" }, "duration": "Выполнено за {duration}", "copyAllFindings": "Скопировать все замечания", "copyAllEmails": "Скопировать все адреса почты", "emailsCopied": "Адреса почты скопированы!", "filterPlatforms": "Фильтр по платформам…", "searchGoogle": "Искать в Google", - "sendMessage": "Отправить сообщение" + "sendMessage": "Отправить сообщение", + "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Копировать email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Скопировать .onion-адрес", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } }, "watchlist": { "title": "Списки наблюдения", @@ -647,4 +383,4 @@ "zh": "ZH", "tr": "TR" } -} \ No newline at end of file +} diff --git a/frontend/src/messages/tr.json b/frontend/src/messages/tr.json index c41fbb4a..9acf458c 100644 --- a/frontend/src/messages/tr.json +++ b/frontend/src/messages/tr.json @@ -100,68 +100,22 @@ "online": "ÇEVRİMİÇİ" }, "caps": { - "domain": { - "title": "Alan Adı / IP", - "item1": "WHOIS · DNS · GeoIP", - "item2": "Alt alan adları · Shodan", - "item3": "VirusTotal · Wayback" - }, - "email": { - "title": "E-posta", - "item1": "DNS itibarı · SMTP", - "item2": "İhlal kontrolü · Tek kullanımlık", - "item3": "SPF · DKIM · DMARC" - }, - "phone": { - "title": "Telefon", - "item1": "Doğrulama · Operatör", - "item2": "Ülke · Ters sorgulama" - }, - "username": { - "title": "Kullanıcı Adı", - "item1": "Blackbird · Maigret", - "item2": "50+ / 3000+ platform", - "item3": "OPSEC Puanı" - } + "domain": { "title": "Alan Adı / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "Alt alan adları · Shodan", "item3": "VirusTotal · Wayback" }, + "email": { "title": "E-posta", "item1": "DNS itibarı · SMTP", "item2": "İhlal kontrolü · Tek kullanımlık", "item3": "SPF · DKIM · DMARC" }, + "phone": { "title": "Telefon", "item1": "Doğrulama · Operatör", "item2": "Ülke · Ters sorgulama" }, + "username": { "title": "Kullanıcı Adı", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ platform", "item3": "OPSEC Puanı" } }, "standaloneTools": "Bağımsız Araçlar", "tools": { - "metadata": { - "label": "Dosya Meta Verisi", - "desc": "EXIF, GPS, PDF, DOCX" - }, - "headers": { - "label": "E-posta Başlıkları", - "desc": "SPF, DKIM, yönlendirme atlamaları" - }, - "crypto": { - "label": "Kripto Adresi", - "desc": "Bitcoin ve Ethereum" - }, - "qr": { - "label": "QR Çöz", - "desc": "Çöz ve analiz et" - }, - "mac": { - "label": "MAC Sorgulama", - "desc": "Üretici sorgulama" - }, - "subnet": { - "label": "IP / Alt Ağ", - "desc": "Ağ aralıkları ve CIDR" - }, - "hash": { - "label": "Hash Tanımlayıcı", - "desc": "Hash türlerini tanımla" - }, - "encoder": { - "label": "Base64 / URL", - "desc": "Kodla ve çöz" - }, - "jwt": { - "label": "JWT Çözücü", - "desc": "JWT belirteçlerini çöz" - } + "metadata": { "label": "Dosya Meta Verisi", "desc": "EXIF, GPS, PDF, DOCX" }, + "headers": { "label": "E-posta Başlıkları", "desc": "SPF, DKIM, yönlendirme atlamaları" }, + "crypto": { "label": "Kripto Adresi", "desc": "Bitcoin ve Ethereum" }, + "qr": { "label": "QR Çöz", "desc": "Çöz ve analiz et" }, + "mac": { "label": "MAC Sorgulama", "desc": "Üretici sorgulama" }, + "subnet": { "label": "IP / Alt Ağ", "desc": "Ağ aralıkları ve CIDR" }, + "hash": { "label": "Hash Tanımlayıcı", "desc": "Hash türlerini tanımla" }, + "encoder": { "label": "Base64 / URL", "desc": "Kodla ve çöz" }, + "jwt": { "label": "JWT Çözücü", "desc": "JWT belirteçlerini çöz" } }, "demo": { "line1": "Bu, sınırlı API kotalarına sahip halka açık bir demodur. Bazı modüller (Shodan, VirusTotal) hız sınırına takılabilir.", @@ -300,68 +254,6 @@ "log": "İlerleme Günlüğü" }, "results": { - "fields": { - "asn": "ASN", - "address": "Adres", - "bio": "Biyografi", - "blog": "Blog", - "carrier": "Operatör", - "clientEvents": "Müşteri etkinlikleri", - "company": "Şirket", - "copyDnsRecord": "DNS kaydını kopyala", - "copyIp": "IP'yi kopyala", - "copyShodanPort": "Shodan bağlantı noktasını kopyala", - "copyDomain": "Alanı kopyala", - "copyEmail": "E-postayı kopyala", - "copyOnionUrl": ".onion adresini kopyala", - "copyPort": "Bağlantı noktasını kopyala", - "copySubdomain": "Alt alanı kopyala", - "copySummary": "Özeti kopyala", - "copyTarget": "Hedefi kopyala", - "copyUsernameUrl": "Kullanıcı adı URL'sini kopyala", - "corporateServices": "Kurumsal hizmetler", - "country": "Ülke", - "countryCode": "Ülke kodu", - "created": "Oluşturuldu", - "dataBreachEvents": "Veri ihlali olayları", - "displayName": "Ekran adı", - "domainReputation": "Alan Adı İtibarı", - "employeeEvents": "Çalışan etkinlikleri", - "employees": "Çalışanlar", - "expires": "Süresi doluyor", - "firstSeen": "İlk görülme", - "followers": "Takipçiler", - "isp": "İSS", - "infostealerEvents": "Bilgi hırsızı etkinlikleri", - "joined": "Katıldı", - "lastSeen": "Son görülme", - "lineType": "Hat Tipi", - "location": "Konum", - "name": "İsim", - "organization": "Organizasyon", - "ownerName": "Sahip Adı", - "passwordsAnalysed": "Şifreler analiz edildi", - "period": "Dönem", - "publicRepos": "Herkese Açık Repolar", - "recordsFound": "Bulunan kayıtlar", - "region": "Bölge", - "registrar": "Kayıt memuru", - "strong": "Güçlü %", - "thirdParties": "Üçüncü taraflar", - "tooWeak": "Çok zayıf %", - "totalBreaches": "Toplam İhlaller", - "totalReports": "Toplam Raporlar", - "totalStars": "Toplam Yıldız", - "totalCompromised": "Güvenliği ihlal edilen toplam", - "totalEvents": "Toplam etkinlik", - "twitter": "heyecan", - "type": "Tip", - "usageType": "Kullanım Türü", - "userServices": "Kullanıcı hizmetleri", - "username": "Kullanıcı adı", - "users": "Kullanıcılar", - "weak": "Zayıf %" - }, "htmlReport": "HTML Rapor", "pdfReport": "PDF Rapor", "jsonReport": "JSON İndir", @@ -401,197 +293,41 @@ "opsec": { "scoreLabel": "OPSEC Puanı", "riskSuffix": "RİSK", - "data_exposure": { - "label": "Veri Maruziyeti", - "tooltip": "Hassas veri sızıntıları: ihlal edilmiş kimlik bilgileri, açığa çıkan e-postalar, halka açık kişisel veriler." - }, - "identity_opsec": { - "label": "Kimlik OPSEC", - "tooltip": "Platformlar arası tanımlayıcı yeniden kullanımı: birçok sitede aynı kullanıcı adı/e-posta." - }, - "infrastructure": { - "label": "Altyapı", - "tooltip": "Açığa çıkan hizmetler, açık portlar, zayıf DNS/WHOIS hijyeni, tehdit istihbaratı eşleşmeleri." - }, - "web_security": { - "label": "Web Güvenliği", - "tooltip": "TLS, güvenlik başlıkları, sertifika şeffaflığı, arşivlenmiş hassas yollar." - } - }, - "common": { - "yes": "Evet", - "no": "Hayır", - "unknown": "Bilinmiyor", - "points": "puan", - "moduleRetry": "Tekrar denemek için yenile düğmesini kullanın.", - "skippedKeyHint": "bu modülü etkinleştirmek için {key} değerini .env dosyasına ekleyin.", - "skippedHint": "bu modülü etkinleştirmek için anahtarı .env dosyasına ekleyin.", - "noSecurityFindings": "Güvenlik bulgusu yok", - "noDnsRecords": "DNS kaydı bulunamadı", - "noThreats": "Tehdit algılanmadı" - }, - "findings": { - "title": "Güvenlik Bulguları", - "none": "Güvenlik bulgusu yok" - }, - "whois": { - "title": "WHOIS Kaydı", - "registrar": "Kayıt Kuruluşu", - "organization": "Kuruluş", - "country": "Ülke", - "created": "Oluşturulma", - "expires": "Sona erme", - "emails": "E-postalar", - "nameServers": "Ad Sunucuları" - }, - "dns": { - "title": "DNS Kayıtları" - }, - "subdomains": { - "titleFmt": "Sertifika Şeffaflığı — {n} alt alan adı", - "certsAnalysed": "{n} sertifika analiz edildi" - }, - "accounts": { - "title": "Kullanıcı Adı Araması", - "platform": "Platform", - "url": "URL", - "time": "Süre" - }, - "virustotal": { - "title": "VirusTotal", - "malicious": "Zararlı", - "suspicious": "Şüpheli", - "harmless": "Zararsız", - "undetected": "Tespit edilmedi", - "country": "Ülke", - "asn": "ASN" - }, - "abuseipdb": { - "title": "AbuseIPDB", - "abuseScore": "İstismar Puanı", - "totalReports": "Toplam Rapor", - "isp": "İSS", - "usageType": "Kullanım Türü", - "torExit": "⚠ TOR Çıkış Düğümü" - }, - "shodan": { - "title": "Shodan", - "openPorts": "Açık Portlar", - "cves": "Bulunan CVE'ler" - }, - "censys": { - "titleCert": "Censys — Sertifika Araması", - "titleHost": "Censys — Ana Bilgisayar Bilgisi", - "ip": "IP", - "asn": "ASN", - "location": "Konum", - "openPorts": "Açık Portlar", - "subdomainsFmt": "Alt Alan Adları ({n})", - "services": "Hizmetler", - "port": "Port", - "service": "Hizmet", - "software": "Yazılım" - }, - "darkweb": { - "titleFmt": "Karanlık Web Aynaları — {n} bulundu", - "sources": "Kaynaklar" - }, - "wayback": { - "title": "Wayback Machine", - "summaryFmt": "{n} anlık görüntü · İlk: {first} · Son: {last}", - "recent": "Son Anlık Görüntüler", - "sensitive": "Arşivdeki Hassas URL'ler" - }, - "emailrep": { - "title": "E-posta İtibarı", - "reputation": "İtibar", - "suspicious": "Şüpheli", - "validMx": "Geçerli MX", - "deliverable": "Teslim edilebilir", - "spf": "SPF", - "dmarc": "DMARC", - "domainRep": "Alan Adı İtibarı", - "mxRecords": "MX Kayıtları", - "disposableWarn": "⚠ Tek kullanımlık e-posta algılandı", - "spoofableWarn": "⚠ Alan adı sahtelenebilir (SPF/DMARC eksik)", - "freeProvider": "Ücretsiz e-posta sağlayıcısı" - }, - "smtp": { - "title": "SMTP Doğrulama", - "exists": "Mevcut", - "connect": "SMTP Bağlantısı", - "catchAllWarn": "⚠ Catch-all sunucu (her adresi kabul eder)", - "details": "Ayrıntılar" - }, - "breaches": { - "title": "İhlal Kontrolü", - "found": "İhlaller Bulundu", - "breachedServices": "İhlal Edilen Hizmetler", - "total": "Toplam İhlal" - }, - "dorks": { - "title": "Google Dorks" - }, - "phone": { - "title": "Telefon İstihbaratı", - "valid": "Geçerli", - "country": "Ülke", - "countryCode": "Ülke Kodu", - "region": "Bölge", - "carrier": "Operatör", - "lineType": "Hat Türü", - "timezones": "Saat Dilimleri", - "ownerName": "Sahip Adı", - "address": "Adres" - }, - "telegram": { - "title": "Telegram Profili", - "found": "Bulundu", - "username": "Kullanıcı Adı", - "name": "Ad", - "bio": "Biyografi", - "type": "Tür", - "followers": "Takipçiler" - }, - "map": { - "title": "IP Konum Haritası", - "ip": "IP", - "location": "Konum", - "organization": "Kuruluş", - "coordinates": "Koordinatlar", - "loading": "Harita yükleniyor…", - "noData": "Konum verisi mevcut değil", - "moreFmt": "{n} konum bulundu", - "precision": "Hassasiyet", - "approximate": "Yaklaşık (bölgesel, tam değil)" - }, - "graph": { - "title": "Varlık Grafiği", - "loading": "Graf yükleniyor…", - "empty": "Bu tarama için graf verisi yok" - }, - "json": { - "title": "Ham JSON Sonuçları", - "show": "Ham veriyi göster", - "hide": "Ham veriyi gizle", - "copyRawJson": "Copy raw JSON" - }, - "ai": { - "title": "AI OSINT Analizi · Nvidia Nemotron", - "chatTitle": "AI'ya Sor", - "generate": "AI Özeti Oluştur", - "generating": "Analiz oluşturuluyor…", - "model": "Model", - "regenerate": "Yeniden oluştur", - "placeholder": "Bu tarama hakkında her şeyi sorun…" - }, + "data_exposure": { "label": "Veri Maruziyeti", "tooltip": "Hassas veri sızıntıları: ihlal edilmiş kimlik bilgileri, açığa çıkan e-postalar, halka açık kişisel veriler." }, + "identity_opsec": { "label": "Kimlik OPSEC", "tooltip": "Platformlar arası tanımlayıcı yeniden kullanımı: birçok sitede aynı kullanıcı adı/e-posta." }, + "infrastructure": { "label": "Altyapı", "tooltip": "Açığa çıkan hizmetler, açık portlar, zayıf DNS/WHOIS hijyeni, tehdit istihbaratı eşleşmeleri." }, + "web_security": { "label": "Web Güvenliği", "tooltip": "TLS, güvenlik başlıkları, sertifika şeffaflığı, arşivlenmiş hassas yollar." } + }, + "common": { "yes": "Evet", "no": "Hayır", "unknown": "Bilinmiyor", "points": "puan", "moduleRetry": "Tekrar denemek için yenile düğmesini kullanın.", "skippedKeyHint": "bu modülü etkinleştirmek için {key} değerini .env dosyasına ekleyin.", "skippedHint": "bu modülü etkinleştirmek için anahtarı .env dosyasına ekleyin.", "noSecurityFindings": "Güvenlik bulgusu yok", "noDnsRecords": "DNS kaydı bulunamadı", "noThreats": "Tehdit algılanmadı" }, + "findings": { "title": "Güvenlik Bulguları", "none": "Güvenlik bulgusu yok" }, + "whois": { "title": "WHOIS Kaydı", "registrar": "Kayıt Kuruluşu", "organization": "Kuruluş", "country": "Ülke", "created": "Oluşturulma", "expires": "Sona erme", "emails": "E-postalar", "nameServers": "Ad Sunucuları" }, + "dns": { "title": "DNS Kayıtları" }, + "subdomains": { "titleFmt": "Sertifika Şeffaflığı — {n} alt alan adı", "certsAnalysed": "{n} sertifika analiz edildi" }, + "accounts": { "title": "Kullanıcı Adı Araması", "platform": "Platform", "url": "URL", "time": "Süre" }, + "virustotal": { "title": "VirusTotal", "malicious": "Zararlı", "suspicious": "Şüpheli", "harmless": "Zararsız", "undetected": "Tespit edilmedi", "country": "Ülke", "asn": "ASN" }, + "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "İstismar Puanı", "totalReports": "Toplam Rapor", "isp": "İSS", "usageType": "Kullanım Türü", "torExit": "⚠ TOR Çıkış Düğümü" }, + "shodan": { "title": "Shodan", "openPorts": "Açık Portlar", "cves": "Bulunan CVE'ler" }, + "censys": { "titleCert": "Censys — Sertifika Araması", "titleHost": "Censys — Ana Bilgisayar Bilgisi", "ip": "IP", "asn": "ASN", "location": "Konum", "openPorts": "Açık Portlar", "subdomainsFmt": "Alt Alan Adları ({n})", "services": "Hizmetler", "port": "Port", "service": "Hizmet", "software": "Yazılım" }, + "darkweb": { "titleFmt": "Karanlık Web Aynaları — {n} bulundu", "sources": "Kaynaklar" }, + "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} anlık görüntü · İlk: {first} · Son: {last}", "recent": "Son Anlık Görüntüler", "sensitive": "Arşivdeki Hassas URL'ler" }, + "emailrep": { "title": "E-posta İtibarı", "reputation": "İtibar", "suspicious": "Şüpheli", "validMx": "Geçerli MX", "deliverable": "Teslim edilebilir", "spf": "SPF", "dmarc": "DMARC", "domainRep": "Alan Adı İtibarı", "mxRecords": "MX Kayıtları", "disposableWarn": "⚠ Tek kullanımlık e-posta algılandı", "spoofableWarn": "⚠ Alan adı sahtelenebilir (SPF/DMARC eksik)", "freeProvider": "Ücretsiz e-posta sağlayıcısı" }, + "smtp": { "title": "SMTP Doğrulama", "exists": "Mevcut", "connect": "SMTP Bağlantısı", "catchAllWarn": "⚠ Catch-all sunucu (her adresi kabul eder)", "details": "Ayrıntılar" }, + "breaches": { "title": "İhlal Kontrolü", "found": "İhlaller Bulundu", "breachedServices": "İhlal Edilen Hizmetler", "total": "Toplam İhlal" }, + "dorks": { "title": "Google Dorks" }, + "phone": { "title": "Telefon İstihbaratı", "valid": "Geçerli", "country": "Ülke", "countryCode": "Ülke Kodu", "region": "Bölge", "carrier": "Operatör", "lineType": "Hat Türü", "timezones": "Saat Dilimleri", "ownerName": "Sahip Adı", "address": "Adres" }, + "telegram": { "title": "Telegram Profili", "found": "Bulundu", "username": "Kullanıcı Adı", "name": "Ad", "bio": "Biyografi", "type": "Tür", "followers": "Takipçiler" }, + "map": { "title": "IP Konum Haritası", "ip": "IP", "location": "Konum", "organization": "Kuruluş", "coordinates": "Koordinatlar", "loading": "Harita yükleniyor…", "noData": "Konum verisi mevcut değil", "moreFmt": "{n} konum bulundu", "precision": "Hassasiyet", "approximate": "Yaklaşık (bölgesel, tam değil)" }, + "graph": { "title": "Varlık Grafiği", "loading": "Graf yükleniyor…", "empty": "Bu tarama için graf verisi yok" }, + "json": { "title": "Ham JSON Sonuçları", "show": "Ham veriyi göster", "hide": "Ham veriyi gizle", "copyRawJson": "Copy raw JSON" }, + "ai": { "title": "AI OSINT Analizi · Nvidia Nemotron", "chatTitle": "AI'ya Sor", "generate": "AI Özeti Oluştur", "generating": "Analiz oluşturuluyor…", "model": "Model", "regenerate": "Yeniden oluştur", "placeholder": "Bu tarama hakkında her şeyi sorun…" }, "duration": "{duration} içinde tamamlandı", "copyAllFindings": "Tüm bulguları kopyala", "copyAllEmails": "Tüm e-postaları kopyala", "emailsCopied": "E-postalar kopyalandı!", "filterPlatforms": "Platformları filtrele...", "searchGoogle": "Google'da ara", - "sendMessage": "Mesaj gönder" + "sendMessage": "Mesaj gönder", + "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } }, "watchlist": { "title": "İzleme Listeleri", @@ -647,4 +383,4 @@ "zh": "ZH", "tr": "TR" } -} \ No newline at end of file +} diff --git a/frontend/src/messages/zh.json b/frontend/src/messages/zh.json index 1df86e11..298c5294 100644 --- a/frontend/src/messages/zh.json +++ b/frontend/src/messages/zh.json @@ -100,68 +100,22 @@ "online": "在线" }, "caps": { - "domain": { - "title": "域名 / IP", - "item1": "WHOIS · DNS · GeoIP", - "item2": "子域名 · Shodan", - "item3": "VirusTotal · Wayback" - }, - "email": { - "title": "邮箱", - "item1": "DNS 信誉 · SMTP", - "item2": "泄露检查 · 一次性邮箱", - "item3": "SPF · DKIM · DMARC" - }, - "phone": { - "title": "电话", - "item1": "验证 · 运营商", - "item2": "国家 · 反查" - }, - "username": { - "title": "用户名", - "item1": "Blackbird · Maigret", - "item2": "50+ / 3000+ 平台", - "item3": "OPSEC 评分" - } + "domain": { "title": "域名 / IP", "item1": "WHOIS · DNS · GeoIP", "item2": "子域名 · Shodan", "item3": "VirusTotal · Wayback" }, + "email": { "title": "邮箱", "item1": "DNS 信誉 · SMTP", "item2": "泄露检查 · 一次性邮箱", "item3": "SPF · DKIM · DMARC" }, + "phone": { "title": "电话", "item1": "验证 · 运营商", "item2": "国家 · 反查" }, + "username": { "title": "用户名", "item1": "Blackbird · Maigret", "item2": "50+ / 3000+ 平台", "item3": "OPSEC 评分" } }, "standaloneTools": "独立工具", "tools": { - "metadata": { - "label": "文件元数据", - "desc": "EXIF、GPS、PDF、DOCX" - }, - "headers": { - "label": "邮件头", - "desc": "SPF、DKIM、路由跳数" - }, - "crypto": { - "label": "加密地址", - "desc": "比特币和以太坊" - }, - "qr": { - "label": "二维码解码", - "desc": "解码与分析" - }, - "mac": { - "label": "MAC 查询", - "desc": "厂商查询" - }, - "subnet": { - "label": "IP / 子网", - "desc": "网络范围与 CIDR" - }, - "hash": { - "label": "哈希识别", - "desc": "识别哈希类型" - }, - "encoder": { - "label": "Base64 / URL", - "desc": "编码与解码" - }, - "jwt": { - "label": "JWT 解码", - "desc": "解码 JWT 令牌" - } + "metadata": { "label": "文件元数据", "desc": "EXIF、GPS、PDF、DOCX" }, + "headers": { "label": "邮件头", "desc": "SPF、DKIM、路由跳数" }, + "crypto": { "label": "加密地址", "desc": "比特币和以太坊" }, + "qr": { "label": "二维码解码", "desc": "解码与分析" }, + "mac": { "label": "MAC 查询", "desc": "厂商查询" }, + "subnet": { "label": "IP / 子网", "desc": "网络范围与 CIDR" }, + "hash": { "label": "哈希识别", "desc": "识别哈希类型" }, + "encoder": { "label": "Base64 / URL", "desc": "编码与解码" }, + "jwt": { "label": "JWT 解码", "desc": "解码 JWT 令牌" } }, "demo": { "line1": "这是一个 API 配额有限的公开演示。部分模块(Shodan、VirusTotal)可能受到速率限制。", @@ -300,68 +254,6 @@ "log": "进度日志" }, "results": { - "fields": { - "asn": "ASN", - "address": "地址", - "bio": "简介", - "blog": "博客", - "carrier": "运营商", - "clientEvents": "客户活动", - "company": "公司", - "copyDnsRecord": "复制 DNS 记录", - "copyIp": "复制IP", - "copyShodanPort": "复制 Shodan 端口", - "copyDomain": "复制域名", - "copyEmail": "复制电子邮件", - "copyOnionUrl": "复制 .onion 地址", - "copyPort": "复制端口", - "copySubdomain": "复制子域", - "copySummary": "复制摘要", - "copyTarget": "复制目标", - "copyUsernameUrl": "复制用户名网址", - "corporateServices": "企业服务", - "country": "国家", - "countryCode": "国家/地区代码", - "created": "已创建", - "dataBreachEvents": "数据泄露事件", - "displayName": "显示名称", - "domainReputation": "域名声誉", - "employeeEvents": "员工活动", - "employees": "雇员", - "expires": "过期", - "firstSeen": "第一次见到", - "followers": "追随者", - "isp": "互联网服务供应商", - "infostealerEvents": "信息窃取事件", - "joined": "已加入", - "lastSeen": "最后一次见到", - "lineType": "线路类型", - "location": "地点", - "name": "姓名", - "organization": "组织", - "ownerName": "业主姓名", - "passwordsAnalysed": "分析的密码", - "period": "时期", - "publicRepos": "公共回购协议", - "recordsFound": "找到记录", - "region": "地区", - "registrar": "登记员", - "strong": "强的 %", - "thirdParties": "第三方", - "tooWeak": "太弱%", - "totalBreaches": "违规总数", - "totalReports": "报告总数", - "totalStars": "总星星数", - "totalCompromised": "总计受损", - "totalEvents": "活动总数", - "twitter": "叽叽喳喳", - "type": "类型", - "usageType": "使用类型", - "userServices": "用户服务", - "username": "用户名", - "users": "用户", - "weak": "虚弱的 %" - }, "htmlReport": "HTML 报告", "pdfReport": "PDF 报告", "jsonReport": "下载 JSON", @@ -401,197 +293,41 @@ "opsec": { "scoreLabel": "OPSEC 评分", "riskSuffix": "风险", - "data_exposure": { - "label": "数据暴露", - "tooltip": "敏感数据泄露:被泄露的凭据、暴露的邮箱、公开的个人信息。" - }, - "identity_opsec": { - "label": "身份 OPSEC", - "tooltip": "跨平台重复使用标识:在多个站点使用相同用户名/邮箱。" - }, - "infrastructure": { - "label": "基础设施", - "tooltip": "暴露的服务、开放端口、薄弱的 DNS/WHOIS 卫生、威胁情报命中。" - }, - "web_security": { - "label": "Web 安全", - "tooltip": "TLS、安全头、证书透明度、归档的敏感路径。" - } - }, - "common": { - "yes": "是", - "no": "否", - "unknown": "未知", - "points": "分", - "moduleRetry": "点击刷新按钮重试。", - "skippedKeyHint": "将 {key} 添加到 .env 以启用此模块。", - "skippedHint": "将密钥添加到 .env 以启用此模块。", - "noSecurityFindings": "未发现安全问题", - "noDnsRecords": "未找到 DNS 记录", - "noThreats": "未检测到威胁" - }, - "findings": { - "title": "安全发现", - "none": "无安全发现" - }, - "whois": { - "title": "WHOIS 注册信息", - "registrar": "注册商", - "organization": "组织", - "country": "国家", - "created": "创建时间", - "expires": "到期时间", - "emails": "邮箱", - "nameServers": "域名服务器" - }, - "dns": { - "title": "DNS 记录" - }, - "subdomains": { - "titleFmt": "证书透明度 — {n} 个子域名", - "certsAnalysed": "已分析 {n} 个证书" - }, - "accounts": { - "title": "用户名搜索", - "platform": "平台", - "url": "链接", - "time": "耗时" - }, - "virustotal": { - "title": "VirusTotal", - "malicious": "恶意", - "suspicious": "可疑", - "harmless": "无害", - "undetected": "未检出", - "country": "国家", - "asn": "ASN" - }, - "abuseipdb": { - "title": "AbuseIPDB", - "abuseScore": "滥用评分", - "totalReports": "举报总数", - "isp": "ISP", - "usageType": "用途类型", - "torExit": "⚠ TOR 出口节点" - }, - "shodan": { - "title": "Shodan", - "openPorts": "开放端口", - "cves": "发现的 CVE" - }, - "censys": { - "titleCert": "Censys — 证书搜索", - "titleHost": "Censys — 主机信息", - "ip": "IP", - "asn": "ASN", - "location": "位置", - "openPorts": "开放端口", - "subdomainsFmt": "子域名({n})", - "services": "服务", - "port": "端口", - "service": "服务", - "software": "软件" - }, - "darkweb": { - "titleFmt": "暗网镜像 — 发现 {n} 个", - "sources": "来源" - }, - "wayback": { - "title": "Wayback Machine", - "summaryFmt": "{n} 个快照 · 最早:{first} · 最近:{last}", - "recent": "最近快照", - "sensitive": "归档中的敏感链接" - }, - "emailrep": { - "title": "邮箱信誉", - "reputation": "信誉", - "suspicious": "可疑", - "validMx": "有效 MX", - "deliverable": "可投递", - "spf": "SPF", - "dmarc": "DMARC", - "domainRep": "域名信誉", - "mxRecords": "MX 记录", - "disposableWarn": "⚠ 检测到一次性邮箱", - "spoofableWarn": "⚠ 域名可被伪造(缺少 SPF/DMARC)", - "freeProvider": "免费邮箱服务商" - }, - "smtp": { - "title": "SMTP 验证", - "exists": "存在", - "connect": "SMTP 连接", - "catchAllWarn": "⚠ 全收服务器(接受任意地址)", - "details": "详情" - }, - "breaches": { - "title": "泄露检查", - "found": "发现泄露", - "breachedServices": "被泄露的服务", - "total": "泄露总数" - }, - "dorks": { - "title": "Google Dorks" - }, - "phone": { - "title": "电话情报", - "valid": "有效", - "country": "国家", - "countryCode": "国家代码", - "region": "地区", - "carrier": "运营商", - "lineType": "线路类型", - "timezones": "时区", - "ownerName": "机主姓名", - "address": "地址" - }, - "telegram": { - "title": "Telegram 资料", - "found": "已找到", - "username": "用户名", - "name": "名称", - "bio": "简介", - "type": "类型", - "followers": "关注者" - }, - "map": { - "title": "IP 地理位置地图", - "ip": "IP", - "location": "位置", - "organization": "组织", - "coordinates": "坐标", - "loading": "正在加载地图…", - "noData": "无可用地理位置数据", - "moreFmt": "发现 {n} 个位置", - "precision": "精度", - "approximate": "近似(区域级,非精确)" - }, - "graph": { - "title": "实体图谱", - "loading": "正在加载图谱…", - "empty": "此扫描无可用图谱数据" - }, - "json": { - "title": "原始 JSON 结果", - "show": "显示原始数据", - "hide": "隐藏原始数据", - "copyRawJson": "Copy raw JSON" - }, - "ai": { - "title": "AI OSINT 分析 · Nvidia Nemotron", - "chatTitle": "向 AI 提问", - "generate": "生成 AI 摘要", - "generating": "正在生成分析…", - "model": "模型", - "regenerate": "重新生成", - "placeholder": "询问关于此扫描的任何问题…" - }, + "data_exposure": { "label": "数据暴露", "tooltip": "敏感数据泄露:被泄露的凭据、暴露的邮箱、公开的个人信息。" }, + "identity_opsec": { "label": "身份 OPSEC", "tooltip": "跨平台重复使用标识:在多个站点使用相同用户名/邮箱。" }, + "infrastructure": { "label": "基础设施", "tooltip": "暴露的服务、开放端口、薄弱的 DNS/WHOIS 卫生、威胁情报命中。" }, + "web_security": { "label": "Web 安全", "tooltip": "TLS、安全头、证书透明度、归档的敏感路径。" } + }, + "common": { "yes": "是", "no": "否", "unknown": "未知", "points": "分", "moduleRetry": "点击刷新按钮重试。", "skippedKeyHint": "将 {key} 添加到 .env 以启用此模块。", "skippedHint": "将密钥添加到 .env 以启用此模块。", "noSecurityFindings": "未发现安全问题", "noDnsRecords": "未找到 DNS 记录", "noThreats": "未检测到威胁" }, + "findings": { "title": "安全发现", "none": "无安全发现" }, + "whois": { "title": "WHOIS 注册信息", "registrar": "注册商", "organization": "组织", "country": "国家", "created": "创建时间", "expires": "到期时间", "emails": "邮箱", "nameServers": "域名服务器" }, + "dns": { "title": "DNS 记录" }, + "subdomains": { "titleFmt": "证书透明度 — {n} 个子域名", "certsAnalysed": "已分析 {n} 个证书" }, + "accounts": { "title": "用户名搜索", "platform": "平台", "url": "链接", "time": "耗时" }, + "virustotal": { "title": "VirusTotal", "malicious": "恶意", "suspicious": "可疑", "harmless": "无害", "undetected": "未检出", "country": "国家", "asn": "ASN" }, + "abuseipdb": { "title": "AbuseIPDB", "abuseScore": "滥用评分", "totalReports": "举报总数", "isp": "ISP", "usageType": "用途类型", "torExit": "⚠ TOR 出口节点" }, + "shodan": { "title": "Shodan", "openPorts": "开放端口", "cves": "发现的 CVE" }, + "censys": { "titleCert": "Censys — 证书搜索", "titleHost": "Censys — 主机信息", "ip": "IP", "asn": "ASN", "location": "位置", "openPorts": "开放端口", "subdomainsFmt": "子域名({n})", "services": "服务", "port": "端口", "service": "服务", "software": "软件" }, + "darkweb": { "titleFmt": "暗网镜像 — 发现 {n} 个", "sources": "来源" }, + "wayback": { "title": "Wayback Machine", "summaryFmt": "{n} 个快照 · 最早:{first} · 最近:{last}", "recent": "最近快照", "sensitive": "归档中的敏感链接" }, + "emailrep": { "title": "邮箱信誉", "reputation": "信誉", "suspicious": "可疑", "validMx": "有效 MX", "deliverable": "可投递", "spf": "SPF", "dmarc": "DMARC", "domainRep": "域名信誉", "mxRecords": "MX 记录", "disposableWarn": "⚠ 检测到一次性邮箱", "spoofableWarn": "⚠ 域名可被伪造(缺少 SPF/DMARC)", "freeProvider": "免费邮箱服务商" }, + "smtp": { "title": "SMTP 验证", "exists": "存在", "connect": "SMTP 连接", "catchAllWarn": "⚠ 全收服务器(接受任意地址)", "details": "详情" }, + "breaches": { "title": "泄露检查", "found": "发现泄露", "breachedServices": "被泄露的服务", "total": "泄露总数" }, + "dorks": { "title": "Google Dorks" }, + "phone": { "title": "电话情报", "valid": "有效", "country": "国家", "countryCode": "国家代码", "region": "地区", "carrier": "运营商", "lineType": "线路类型", "timezones": "时区", "ownerName": "机主姓名", "address": "地址" }, + "telegram": { "title": "Telegram 资料", "found": "已找到", "username": "用户名", "name": "名称", "bio": "简介", "type": "类型", "followers": "关注者" }, + "map": { "title": "IP 地理位置地图", "ip": "IP", "location": "位置", "organization": "组织", "coordinates": "坐标", "loading": "正在加载地图…", "noData": "无可用地理位置数据", "moreFmt": "发现 {n} 个位置", "precision": "精度", "approximate": "近似(区域级,非精确)" }, + "graph": { "title": "实体图谱", "loading": "正在加载图谱…", "empty": "此扫描无可用图谱数据" }, + "json": { "title": "原始 JSON 结果", "show": "显示原始数据", "hide": "隐藏原始数据", "copyRawJson": "Copy raw JSON" }, + "ai": { "title": "AI OSINT 分析 · Nvidia Nemotron", "chatTitle": "向 AI 提问", "generate": "生成 AI 摘要", "generating": "正在生成分析…", "model": "模型", "regenerate": "重新生成", "placeholder": "询问关于此扫描的任何问题…" }, "duration": "耗时 {duration} 完成", "copyAllFindings": "复制所有发现", "copyAllEmails": "复制所有邮箱", "emailsCopied": "邮箱已复制!", "filterPlatforms": "筛选平台...", "searchGoogle": "在 Google 上搜索", - "sendMessage": "发送消息" + "sendMessage": "发送消息", + "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } }, "watchlist": { "title": "监视列表", @@ -647,4 +383,4 @@ "zh": "ZH", "tr": "TR" } -} \ No newline at end of file +} From 11433d24ce858395031957d14bd6ce1a59bc9190 Mon Sep 17 00:00:00 2001 From: abhijeet nardele <234410808+abhijeetnardele24-hash@users.noreply.github.com> Date: Sat, 10 Oct 2026 13:46:19 +0530 Subject: [PATCH 6/9] fix: resolve TS compilation errors by correctly aliasing t to i18n in all ScanResults components --- frontend/src/components/views/ScanResults.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/views/ScanResults.tsx b/frontend/src/components/views/ScanResults.tsx index a6dad4db..96d8864b 100644 --- a/frontend/src/components/views/ScanResults.tsx +++ b/frontend/src/components/views/ScanResults.tsx @@ -68,7 +68,7 @@ function loadLeaflet(): Promise { } function MapView({ scanId, onCopy }: { scanId: string; onCopy: (value: string) => void }) { - const { t } = useTranslations(); + const { t: i18n } = useTranslations(); const [data, setData] = useState(null); const [error, setError] = useState(''); const mapHostRef = useRef(null); @@ -231,7 +231,7 @@ function GraphLegend() { } function GraphView({ scanId }: { scanId: string }) { - const { t } = useTranslations(); + const { t: i18n } = useTranslations(); const containerRef = useRef(null); const [status, setStatus] = useState<'loading' | 'ready' | 'empty' | 'error'>('loading'); const [error, setError] = useState(''); @@ -358,7 +358,7 @@ function ModuleStatusBadge({ status, label }: { status: ModuleStatus; label?: st } function ModuleNotice({ status, reason }: { status: Exclude; reason?: string }) { - const { t } = useTranslations(); + const { t: i18n } = useTranslations(); const b = STATUS_BADGE[status]; // Skip reasons name the variable they need ("No API key configured (CENSYS_PAT)"); the hint names it too. // A reason that names no variable is about something else (a missing package, say) and already says @@ -504,7 +504,7 @@ class TabErrorBoundary extends React.Component< } } export function ScanResults({ scan, onHome }: Props) { - const { t, locale } = useTranslations(); + const { t: i18n, locale } = useTranslations(); const [tab, setTab] = useState('findings'); const [aiSummary, setAiSummary] = useState(''); const [aiLoading, setAiLoading] = useState(false); From f1e4f241b28491f77e25a12960125f6795e6b3c7 Mon Sep 17 00:00:00 2001 From: abhijeet nardele <234410808+abhijeetnardele24-hash@users.noreply.github.com> Date: Sat, 10 Oct 2026 16:53:07 +0530 Subject: [PATCH 7/9] fix: resolve maintainer review feedback on translations and variable names --- frontend/package-lock.json | 288 +++++++++--------- frontend/src/components/views/ScanResults.tsx | 22 +- frontend/src/messages/de.json | 2 +- frontend/src/messages/es.json | 2 +- frontend/src/messages/fr.json | 2 +- frontend/src/messages/it.json | 2 +- frontend/src/messages/pl.json | 2 +- frontend/src/messages/pt.json | 2 +- frontend/src/messages/ru.json | 2 +- frontend/src/messages/tr.json | 2 +- frontend/src/messages/zh.json | 2 +- 11 files changed, 163 insertions(+), 165 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index dee49a59..fcc2ef80 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "prism-frontend", - "version": "2.12.1", + "version": "2.11.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "prism-frontend", - "version": "2.12.1", + "version": "2.11.0", "dependencies": { "clsx": "^2.1.1", "lucide-react": "^0.577.0", @@ -71,7 +71,6 @@ "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", @@ -555,9 +554,9 @@ } }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.5.tgz", - "integrity": "sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.4.tgz", + "integrity": "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==", "cpu": [ "arm64" ], @@ -573,13 +572,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.3.4" + "@img/sharp-libvips-darwin-arm64": "1.3.3" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.5.tgz", - "integrity": "sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.4.tgz", + "integrity": "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==", "cpu": [ "x64" ], @@ -595,20 +594,20 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.3.4" + "@img/sharp-libvips-darwin-x64": "1.3.3" } }, "node_modules/@img/sharp-freebsd-wasm32": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.5.tgz", - "integrity": "sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.4.tgz", + "integrity": "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==", "license": "Apache-2.0", "optional": true, "os": [ "freebsd" ], "dependencies": { - "@img/sharp-wasm32": "0.35.5" + "@img/sharp-wasm32": "0.35.4" }, "engines": { "node": ">=20.9.0" @@ -618,9 +617,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.4.tgz", - "integrity": "sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.3.tgz", + "integrity": "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==", "cpu": [ "arm64" ], @@ -634,9 +633,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.4.tgz", - "integrity": "sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.3.tgz", + "integrity": "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==", "cpu": [ "x64" ], @@ -650,9 +649,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.4.tgz", - "integrity": "sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.3.tgz", + "integrity": "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==", "cpu": [ "arm" ], @@ -666,9 +665,9 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.4.tgz", - "integrity": "sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.3.tgz", + "integrity": "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==", "cpu": [ "arm64" ], @@ -682,9 +681,9 @@ } }, "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.4.tgz", - "integrity": "sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.3.tgz", + "integrity": "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==", "cpu": [ "ppc64" ], @@ -698,9 +697,9 @@ } }, "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.4.tgz", - "integrity": "sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.3.tgz", + "integrity": "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==", "cpu": [ "riscv64" ], @@ -714,9 +713,9 @@ } }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.4.tgz", - "integrity": "sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.3.tgz", + "integrity": "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==", "cpu": [ "s390x" ], @@ -730,9 +729,9 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.4.tgz", - "integrity": "sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.3.tgz", + "integrity": "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==", "cpu": [ "x64" ], @@ -746,9 +745,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.4.tgz", - "integrity": "sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.3.tgz", + "integrity": "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==", "cpu": [ "arm64" ], @@ -762,9 +761,9 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.4.tgz", - "integrity": "sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.3.tgz", + "integrity": "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==", "cpu": [ "x64" ], @@ -778,9 +777,9 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.5.tgz", - "integrity": "sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.4.tgz", + "integrity": "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==", "cpu": [ "arm" ], @@ -796,13 +795,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.3.4" + "@img/sharp-libvips-linux-arm": "1.3.3" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.5.tgz", - "integrity": "sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.4.tgz", + "integrity": "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==", "cpu": [ "arm64" ], @@ -818,13 +817,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.3.4" + "@img/sharp-libvips-linux-arm64": "1.3.3" } }, "node_modules/@img/sharp-linux-ppc64": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.5.tgz", - "integrity": "sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.4.tgz", + "integrity": "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==", "cpu": [ "ppc64" ], @@ -840,13 +839,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.3.4" + "@img/sharp-libvips-linux-ppc64": "1.3.3" } }, "node_modules/@img/sharp-linux-riscv64": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.5.tgz", - "integrity": "sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.4.tgz", + "integrity": "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==", "cpu": [ "riscv64" ], @@ -862,13 +861,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.3.4" + "@img/sharp-libvips-linux-riscv64": "1.3.3" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.5.tgz", - "integrity": "sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.4.tgz", + "integrity": "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==", "cpu": [ "s390x" ], @@ -884,13 +883,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.3.4" + "@img/sharp-libvips-linux-s390x": "1.3.3" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.5.tgz", - "integrity": "sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.4.tgz", + "integrity": "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==", "cpu": [ "x64" ], @@ -906,13 +905,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.3.4" + "@img/sharp-libvips-linux-x64": "1.3.3" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.5.tgz", - "integrity": "sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.4.tgz", + "integrity": "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==", "cpu": [ "arm64" ], @@ -928,13 +927,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.3.4" + "@img/sharp-libvips-linuxmusl-arm64": "1.3.3" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.5.tgz", - "integrity": "sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.4.tgz", + "integrity": "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==", "cpu": [ "x64" ], @@ -950,13 +949,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.3.4" + "@img/sharp-libvips-linuxmusl-x64": "1.3.3" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.5.tgz", - "integrity": "sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.4.tgz", + "integrity": "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==", "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { @@ -970,16 +969,16 @@ } }, "node_modules/@img/sharp-webcontainers-wasm32": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.5.tgz", - "integrity": "sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.4.tgz", + "integrity": "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==", "cpu": [ "wasm32" ], "license": "Apache-2.0", "optional": true, "dependencies": { - "@img/sharp-wasm32": "0.35.5" + "@img/sharp-wasm32": "0.35.4" }, "engines": { "node": ">=20.9.0" @@ -989,9 +988,9 @@ } }, "node_modules/@img/sharp-win32-arm64": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.5.tgz", - "integrity": "sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.4.tgz", + "integrity": "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==", "cpu": [ "arm64" ], @@ -1008,9 +1007,9 @@ } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.5.tgz", - "integrity": "sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.4.tgz", + "integrity": "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==", "cpu": [ "ia32" ], @@ -1027,9 +1026,9 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.5.tgz", - "integrity": "sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.4.tgz", + "integrity": "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==", "cpu": [ "x64" ], @@ -1194,6 +1193,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1210,6 +1212,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1226,6 +1231,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -1242,6 +1250,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -1380,9 +1391,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.6.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.4.tgz", - "integrity": "sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==", + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.3.tgz", + "integrity": "sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==", "dev": true, "license": "MIT", "dependencies": { @@ -1395,7 +1406,6 @@ "integrity": "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -1455,7 +1465,6 @@ "integrity": "sha512-zYvrmj9Yxd63UGaXw+kdt6A0F0s0qveJyuatIM77bYC2DE4pgmg7a50u8LR7PRtXd0x+h+Tl3eXabGm06SWd3Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.70.0", "@typescript-eslint/types": "8.70.0", @@ -1968,7 +1977,6 @@ "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2390,7 +2398,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.11.23", "caniuse-lite": "^1.0.30001810", @@ -3027,7 +3034,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -3213,7 +3219,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -4498,7 +4503,6 @@ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, "license": "MIT", - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -5253,9 +5257,9 @@ } }, "node_modules/postcss": { - "version": "8.5.29", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.29.tgz", - "integrity": "sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ==", + "version": "8.5.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", + "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", "dev": true, "funding": [ { @@ -5272,11 +5276,10 @@ } ], "license": "MIT", - "peer": true, "dependencies": { - "nanoid": "^3.3.19", + "nanoid": "^3.3.18", "picocolors": "^1.1.1", - "source-map-js": "^1.2.2" + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -5474,7 +5477,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -5484,7 +5486,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.28.0" }, @@ -5766,9 +5767,9 @@ } }, "node_modules/sharp": { - "version": "0.35.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.5.tgz", - "integrity": "sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==", + "version": "0.35.4", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz", + "integrity": "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -5783,31 +5784,31 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.35.5", - "@img/sharp-darwin-x64": "0.35.5", - "@img/sharp-freebsd-wasm32": "0.35.5", - "@img/sharp-libvips-darwin-arm64": "1.3.4", - "@img/sharp-libvips-darwin-x64": "1.3.4", - "@img/sharp-libvips-linux-arm": "1.3.4", - "@img/sharp-libvips-linux-arm64": "1.3.4", - "@img/sharp-libvips-linux-ppc64": "1.3.4", - "@img/sharp-libvips-linux-riscv64": "1.3.4", - "@img/sharp-libvips-linux-s390x": "1.3.4", - "@img/sharp-libvips-linux-x64": "1.3.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.3.4", - "@img/sharp-libvips-linuxmusl-x64": "1.3.4", - "@img/sharp-linux-arm": "0.35.5", - "@img/sharp-linux-arm64": "0.35.5", - "@img/sharp-linux-ppc64": "0.35.5", - "@img/sharp-linux-riscv64": "0.35.5", - "@img/sharp-linux-s390x": "0.35.5", - "@img/sharp-linux-x64": "0.35.5", - "@img/sharp-linuxmusl-arm64": "0.35.5", - "@img/sharp-linuxmusl-x64": "0.35.5", - "@img/sharp-webcontainers-wasm32": "0.35.5", - "@img/sharp-win32-arm64": "0.35.5", - "@img/sharp-win32-ia32": "0.35.5", - "@img/sharp-win32-x64": "0.35.5" + "@img/sharp-darwin-arm64": "0.35.4", + "@img/sharp-darwin-x64": "0.35.4", + "@img/sharp-freebsd-wasm32": "0.35.4", + "@img/sharp-libvips-darwin-arm64": "1.3.3", + "@img/sharp-libvips-darwin-x64": "1.3.3", + "@img/sharp-libvips-linux-arm": "1.3.3", + "@img/sharp-libvips-linux-arm64": "1.3.3", + "@img/sharp-libvips-linux-ppc64": "1.3.3", + "@img/sharp-libvips-linux-riscv64": "1.3.3", + "@img/sharp-libvips-linux-s390x": "1.3.3", + "@img/sharp-libvips-linux-x64": "1.3.3", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.3", + "@img/sharp-libvips-linuxmusl-x64": "1.3.3", + "@img/sharp-linux-arm": "0.35.4", + "@img/sharp-linux-arm64": "0.35.4", + "@img/sharp-linux-ppc64": "0.35.4", + "@img/sharp-linux-riscv64": "0.35.4", + "@img/sharp-linux-s390x": "0.35.4", + "@img/sharp-linux-x64": "0.35.4", + "@img/sharp-linuxmusl-arm64": "0.35.4", + "@img/sharp-linuxmusl-x64": "0.35.4", + "@img/sharp-webcontainers-wasm32": "0.35.4", + "@img/sharp-win32-arm64": "0.35.4", + "@img/sharp-win32-ia32": "0.35.4", + "@img/sharp-win32-x64": "0.35.4" }, "peerDependenciesMeta": { "@types/node": { @@ -5915,9 +5916,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", - "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -6254,7 +6255,6 @@ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -6411,7 +6411,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -6694,7 +6693,6 @@ "integrity": "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/frontend/src/components/views/ScanResults.tsx b/frontend/src/components/views/ScanResults.tsx index 96d8864b..b092e230 100644 --- a/frontend/src/components/views/ScanResults.tsx +++ b/frontend/src/components/views/ScanResults.tsx @@ -68,7 +68,7 @@ function loadLeaflet(): Promise { } function MapView({ scanId, onCopy }: { scanId: string; onCopy: (value: string) => void }) { - const { t: i18n } = useTranslations(); + const { t } = useTranslations(); const [data, setData] = useState(null); const [error, setError] = useState(''); const mapHostRef = useRef(null); @@ -154,7 +154,7 @@ function MapView({ scanId, onCopy }: { scanId: string; onCopy: (value: string) = }, []); if (error) return
{error}
; - if (!data) return
{i18n('results.map.loading')}
; + if (!data) return
{t('results.map.loading')}
; if (!data.markers?.length) { if (data.info && (data.info.country || data.info.carrier || data.info.region)) { return ( @@ -168,7 +168,7 @@ function MapView({ scanId, onCopy }: { scanId: string; onCopy: (value: string) =
); } - return
{i18n('results.map.noData')}
; + return
{t('results.map.noData')}
; } const m = data.markers[0]; @@ -182,7 +182,7 @@ function MapView({ scanId, onCopy }: { scanId: string; onCopy: (value: string) = IP
{m.ip} - onCopy(m.ip ?? '')} label={i18n('results.fields.copyIp')} /> + onCopy(m.ip ?? '')} label={t('results.fields.copyIp')} />
)} @@ -231,7 +231,7 @@ function GraphLegend() { } function GraphView({ scanId }: { scanId: string }) { - const { t: i18n } = useTranslations(); + const { t } = useTranslations(); const containerRef = useRef(null); const [status, setStatus] = useState<'loading' | 'ready' | 'empty' | 'error'>('loading'); const [error, setError] = useState(''); @@ -275,11 +275,11 @@ function GraphView({ scanId }: { scanId: string }) { return (
- {status === 'loading' &&
{i18n('results.graph.loading')}
} + {status === 'loading' &&
{t('results.graph.loading')}
} {status === 'empty' && (
-
{i18n('results.graph.empty')}
+
{t('results.graph.empty')}
)} {status === 'error' &&
{error}
} @@ -358,20 +358,20 @@ function ModuleStatusBadge({ status, label }: { status: ModuleStatus; label?: st } function ModuleNotice({ status, reason }: { status: Exclude; reason?: string }) { - const { t: i18n } = useTranslations(); + const { t } = useTranslations(); const b = STATUS_BADGE[status]; // Skip reasons name the variable they need ("No API key configured (CENSYS_PAT)"); the hint names it too. // A reason that names no variable is about something else (a missing package, say) and already says // what to do, so the generic hint is only for a skip that came without a reason. const envKey = reason?.match(/\b[A-Z][A-Z0-9]*_[A-Z0-9_]+\b/)?.[0]; const hint = envKey - ? i18n('results.common.skippedKeyHint').replace('{key}', envKey) - : reason ? null : i18n('results.common.skippedHint'); + ? t('results.common.skippedKeyHint').replace('{key}', envKey) + : reason ? null : t('results.common.skippedHint'); return (
{reason || b.hint} {status === 'skipped' && hint && - {hint}} - {status === 'error' &&
{i18n('results.common.moduleRetry')}
} + {status === 'error' &&
{t('results.common.moduleRetry')}
}
); } diff --git a/frontend/src/messages/de.json b/frontend/src/messages/de.json index e624e799..2ae00651 100644 --- a/frontend/src/messages/de.json +++ b/frontend/src/messages/de.json @@ -327,7 +327,7 @@ "filterPlatforms": "Plattformen filtern...", "searchGoogle": "Bei Google suchen", "sendMessage": "Nachricht senden", - "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } + "fields": {"copyIp": "IP kopieren", "copyTarget": "Ziel kopieren", "copyEmail": "E-Mail kopieren", "copyDomain": "Domain kopieren", "copyDnsRecord": "DNS-Eintrag kopieren", "copySubdomain": "Subdomain kopieren", "copyUsernameUrl": "URL kopieren", "copyShodanPort": "Port kopieren", "copyPort": "Port kopieren", "copyOnionUrl": ".onion-Adresse kopieren", "copySummary": "Zusammenfassung kopieren", "company": "Unternehmen", "location": "Standort", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Öffentliche Repos", "totalStars": "Sterne insgesamt", "joined": "Beigetreten", "displayName": "Anzeigename", "totalCompromised": "Insgesamt kompromittiert", "employees": "Mitarbeiter", "users": "Benutzer", "thirdParties": "Dritte", "passwordsAnalysed": "Analysierte Passwörter", "tooWeak": "Zu schwach", "weak": "Schwach", "strong": "Stark", "recordsFound": "Gefundene Einträge", "corporateServices": "Unternehmensdienste", "userServices": "Benutzerdienste", "period": "Zeitraum", "totalEvents": "Ereignisse insgesamt", "infostealerEvents": "Infostealer-Ereignisse", "dataBreachEvents": "Datenleck-Ereignisse", "employeeEvents": "Mitarbeiter-Ereignisse", "clientEvents": "Kunden-Ereignisse", "firstSeen": "Zuerst gesehen", "lastSeen": "Zuletzt gesehen"} }, "watchlist": { "title": "Watchlists", diff --git a/frontend/src/messages/es.json b/frontend/src/messages/es.json index b3942d4a..7704143a 100644 --- a/frontend/src/messages/es.json +++ b/frontend/src/messages/es.json @@ -161,7 +161,7 @@ "filterPlatforms": "Filtrar plataformas...", "searchGoogle": "Buscar en Google", "sendMessage": "Enviar mensaje", - "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } + "fields": {"copyIp": "Copiar IP", "copyTarget": "Copiar objetivo", "copyEmail": "Copiar email", "copyDomain": "Copiar dominio", "copyDnsRecord": "Copiar registro DNS", "copySubdomain": "Copiar subdominio", "copyUsernameUrl": "Copiar URL", "copyShodanPort": "Copiar puerto", "copyPort": "Copiar puerto", "copyOnionUrl": "Copiar dirección .onion", "copySummary": "Copiar resumen", "company": "Empresa", "location": "Ubicación", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Repos públicos", "totalStars": "Estrellas totales", "joined": "Unido", "displayName": "Nombre para mostrar", "totalCompromised": "Total comprometidos", "employees": "Empleados", "users": "Usuarios", "thirdParties": "Terceros", "passwordsAnalysed": "Contraseñas analizadas", "tooWeak": "Demasiado débil", "weak": "Débil", "strong": "Fuerte", "recordsFound": "Registros encontrados", "corporateServices": "Servicios corporativos", "userServices": "Servicios de usuario", "period": "Período", "totalEvents": "Eventos totales", "infostealerEvents": "Eventos de infostealer", "dataBreachEvents": "Eventos de brecha de datos", "employeeEvents": "Eventos de empleados", "clientEvents": "Eventos de clientes", "firstSeen": "Visto por primera vez", "lastSeen": "Visto por última vez"} }, "toolPanels": { "back": "Volver", diff --git a/frontend/src/messages/fr.json b/frontend/src/messages/fr.json index 3a141623..025aea6f 100644 --- a/frontend/src/messages/fr.json +++ b/frontend/src/messages/fr.json @@ -205,7 +205,7 @@ "filterPlatforms": "Filtrer les plateformes...", "searchGoogle": "Rechercher sur Google", "sendMessage": "Envoyer le message", - "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } + "fields": {"copyIp": "Copier l'IP", "copyTarget": "Copier la cible", "copyEmail": "Copier l'e-mail", "copyDomain": "Copier le domaine", "copyDnsRecord": "Copier l'enregistrement DNS", "copySubdomain": "Copier le sous-domaine", "copyUsernameUrl": "Copier l'URL", "copyShodanPort": "Copier le port", "copyPort": "Copier le port", "copyOnionUrl": "Copier l'adresse .onion", "copySummary": "Copier le résumé", "company": "Entreprise", "location": "Emplacement", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Dépôts publics", "totalStars": "Total des étoiles", "joined": "Inscrit", "displayName": "Nom d'affichage", "totalCompromised": "Total compromis", "employees": "Employés", "users": "Utilisateurs", "thirdParties": "Tiers", "passwordsAnalysed": "Mots de passe analysés", "tooWeak": "Trop faible", "weak": "Faible", "strong": "Fort", "recordsFound": "Enregistrements trouvés", "corporateServices": "Services d'entreprise", "userServices": "Services utilisateurs", "period": "Période", "totalEvents": "Total des événements", "infostealerEvents": "Événements infostealer", "dataBreachEvents": "Événements de violation de données", "employeeEvents": "Événements employés", "clientEvents": "Événements clients", "firstSeen": "Vu pour la première fois", "lastSeen": "Vu pour la dernière fois"} }, "toolPanels": { "back": "Retour", diff --git a/frontend/src/messages/it.json b/frontend/src/messages/it.json index 3ed0fcd8..71c5769b 100644 --- a/frontend/src/messages/it.json +++ b/frontend/src/messages/it.json @@ -327,7 +327,7 @@ "filterPlatforms": "Filtra piattaforme...", "searchGoogle": "Cerca su Google", "sendMessage": "Invia messaggio", - "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } + "fields": {"copyIp": "Copia IP", "copyTarget": "Copia obiettivo", "copyEmail": "Copia email", "copyDomain": "Copia dominio", "copyDnsRecord": "Copia record DNS", "copySubdomain": "Copia sottodominio", "copyUsernameUrl": "Copia URL", "copyShodanPort": "Copia porta", "copyPort": "Copia porta", "copyOnionUrl": "Copia indirizzo .onion", "copySummary": "Copia riepilogo", "company": "Azienda", "location": "Posizione", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Repo pubblici", "totalStars": "Stelle totali", "joined": "Iscritto", "displayName": "Nome visualizzato", "totalCompromised": "Totale compromessi", "employees": "Dipendenti", "users": "Utenti", "thirdParties": "Terze parti", "passwordsAnalysed": "Password analizzate", "tooWeak": "Troppo debole", "weak": "Debole", "strong": "Forte", "recordsFound": "Record trovati", "corporateServices": "Servizi aziendali", "userServices": "Servizi utente", "period": "Periodo", "totalEvents": "Eventi totali", "infostealerEvents": "Eventi infostealer", "dataBreachEvents": "Eventi di violazione", "employeeEvents": "Eventi dipendenti", "clientEvents": "Eventi clienti", "firstSeen": "Visto per la prima volta", "lastSeen": "Visto per l'ultima volta"} }, "watchlist": { "title": "Liste di osservazione", diff --git a/frontend/src/messages/pl.json b/frontend/src/messages/pl.json index 2eef1d94..b9c754aa 100644 --- a/frontend/src/messages/pl.json +++ b/frontend/src/messages/pl.json @@ -526,7 +526,7 @@ "filterPlatforms": "Filtruj platformy...", "searchGoogle": "Szukaj w Google", "sendMessage": "Wyślij wiadomość", - "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } + "fields": {"copyIp": "Kopiuj IP", "copyTarget": "Kopiuj cel", "copyEmail": "Kopiuj e-mail", "copyDomain": "Kopiuj domenę", "copyDnsRecord": "Kopiuj rekord DNS", "copySubdomain": "Kopiuj subdomenę", "copyUsernameUrl": "Kopiuj URL", "copyShodanPort": "Kopiuj port", "copyPort": "Kopiuj port", "copyOnionUrl": "Kopiuj adres .onion", "copySummary": "Kopiuj podsumowanie", "company": "Firma", "location": "Lokalizacja", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Publiczne repozytoria", "totalStars": "Wszystkie gwiazdki", "joined": "Dołączył(a)", "displayName": "Wyświetlana nazwa", "totalCompromised": "Łącznie skompromitowanych", "employees": "Pracownicy", "users": "Użytkownicy", "thirdParties": "Osoby trzecie", "passwordsAnalysed": "Przeanalizowane hasła", "tooWeak": "Zbyt słabe", "weak": "Słabe", "strong": "Silne", "recordsFound": "Znalezione rekordy", "corporateServices": "Usługi korporacyjne", "userServices": "Usługi użytkownika", "period": "Okres", "totalEvents": "Wszystkie zdarzenia", "infostealerEvents": "Zdarzenia infostealer", "dataBreachEvents": "Zdarzenia wycieku danych", "employeeEvents": "Zdarzenia pracowników", "clientEvents": "Zdarzenia klientów", "firstSeen": "Widziany po raz pierwszy", "lastSeen": "Widziany po raz ostatni"} }, "watchlist": { "title": "Listy obserwowanych", diff --git a/frontend/src/messages/pt.json b/frontend/src/messages/pt.json index 7a53eebb..e6def2bc 100644 --- a/frontend/src/messages/pt.json +++ b/frontend/src/messages/pt.json @@ -327,7 +327,7 @@ "filterPlatforms": "Filtrar plataformas...", "searchGoogle": "Pesquisar no Google", "sendMessage": "Enviar mensagem", - "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } + "fields": {"copyIp": "Copiar IP", "copyTarget": "Copiar alvo", "copyEmail": "Copiar e-mail", "copyDomain": "Copiar domínio", "copyDnsRecord": "Copiar registro DNS", "copySubdomain": "Copiar subdomínio", "copyUsernameUrl": "Copiar URL", "copyShodanPort": "Copiar porta", "copyPort": "Copiar porta", "copyOnionUrl": "Copiar endereço .onion", "copySummary": "Copiar resumo", "company": "Empresa", "location": "Localização", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Repositórios Públicos", "totalStars": "Total de Estrelas", "joined": "Entrou", "displayName": "Nome de exibição", "totalCompromised": "Total Comprometido", "employees": "Funcionários", "users": "Usuários", "thirdParties": "Terceiros", "passwordsAnalysed": "Senhas Analisadas", "tooWeak": "Muito fraca", "weak": "Fraca", "strong": "Forte", "recordsFound": "Registros Encontrados", "corporateServices": "Serviços Corporativos", "userServices": "Serviços de Usuário", "period": "Período", "totalEvents": "Total de Eventos", "infostealerEvents": "Eventos de Infostealer", "dataBreachEvents": "Eventos de Vazamento", "employeeEvents": "Eventos de Funcionários", "clientEvents": "Eventos de Clientes", "firstSeen": "Visto pela primeira vez", "lastSeen": "Visto pela última vez"} }, "watchlist": { "title": "Listas de monitoramento", diff --git a/frontend/src/messages/ru.json b/frontend/src/messages/ru.json index 67fee50d..c157c7f3 100644 --- a/frontend/src/messages/ru.json +++ b/frontend/src/messages/ru.json @@ -327,7 +327,7 @@ "filterPlatforms": "Фильтр по платформам…", "searchGoogle": "Искать в Google", "sendMessage": "Отправить сообщение", - "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Копировать email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Скопировать .onion-адрес", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } + "fields": {"copyIp": "Копировать IP", "copyTarget": "Копировать цель", "copyEmail": "Копировать email", "copyDomain": "Копировать домен", "copyDnsRecord": "Копировать DNS запись", "copySubdomain": "Копировать поддомен", "copyUsernameUrl": "Копировать URL", "copyShodanPort": "Копировать порт", "copyPort": "Копировать порт", "copyOnionUrl": "Копировать .onion URL", "copySummary": "Копировать сводку", "company": "Компания", "location": "Локация", "blog": "Блог", "twitter": "Twitter", "publicRepos": "Публичные репозитории", "totalStars": "Всего звезд", "joined": "Присоединился", "displayName": "Отображаемое имя", "totalCompromised": "Всего скомпрометировано", "employees": "Сотрудники", "users": "Пользователи", "thirdParties": "Третьи стороны", "passwordsAnalysed": "Проанализировано паролей", "tooWeak": "Слишком слабый", "weak": "Слабый", "strong": "Сильный", "recordsFound": "Найдено записей", "corporateServices": "Корпоративные сервисы", "userServices": "Пользовательские сервисы", "period": "Период", "totalEvents": "Всего событий", "infostealerEvents": "События Infostealer", "dataBreachEvents": "События утечки", "employeeEvents": "События сотрудников", "clientEvents": "События клиентов", "firstSeen": "Впервые замечен", "lastSeen": "Последний раз замечен"} }, "watchlist": { "title": "Списки наблюдения", diff --git a/frontend/src/messages/tr.json b/frontend/src/messages/tr.json index 7ae36f78..3f46eb0f 100644 --- a/frontend/src/messages/tr.json +++ b/frontend/src/messages/tr.json @@ -327,7 +327,7 @@ "filterPlatforms": "Platformları filtrele...", "searchGoogle": "Google'da ara", "sendMessage": "Mesaj gönder", - "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } + "fields": {"copyIp": "IP kopyala", "copyTarget": "Hedefi kopyala", "copyEmail": "E-postayı kopyala", "copyDomain": "Alan adını kopyala", "copyDnsRecord": "DNS kaydını kopyala", "copySubdomain": "Alt alan adını kopyala", "copyUsernameUrl": "URL kopyala", "copyShodanPort": "Port kopyala", "copyPort": "Port kopyala", "copyOnionUrl": ".onion adresini kopyala", "copySummary": "Özeti kopyala", "company": "Şirket", "location": "Konum", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Herkese Açık Depolar", "totalStars": "Toplam Yıldız", "joined": "Katıldı", "displayName": "Görünen Ad", "totalCompromised": "Toplam İhlal", "employees": "Çalışanlar", "users": "Kullanıcılar", "thirdParties": "Üçüncü Taraflar", "passwordsAnalysed": "Analiz Edilen Şifreler", "tooWeak": "Çok Zayıf", "weak": "Zayıf", "strong": "Güçlü", "recordsFound": "Bulunan Kayıtlar", "corporateServices": "Kurumsal Hizmetler", "userServices": "Kullanıcı Hizmetleri", "period": "Dönem", "totalEvents": "Toplam Olay", "infostealerEvents": "Infostealer Olayları", "dataBreachEvents": "Veri İhlali Olayları", "employeeEvents": "Çalışan Olayları", "clientEvents": "Müşteri Olayları", "firstSeen": "İlk Görülme", "lastSeen": "Son Görülme"} }, "watchlist": { "title": "İzleme Listeleri", diff --git a/frontend/src/messages/zh.json b/frontend/src/messages/zh.json index d1a93b1c..2e95fc51 100644 --- a/frontend/src/messages/zh.json +++ b/frontend/src/messages/zh.json @@ -327,7 +327,7 @@ "filterPlatforms": "筛选平台...", "searchGoogle": "在 Google 上搜索", "sendMessage": "发送消息", - "fields": { "copyIp": "Copy IP", "copyTarget": "Copy target", "copyEmail": "Copy email", "copyDomain": "Copy domain", "copyDnsRecord": "Copy DNS record", "copySubdomain": "Copy subdomain", "copyUsernameUrl": "Copy URL", "copyShodanPort": "Copy port", "copyPort": "Copy port", "copyOnionUrl": "Copy .onion address", "copySummary": "Copy summary", "company": "Company", "location": "Location", "blog": "Blog", "twitter": "Twitter", "publicRepos": "Public Repos", "totalStars": "Total Stars", "joined": "Joined", "displayName": "Display Name", "totalCompromised": "Total Compromised", "employees": "Employees", "users": "Users", "thirdParties": "Third Parties", "passwordsAnalysed": "Passwords Analysed", "tooWeak": "Too Weak", "weak": "Weak", "strong": "Strong", "recordsFound": "Records Found", "corporateServices": "Corporate Services", "userServices": "User Services", "period": "Period", "totalEvents": "Total Events", "infostealerEvents": "Infostealer Events", "dataBreachEvents": "Data Breach Events", "employeeEvents": "Employee Events", "clientEvents": "Client Events", "firstSeen": "First Seen", "lastSeen": "Last Seen" } + "fields": {"copyIp": "复制 IP", "copyTarget": "复制目标", "copyEmail": "复制邮箱", "copyDomain": "复制域名", "copyDnsRecord": "复制 DNS 记录", "copySubdomain": "复制子域名", "copyUsernameUrl": "复制 URL", "copyShodanPort": "复制端口", "copyPort": "复制端口", "copyOnionUrl": "复制 .onion 地址", "copySummary": "复制摘要", "company": "公司", "location": "位置", "blog": "博客", "twitter": "推特", "publicRepos": "公开仓库", "totalStars": "总星标", "joined": "加入时间", "displayName": "显示名称", "totalCompromised": "总泄露", "employees": "员工", "users": "用户", "thirdParties": "第三方", "passwordsAnalysed": "分析的密码", "tooWeak": "太弱", "weak": "弱", "strong": "强", "recordsFound": "找到的记录", "corporateServices": "企业服务", "userServices": "用户服务", "period": "期间", "totalEvents": "总事件", "infostealerEvents": "信息窃取事件", "dataBreachEvents": "数据泄露事件", "employeeEvents": "员工事件", "clientEvents": "客户事件", "firstSeen": "首次发现", "lastSeen": "最后发现"} }, "watchlist": { "title": "监视列表", From e6c11563accebbd052109cae1518c1b5213485a4 Mon Sep 17 00:00:00 2001 From: abhijeet nardele <234410808+abhijeetnardele24-hash@users.noreply.github.com> Date: Sat, 10 Oct 2026 16:57:25 +0530 Subject: [PATCH 8/9] fix: sync package-lock.json version with package.json --- frontend/package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index fcc2ef80..8a1fd237 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "prism-frontend", - "version": "2.11.0", + "version": "2.12.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "prism-frontend", - "version": "2.11.0", + "version": "2.12.1", "dependencies": { "clsx": "^2.1.1", "lucide-react": "^0.577.0", From 9186d866a958633cb7b1e7cd74b9f2d4e237acb7 Mon Sep 17 00:00:00 2001 From: Saveliy Golubev Date: Mon, 12 Oct 2026 23:12:43 +0500 Subject: [PATCH 9/9] Keep package-lock.json as on main --- frontend/package-lock.json | 306 +++++++++++++++++++++---------------- 1 file changed, 177 insertions(+), 129 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 8a1fd237..819af8cb 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -554,9 +554,9 @@ } }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.4.tgz", - "integrity": "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.5.tgz", + "integrity": "sha512-QRUlFQ0WxvdWyqqG/WtI3iupfD5rBzmCHXSdPsY91sAtVtTo7Q4cb6zOccZ3gqEqkr0f1As1ehLqmEpDsRf+lg==", "cpu": [ "arm64" ], @@ -572,13 +572,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.3.3" + "@img/sharp-libvips-darwin-arm64": "1.3.4" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.4.tgz", - "integrity": "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.5.tgz", + "integrity": "sha512-+BR255RhDlpygUpOc/Jdt1nT6DQ3XG/ERo5wbcdOf5Q320dKtPCKPLR1LJs9VGXRaMa8l1uUa0tkCNOXiAxZUw==", "cpu": [ "x64" ], @@ -594,20 +594,20 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.3.3" + "@img/sharp-libvips-darwin-x64": "1.3.4" } }, "node_modules/@img/sharp-freebsd-wasm32": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.4.tgz", - "integrity": "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.5.tgz", + "integrity": "sha512-Y/z91nEZ4uIBX5X3nfTovjU9lHNKFYbL2lpHCLVNmXQK03VIZvXBBt0KxbPGp2SdGSF+2mQU4e+hQaWOt86iAw==", "license": "Apache-2.0", "optional": true, "os": [ "freebsd" ], "dependencies": { - "@img/sharp-wasm32": "0.35.4" + "@img/sharp-wasm32": "0.35.5" }, "engines": { "node": ">=20.9.0" @@ -617,9 +617,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.3.tgz", - "integrity": "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.4.tgz", + "integrity": "sha512-5R89nBYiRdUlSWJxPhO+GVtaXzXSxKnRu/xqMn3KTA3L9EB9Oy/P+Nn2f2vlhPuUdy/Zusb2DarbyTpGCfEDuw==", "cpu": [ "arm64" ], @@ -633,9 +633,9 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.3.tgz", - "integrity": "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.4.tgz", + "integrity": "sha512-iR2OKH80yi0U+dUplyh3/xdpFvps6YkCwsXenIJxqxR1v9o+xtKTGbS9H7cps+2Vxjc8B1j96p75NmTGjIhtpQ==", "cpu": [ "x64" ], @@ -649,12 +649,15 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.3.tgz", - "integrity": "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.4.tgz", + "integrity": "sha512-LmRtTsOHuvM2+wlO2Db37dx5MiZhB0FvSunciw48YjdOkZz9KAiRbm8ujeMOA1INqmei5NapFxYEK1D1ZSidmw==", "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -665,12 +668,15 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.3.tgz", - "integrity": "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.4.tgz", + "integrity": "sha512-Y3dgX/6lE2QhQb+Gxy0WZxfg9MEm/JBjamZpS2IklP7xIQoKN4hzAm7KcMVGtaVDt3neE9OKBC7vAfonA/Lr1A==", "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -681,12 +687,15 @@ } }, "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.3.tgz", - "integrity": "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.4.tgz", + "integrity": "sha512-Le6boB8Tai0Nis+gIxIpKx68UDVVIqdR8Tin5Yf1z2LJJQLDJvCDRqRu+jC2qCoD+eIomonmOwB4smBRxfVpYQ==", "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -697,12 +706,15 @@ } }, "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.3.tgz", - "integrity": "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.4.tgz", + "integrity": "sha512-aHkkIEHPRdQEegJN20MLmGtxYD9R2wQr3Cwpddnu5+YKMt6Uzax7S9h5gpZTo8wyrGuZSlfQ63OevL5mTyOC7Q==", "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -713,12 +725,15 @@ } }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.3.tgz", - "integrity": "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.4.tgz", + "integrity": "sha512-ra/mB6MikESDUO7Yg+Mi95bFBb9GsObURuhnOv3OqknjGe9sZrG8tCe9q0xSIGrtLgvgw0gKnFWcK4blSgQOuQ==", "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -729,12 +744,15 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.3.tgz", - "integrity": "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.4.tgz", + "integrity": "sha512-GJ//SSXbnwSDes02umB3nDJLFcQzw8a18V8fyhqr6tV515tOEMdImjjxj1AoafMRz56F3PHgftnj1QEKSU1zkw==", "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -745,12 +763,15 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.3.tgz", - "integrity": "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.4.tgz", + "integrity": "sha512-hvulFwtjUcagsis6BBxHwGFwWoNZjgYmULGVrZcyfNbjA8hKILbRxGg15/7w5HDyXHXUos/j6baAWqnCyQ2DWA==", "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -761,12 +782,15 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.3.tgz", - "integrity": "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.4.tgz", + "integrity": "sha512-6zXKeE/p39I1AmA3cJG35eyBGNqNddLnUXjhwBnsGjFPWqf5VKkDBEqaEkPDoTEtkxwi2vv8Tcr2mDyP4So7Fg==", "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -777,12 +801,15 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.4.tgz", - "integrity": "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.5.tgz", + "integrity": "sha512-LEaXK2WdXVK5ykcw0buWyPMsmLLL2vpHLD6yrNSW+JGEL3BZPA4tpKN6iaMc4AxTTAoaX/sU1rOL51lcIz48ZQ==", "cpu": [ "arm" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -795,16 +822,19 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.3.3" + "@img/sharp-libvips-linux-arm": "1.3.4" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.4.tgz", - "integrity": "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.5.tgz", + "integrity": "sha512-LYVx5JTsOM2CBzmxreh+nl64/3H6Xb09iSLknqH47z2T2DFFxDeFLP5y4dJwe6H7uGQlHPyEEtIqyo3DYsRwdQ==", "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -817,16 +847,19 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.3.3" + "@img/sharp-libvips-linux-arm64": "1.3.4" } }, "node_modules/@img/sharp-linux-ppc64": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.4.tgz", - "integrity": "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.5.tgz", + "integrity": "sha512-QVxAAq8evVRI9ia2vqgwrmWucn5Dfv+JdWzj75pD8omHLPSP7f8p20O8jxzjCcuCEQEOtYOZUmX1hkiZ0kdevA==", "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -839,16 +872,19 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.3.3" + "@img/sharp-libvips-linux-ppc64": "1.3.4" } }, "node_modules/@img/sharp-linux-riscv64": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.4.tgz", - "integrity": "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.5.tgz", + "integrity": "sha512-LtdreXguaavKODPIfzJ4kffx7UNt1omwtK0rch4EBbbSTXPnxWmYSayXdLJw0fJzQ97kHt1gL/yh4tvU+nCyRQ==", "cpu": [ "riscv64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -861,16 +897,19 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.3.3" + "@img/sharp-libvips-linux-riscv64": "1.3.4" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.4.tgz", - "integrity": "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.5.tgz", + "integrity": "sha512-UZasTOFiYzotTsGOCu42BfUzP6Tu6Do/947iRm1RsLKvlllxwGcn4RN27LibGWceix4Y+Pmw3jsnTcCQIgWjqA==", "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -883,16 +922,19 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.3.3" + "@img/sharp-libvips-linux-s390x": "1.3.4" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.4.tgz", - "integrity": "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.5.tgz", + "integrity": "sha512-SxFtLTeJInhAA9Q836kux2vZNeOBQEx658qvbboZScr0wIARym3IcGmW7KpVD5sbVg0Ojy+udFQdayYIZyoNog==", "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -905,16 +947,19 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.3.3" + "@img/sharp-libvips-linux-x64": "1.3.4" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.4.tgz", - "integrity": "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.5.tgz", + "integrity": "sha512-9HbMclmI1zlNkFRs3z9/eBtDjfD0sGlrX1z6b1qwmiFY5ElDLh4BC0LPBdVp7z1DXFiKlIcznf+ZlsuZzLxQqg==", "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -927,16 +972,19 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.3.3" + "@img/sharp-libvips-linuxmusl-arm64": "1.3.4" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.4.tgz", - "integrity": "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.5.tgz", + "integrity": "sha512-4KOphqB035HrVdqLZfCgMzzERrQkkzOwRhl4OAkRO1YCldbaFjySXMaK534Mo0V+LndnlJk+sbUyLeU0ULyD1A==", "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -949,13 +997,13 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.3.3" + "@img/sharp-libvips-linuxmusl-x64": "1.3.4" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.4.tgz", - "integrity": "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.5.tgz", + "integrity": "sha512-Ptsga1su4tQx+LLF1ECS9U6nz5kmrXKo6XVbtR48Ke3ZRxxgaWBu7IDtEe1quo8hiupwm6WFqxVlXaSf7IINGQ==", "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { @@ -969,16 +1017,16 @@ } }, "node_modules/@img/sharp-webcontainers-wasm32": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.4.tgz", - "integrity": "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.5.tgz", + "integrity": "sha512-hfhF/FmoQyTUkA0bIKFOtw536BQSeBMe6BF6QyWlrPxT754+TFLaZ7sKKTfvvM0yJgKgaYTwnFCIZ/GuDw5SUA==", "cpu": [ "wasm32" ], "license": "Apache-2.0", "optional": true, "dependencies": { - "@img/sharp-wasm32": "0.35.4" + "@img/sharp-wasm32": "0.35.5" }, "engines": { "node": ">=20.9.0" @@ -988,9 +1036,9 @@ } }, "node_modules/@img/sharp-win32-arm64": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.4.tgz", - "integrity": "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.5.tgz", + "integrity": "sha512-X4t7g+7ZA5DKblCBEXGjUqqemj4vczING/5viFwAL8h4N3qYeyjwdCvRLHi4EdOUI+2Z7UFlp1VM+p/AuEtm6Q==", "cpu": [ "arm64" ], @@ -1007,9 +1055,9 @@ } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.4.tgz", - "integrity": "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.5.tgz", + "integrity": "sha512-5Zm82LoBc43nhwNybZlG7Y1KO//Zhsn306fQl29ZOuStHLGTo3BWL83q3cznX0poxSAMuYL1On/BHBxkBeKr6A==", "cpu": [ "ia32" ], @@ -1026,9 +1074,9 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.4.tgz", - "integrity": "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.5.tgz", + "integrity": "sha512-x76eH0vEiHlcMQu8Y8IenntaACtddpT6W0wmXtWrnKcnKI7ME5DdgqhAD6SEWOEl1v2zDvkZDhFA9KnURwpfqg==", "cpu": [ "x64" ], @@ -1391,9 +1439,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.3.tgz", - "integrity": "sha512-dsqMQQoeTLqu9wynDD00q573mNzso3IdQOAfHRJqLCcmCFPoGo9A1bDpUcv/9tnKpErQWv9uKeGfl37EIS02Yg==", + "version": "26.6.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.4.tgz", + "integrity": "sha512-ldVPDCzj7fsaGZrLB0NuHuTvJcsNasysBAqMolr/cgxrLd1xbqxIr3XJiPnHHJUCxj5sNF1vnRj9aWnrVh5Jcg==", "dev": true, "license": "MIT", "dependencies": { @@ -5257,9 +5305,9 @@ } }, "node_modules/postcss": { - "version": "8.5.28", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", - "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", + "version": "8.5.29", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.29.tgz", + "integrity": "sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ==", "dev": true, "funding": [ { @@ -5277,9 +5325,9 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.18", + "nanoid": "^3.3.19", "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "source-map-js": "^1.2.2" }, "engines": { "node": "^10 || ^12 || >=14" @@ -5767,9 +5815,9 @@ } }, "node_modules/sharp": { - "version": "0.35.4", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz", - "integrity": "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==", + "version": "0.35.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.5.tgz", + "integrity": "sha512-Ywn4OnzGukp7CDMrp08RQ50YKmuwG47brZgIVPTvBaaAfQlRlygrRqSrxdCiL9M+LlzLBiJ68IR1QqvzHyjC7g==", "license": "Apache-2.0", "optional": true, "dependencies": { @@ -5784,31 +5832,31 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.35.4", - "@img/sharp-darwin-x64": "0.35.4", - "@img/sharp-freebsd-wasm32": "0.35.4", - "@img/sharp-libvips-darwin-arm64": "1.3.3", - "@img/sharp-libvips-darwin-x64": "1.3.3", - "@img/sharp-libvips-linux-arm": "1.3.3", - "@img/sharp-libvips-linux-arm64": "1.3.3", - "@img/sharp-libvips-linux-ppc64": "1.3.3", - "@img/sharp-libvips-linux-riscv64": "1.3.3", - "@img/sharp-libvips-linux-s390x": "1.3.3", - "@img/sharp-libvips-linux-x64": "1.3.3", - "@img/sharp-libvips-linuxmusl-arm64": "1.3.3", - "@img/sharp-libvips-linuxmusl-x64": "1.3.3", - "@img/sharp-linux-arm": "0.35.4", - "@img/sharp-linux-arm64": "0.35.4", - "@img/sharp-linux-ppc64": "0.35.4", - "@img/sharp-linux-riscv64": "0.35.4", - "@img/sharp-linux-s390x": "0.35.4", - "@img/sharp-linux-x64": "0.35.4", - "@img/sharp-linuxmusl-arm64": "0.35.4", - "@img/sharp-linuxmusl-x64": "0.35.4", - "@img/sharp-webcontainers-wasm32": "0.35.4", - "@img/sharp-win32-arm64": "0.35.4", - "@img/sharp-win32-ia32": "0.35.4", - "@img/sharp-win32-x64": "0.35.4" + "@img/sharp-darwin-arm64": "0.35.5", + "@img/sharp-darwin-x64": "0.35.5", + "@img/sharp-freebsd-wasm32": "0.35.5", + "@img/sharp-libvips-darwin-arm64": "1.3.4", + "@img/sharp-libvips-darwin-x64": "1.3.4", + "@img/sharp-libvips-linux-arm": "1.3.4", + "@img/sharp-libvips-linux-arm64": "1.3.4", + "@img/sharp-libvips-linux-ppc64": "1.3.4", + "@img/sharp-libvips-linux-riscv64": "1.3.4", + "@img/sharp-libvips-linux-s390x": "1.3.4", + "@img/sharp-libvips-linux-x64": "1.3.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.4", + "@img/sharp-libvips-linuxmusl-x64": "1.3.4", + "@img/sharp-linux-arm": "0.35.5", + "@img/sharp-linux-arm64": "0.35.5", + "@img/sharp-linux-ppc64": "0.35.5", + "@img/sharp-linux-riscv64": "0.35.5", + "@img/sharp-linux-s390x": "0.35.5", + "@img/sharp-linux-x64": "0.35.5", + "@img/sharp-linuxmusl-arm64": "0.35.5", + "@img/sharp-linuxmusl-x64": "0.35.5", + "@img/sharp-webcontainers-wasm32": "0.35.5", + "@img/sharp-win32-arm64": "0.35.5", + "@img/sharp-win32-ia32": "0.35.5", + "@img/sharp-win32-x64": "0.35.5" }, "peerDependenciesMeta": { "@types/node": { @@ -5916,9 +5964,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", + "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0"