diff --git a/public/js/i18n.js b/public/js/i18n.js index 8cd4d62..b14a323 100644 --- a/public/js/i18n.js +++ b/public/js/i18n.js @@ -491,6 +491,89 @@ const I18n = (function () { 'sp.import_too_many': { it: 'Troppi record (max 1000).', en: 'Too many records (max 1000).' }, 'sp.import_done': { it: 'Completato: creati {created}, aggiornati {updated}, saltati {skipped}.', en: 'Done: {created} created, {updated} updated, {skipped} skipped.' }, 'sp.conn_error': { it: 'Errore di connessione.', en: 'Connection error.' }, + // ── Supply Chain / Fornitori — i18n estesa pagina interna (2026-06-21) ── + 'sp.stat_total': { it: 'Totale Fornitori', en: 'Total Suppliers' }, + 'sp.stat_critical': { it: 'Critici Non Conformi', en: 'Critical Non-Compliant' }, + 'sp.stat_expiring': { it: 'Contratti in Scadenza', en: 'Expiring Contracts' }, + 'sp.stat_avg_score': { it: 'Score Rischio Medio', en: 'Average Risk Score' }, + 'sp.crit_distribution': { it: 'Distribuzione Criticità', en: 'Criticality Distribution' }, + 'sp.crit_critical': { it: 'Critico', en: 'Critical' }, + 'sp.crit_high': { it: 'Alto', en: 'High' }, + 'sp.crit_medium': { it: 'Medio', en: 'Medium' }, + 'sp.crit_low': { it: 'Basso', en: 'Low' }, + 'sp.filter_all_crit': { it: 'Tutte le Criticità', en: 'All Criticalities' }, + 'sp.filter_all_status': { it: 'Tutti gli Stati', en: 'All Statuses' }, + 'sp.status_active': { it: 'Attivo', en: 'Active' }, + 'sp.status_under_review':{ it: 'In Revisione', en: 'Under Review' }, + 'sp.status_suspended': { it: 'Sospeso', en: 'Suspended' }, + 'sp.status_terminated': { it: 'Terminato', en: 'Terminated' }, + 'sp.loading_suppliers': { it: 'Caricamento fornitori...', en: 'Loading suppliers...' }, + 'sp.loading': { it: 'Caricamento...', en: 'Loading...' }, + 'sp.no_suppliers': { it: 'Nessun fornitore trovato', en: 'No suppliers found' }, + 'sp.no_suppliers_hint': { it: 'Aggiungi il tuo primo fornitore per iniziare il monitoraggio della supply chain.', en: 'Add your first supplier to start monitoring the supply chain.' }, + 'sp.col_name': { it: 'Nome', en: 'Name' }, + 'sp.col_service_type': { it: 'Tipo Servizio', en: 'Service Type' }, + 'sp.col_criticality': { it: 'Criticità', en: 'Criticality' }, + 'sp.col_risk_score': { it: 'Score Rischio', en: 'Risk Score' }, + 'sp.col_status': { it: 'Stato', en: 'Status' }, + 'sp.col_last_assessment':{ it: 'Ultima Valutazione', en: 'Last Assessment' }, + 'sp.col_actions': { it: 'Azioni', en: 'Actions' }, + 'sp.back_to_list': { it: "Torna all'elenco", en: 'Back to list' }, + 'sp.compliant': { it: 'Conforme', en: 'Compliant' }, + 'sp.non_compliant': { it: 'Non Conforme', en: 'Non-Compliant' }, + 'sp.assess_supplier': { it: 'Valuta Fornitore', en: 'Assess Supplier' }, + 'sp.send_questionnaire': { it: 'Invia questionario', en: 'Send questionnaire' }, + 'sp.edit': { it: 'Modifica', en: 'Edit' }, + 'sp.delete': { it: 'Elimina', en: 'Delete' }, + 'sp.info_title': { it: 'Informazioni Fornitore', en: 'Supplier Information' }, + 'sp.field_name': { it: 'Nome', en: 'Name' }, + 'sp.field_vat': { it: 'Partita IVA', en: 'VAT Number' }, + 'sp.field_contact_name': { it: 'Referente', en: 'Contact Person' }, + 'sp.field_email': { it: 'Email', en: 'Email' }, + 'sp.field_service_type': { it: 'Tipo Servizio', en: 'Service Type' }, + 'sp.field_contract_start':{ it: 'Inizio Contratto', en: 'Contract Start' }, + 'sp.field_contract_expiry':{ it: 'Scadenza Contratto', en: 'Contract Expiry' }, + 'sp.service_desc_title': { it: 'Descrizione Servizio', en: 'Service Description' }, + 'sp.notes_title': { it: 'Note', en: 'Notes' }, + 'sp.out_of_100': { it: 'su 100', en: 'out of 100' }, + 'sp.sec_req_met': { it: 'Requisiti di sicurezza soddisfatti', en: 'Security requirements met' }, + 'sp.sec_req_not_met': { it: 'Requisiti di sicurezza non soddisfatti', en: 'Security requirements not met' }, + 'sp.no_assessment_done': { it: 'Nessuna valutazione effettuata', en: 'No assessment performed' }, + 'sp.assessment_label': { it: 'Valutazione', en: 'Assessment' }, + 'sp.last_assessment': { it: 'Ultima Valutazione', en: 'Last Assessment' }, + 'sp.next_assessment': { it: 'Prossima Valutazione', en: 'Next Assessment' }, + 'sp.sec_requirements': { it: 'Requisiti Sicurezza', en: 'Security Requirements' }, + 'sp.met': { it: 'Soddisfatti', en: 'Met' }, + 'sp.not_met': { it: 'Non Soddisfatti', en: 'Not Met' }, + 'sp.created_at': { it: 'Creato il', en: 'Created on' }, + 'sp.edit_supplier': { it: 'Modifica Fornitore', en: 'Edit Supplier' }, + 'sp.new_supplier_modal': { it: 'Nuovo Fornitore', en: 'New Supplier' }, + 'sp.field_supplier_name':{ it: 'Nome Fornitore', en: 'Supplier Name' }, + 'sp.field_contact_email':{ it: 'Email Contatto', en: 'Contact Email' }, + 'sp.ph_company_name': { it: "Nome dell'azienda", en: 'Company name' }, + 'sp.ph_full_name': { it: 'Nome e cognome', en: 'Full name' }, + 'sp.ph_service_type': { it: 'es. Cloud Hosting, Sviluppo SW, Consulenza', en: 'e.g. Cloud Hosting, SW Development, Consulting' }, + 'sp.ph_service_desc': { it: 'Descrivi il servizio fornito...', en: 'Describe the service provided...' }, + 'sp.ph_notes': { it: 'Note aggiuntive...', en: 'Additional notes...' }, + 'sp.cancel': { it: 'Annulla', en: 'Cancel' }, + 'sp.save_changes': { it: 'Salva Modifiche', en: 'Save Changes' }, + 'sp.add_supplier': { it: 'Aggiungi Fornitore', en: 'Add Supplier' }, + 'sp.assess_modal_title': { it: 'Valutazione Fornitore', en: 'Supplier Assessment' }, + 'sp.assess_intro': { it: "Rispondi alle domande per valutare il livello di sicurezza del fornitore. Il punteggio di rischio verrà calcolato automaticamente.", en: 'Answer the questions to assess the supplier security level. The risk score will be calculated automatically.' }, + 'sp.answer_yes': { it: 'Sì', en: 'Yes' }, + 'sp.answer_partial': { it: 'Parziale', en: 'Partial' }, + 'sp.answer_no': { it: 'No', en: 'No' }, + 'sp.calculated_risk_score':{ it: 'Score Rischio Calcolato', en: 'Calculated Risk Score' }, + 'sp.save_assessment': { it: 'Salva Valutazione', en: 'Save Assessment' }, + 'sp.cat_empty': { it: 'Nessuna categoria.', en: 'No categories.' }, + 'sp.cat_new_title': { it: 'Nuova categoria', en: 'New category' }, + 'sp.cat_edit': { it: 'Modifica categoria', en: 'Edit category' }, + 'sp.ph_cat_name': { it: 'es. Cloud Provider', en: 'e.g. Cloud Provider' }, + 'sp.ph_cat_desc': { it: 'Descrizione opzionale...', en: 'Optional description...' }, + 'sp.save': { it: 'Salva', en: 'Save' }, + 'sp.create': { it: 'Crea', en: 'Create' }, + 'sp.close': { it: 'Chiudi', en: 'Close' }, + 'sp.tpl_back_plain': { it: 'Torna ai template', en: 'Back to templates' }, }); return { init, getLang, setLang, t, applyTranslations, addTranslations }; diff --git a/public/supplier-portal.html b/public/supplier-portal.html index 2188ddd..4c93db2 100644 --- a/public/supplier-portal.html +++ b/public/supplier-portal.html @@ -54,6 +54,11 @@ textarea{min-height:88px;resize:vertical} .camp:last-child{border-bottom:none} .save-state{font-size:.78rem;color:var(--gray-400);text-align:right;min-height:18px} .foot{text-align:center;font-size:.72rem;color:var(--gray-400);margin-top:20px;line-height:1.5} +.lang-toggle{display:flex;justify-content:flex-end;gap:0;margin-bottom:8px} +.lang-toggle button{background:transparent;border:1px solid var(--gray-200);color:var(--gray-500);font-size:.78rem;font-weight:700;padding:4px 10px;cursor:pointer;min-height:auto;line-height:1.2} +.lang-toggle button:first-child{border-radius:6px 0 0 6px;border-right:none} +.lang-toggle button:last-child{border-radius:0 6px 6px 0} +.lang-toggle button.active{background:var(--primary);color:#fff;border-color:var(--primary)} @@ -71,9 +76,13 @@ textarea{min-height:88px;resize:vertical}
Compilazione questionari di sicurezza NIS2
+Compilazione questionari di sicurezza NIS2