{ "dashboard": "Dashboard", "nav.pages": "Pagine", "nav.messages": "Messaggi", "nav.news": "News", "nav.events": "Eventi", "nav.settings": "Impostazioni", "nav.logout": "Esci", "nav.collapse_sidebar": "Comprimi", "nav.expand_sidebar": "Espandi", "nav.view_site": "Vedi sito", "btn.load": "Carica", "btn.save": "Salva", "btn.cancel": "Annulla", "btn.confirm": "Conferma", "btn.close": "Chiudi", "btn.back": "Indietro", "btn.delete": "Elimina", "btn.browse": "Sfoglia", "btn.clear": "Cancella", "btn.refresh": "Aggiorna", "btn.restore": "Ripristina", "btn.saving": "Salvataggio...", "btn.changing": "Modifica in corso...", "pages.title": "Pagine", "pages.new_page": "+ Nuova pagina", "pages.trash": "Cestino", "pages.col_title": "Titolo", "pages.col_date": "Ultima modifica", "pages.edit": "Modifica", "pages.view": "Visualizza", "pages.duplicate": "Duplica", "pages.create": "+ Crea", "pages.all_pages": "Tutte le pagine", "pages.back_to_pages": "Torna alle pagine", "trash.title": "Cestino", "trash.col_page": "Pagina", "trash.col_deleted": "Eliminata il", "trash.col_actions": "Azioni", "trash.empty": "Il cestino è vuoto.", "trash.empty_trash": "Svuota cestino", "editor.title": "Editor contenuti", "editor.expand_all": "Espandi tutto", "editor.collapse_all": "Comprimi tutto", "editor.not_saved_yet": "Non ancora salvato", "editor.last_saved": "Ultimo salvataggio: {date}", "editor.move_to_trash": "Sposta nel cestino", "editor.undo": "Annulla (⌘Z)", "editor.redo": "Ripeti (⇧⌘Z)", "editor.meta_page": "Pagina:", "editor.meta_lang": "Lingua:", "editor.items": "{count} elementi", "editor.fields": "{count} campi", "editor.field_groups": "Field groups", "editor.field_groups_count": "{count} field groups", "editor.add_item": "+ Aggiungi elemento", "editor.add_section": "Aggiungi nuova sezione:", "editor.no_sections": "No sections yet.", "editor.search_sections": "Cerca sezioni", "editor.filter_all_types": "Tutti i tipi", "editor.compact_mode": "Compatto", "editor.expand_section": "Espandi sezione", "editor.collapse_section": "Comprimi sezione", "editor.insert_section": "Inserisci sezione", "editor.insert_here": "Inserisci qui", "editor.section_issues": "{count} avvisi", "editor.section_issue": "{count} avviso", "editor.no_section_matches": "Nessuna sezione corrispondente.", "editor.drag_section": "Trascina sezione", "editor.missing_media": "Percorso media mancante", "editor.missing_alt": "Testo alternativo mancante", "editor.duplicate_h1": "Titolo H1 aggiuntivo", "editor.select_image": "Seleziona immagine", "editor.tab_content": "Content", "editor.sections": "Sections", "editor.page_settings": "Page Settings", "editor.meta_title": "Title", "editor.meta_description": "Description", "editor.nav_locations": "Navigation", "editor.nav_custom_hint": "Custom, e.g. sidebar", "editor.breadcrumb": "Breadcrumb", "editor.breadcrumb_label": "Label", "editor.breadcrumb_href": "Link (slug)", "editor.breadcrumb_add": "Add item", "editor.breadcrumb_hint": "Last item is the current page (no link needed).", "events.title": "Eventi", "events.new_event": "+ Nuovo evento", "events.no_events": "Nessun evento ancora.", "events.start_date": "Data inizio", "events.start_time": "Ora inizio", "events.end_date": "Data fine", "events.end_time": "Ora fine", "events.url": "URL", "events.untitled": "(senza titolo)", "events.save_events": "Salva eventi", "events.col_date": "Data", "events.col_location": "Luogo", "events.col_status": "Stato", "events.status_upcoming": "Imminente", "events.status_today": "Oggi", "events.status_past": "Passato", "events.status_draft": "Bozza", "events.confirm_delete_permanent": "Eliminare definitivamente l'evento «{title}»? Operazione irreversibile.", "events.back_to_events": "Torna agli eventi", "mails.title": "Messaggi di contatto", "mails.source_hint": "Qui arrivano gli invii dal modulo di contatto. raiju li salva localmente, anche se non viene inviata alcuna notifica e-mail.", "mails.all_forms": "Tutti i moduli", "mails.filter_form": "Filtra per modulo", "mails.col_form": "Modulo", "mails.col_from": "Mittente", "mails.col_subject": "Oggetto", "mails.col_received": "Ricevuto", "mails.mark_all_read": "Segna tutti come letti", "mails.no_messages": "Nessun messaggio", "mails.detail_title": "Dettagli messaggio", "mails.date": "Data:", "mails.name": "Nome:", "mails.email": "Email:", "mails.phone": "Telefono:", "mails.preferred_date": "Data preferita:", "mails.message": "Messaggio:", "mails.form": "Modulo:", "mails.form_fields": "Campi:", "mails.sort_read": "Ordina per letto/non letto", "mails.sort_starred": "Ordina per contrassegnati", "mails.mark_read": "Segna come letto", "mails.mark_unread": "Segna come non letto", "mails.star": "Contrassegna con stella", "mails.unstar": "Rimuovi stella", "settings.title": "Impostazioni", "settings.branding": "Branding", "settings.branding_desc": "Personalizza il logo, il nome e la visibilità del branding. Disattiva il branding per un utilizzo white-label.", "settings.logo": "Logo", "settings.logo_light": "Logo (light mode)", "settings.logo_dark": "Logo (dark mode)", "settings.logo_dark_hint": "Optional. Shown only in dark mode. Leave empty if the same logo works for both themes.", "settings.frontend_logos": "Frontend logos", "settings.frontend_logos_hint": "These logos appear only on the public site. Recommended size: SVG or PNG around 320 × 96 px.", "settings.favicon": "Favicon", "settings.favicon_hint": "Shown in the browser tab and the backend. Recommended: square SVG or 512 × 512 px PNG.", "settings.site_identity": "Identità del sito", "settings.admin_interface": "Interfaccia di amministrazione", "settings.header_display": "Visualizzazione nell'header", "settings.header_display_hint": "Senza logo, mostra quanto segue nell'header della pagina:", "settings.logo_display": "Senza logo", "settings.logo_display_favicon": "Favicon", "settings.logo_display_text": "Nome del sito", "settings.logo_display_both": "Favicon e nome del sito", "settings.site_name": "Nome del sito", "settings.site_name_hint": "Mostrato nella scheda del browser, nell'header pubblico se selezionato sotto, e nell'interfaccia di amministrazione.", "settings.site_name_placeholder": "Nome del sito", "settings.show_branding": "Mostra branding nell'admin", "settings.branding_hint": "Se disattivato, il logo e il nome del sito vengono nascosti dalla barra di amministrazione e dalla pagina di login.", "settings.save_branding": "Salva branding", "settings.theme": "Tema", "settings.theme_desc": "Aspetto dell'area di amministrazione: tema, modalità, colore base, carattere e densità.", "settings.admin_theme": "Tema amministrazione", "settings.theme_light": "Chiaro", "settings.theme_dark": "Scuro", "settings.theme_system": "Sistema", "settings.appearance": "Aspetto", "settings.theme_preset": "Tema", "settings.theme_preset_hint": "Definisce superfici, bordi, raggi, barra laterale e il carattere abbinato; il carattere resta modificabile qui sotto. Ogni tema ha una variante chiara e una scura.", "settings.preset_soft": "Soft", "settings.preset_soft_desc": "Barra laterale tinta, schede bianche, misure di shadcn/ui.", "settings.preset_classic": "Classic", "settings.preset_classic_desc": "Barra laterale scura, area chiara, piatto – vicino a WordPress.", "settings.preset_paper": "Paper", "settings.preset_paper_desc": "Bianco, solo linee sottili, molta calma.", "settings.preset_studio": "Studio", "settings.preset_studio_desc": "Monocromatico come Vercel: pulsanti neri, linee sottili, colore base solo come accento.", "settings.preset_console": "Console", "settings.preset_console_desc": "Monospazio, maiuscoletto, selezione a mirino, un accento forte – come una sala di controllo.", "settings.preset_pop": "Pop", "settings.preset_pop_desc": "Barra laterale scura sfumata, etichette a pillola colorate, card morbide e arrotondate – giocoso e amichevole.", "settings.theme_mode": "Modalità", "settings.base_color": "Colore base", "settings.base_color_hint": "Pulsanti, link, stati attivi e tinta delle superfici derivano da questo unico colore. Il contrasto è garantito automaticamente.", "settings.font": "Carattere", "settings.font_hint": "Caricato localmente dalla cartella admin. Nessuna richiesta esterna.", "settings.font_system": "Sistema (nessun file)", "settings.font_inter": "Inter", "settings.font_plex": "IBM Plex Sans", "settings.font_atkinson": "Atkinson Hyperlegible", "settings.font_public": "Public Sans", "settings.font_size": "Dimensione del testo", "settings.font_size_hint": "Modifica solo il carattere del pannello, non spaziature ed elementi.", "settings.font_size_small": "Piccola", "settings.font_size_default": "Standard", "settings.font_size_large": "Grande", "settings.font_geist_mono": "Geist Mono", "settings.density": "Densità", "settings.density_hint": "«Automatica» segue la larghezza della finestra: compatta su schermi piccoli, più ariosa su quelli grandi.", "settings.density_auto": "Automatica", "settings.density_compact": "Compatta", "settings.density_comfortable": "Ariosa", "settings.advanced": "Avanzate", "settings.sidebar_bg_light": "Colore barra laterale (chiaro)", "settings.sidebar_bg_dark": "Colore barra laterale (scuro)", "forms.title": "Moduli", "forms.desc": "Gestisci semplici moduli basati su JSON. Questa vista serve per piccole modifiche ai moduli esistenti: testi, campi obbligatori, opzioni, larghezze delle colonne e notifiche.", "forms.forms": "Moduli", "forms.select_form": "Seleziona modulo", "forms.new": "Nuovo", "forms.save": "Salva modulo", "forms.base_data": "Dati di base", "forms.form_id": "ID modulo", "forms.form_id_hint": "Usato per incorporamento e invii, ad esempio contatto o invia-evento.", "forms.label": "Etichetta", "forms.description": "Descrizione", "forms.enabled": "Abilitato", "forms.store": "Salva localmente", "forms.email": "Invia e-mail", "forms.subject": "Oggetto", "forms.success_text": "Messaggio di conferma", "forms.fields": "Campi", "forms.add_field": "Aggiungi campo", "forms.type": "Tipo", "forms.key": "Chiave", "forms.placeholder": "Placeholder", "forms.width": "Larghezza", "forms.required": "Obbligatorio", "forms.options": "Opzioni", "forms.options_hint": "Per campi select e radio, inserisci un’opzione per riga. Usa value|Etichetta solo se il valore salvato deve differire dall’etichetta visibile.", "forms.empty": "Nessun modulo ancora.", "forms.field_count": "{count} campi", "forms.new_field": "Nuovo campo", "forms.default_success": "Grazie per il tuo messaggio.", "forms.contact_default": "Modulo di contatto", "forms.saved": "Modulo salvato.", "forms.load_error": "Impossibile caricare il modulo.", "forms.save_error": "Impossibile salvare il modulo.", "settings.theme_section_light": "Light Theme", "settings.theme_section_dark": "Dark Theme", "settings.dark_section_hint": "Leave fields empty to inherit values from the light theme. Click the ↺ icon to reset a field to auto.", "settings.primary_color": "Colore primario", "settings.primary_color_hint": "Utilizzato per pulsanti, link ed elementi interattivi.", "settings.accent_color": "Colore accento", "settings.accent_color_hint": "Per evidenziazioni e accenti del marchio. Lasciare vuoto per usare il colore base.", "settings.danger_color": "Colore di allarme (rosso)", "settings.warning_color": "Colore di avviso (giallo)", "settings.success_color": "Colore di successo (verde)", "settings.semantic_colors_hint": "Per errori, avvisi e conferme. Lasciare vuoto per i colori predefiniti; il successo segue allora il colore base.", "settings.sidebar_bg": "Background (sidebar & topbar)", "settings.sidebar_bg_hint": "Derivato dal colore base dal tema, ma può essere sovrascritto.", "settings.auto_badge": "Auto", "settings.reset_to_auto": "Reset to automatic value", "settings.reset_colors": "Ripristina predefiniti", "settings.button_style": "Stile pulsanti editor", "settings.button_glow": "Effetto luminoso", "settings.button_glow_hint": "Aggiunge un bagliore ai pulsanti dell'editor.", "settings.button_radius": "Raggio bordi", "settings.button_radius_hint": "Controlla la rotondità dei pulsanti dell'editor (0 = quadrato, 24 = pillola).", "settings.preview_primary": "Pulsante primario", "settings.preview_secondary": "Pulsante secondario", "settings.save_theme": "Salva tema", "settings.invalid_color": "Formato colore non valido. Usa il formato esadecimale (#RRGGBB).", "settings.theme_color_adjusted": "{field} è stato regolato a {value} per mantenere l’interfaccia leggibile.", "settings.contrast_ok": "Contrasto: {ratio}:1", "settings.contrast_error": "Contrasto: {ratio}:1 - sotto il minimo UI 3:1", "settings.text_contrast_ok": "Contrasto con il testo: {ratio}:1", "settings.text_contrast_error": "Contrasto con il testo: {ratio}:1 - sotto il minimo UI 3:1", "settings.contrast_invalid": "Inserisci un colore esadecimale valido per calcolare il contrasto.", "settings.language": "Lingua", "settings.admin_language": "Lingua amministrazione", "settings.admin_language_hint": "Lingua dell'interfaccia di amministrazione. Per impostazione predefinita segue la lingua principale del sito.", "settings.admin_language_default": "Predefinita ({lang})", "settings.save_language": "Salva lingua", "settings.ai_label_artwork": "Etichette IA sulle immagini", "settings.ai_label_artwork_en": "Inglese – «AI generated» (predefinito)", "settings.ai_label_artwork_page": "Lingua della pagina – «KI generiert» sulle pagine in tedesco", "settings.ai_label_artwork_hint": "Vale per le etichette delle immagini generate o modificate con IA sul sito. Il testo alternativo per gli screen reader segue sempre la lingua della pagina.", "editor.language_tabs": "Schede lingua", "editor.translate_from_active": "Traduci dalla lingua attiva", "editor.translating": "Traduzione...", "editor.translate_done": "Traduzione completata.", "editor.translate_no_source": "Nessun testo sorgente da tradurre.", "editor.translate_invalid_response": "Risposta di traduzione non valida.", "settings.password": "Password", "settings.my_account": "Il mio account", "settings.change_password": "Cambia password", "settings.current_password": "Password attuale", "settings.new_password": "Nuova password", "settings.confirm_password": "Conferma nuova password", "settings.pw_requirements": "Requisiti della password:", "settings.pw_length": "Almeno 8 caratteri", "settings.pw_upper": "Lettera maiuscola", "settings.pw_lower": "Lettera minuscola", "settings.pw_digit": "Cifra", "settings.pw_special": "Carattere speciale", "settings.pw_match": "Le password corrispondono", "settings.email": "Email", "settings.email_desc": "Configura l'invio delle email dal modulo di contatto. I messaggi vengono sempre salvati localmente nella casella di posta dell'amministratore, anche se l'invio fallisce.", "settings.email_method": "Metodo di invio", "settings.sendmail_hint": "Utilizza la funzione di posta integrata del server (PHP mail). Affinché le email vengano consegnate in modo affidabile, l'indirizzo IP del server deve essere autorizzato a inviare posta per il dominio del mittente (record SPF). Questo metodo funziona senza credenziali, ma la consegna non è garantita.", "settings.recipient_email": "Email destinatario", "settings.recipient_email_hint": "I messaggi del modulo di contatto vengono inviati a questo indirizzo. Separa più indirizzi con virgole.", "settings.bcc_email": "Email BCC", "settings.bcc_email_hint": "Destinatari opzionali in copia nascosta. Separa più indirizzi con virgole.", "settings.from_email": "Email mittente (Da)", "settings.from_email_hint": "L'indirizzo 'Da' mostrato al destinatario. Dovrebbe corrispondere al tuo account SMTP o al dominio.", "settings.from_name": "Nome mittente", "settings.smtp_settings": "Server SMTP", "settings.smtp_host": "Host", "settings.smtp_port": "Porta", "settings.smtp_encryption": "Crittografia", "settings.smtp_encryption_none": "Nessuna (non consigliato)", "settings.smtp_username": "Nome utente", "settings.smtp_password": "Password", "settings.smtp_password_placeholder": "Inserisci password", "settings.smtp_password_hint": "Lascia vuoto per mantenere la password salvata invariata.", "settings.save_email": "Salva impostazioni email", "settings.test_email": "Invia email di prova", "settings.testing_email": "Invio in corso...", "settings.test_email_success": "Email di prova inviata con successo! Controlla la tua casella di posta.", "settings.test_email_error": "Invio dell'email di prova fallito.", "settings.recipient_required": "Inserisci prima un indirizzo email del destinatario.", "toast.email_saved": "Impostazioni email salvate", "settings.danger_zone": "Zona pericolosa", "settings.danger_zone_desc": "Azioni irreversibili. Procedi con estrema cautela.", "settings.total_reset": "Reset totale", "settings.total_reset_desc": "Ripristina completamente l'installazione allo stato di fabbrica. Elimina tutti i contenuti, le pagine, le immagini, le news, i backup, le impostazioni e la configurazione. Dopo il reset, apparirà la procedura guidata di configurazione come se raiju fosse appena installato.", "settings.total_reset_warning": "Questa azione è irreversibile. Tutti i dati verranno eliminati definitivamente.", "settings.total_reset_confirm_label": "Digita DELETE per confermare:", "settings.total_reset_confirm_placeholder": "DELETE", "settings.total_reset_btn": "Resetta tutto", "settings.total_reset_mismatch": "Digita esattamente DELETE per confermare.", "toast.total_reset_success": "Installazione resettata. Reindirizzamento alla procedura guidata...", "security.warning": "Avviso di sicurezza:", "security.weak_password": "La tua password attuale non soddisfa i requisiti minimi di sicurezza (almeno 8 caratteri con una combinazione di maiuscole, minuscole, cifre e caratteri speciali).", "security.change_now": "Cambiala immediatamente", "security.change_link": "Cambia la tua password nelle Impostazioni", "backups.title": "Backup", "backups.no_backups": "Nessun backup disponibile", "backups.view": "Visualizza", "backups.restore": "Ripristina", "backups.delete": "Elimina", "toast.saved": "Salvato con successo!", "toast.page_duplicated": "Pagina duplicata: {slug}", "toast.page_trashed": "Pagina spostata nel cestino", "toast.page_created": "Pagina creata: {title}", "toast.page_restored": "Pagina ripristinata", "toast.page_deleted": "Pagina eliminata definitivamente", "toast.trash_emptied": "Cestino svuotato", "toast.backup_restored": "Backup ripristinato!", "toast.backup_deleted": "Backup eliminato", "toast.branding_saved": "Branding salvato", "toast.theme_saved": "Tema salvato", "toast.password_changed": "Password cambiata con successo!", "toast.all_read": "Tutti segnati come letti", "toast.message_deleted": "Messaggio eliminato", "toast.events_saved": "Eventi salvati!", "toast.event_deleted": "Evento eliminato definitivamente", "toast.event_trashed": "Evento spostato nel cestino", "toast.event_restored": "Evento ripristinato", "toast.no_images": "Nessuna immagine trovata. Carica prima delle immagini.", "toast.error_loading": "Errore nel caricamento: {message}", "toast.error_saving": "Errore nel salvataggio: {message}", "toast.error_generic": "Errore: {message}", "toast.error_loading_images": "Errore nel caricamento delle immagini: {message}", "toast.error_loading_events": "Errore nel caricamento degli eventi: {message}", "toast.error_loading_settings": "Errore nel caricamento delle impostazioni: {message}", "toast.events_date_required": "Data e titolo sono obbligatori", "toast.language_saved": "Lingua salvata", "modal.new_page": "Nuova pagina", "modal.new_page_title": "Titolo", "modal.new_page_title_placeholder": "La mia nuova pagina", "modal.new_page_slug": "Slug", "modal.new_page_slug_placeholder": "la-mia-nuova-pagina", "modal.new_page_slug_hint": "Solo minuscole e trattini. Generato automaticamente dal titolo.", "modal.create_page": "Crea pagina", "modal.delete_permanently": "Elimina definitivamente", "modal.delete_confirm": "Vuoi davvero eliminare definitivamente \"{title}\" ({page})? Questa azione non può essere annullata.", "modal.empty_trash": "Svuota cestino", "modal.empty_trash_confirm": "Vuoi davvero eliminare definitivamente tutte le pagine nel cestino? Questa azione non può essere annullata.", "modal.restore_backup": "Ripristina backup", "modal.restore_backup_confirm": "Ripristinare questo backup? Lo stato attuale verrà salvato prima.", "modal.delete_backup": "Elimina backup", "modal.delete_backup_confirm": "Vuoi davvero eliminare questo backup? Questa azione non può essere annullata.", "modal.delete_message": "Elimina messaggio", "modal.delete_message_confirm": "Vuoi davvero eliminare questo messaggio?", "modal.select_logo": "Seleziona logo", "login.title": "Accedi", "login.username": "Nome utente", "login.password": "Password", "login.show_password": "Mostra password", "login.hide_password": "Nascondi password", "login.button": "Accedi", "login.back_to_site": "Torna al sito", "login.error_locked": "Account bloccato per troppi tentativi falliti. Riprova tra {time}.", "login.error_too_many": "Troppi tentativi falliti. Attendi prima di riprovare.", "login.error_wait": "Credenziali non valide. Attendi prima di riprovare.", "login.error_invalid": "Nome utente o password non validi", "login.hour": "h", "login.minute": "min", "setup.page_title": "Configurazione - raiju CMS", "setup.complete_title": "Configurazione completata", "setup.complete_message": "raiju CMS è stato configurato con successo.", "setup.complete_login_hint": "Ora puoi accedere con le credenziali appena create.", "setup.go_to_login": "Vai al login", "setup.title": "Configurazione", "setup.subtitle": "Configurazione iniziale", "setup.site_name": "Nome del sito", "setup.site_name_placeholder": "Il mio sito web", "setup.primary_language": "Lingua principale", "setup.primary_language_hint": "Le pagine in questa lingua si trovano all'URL principale (senza prefisso).", "setup.additional_language": "Lingua aggiuntiva (opzionale)", "setup.additional_language_none": "— Nessuna —", "setup.additional_language_hint": "Le pagine in questa lingua saranno sotto /{code}/.", "setup.admin_username": "Nome utente amministratore", "setup.password": "Password", "setup.generate": "Genera", "setup.confirm_password": "Conferma password", "setup.pw_length": "Almeno 8 caratteri", "setup.pw_upper": "Lettera maiuscola", "setup.pw_lower": "Lettera minuscola", "setup.pw_digit": "Cifra", "setup.pw_special": "Carattere speciale", "setup.create_config": "Crea configurazione", "setup.error_site_name": "Inserisci un nome per il sito.", "setup.error_username": "Inserisci un nome utente amministratore.", "setup.error_username_short": "Il nome utente deve avere almeno 3 caratteri.", "setup.error_password": "Inserisci una password.", "setup.error_password_mismatch": "Le password non corrispondono.", "setup.error_password_weak": "La password non soddisfa i requisiti: almeno 8 caratteri con maiuscole, minuscole, cifre e caratteri speciali.", "setup.error_write": "Impossibile scrivere config.php. Verifica che la cartella admin/ sia scrivibile dal server web.", "setup.copied": "Copiato!", "setup.copy": "Copia", "block.text": "Testo", "block.youtube": "YouTube", "block.soundcloud": "SoundCloud", "block.audio": "Audio", "block.card": "Scheda", "block.heading": "Titolo", "block.quote": "Citazione", "block.image": "Immagine", "block.list": "Elenco", "block.divider": "Separatore", "block.spacer": "Spaziatore", "field.title": "Titolo", "field.heading_level": "Livello titolo", "field.content": "Contenuto", "field.style": "Stile", "field.video_id": "ID video", "field.video_id_hint": "L'ID del video dall'URL di YouTube (dopo v=)", "field.track_id": "ID traccia", "field.track_id_hint": "Trova l'ID della traccia nell'URL di incorporamento di SoundCloud", "field.audio_file": "File audio", "field.description": "Descrizione", "field.heading_text": "Testo del titolo", "field.level": "Livello", "field.subtitle": "Sottotitolo (opzionale)", "field.quote_text": "Testo della citazione", "field.attribution": "Attribuzione (opzionale)", "field.alt_text": "Testo alternativo", "field.caption": "Didascalia (opzionale)", "field.width": "Larghezza", "field.title_optional": "Titolo (opzionale)", "field.list_items": "Elementi dell'elenco", "field.height": "Altezza", "option.default": "Predefinito", "option.highlight": "Evidenziato", "option.large": "Grande", "option.h1_page_title": "H1 — Titolo pagina", "option.h2_section": "H2 — Sezione", "option.h3_subsection": "H3 — Sottosezione", "option.h4_small": "H4 — Piccolo", "option.full_width": "Larghezza piena", "option.medium_75": "Medio (75%)", "option.small_50": "Piccolo (50%)", "option.bullet_list": "Elenco puntato", "option.numbered_list": "Elenco numerato", "option.small": "Piccolo", "option.medium": "Medio", "option.extra_large": "Extra grande", "news.title": "News", "news.new_post": "+ Nuovo articolo", "news.no_posts": "Nessun articolo ancora.", "news.edit": "Modifica", "news.delete": "Elimina articolo", "news.untitled": "(senza titolo)", "news.save_posts": "Salva", "news.post_title": "Titolo", "news.post_slug": "Slug", "news.post_date": "Data", "news.post_author": "Autore", "news.post_excerpt": "Anteprima", "news.post_image": "Immagine di copertina", "news.post_content": "Contenuto", "news.draft": "Bozza", "news.published": "Pubblicato", "news.post_language": "Lingua", "news.publish": "Pubblica", "news.unpublish": "Annulla pubblicazione", "news.view": "Visualizza", "news.all_posts": "Tutte le news", "news.read_more": "Leggi tutto", "toast.news_saved": "Articolo salvato!", "toast.news_deleted": "Articolo eliminato", "toast.news_created": "Articolo creato", "toast.error_loading_news": "Errore nel caricamento delle news: {message}", "toast.news_date_required": "Data e titolo sono obbligatori", "modal.delete_post": "Elimina articolo", "modal.delete_post_confirm": "Vuoi davvero eliminare \"{title}\"? Questa azione non può essere annullata.", "settings.backup": "Backup", "settings.backup_desc": "Grazie all'architettura flat-file di raiju, i backup sono rapidi e semplici — scarica una copia completa del tuo sito con tutti i contenuti, i template, le immagini e la configurazione.", "settings.backup_site": "Backup del sito", "settings.backup_site_desc": "Crea un archivio ZIP dell'intera cartella del sito. I file di sviluppo (node_modules, .git, ecc.) sono esclusi.", "settings.backup_create": "Crea backup", "settings.backup_creating": "Creazione backup…", "settings.backup_downloading": "Download in corso…", "toast.backup_site_created": "Backup creato — download avviato.", "toast.backup_site_failed": "Backup fallito: {message}", "settings.restore_title": "Ripristina da backup", "settings.restore_desc": "Carica un file ZIP di backup raiju precedentemente scaricato per ripristinare il tuo sito.", "settings.restore_mode_prompt": "Tipo di ripristino — scegli un’opzione", "settings.restore_full": "Ripristino completo", "settings.restore_full_desc": "Sostituisce tutto — file CMS, contenuti, immagini e configurazione. Un backup dello stato attuale viene creato automaticamente prima del ripristino.", "settings.restore_content": "Solo contenuti", "settings.restore_content_desc": "Sostituisce solo i contenuti, le immagini, i font e i template delle pagine. I file core del CMS e le credenziali di amministrazione restano invariati.", "settings.restore_select_file": "Seleziona file ZIP", "settings.restore_change_file": "Cambia file", "settings.restore_btn": "Ripristina", "settings.restore_uploading": "Caricamento e ripristino…", "settings.restore_warning_full": "Questa operazione sostituirà l'intero sito con il contenuto del backup ZIP. Un backup dello stato attuale verrà creato prima. Questa azione non può essere facilmente annullata. Sei sicuro?", "settings.restore_warning_content": "Questa operazione sostituirà tutti i contenuti, le immagini, i font e i template delle pagine con il contenuto del backup ZIP. I file core del CMS e le tue credenziali di accesso non saranno modificati. Continuare?", "settings.scheduled_backups": "Automated backups", "settings.scheduled_backups_desc": "Run periodic full-site backups via a server cron job or a secret web-cron URL. The retention rules below decide how many tiered copies to keep — tight enough for fast incident recovery, loose enough to surface issues that only show up months later.", "settings.scheduled_enabled": "Scheduled backups enabled", "settings.scheduled_enabled_hint": "When off, the server or web cron exits without doing anything. Manual backups via the button above still work.", "settings.cron_mode": "Execution", "settings.cron_mode_server": "Server cron", "settings.cron_mode_web": "Web cron", "settings.cron_mode_hint": "Server cron is more reliable. Web cron is meant for hosts that do not provide cron jobs.", "settings.retention_title": "Retention", "settings.retention_hint": "Backups are tagged daily, weekly, monthly, or yearly when they're created. The numbers below say how many of each tier to keep before the oldest of that tier is deleted.", "settings.retention_daily": "Daily", "settings.retention_weekly": "Weekly", "settings.retention_monthly": "Monthly", "settings.retention_yearly": "Yearly", "settings.storage_limit": "Storage limit (MB)", "settings.storage_limit_hint": "Hard cap on total backup storage. When reached, the oldest non-manual backups are deleted even if they're still within retention. 0 = no cap.", "settings.backup_settings_save": "Save backup settings", "settings.remote_backups": "Remote backup targets", "settings.remote_backups_hint": "After each scheduled backup, raiju uploads the ZIP to every enabled target. Uploads are placed in a per-site subfolder below the configured remote path. Access tokens and passwords are saved in settings and hidden after saving.", "settings.remote_oauth_beta_note": "Beta note: Browser-based connections to Dropbox, Google Drive, and Microsoft OneDrive may be limited depending on the providers' approval status.", "settings.remote_add_target": "Add target", "settings.remote_empty": "No remote targets configured yet.", "settings.remote_test": "Test", "settings.remote_upload": "Upload remote", "settings.remote_uploading": "Uploading…", "settings.remote_files": "Remote files", "settings.remote_files_empty": "No remote backups found.", "settings.remote_import": "Import", "settings.remote_delete": "Delete remote backup", "settings.remote_delete_confirm": "Delete this backup from remote storage? The local copy is not affected.", "settings.remote_hint_sftp": "Requires an SSH/SFTP account and the PHP ssh2 extension on the raiju server.", "settings.remote_hint_ftp": "Use this for classic FTP accounts such as Plesk FTP users. Enable FTPS when the server supports encrypted FTP.", "settings.remote_error_dropbox_access_token_missing": "Dropbox access token is missing.", "settings.remote_error_google_access_token_missing": "Google Drive access token is missing.", "settings.remote_error_onedrive_access_token_missing": "OneDrive access token is missing.", "settings.remote_error_ssh2_required": "PHP ssh2 extension is required for SFTP/SCP uploads.", "settings.remote_error_ftp_required": "PHP FTP extension is required for FTP/FTPS uploads.", "settings.remote_not_tested": "Not tested yet.", "settings.remote_last_upload": "Last upload: {date} — {message}", "settings.remote_placeholder_optional": "Optional", "settings.remote_connect_dropbox": "Connect Dropbox", "settings.remote_connect_google": "Connect Google", "settings.remote_connect_onedrive": "Connect OneDrive", "settings.remote_field_app_key": "App key", "settings.remote_field_client_id": "Client ID", "settings.remote_field_client_secret": "Client secret", "settings.remote_field_access_token": "Access token", "settings.remote_field_refresh_token": "Refresh token", "settings.remote_field_path": "Folder path", "settings.remote_field_folder_id": "Folder ID", "settings.remote_field_folder_path": "Folder path", "settings.remote_field_host": "Host", "settings.remote_field_port": "Port", "settings.remote_field_username": "Username", "settings.remote_field_password": "Password", "settings.remote_field_remote_path": "Remote path", "settings.remote_field_ssl": "Use FTPS", "settings.remote_field_passive": "Passive mode", "settings.remote_field_endpoint": "Endpoint", "settings.remote_field_region": "Region", "settings.remote_field_bucket": "Bucket", "settings.remote_field_prefix": "Prefix", "settings.remote_field_access_key": "Access key", "settings.remote_field_secret_key": "Secret key", "settings.remote_field_path_style": "Use path-style URLs", "settings.remote_field_url": "WebDAV URL", "settings.remote_field_bearer_token": "Bearer token", "settings.cron_setup": "Cron setup", "settings.cron_setup_hint": "Create a daily scheduled task at 03:00. In Plesk choose “Run a PHP script”, enter the script path, and set the arguments to --action=run. This avoids relying on a php command in Plesk's PATH. If you use “Run a command”, use the absolute path to the PHP CLI binary.", "settings.cron_script_path": "Script path", "settings.cron_arguments": "Arguments", "settings.cron_shell_command": "Command fallback", "settings.web_cron_url": "Web-cron URL", "settings.web_cron_hint": "If your host does not allow cron jobs, call this secret URL once per day through an external service such as cron-job.org or easycron.com. Anyone who knows this URL can start scheduled backups.", "settings.cron_copy": "Copy", "settings.cron_copied": "Copied", "settings.last_run": "Last run", "settings.last_run_never": "Never", "settings.last_run_warning": "Cron has not run in {days} days — verify the crontab is active.", "settings.last_run_ok": "Cron is running on schedule.", "settings.last_run_error": "Last run failed: {message}", "settings.storage_summary": "Storage in use", "settings.storage_count": "{count} backup(s), total {size}", "settings.storage_oldest": "Oldest: {date}", "settings.storage_newest": "Newest: {date}", "settings.backup_list_title": "Stored backups", "settings.backup_list_empty": "No backups stored yet. Run the cron job once or click \"Create backup now\" above.", "settings.backup_list_col_date": "Date", "settings.backup_list_col_tier": "Tier", "settings.backup_list_col_size": "Size", "settings.backup_list_col_actions": "Actions", "settings.backup_download": "Download", "settings.backup_restore_from_pool": "Restore", "settings.backup_delete": "Delete", "settings.backup_delete_confirm": "Delete this backup? This cannot be undone.", "settings.backup_restore_pool_warning_full": "This will replace your entire site with the contents of the selected backup. A new backup of the current state is created first. Continue?", "settings.backup_restore_pool_warning_content": "This will replace your content, images, fonts, and page templates with the contents of the selected backup. CMS core files and your login credentials are not affected. Continue?", "toast.scheduled_backup_settings_saved": "Backup settings saved.", "toast.scheduled_backup_settings_failed": "Failed to save backup settings: {message}", "toast.backup_delete_failed": "Failed to delete backup: {message}", "toast.remote_test_success": "Remote target test succeeded.", "toast.remote_test_failed": "Remote target test failed: {message}", "toast.remote_upload_success": "Remote upload complete.", "toast.remote_upload_failed": "Remote upload failed: {message}", "toast.remote_list_failed": "Failed to load remote backups: {message}", "toast.remote_import_success": "Remote backup imported locally.", "toast.remote_import_failed": "Failed to import remote backup: {message}", "toast.remote_delete_success": "Remote backup deleted.", "toast.remote_delete_failed": "Failed to delete remote backup: {message}", "toast.remote_no_enabled_targets": "No enabled remote targets configured.", "toast.remote_dropbox_connected": "Dropbox connected.", "toast.remote_oauth_connected": "Cloud storage connected.", "toast.remote_dropbox_app_key_missing": "Enter and save a Dropbox app key first.", "toast.remote_client_id_missing": "Enter and save a client ID first.", "toast.remote_dropbox_connect_failed": "Dropbox connection failed: {message}", "toast.remote_oauth_connect_failed": "Cloud storage connection failed: {message}", "toast.restore_success_full": "Ripristino completo effettuato — {extracted} file ripristinati.", "toast.restore_success_content": "Contenuti ripristinati — {extracted} file aggiornati.", "toast.restore_failed": "Ripristino fallito: {message}", "settings.users": "Utenti", "settings.users_desc": "Gestisci gli account utente che possono accedere al pannello di amministrazione.", "settings.email_missing_title": "Indirizzo email mancante", "settings.email_missing_text": "Il tuo account non ha un indirizzo email. Senza di esso, il ripristino della password tramite email non funzionerà.", "settings.email_missing_link": "Aggiungi indirizzo email ora", "settings.add_user": "Aggiungi utente", "settings.edit_user": "Modifica utente", "settings.delete_user": "Elimina utente", "settings.delete_user_confirm": "Vuoi davvero eliminare l'utente \"{username}\"? Questa azione non può essere annullata.", "settings.user_username": "Nome utente", "settings.user_email": "Email", "settings.user_role": "Ruolo", "settings.user_last_login": "Ultimo accesso", "settings.user_actions": "Azioni", "settings.user_you": "tu", "settings.reset_password": "Reimposta password", "settings.reset_password_prompt": "Inserisci la nuova password per {username}:", "toast.user_created": "Utente creato", "toast.user_updated": "Utente aggiornato", "toast.user_deleted": "Utente eliminato", "settings.email_inactive": "Inattivo", "settings.email_inactive_hint": "L'invio di email è disattivato. I messaggi del modulo di contatto verranno salvati localmente, ma non verrà inviata alcuna email.", "settings.menus": "Menu", "settings.menus_desc": "Gestisci l'ordine delle pagine in ogni menu di navigazione.", "settings.menu_select": "Seleziona menu", "settings.menu_order_empty": "Nessuna pagina in questo menu.", "settings.menu_order_saved": "Ordine del menu salvato.", "setup.admin_email": "Email (opzionale)", "setup.admin_email_placeholder": "admin@example.com", "setup.admin_email_hint": "Utilizzato per il recupero della password. Può essere aggiunto successivamente nelle Impostazioni.", "login.forgot_password": "Password dimenticata?", "login.back_to_login": "Torna al login", "login.reset_desc": "Inserisci il tuo indirizzo email e ti invieremo un link per reimpostare la password.", "login.reset_email_label": "Indirizzo email", "login.reset_send": "Invia link di reimpostazione", "login.reset_sent": "Se esiste un account con quell'indirizzo email, è stato inviato un link di reimpostazione.", "login.reset_rate_limit": "Troppe richieste. Riprova più tardi.", "login.reset_invalid_token": "Questo link di reimpostazione non è valido o è scaduto.", "login.reset_password_mismatch": "Le password non corrispondono.", "login.reset_password_weak": "La password non soddisfa i requisiti.", "login.reset_new_password_desc": "Inserisci la tua nuova password.", "login.reset_set_password": "Imposta nuova password", "login.reset_success": "La password è stata reimpostata con successo. Ora puoi accedere.", "login.reset_email_subject": "Reimpostazione password", "login.reset_email_body": "Ciao {username},\n\nHai richiesto la reimpostazione della password. Clicca sul link qui sotto per impostare una nuova password:\n\n{url}\n\nQuesto link scade tra 1 ora.\n\nSe non hai richiesto questa operazione, puoi ignorare questa email.", "login.session_expired": "La tua sessione è scaduta. Effettua nuovamente l'accesso.", "editor.nav_add_custom": "Add menu", "close": "Chiudi", "banner.frontend_edit_title": "Modifica inline?", "banner.frontend_edit_text": "Sei arrivato da una pagina pubblica. Puoi modificarla direttamente nel frontend.", "banner.frontend_edit_cta": "Torna alla pagina", "settings.frontend_login_redirect": "Dopo l'accesso", "settings.frontend_login_redirect_hint": "Dove inviare un utente che effettua l'accesso con un doppio clic sull'anno nel piè di pagina.", "settings.frontend_login_redirect_auto": "Torna alla pagina di origine (consigliato)", "settings.frontend_login_redirect_dashboard": "Vai sempre al pannello", "settings.login": "Accesso", "settings.login_visual": "Aspetto login", "settings.visual_brand_asset": "Elemento del brand", "settings.visual_brand_none": "Nessuno", "settings.visual_brand_favicon": "Favicon", "settings.visual_brand_logo": "Logo", "settings.visual_image": "Immagine", "settings.visual_image_hint": "Immagine opzionale per l’area di login.", "settings.visual_image_layout": "Layout immagine", "settings.visual_image_none": "Senza immagine", "settings.visual_image_left": "Immagine a sinistra", "settings.visual_image_right": "Immagine a destra", "settings.visual_image_background": "Immagine di sfondo", "settings.visual_overlay_color": "Colore overlay", "settings.visual_overlay_color_hint": "Usato quando l’immagine è lo sfondo.", "settings.visual_login_box": "Box di login", "settings.visual_login_box_card": "Card", "settings.visual_login_box_plain": "Semplice", "settings.visual_box_color": "Colore box", "settings.visual_box_color_hint": "Sfondo del modulo di login.", "settings.visual_box_text_color": "Colore testo box", "settings.visual_box_text_color_hint": "Testo nel modulo di login.", "settings.save_login": "Salva impostazioni di accesso", "toast.login_saved": "Impostazioni di accesso salvate", "settings.save_menus": "Salva menu", "settings.favicon_png": "Fallback PNG", "settings.favicon_png_hint": "Icona PNG opzionale per browser, schede fissate e dispositivi touch che preferiscono un'immagine raster.", "settings.logo_size": "Dimensione logo", "settings.logo_size_hint": "Controlla l'altezza del logo nell'header pubblico.", "settings.logo_size_small": "Piccolo", "settings.logo_size_medium": "Medio", "settings.logo_size_large": "Grande", "settings.default_og_image": "Default Open Graph image", "settings.default_og_image_hint": "Used for sharing previews when a page has no custom Open Graph image. JPG/PNG only; recommended size: 1200 × 630 px.", "settings.admin_logo": "Logo admin", "settings.admin_logo_hint": "Logo opzionale per la barra superiore di amministrazione. Lascia vuoto per usare il favicon.", "settings.reset_branding": "Ripristina branding", "mails.delete_read": "Elimina letti", "mails.delete_read_count": "Elimina letti ({count})", "mails.open_email_settings": "Apri impostazioni email", "mails.email_inactive_title": "L'invio email è disattivato:", "mails.email_inactive_text": "I messaggi vengono salvati localmente, ma non viene inviata alcuna notifica email. Attiva SMTP o Sendmail per riceverle.", "mails.email_recipient_missing_title": "Email destinatario mancante:", "mails.email_recipient_missing_text": "I messaggi vengono salvati localmente, ma nessuna notifica può essere inviata senza destinatario.", "toast.read_messages_deleted": "{count} messaggi letti eliminati", "modal.delete_read_messages": "Elimina messaggi letti", "modal.delete_read_messages_confirm": "Eliminare {count} messaggi letti? Questa azione non può essere annullata.", "nav.image_manager": "Gestore immagini", "nav.media_library": "Media Library", "nav.icon_manager": "Icon Manager", "media_manager": "Media Library", "image_manager": "Image Manager", "image.formats_hint": "Supported image formats: JPG, PNG, WebP, GIF, SVG", "audio.formats_hint": "Supported audio formats: MP3, WAV, OGG, M4A, AAC, FLAC", "media.video_formats_hint": "Supported video formats: MP4, WebM, MOV, M4V", "media.document_formats_hint": "Supported documents: PDF, Office, text files", "media.type_all": "All", "media.type_images": "Images", "media.type_audio": "Audio", "media.type_video": "Video", "media.type_documents": "Documents", "media.no_files": "No files found.", "media.no_selection": "No file selected.", "media.selection_count": "{count} files selected", "media.file": "File", "media.open_file": "Open file", "media.folder": "Folder", "media.folders": "Folders", "media.folder_all": "All folders", "media.folder_root": "Main folder", "media.folder_create": "New folder", "media.folder_create_prompt": "Folder name (letters, numbers, hyphen, underscore, dot; one level only):", "media.download_file": "Download image", "media.folder_created": "Folder created", "media.folder_delete": "Delete folder", "media.folder_delete_confirm": "Delete the empty folder \"{folder}\"?", "media.folder_deleted": "Folder deleted", "media.move_file": "Move file", "media.move_file_prompt": "Move to folder. Leave empty for no folder. Available: {folders}", "media.file_moved": "File moved", "media.rename_file": "Rename file", "media.ai_label": "Etichetta IA", "media.ai_none": "Nessuna etichetta", "media.ai_generated": "Generato con IA", "media.ai_generated_desc": "Creato con l’IA, ad es. con un generatore di immagini", "media.ai_modified": "Modificato con IA", "media.ai_modified_desc": "Foto reale modificata con l’IA, ad es. con riempimento o espansione generativi", "media.ai_hint": "Secondo l’articolo 50 del regolamento UE sull’IA, le immagini realistiche create o modificate con l’IA devono essere contrassegnate. L’etichetta appare automaticamente sul sito.", "media.ai_saved": "Etichetta IA salvata", "media.ai_detected": "Origine IA rilevata: l’immagine è stata contrassegnata.", "media.large_title": "Grande per una pagina web ({size}). Meglio inserire una versione più piccola.", "media.large_badge": "grande", "media.download_original": "Scarica l’originale ({size})", "media.original_title": "Originale salvato: {size}, {width} × {height} px. Le pagine usano la versione web; il download fornisce l’originale.", "media.original_badge": "Originale", "media.original_copy_path": "Copia il percorso dell’originale", "media.original_view": "Vedi l’originale", "media.original_hint": "Le pagine inseriscono la versione web. L’originale si trova in assets/images-originals/ per download e stampa, non per l’inserimento; segue il file quando viene rinominato, spostato o eliminato.", "media.original_info": "{size}, {width} × {height} px (versione web {web})", "media.original_dialog_title": "File originale", "media.web_version_created": "Versione web creata: {width} × {height} px, {size}. L’originale resta salvato; il badge “Originale” sul file lo apre.", "media.size_limit_error": "{name} è troppo grande (max. {max} MB).", "media.server_limit_error": "{name} è troppo grande: il server accetta caricamenti fino a {max} MB (upload_max_filesize / post_max_size).", "media.server_limit": "limite del server {max} MB", "media.upload_limit": "fino a {max} MB per file", "media.ai_badge": "IA", "media.rename_new_name": "New filename", "media.rename_scan_references": "Search JSON content for existing references first", "media.rename_extension_hint": "The file extension cannot be changed. .jpeg and .jpg count as equivalent.", "media.rename_references_found": "{count} reference(s) found in JSON content.", "media.rename_references_confirm": "If you rename the file anyway, existing pages may still point to the old path.", "media.rename_confirm_anyway": "Rename anyway", "media.file_renamed": "File renamed", "media.previous_image": "Previous image", "media.next_image": "Next image", "image.library": "Library", "image.no_selection": "No image selected.", "image.trash": "Trash", "image.search": "Search files", "image.grid_view": "Grid view", "image.list_view": "List view", "image.upload": "Upload", "image.drop_files": "Drop files here", "image.or": "or", "image.select": "Select", "image.empty_trash": "Empty trash", "image.col_filename": "Filename", "image.col_size": "Size", "image.col_date": "Date", "image.copy_path": "Copy path", "image.replace": "Replace", "image.restore": "Restore", "image.delete_permanently": "Delete permanently", "image.no_search_results": "No matching files.", "image.loading": "Loading...", "image.uploading": "Uploading...", "image.uploaded": "File uploaded", "image.trashed": "File moved to trash", "image.restored": "File restored", "image.replaced": "File replaced", "image.replacing": "Replacing...", "image.deleted_permanently": "File deleted permanently", "image.trash_emptied": "Trash emptied", "image.empty_trash_confirm": "Empty the media trash? This cannot be undone.", "image.delete_permanently_confirm": "Delete this file permanently? This cannot be undone.", "image.exists": "A file with this name already exists.", "image.overwrite_file": "Overwrite file", "image.overwrite_desc": "Replace the existing file with the uploaded file.", "image.save_new_name": "Save with new name", "image.save_new_desc": "Keep both files and save the upload with a new name.", "image.choose_file": "Choose file", "image.format_error": "This file type is not supported.", "image.size_error": "This file is too large.", "image.trash_hint": "Files in trash can be restored or deleted permanently.", "image_preview": "Image preview", "icons.title": "Icon Manager", "icons.add_icon": "Add Icon", "icons.edit_icon": "Edit Icon", "icons.delete_icon": "Delete Icon", "icons.empty": "No icons available.", "icons.path": "Icon set: {path}", "icons.filter": "Search icons", "icons.filter_placeholder": "Name, key, or tag", "icons.sort": "Sort order", "icons.sort_alpha": "Alphabetical", "icons.sort_newest": "Newest first", "icons.sort_oldest": "Oldest first", "icons.key": "Icon key", "icons.key_hint": "Renaming an icon key can break existing content that references the old key.", "icons.label": "Label", "icons.tags": "Tags", "icons.tags_hint": "Stored metadata for search and filtering in icon pickers; does not affect rendering.", "icons.viewbox": "ViewBox", "icons.svg": "SVG code", "icons.svg_hint": "Paste SVG inner markup or a full . raiju stores only the inner markup and adds the outer with a 24x24 viewBox when rendering. Scripts, event handlers, external references, and unsupported tags are removed on save.", "icons.preview": "Preview", "icons.source_core": "Core default", "icons.source_custom": "Custom", "icons.rename_warning_title": "Icon key changed", "icons.rename_warning": "Existing JSON content may still reference the old icon key and will then fall back to the default icon.", "icons.rename_confirm": "Rename this icon key? Existing content may still reference the old key.", "icons.delete_confirm": "Delete icon \"{key}\"? Existing content that references this key will fall back to the default icon.", "icons.saved": "Icon saved.", "icons.deleted": "Icon deleted.", "icons.load_error": "Error loading icons: {message}", "icons.save_error": "Error saving icon: {message}", "icons.delete_error": "Error deleting icon: {message}", "icons.cleanup": "Clean up", "icons.current_color": "Use currentColor", "icons.cleanup_done": "SVG code cleaned up.", "icons.import_icon": "Import from Icon Library", "icons.icon_set": "Icon set", "icons.search": "Search", "icons.import": "Import", "icons.imported_short": "Imported", "icons.imported": "Icon imported.", "icons.import_empty": "No icons found.", "icons.import_loading": "Loading icons ...", "icons.import_error": "Error importing icon: {message}", "icons.import_query_short": "Enter at least 2 characters.", "icons.import_license_hint": "Searching {set} through Iconify. License: {license}. Imported icons are stored locally.", "icons.current_color_done": "Icon colors set to currentColor.", "settings.access": "Access", "settings.access_desc": "Control maintenance mode and preview bypass access.", "settings.maintenance": "Maintenance mode", "settings.maintenance_enabled": "Enable maintenance mode", "settings.maintenance_mode": "Mode", "settings.maintenance_mode_maintenance": "Maintenance", "settings.maintenance_mode_offline": "Back soon", "settings.maintenance_mode_launch": "Launch countdown", "settings.maintenance_title": "Title", "settings.maintenance_text": "Text", "settings.maintenance_default_title": "Maintenance", "settings.maintenance_default_text": "We will be back online shortly.", "settings.maintenance_until": "Unavailable until", "settings.maintenance_countdown": "Show countdown", "settings.access_bypass": "Bypass link", "settings.access_bypass_desc": "Con questi link il sito resta raggiungibile anche in modalità manutenzione. Un link è composto dall'indirizzo del sito, un punto interrogativo, il parametro URL, un segno di uguale e la chiave. Crea più link per persone diverse e revoca ciascuno eliminandolo.", "settings.access_bypass_link": "Link:", "settings.access_bypass_key_placeholder": "CHIAVE", "settings.access_bypass_param": "URL parameter", "settings.access_bypass_key": "Chiave", "settings.access_bypass_add": "Aggiungi link", "settings.access_bypass_remove": "Rimuovi link", "settings.group_site": "Site", "settings.group_features": "Features", "settings.group_users": "Users", "settings.group_system": "System", "settings.modules": "Dashboard modules", "settings.modules_nav": "Modules", "settings.modules_desc": "Control which dashboard feature areas are available in this installation.", "settings.modules_hint": "Disabled modules are hidden from dashboard navigation. When AI Features is off, AI tools and AI buttons are hidden throughout the admin UI. Existing content remains stored and can be re-enabled later.", "settings.media_web_quality": "Qualità WebP (50–95)", "settings.media_web_max_side": "Lato più lungo della versione web (px)", "settings.media_web_version_hint": "Le immagini JPG, PNG e WebP grandi vengono ridotte al lato più lungo e salvate come WebP al caricamento; le pagine inseriscono quella versione. L’originale resta in assets/images-originals/ e si può scaricare dalla libreria.", "settings.media_web_version": "Crea una versione web al caricamento", "settings.media_max_upload_hint": "Vale per JPG, PNG, WebP, GIF e SVG. Anche il server limita i caricamenti (upload_max_filesize, post_max_size); lo stato del sistema mostra entrambi i valori.", "settings.media_max_upload": "Limite di caricamento per le immagini (MB)", "settings.media_section": "Libreria multimediale", "settings.module_ai": "AI Features", "settings.module_news": "News", "settings.module_events": "Events", "settings.module_messages": "Messages", "settings.module_icon_manager": "Icon Manager", "settings.privacy": "Privacy", "settings.privacy_desc": "Control frontend privacy behavior and local browser storage.", "settings.email_obfuscation": "Obfuscate email addresses", "settings.email_obfuscation_hint": "Public pages replace email addresses with JavaScript-decoded placeholders.", "settings.remember_public_theme": "Remember public theme choice", "settings.remember_public_theme_hint": "Stores the visitor's light/dark preference in local browser storage. Disable for highly privacy-sensitive sites.", "settings.save_access": "Save Access Settings", "settings.save_modules": "Save Dashboard Modules", "settings.save_privacy": "Save Privacy Settings", "toast.access_saved": "Access settings saved.", "toast.modules_saved": "Dashboard modules saved.", "toast.privacy_saved": "Privacy settings saved.", "editor.visibility": "Visibility", "editor.visibility_public": "Public", "editor.visibility_private": "Private, password protected", "editor.visibility_password": "Page password", "editor.visibility_title": "Password page title", "editor.visibility_text": "Password page text", "editor.visibility_password_hint": "Required when switching the page to private.", "editor.visibility_password_set": "A password is already stored. Enter a new one only to replace it.", "editor.seo": "SEO / AEO", "editor.settings_basics": "Basics", "editor.settings_navigation": "Navigation", "editor.settings_access": "Access", "editor.seo_hint": "Search previews, answer summaries, sharing, and indexing.", "editor.ai_fill_seo": "Fill SEO fields with AI", "editor.ai_fill_field": "Fill this field with AI", "editor.ai_generating": "AI is generating...", "editor.ai_done": "AI suggestion inserted.", "editor.ai_unavailable": "AI text generation is not active.", "editor.seo_title": "SEO title (defaults to page title)", "editor.seo_description": "Meta description (defaults to page description)", "editor.seo_answer_summary": "Short answer / AI summary for answer engines", "editor.seo_canonical": "Canonical URL (optional)", "editor.seo_robots_index": "Index, follow", "editor.seo_robots_noindex": "Noindex, follow", "editor.seo_robots_private": "Noindex, nofollow", "editor.seo_og_title": "Open Graph title", "editor.seo_og_description": "Open Graph description", "editor.seo_og_image": "Open Graph image", "editor.seo_og_image_format": "Open Graph images must be JPG or PNG files from /assets/images/.", "editor.seo_sitemap": "Include in XML sitemap", "ai.title": "AI", "ai.settings": "AI Settings", "ai.settings_desc": "Configure an OpenAI-compatible AI provider, budgets, quotas, and enabled AI features.", "ai.open_settings": "AI Settings", "ai.not_configured_title": "AI is not configured", "ai.not_configured_text": "Add an API key or configure an explicitly allowed local provider before AI tools can be used.", "ai.module_disabled_status": "Le funzioni AI sono disattivate nei moduli.", "ai.dismiss_notice": "Chiudi avviso AI", "ai.disabled_status": "A provider is configured, but AI features are disabled.", "ai.configured_status": "AI is configured and enabled. Usage limits and audit logging are active.", "ai.assistant": "Assistant", "ai.assistant_placeholder": "Ask how to change settings, edit content, or use raiju.", "ai.text_generator": "Text generator", "ai.text_placeholder": "Example: Write an SEO meta description for this page...", "ai.image_generator": "Image generator", "ai.image_prompt": "Image prompt", "ai.image_placeholder": "Describe the image to generate.", "ai.image_generator_disabled": "Il generatore di immagini è disattivato nelle impostazioni AI.", "ai.image_filename": "Filename", "ai.image_filename_placeholder": "e.g. homepage-hero", "ai.image_filename_hint": "Without file extension. The output format determines .png, .jpg, or .webp.", "ai.image_filename_suggest": "Suggest from prompt", "ai.send": "Send", "ai.chat_shortcuts": "Enter to send · Cmd/Ctrl+Enter for a line break.", "ai.chat_shortcuts_mac": "Enter to send · Cmd+Enter for a line break.", "ai.chat_shortcuts_ctrl": "Enter to send · Ctrl+Enter for a line break.", "ai.answering": "Generating answer...", "ai.generate_text": "Generate Text", "ai.generate_image": "Generate Image", "ai.generate_images": "Generate Images", "ai.generating": "Generating...", "ai.max_output_tokens": "Max output tokens", "ai.image_size": "Resolution / orientation", "ai.image_size_auto": "Auto", "ai.image_scale": "Resolution", "ai.image_cost_per_image": "Estimated cost per image: {cost}", "ai.image_size_note": "Computed image size: {size}.", "ai.image_size_note_auto": "Provider chooses the image size automatically.", "ai.image_orientation_square": "Square", "ai.image_orientation_landscape": "Landscape", "ai.image_orientation_portrait": "Portrait", "ai.image_format": "Format", "ai.image_quality": "Quality / detail level", "ai.image_auto": "Auto", "ai.image_quality_low": "Low", "ai.image_quality_medium": "Medium", "ai.image_quality_high": "High", "ai.image_background": "Background", "ai.image_background_opaque": "Opaque", "ai.image_background_transparent": "Transparent", "ai.image_moderation": "Sicurezza del provider", "ai.image_moderation_standard": "Standard", "ai.image_moderation_low": "Meno restrittivo", "ai.image_compression": "Compression", "ai.image_count": "Images", "ai.image_count_increase": "Increase image count", "ai.image_count_decrease": "Decrease image count", "ai.image_reference": "Reference image", "ai.image_reference_upload": "Upload image", "ai.image_reference_library": "Media Library", "ai.image_reference_none": "No reference image", "ai.image_reference_count": "{count} of {max} reference images", "ai.image_reference_file": "Reference image", "ai.image_reference_remove": "Remove reference image", "ai.improve_prompt": "Improve prompt", "ai.improving_prompt": "Improving...", "ai.image_group_auto": "Auto", "ai.image_group_square": "Square", "ai.image_group_landscape": "Landscape", "ai.image_group_portrait": "Portrait", "ai.image_history_title": "Recent generations", "ai.image_history_hint": "Saved locally with prompt, model, options, status, and media links.", "ai.image_history_empty": "No image generations saved yet.", "ai.image_history_load_more": "Load more", "ai.image_history_clear": "Clear history", "ai.image_history_clear_confirm": "Clear the complete image generation history? Generated image files remain in the Media Library.", "ai.image_history_cleared": "Image generation history cleared.", "ai.image_history_use_prompt": "Use prompt", "ai.image_history_error": "No image", "ai.image_history_status_success": "Created", "ai.image_history_status_error": "Failed", "ai.image_job_queued": "La generazione dell’immagine è stata avviata in background.", "ai.image_job_finished": "La generazione dell’immagine è terminata.", "ai.image_job_failed": "La generazione dell’immagine non è riuscita.", "ai.image_model_missing_note": "Add an image model in AI Settings before generating images.", "ai.image_anthropic_note": "Anthropic non ha un’API per le immagini. Scegli un servizio di immagini, così l’agente e le funzioni di immagine possono creare immagini.", "ai.image_openrouter_note": "OpenRouter image generation uses compatible multimodal models such as Gemini; options may vary by model.", "ai.image_field_hint": "Need a new image for this field?", "ai.open_image_generator": "AI Image Generator", "ai.provider": "Provider", "ai.enable_ai": "Enable AI features", "ai.openai_compatible": "OpenAI-compatible", "ai.anthropic": "Anthropic (Claude)", "ai.openrouter": "OpenRouter", "ai.openrouter_image_gpt": "GPT Image 2", "ai.openai_image_gpt": "GPT Image 2", "ai.openrouter_image_gemini_flash": "Nano Banana 2", "ai.openrouter_image_gemini_pro": "Nano Banana Pro", "ai.openrouter_image_model_hint": "OpenRouter requires provider-prefixed model IDs; raiju stores the selected ID automatically.", "ai.base_url": "Base URL", "ai.allow_local_provider": "Allow local/private provider URL", "ai.allow_local_provider_hint": "Required for Ollama, LM Studio, or self-hosted providers on localhost/private networks.", "ai.api_key": "API key", "ai.api_key_saved": "Chiave API salvata. Lasciala invariata per mantenerla.", "ai.api_key_missing": "No API key stored. Local providers may work without one.", "ai.clear_api_key": "Remove stored API key", "ai.organization": "ID organizzazione OpenAI (facoltativo)", "ai.models": "Models", "ai.chat_model": "Chat model", "ai.text_model": "Text model", "ai.image_model": "Image model", "ai.features": "Features", "ai.feature_assistant": "Backend assistant", "ai.feature_seo": "SEO/text generation", "ai.feature_images": "Image generation", "ai.assistant_surface_visual_editor": "Show chatbot in Visual Editor", "ai.assistant_surface_dashboard": "Show chatbot in Dashboard", "ai.assistant_force_english": "Ignore dashboard language setting - always use English for the chatbot", "ai.assistant_force_english_hint": "When enabled, the AI Assistant answers in English even if the dashboard is shown in another language.", "ai.limits": "Limits", "ai.monthly_budget": "Monthly budget (cents)", "ai.daily_requests": "Daily requests", "ai.daily_text_requests": "Daily text requests", "ai.daily_image_requests": "Daily image requests", "ai.max_input_tokens": "Max input tokens", "ai.max_input_tokens_hint": "Consigliato: 64.000. Basta per l’agente e per pagine lunghe; abbassalo solo per siti molto piccoli, per risparmiare.", "ai.max_output_tokens_hint": "Consigliato: 16.000. I modelli di ragionamento contano il loro ragionamento in questo limite, quindi un valore basso può troncare le risposte. Il limite vale per una singola risposta; paghi ciò che viene generato.", "ai.request_timeout": "Request timeout (sec.)", "ai.request_timeout_hint": "Consiglio: 300 secondi per la generazione di immagini; le richieste di testo di solito terminano prima.", "ai.pricing": "Cost estimates", "ai.input_price": "Input cents / 1M tokens", "ai.output_price": "Output cents / 1M tokens", "ai.image_price": "Prezzo predefinito per immagine (centesimi)", "ai.save_settings": "Save AI Settings", "ai.test_connection": "Test Connection", "ai.testing": "Testing...", "ai.connection_ok": "AI connection works.", "ai.settings_saved": "AI settings saved.", "ai.audit_tab": "Content audit", "ai.audit_hint": "Scan all pages for missing or weak SEO descriptions and images without alt text. The scan itself is free; suggestions use the AI text model.", "ai.audit_run": "Run audit", "ai.audit_running": "Scanning pages...", "ai.audit_empty": "No pages found.", "ai.audit_col_page": "Page", "ai.audit_col_description": "SEO description", "ai.audit_col_alt": "Image alt texts", "ai.audit_status_missing": "Missing", "ai.audit_status_short": "Too short", "ai.audit_status_long": "Too long", "ai.audit_status_ok": "OK", "ai.audit_alt_missing": "{count} missing", "ai.audit_suggest": "Suggest description", "ai.audit_apply": "Apply", "ai.audit_applied": "Applied", "ai.audit_apply_confirm": "Save this description to \"{page}\"? A backup is created first.", "ai.usage_panel": "Usage this month", "ai.usage_requests_today": "Requests today", "ai.usage_text_image_split": "{text} text · {images} image", "ai.usage_cost_month": "Cost this month", "ai.usage_requests_month": "{requests} requests", "ai.usage_tokens_month": "Tokens this month", "ai.usage_tokens_split": "{input} in · {output} out", "ai.usage_budget": "Monthly budget", "ai.usage_budget_value": "{spent} of {budget} ({percent}%)", "ai.pricing_autofilled": "Pricing fields were filled from the OpenRouter model data. Review and save.", "ai.model_list_open": "Show model suggestions", "ai.usage_summary": "Today: {today} requests · Month: {cost}", "dashboard_home.title": "Dashboard", "dashboard_home.page_views_today": "Views today", "dashboard_home.page_views_30d": "Views in 30 days", "dashboard_home.visitors_30d": "Visitors in 30 days", "dashboard_home.visits_30d": "Visits in 30 days", "dashboard_home.bots_filtered": "Bots filtered", "dashboard_home.pages": "Pages", "dashboard_home.news": "News posts", "dashboard_home.top_pages": "Top pages", "dashboard_home.referrers": "Referrers", "dashboard_home.devices": "Devices", "dashboard_home.browsers_os": "Browsers / OS", "dashboard_home.no_views": "No page views recorded yet.", "dashboard_home.no_data": "No data yet.", "dashboard_home.views_detail": "{views} views · {visitors} visitors · {visits} visits", "dashboard_home.ai_status": "AI status", "dashboard_home.ai_tools": "AI tools", "dashboard_home.analytics": "Analytics", "dashboard_home.analytics_hint": "Visitor overview for the last 30 days with bot traffic filtered.", "dashboard_home.analytics_details": "Technology details", "dashboard_home.content_overview": "Content overview", "dashboard_home.traffic_curve": "Traffic trend", "dashboard_home.views_label": "views", "dashboard_home.analytics_range": "Analytics range", "dashboard_home.range_days": "30 days", "dashboard_home.range_months": "12 months", "dashboard_home.range_years": "Years", "dashboard_home.range_label_days": "last {count} days", "dashboard_home.range_label_months": "last {count} months", "dashboard_home.range_label_years": "all years", "dashboard_home.views_period": "Views in {period}", "dashboard_home.visitors_period": "Visitors in {period}", "dashboard_home.visits_period": "Visits in {period}", "dashboard_home.hourly_distribution": "Today by hour", "dashboard_home.today": "Today", "dashboard_home.site_status": "Site status", "dashboard_home.unread_messages": "Unread messages", "dashboard_home.backup_status": "Last backup", "dashboard_home.auto_backup": "Auto backup", "dashboard_home.no_backup": "No backup", "dashboard_home.active": "Active", "dashboard_home.inactive": "Inactive", "dashboard_home.recent_edit": "Last edited", "dashboard_home.current_user": "Signed in", "save": "Salva", "saving": "Saving...", "cancel": "Annulla", "delete": "Elimina", "edit": "Modifica", "logout": "Esci", "show": "Visualizza", "hide": "Hide", "undo": "Annulla (⌘Z)", "redo": "Ripeti (⇧⌘Z)", "bold": "Bold", "italic": "Italic", "insert_link": "Insert link", "clean_formatting": "Clean formatting", "visual_editor": "Visual editor", "content_editor": "Content editor", "edit_block_title": "Edit block", "edit_mode_hint": "Edit mode is active.", "drag_reorder": "Drag to reorder", "search_blocks": "Search blocks", "add_block": "Add block", "cat.content": "Editor contenuti", "cat.media": "Media", "cat.embed": "Embed", "cat.cards": "Cards", "cat.layout": "Layout", "cat.interactive": "Interactive", "btn.move_up": "Move up", "btn.move_down": "Move down", "nav.edit_mode_active": "Edit mode active", "nav.unsaved_changes": "Unsaved changes", "link_internal": "Internal link", "link_external": "External link", "link_target": "Link target", "link_open_new_tab": "Open in new tab", "link_offer_download": "Offer as download", "footer.edit": "Edit footer", "footer.copyright": "Copyright", "footer.link_text": "Link text", "footer.link_url": "Link URL", "item.delete": "Delete item", "item.delete_confirm": "Delete this item?", "section.delete": "Delete section", "section.delete_confirm": "Delete this section?", "section.reload_hint": "Reload the page to see the updated section layout.", "image.col_actions": "Azioni", "editor.change_image": "Seleziona immagine", "audio.manager": "Audio Library", "audio.upload": "Upload audio", "audio.select": "Select audio", "audio.search": "Search audio", "audio.no_files": "No audio files found.", "audio.loading": "Loading audio...", "audio.play": "Play audio", "audio.playing": "Playing audio", "audio.delete": "Delete audio", "audio.delete_confirm": "Delete this audio file?", "audio.uploaded": "Audio uploaded", "audio.trashed": "Audio moved to trash", "audio.trash_hint": "Audio files in trash can be restored or deleted permanently.", "audio.error_loading": "Error loading audio files.", "audio.format_error": "This audio format is not supported.", "audio.size_error": "This audio file is too large.", "event.new": "+ Nuovo evento", "event.edit": "Modifica", "event.delete": "Elimina", "event.delete_confirm": "Delete this event? This cannot be undone.", "event.cannot_undo": "This cannot be undone.", "event.copy_to_all": "Copy to all languages", "event.date_required": "Data inizio", "event.title": "Title", "event.location": "Luogo", "event.description": "Description", "event.admission": "Admission", "event.url": "URL", "event.image": "Logo", "event.start_date": "Data inizio", "event.start_time": "Ora inizio", "event.end_date": "Data fine", "event.end_time": "Ora fine", "history.title": "History", "history.empty": "No history entries yet.", "history.restore": "Restore", "history.restore_title": "Restore version", "history.restore_confirm": "Restore this version? Current unsaved changes will be lost.", "history.overwrite": "Overwrite current content", "history.overwrite_warning": "This will overwrite the current content.", "history.not_found": "History entry not found.", "history.clear": "Clear history", "history.clear_confirm": "Clear history? This cannot be undone.", "history.cleared": "History cleared.", "toast.error": "Something went wrong.", "toast.error_saving_short": "Could not save.", "toast.error_deleting": "Could not delete.", "toast.error_undo": "Could not undo.", "toast.upload_error": "Upload failed.", "toast.no_changes": "No changes to save.", "toast.copied": "Copied.", "toast.copied_to_empty": "Copied into empty field.", "toast.change_queued": "Change queued.", "toast.order_changed": "Order changed.", "toast.hidden": "Hidden.", "toast.visible": "Visible.", "toast.row_hidden": "Row hidden.", "toast.row_visible": "Row visible.", "toast.event_hidden": "Event hidden.", "toast.event_visible": "Event visible.", "toast.undone": "Change undone.", "toast.formatting_cleaned": "Formatting cleaned.", "toast.select_text_first": "Select text first.", "toast.sort_same_section": "Items can only be sorted within the same section.", "copilot.title": "AI Assistant", "copilot.type_page": "Standard page", "copilot.type_news": "News post", "copilot.type_event": "Event / appointment", "copilot.type_form": "Form", "copilot.subtitle": "Safe editor assistance", "copilot.close": "Close AI Assistant", "copilot.placeholder": "Ask how to change this page...", "copilot.ask": "Ask AI Assistant", "copilot.draft_changes": "Draft changes", "copilot.draft_content": "Draft content", "copilot.draft_image": "Image", "copilot.shortcut_needs_prompt": "Enter an instruction first.", "copilot.draft_changes_hint": "Open a guided dialog to prepare a reviewed page change.", "copilot.draft_content_hint": "Open a guided dialog to prepare a new page, news post, event, or appointment.", "copilot.draft_image_hint": "Open image options and enter or refine the image prompt.", "copilot.send": "Send", "copilot.not_ready": "AI is not ready yet. Check AI Settings in the dashboard.", "copilot.current_page": "current page", "copilot.field_hints": "{count} editable field hints found", "copilot.selected_field": "Selected field: {field}", "copilot.missing": "Missing: {fields}", "copilot.create_draft": "Create draft", "copilot.needs_details_hint": "Ask another message with the missing details before creating.", "copilot.complete_details": "Complete details", "copilot.complete_details_title": "Complete content details", "copilot.update_draft": "Update draft", "copilot.update_draft_instruction": "Update the content draft with the submitted form fields.", "copilot.content_draft_title": "{type} draft", "copilot.ready_to_create": "Ready to create", "copilot.needs_details": "Needs details", "copilot.private_draft": "Private draft", "copilot.hidden_draft": "Hidden draft", "copilot.draft_created": "Draft created", "copilot.open_dashboard": "Open in dashboard", "copilot.open_preview": "Open preview URL", "copilot.created_title": "{type} created", "copilot.last_change": "Last AI change applied", "copilot.undo": "Undo", "copilot.alt_text": "Alt text", "copilot.current": "Current", "copilot.draft": "Draft", "copilot.review_backup": "Review before applying. A backup is created server-side.", "copilot.apply": "Apply", "copilot.copy": "Copy", "copilot.copied_message": "Copied the draft value for {field}.", "copilot.copy_failed": "Could not copy the draft value.", "copilot.publish": "Publish", "copilot.publish_confirm": "Publish this draft now?", "copilot.published_message": "Published {type} \"{id}\".", "copilot.intro_message": "I can help with this page and explain how to edit or create content safely. Write what you want to change or create.", "copilot.no_response": "No response.", "copilot.suggestions_ready": "I drafted safe field-level suggestions. Review the preview cards below.", "copilot.no_safe_field": "I could not map that request to a safe editable field on this page yet.", "copilot.content_draft_ready_message": "I prepared a new {type} draft. Review the preview before creating it.", "copilot.content_draft_needs_details_message": "I prepared a draft, but it needs more details before it can be created.", "copilot.content_unavailable": "Content creation is not available for your role or this site configuration.", "copilot.image_unavailable": "Image generation is not available for your role, this page, or the current AI settings.", "copilot.no_image_field": "I could not find an editable image field on this page.", "copilot.choose_image_field": "Which image field should I use?", "copilot.image_options_title": "Image options", "copilot.image_options_hint": "Choose the target image and generation mode.", "copilot.image_mode_label": "Mode", "copilot.image_mode_generate": "From prompt", "copilot.image_mode_edit": "With reference image", "copilot.image_size": "Size", "copilot.image_size_auto": "Auto", "copilot.image_size_square": "Square", "copilot.image_size_landscape": "Landscape", "copilot.image_size_portrait": "Portrait", "copilot.image_count": "Images", "copilot.image_format": "Format", "copilot.image_quality": "Quality", "copilot.image_quality_auto": "Auto", "copilot.image_quality_low": "Low", "copilot.image_quality_medium": "Medium", "copilot.image_quality_high": "High", "copilot.image_generate_action": "Generate image", "copilot.image_options_ready": "Choose the image field and whether to generate a new image or edit the current one.", "copilot.image_job_queued": "La generazione dell’immagine è in esecuzione in background. Puoi continuare a lavorare; mostrerò l’anteprima quando sarà pronta.", "copilot.image_draft_ready": "Generated image ready. Review the preview card before applying it.", "copilot.image_no_proposal": "Image generation returned no preview.", "copilot.apply_confirm": "Apply this AI draft to \"{field}\"?", "copilot.applied_message": "Applied the draft to {field}. A backup was created before saving.", "copilot.undo_confirm": "Undo the last AI change on this page? The current state will be backed up first.", "copilot.undo_message": "Restored the page from the backup. Reloading the page now.", "copilot.create_confirm": "Create this {type} draft?", "copilot.created_message": "Created {type} draft \"{id}\". It is not published publicly by default.", "copilot.created_page_navigation_hint": "Open the page in the Content Editor and set Page Settings / Navigation if it should appear in a menu.", "copilot.navigation_manual_required": "No change was applied. I cannot safely change page navigation directly from chat yet. Open Page Settings / Navigation in the Content Editor and select the menus where this page should appear.", "copilot.image_request_failed": "Image generation failed.", "copilot.working_translate": "Translating the page content...", "copilot.translate_ready": "I drafted {target} translations. Review the preview cards below; applying saves them to the {target} page.", "copilot.translate_no_fields": "I could not draft translations for this page. Check that the target language page exists and has translatable fields.", "copilot.translate_unavailable": "Translation drafts are not available for your role or on this surface. Open the page in the Visual Editor to translate it.", "copilot.request_failed": "AI Assistant request failed.", "copilot.proposal_summary_title": "Planned changes", "copilot.proposal_summary_hint": "{count} changes will be reviewed together.", "copilot.apply_all": "Apply all", "copilot.apply_all_confirm_title": "Apply all AI drafts?", "copilot.apply_all_confirm_body": "Apply these {count} AI drafts? A backup is created for every changed page state.", "copilot.applied_all_message": "Applied {count} AI drafts. A backup was created before each save.", "copilot.apply_confirm_title": "Apply AI draft?", "copilot.confirm_title": "Confirm action", "copilot.modal_cancel": "Cancel", "copilot.modal_confirm": "Confirm", "copilot.enable_visual_editor_title": "Activate Visual Editor?", "copilot.enable_visual_editor_action": "Activate Visual Editor", "copilot.undo_confirm_title": "Undo last AI change?", "copilot.create_confirm_title": "Create draft?", "copilot.publish_confirm_title": "Publish draft?", "copilot.summary_hide": "Hide field", "copilot.summary_show": "Show field", "copilot.summary_image": "Replace image", "copilot.request_timeout": "AI Assistant request timed out. No change was applied.", "copilot.working": "AI Assistant is working...", "copilot.working_context": "Loading page context...", "copilot.working_chat": "Thinking about your question...", "copilot.working_draft": "Drafting a safe change...", "copilot.working_content": "Preparing a content draft...", "copilot.working_image": "Generating image...", "copilot.working_apply": "Applying the confirmed change...", "copilot.working_undo": "Restoring the previous version...", "copilot.working_create": "Creating the confirmed draft...", "copilot.working_publish": "Publishing the confirmed draft...", "copilot.enable_visual_editor_confirm": "The Visual Editor must be active before AI changes can be prepared on this page. Activate it now?", "copilot.visual_editor_required": "No change was made. Activate the Visual Editor first, then ask me to prepare the change again.", "copilot.visual_editor_enabled": "Visual Editor is active. I will prepare the change as a preview first.", "copilot.visual_editor_unavailable": "The Visual Editor is not available on this page, so I cannot safely prepare page changes here.", "copilot.use_current_image_confirm": "Use the current image as a reference for editing? Choose Cancel to generate a new image from the prompt only.", "copilot.maximize": "Maximize AI Assistant", "copilot.minimize": "Minimize AI Assistant", "copilot.no_pending_preview": "There is no reviewed AI preview waiting to apply. Ask for a change first, then use the preview card.", "copilot.image_prompt": "Prompt", "copilot.image_prompt_placeholder": "Describe the image to generate...", "copilot.image_prompt_required": "Add a prompt before generating an image.", "copilot.image_request_timeout": "Image generation timed out. No image preview was created.", "copilot.session_expired": "Your session expired. Please log in again in the dashboard, then reload this page.", "copilot.applied_image_message": "Applied the generated image to {field}. A backup was created before saving.", "copilot.generated_image": "Generated image", "copilot.generated_image_applied": "Generated image applied", "copilot.history": "Chat history", "copilot.history_loading": "Loading chat history...", "copilot.history_empty": "No archived chats yet.", "copilot.new_chat": "New chat", "copilot.delete_chat": "Delete chat", "copilot.delete_chat_title": "Delete chat?", "copilot.delete_chat_confirm": "Delete this AI Assistant chat history? This cannot be undone.", "copilot.untitled_chat": "Untitled chat", "copilot.dashboard_context": "Dashboard", "copilot.dashboard_hint": "General site and dashboard assistance", "copilot.undo_detail": "Changed: {field}", "copilot.unknown_field": "selected field", "copilot.section_field_label": "Section {section} {field}", "copilot.change_details_title": "Prepare change", "copilot.change_details_hint": "Describe the change. The Assistant will create a reviewable preview before anything is applied.", "copilot.target_field": "Target", "copilot.current_selection_none": "No field selected", "copilot.change_instruction": "Change instruction", "copilot.change_instruction_placeholder": "Describe what should change on this page...", "copilot.prepare_preview": "Prepare preview", "copilot.content_type": "Content type", "copilot.content_type_page": "Page", "copilot.content_type_news": "News post", "copilot.content_type_event": "Event / appointment", "copilot.choose_target_field": "Choose target field", "copilot.choose_target_field_placeholder": "Select a field...", "copilot.choose_target_field_hint": "You can also click an editable element on the page before opening this dialog.", "copilot.choose_target_required": "Choose the field you want to change first.", "copilot.current_field_content": "Current content", "copilot.current_field_empty": "This field is currently empty.", "copilot.current_field_select": "Choose a target field to preview its current content.", "copilot.dash_apply": "Applica", "copilot.dash_open_btn": "Apri", "copilot.dash_dismiss": "Scarta", "copilot.dash_applying": "In corso...", "copilot.dash_done": "Fatto.", "copilot.dash_failed": "Non ha funzionato.", "copilot.dash_opened": "Aperto.", "copilot.dash_language_reload": "Salvato. La dashboard si ricarica nella nuova lingua.", "copilot.dash_adjusted": "Salvato. Il colore è stato leggermente adattato per restare leggibile.", "copilot.dash_saved": "Salvato.", "copilot.dash_open_title": "Apri {target}", "copilot.dash_change_title": "Cambia {setting}", "copilot.dash_already": "{setting} è già {value}.", "copilot.dash_setting_adminTheme": "tema della dashboard", "copilot.dash_setting_primaryColor": "colore principale della dashboard", "copilot.dash_setting_accentColor": "colore di accento della dashboard", "copilot.dash_setting_adminLanguage": "lingua della dashboard", "copilot.dash_value_light": "Chiaro", "copilot.dash_value_dark": "Scuro", "copilot.dash_value_system": "Segui il dispositivo", "copilot.dash_actions_ready": "L'ho preparato per te. Controlla la scheda e conferma.", "copilot.dash_not_possible": "Non sono riuscito a prepararlo. Dimmi cosa vuoi cambiare o dove vuoi andare e ti mostro la strada.", "copilot.dash_open_new_tab": "Apri in una nuova scheda", "copilot.dash_where_title": "Ecco dove trovarlo: {name}", "copilot.dash_where_lead": "Qui non posso farlo per te, ma ecco dove trovarlo:", "copilot.dash_admin_only": "Questo è riservato agli amministratori. Ecco dove si trova nella dashboard:", "copilot.dash_module_off_title": "{target} è disattivato", "copilot.dash_value_unclear": "Non ho potuto usare quel valore. Puoi impostarlo direttamente qui: {name}", "copilot.map_admin_only": "Questa operazione è riservata agli amministratori.", "copilot.map_module_off": "Questo modulo è disattivato. Puoi attivarlo in {path}.", "copilot.safety_blocked": "Ho scartato questa proposta: sembrava frode, phishing, malware, odio o contenuto per adulti o illegale.", "copilot.safety_note": "Avviso di sicurezza: questo testo chiede password o dati di pagamento, contiene link da controllare o istruzioni rivolte a un’IA. Controllalo con attenzione prima di applicarlo.", "ai.image_jobs_title": "Job immagini", "ai.image_jobs_check": "Controlla job", "ai.image_jobs_idle": "Nessun job immagine aperto.", "ai.image_jobs_open": "{count} job immagine in coda o in esecuzione.", "ai.image_jobs_finished": "L’ultimo job immagine è terminato.", "ai.image_jobs_failed": "L’ultimo job immagine non è riuscito.", "agent.title": "Agente IA", "agent.intro": "L’agente elabora la tua richiesta, prepara un pacchetto di modifiche e te lo mostra. Nulla viene pubblicato finché non lo applichi.", "agent.mode_label": "Modalità", "agent.mode_agent": "Agente", "agent.mode_agent_hint": "L’agente prepara un pacchetto di modifiche completo da controllare.", "agent.mode_classic": "Classica", "agent.mode_classic_hint": "Fai domande e prepara singole modifiche passo dopo passo.", "agent.placeholder": "Di’ all’agente cosa modificare, ad es. «Aggiungi una notizia su …»", "agent.placeholder_busy": "L’agente sta lavorando…", "agent.placeholder_answer": "Rispondi all’agente…", "agent.placeholder_changes": "Cosa dovrebbe cambiare nel pacchetto?", "agent.status_thinking": "Sta pensando…", "agent.status_waiting_image": "In attesa dell’immagine…", "agent.status_ready": "Pronto", "agent.status_conflict": "Non aggiornato", "agent.status_check": "Richiede attenzione", "agent.cancel": "Annulla", "agent.cancelling": "Annullamento…", "agent.cancelled": "L’agente è stato annullato. Non è stato modificato nulla.", "agent.steps_title": "{count} passaggi", "agent.step_failed": "non ha funzionato", "agent.retry": "Ricomincia", "agent.continue": "Continua", "agent.busy": "L’agente sta ancora lavorando. Riprova tra un attimo.", "agent.error_generic": "L’agente non è riuscito a terminare.", "agent.error_connection": "La connessione è stata interrotta.", "agent.step.unknown": "Al lavoro", "agent.step.get_site_overview": "Guarda il sito", "agent.step.get_page_capabilities": "Controlla cosa si può modificare su {detail}", "agent.step.read_content": "Legge {detail}", "agent.step.list_content": "Elenca {detail}", "agent.step.list_media": "Sfoglia la libreria multimediale", "agent.step.list_run_media": "Controlla le immagini allegate", "agent.step.search_stock_images": "Cerca foto stock: {detail}", "agent.step.import_stock_image": "Scarica una foto stock", "agent.step.generate_image": "Genera un’immagine", "agent.step.search_web": "Ricerca: {detail}", "agent.step.read_web_result": "Legge una fonte", "agent.step.stage_set_field": "Modifica {detail}", "agent.step.stage_set_image": "Imposta un’immagine su {detail}", "agent.step.stage_add_list_item": "Aggiunge un elemento a {detail}", "agent.step.stage_hide_list_item": "Nasconde o mostra un elemento su {detail}", "agent.step.stage_remove_list_item": "Rimuove un elemento da {detail}", "agent.step.stage_move_list_item": "Sposta un elemento su {detail}", "agent.step.stage_add_section": "Aggiunge una sezione a {detail}", "agent.step.stage_create_news": "Crea una notizia", "agent.step.stage_create_event": "Crea un evento", "agent.step.stage_create_page": "Crea una pagina", "agent.step.stage_set_page_menus": "Modifica i menu di {detail}", "agent.step.stage_revert_op": "Annulla una modifica", "agent.step.validate_changeset": "Controlla il pacchetto", "agent.step.ask_user": "Ti fa una domanda", "agent.step.present_changeset": "Prepara la revisione", "agent.package_title": "Pacchetto di modifiche", "agent.open_questions": "Domande aperte", "agent.target_page": "Pagina: {name}", "agent.target_news": "Notizia: {name}", "agent.target_event": "Evento: {name}", "agent.target_shared": "Contenuto condiviso: {name}", "agent.before": "Prima", "agent.after": "Dopo", "agent.empty_value": "(vuoto)", "agent.destructive": "Elimina contenuto", "agent.validation_ok": "Tutti i controlli superati", "agent.validation_errors": "Problemi trovati", "agent.validation_warnings": "Note", "agent.where_title": "Dove trovarlo", "agent.step.find_in_dashboard": "Cerca dove si trova nella dashboard", "agent.risk_title": "Controllo di sicurezza: guarda con attenzione", "agent.risk_confirm_title": "Applicare nonostante gli avvisi di sicurezza?", "agent.risk_confirm_body": "Il controllo di sicurezza ha segnalato questo pacchetto. Applicalo solo se è esattamente ciò che hai chiesto. Potrai poi annullarlo.", "agent.risk_confirm_button": "Applica comunque", "agent.safety_confirm_needed": "Questo pacchetto ha avvisi di sicurezza. Leggili nella revisione e confermali per applicarlo.", "agent.safety.mass_removal": "Di {total} parti di {target}, {count} verrebbero rimosse, nascoste o svuotate.", "agent.safety.list_emptied": "L’elenco «{list}» di {target} resterebbe vuoto.", "agent.safety.large_text_loss": "Circa il {percent} % del testo di {target} andrebbe perso.", "agent.safety.too_many_removals": "Questo pacchetto rimuoverebbe, nasconderebbe o svuoterebbe {count} parti del sito.", "agent.safety.too_many_creations": "Questo pacchetto creerebbe {count} pagine, notizie o eventi.", "agent.safety.menu_changes": "Questo pacchetto cambierebbe i menu di {count} pagine.", "agent.safety.too_many_targets": "Questo pacchetto riguarda {count} pagine, notizie o eventi.", "agent.safety.contact_changed": "Un indirizzo e-mail, un numero di telefono o un dato bancario di {target} verrebbe sostituito da un altro.", "agent.safety.content_blocked": "Il nuovo testo di {target} sembra frode, phishing, malware, odio o contenuto per adulti o illegale ed è stato bloccato.", "agent.safety.content_caution": "Il nuovo testo di {target} chiede ai visitatori password o dati di pagamento, oppure contiene link da controllare.", "agent.safety.content_injection": "Il nuovo testo di {target} contiene istruzioni rivolte a un’IA. Può essere il segno di una fonte manipolata.", "agent.safety_refuse.mass_delete": "Non svuoto una pagina né cancello un intero sito in un colpo solo. Dimmi quali sezioni o elementi rimuovere o nascondere, pochi alla volta, e li preparo per la tua revisione. Poi tutto si può annullare.", "agent.safety_refuse.hate": "Non posso aiutarti in questo: diffonderebbe odio o inciterebbe alla violenza contro le persone.", "agent.safety_refuse.create_crime": "Non posso aiutarti in questo: creerebbe contenuti fraudolenti, dannosi, per adulti o illegali.", "agent.render_failed": "Una pagina richiede attenzione", "agent.images": "Immagini", "agent.image_ai": "Generata da IA", "agent.image_stock": "Foto stock", "agent.image_generated": "Immagine generata", "agent.image_upload": "Il tuo file", "agent.sources": "Fonti", "agent.source_warning": "Questa pagina contiene testo che cerca di dare istruzioni a un’IA. È stato ignorato.", "agent.conflict": "Il contenuto è cambiato dopo l’avvio dell’agente. Riconvalida il pacchetto per continuare.", "agent.revalidate": "Riconvalida", "agent.preview": "Anteprima", "agent.preview_hint": "Apre la pagina con le modifiche. La vedi solo tu.", "agent.preview_page": "Anteprima: {name}", "agent.preview_banner": "Anteprima: queste modifiche non sono ancora state applicate. Solo tu vedi la pagina così.", "agent.preview_back": "Torna all'assistente", "agent.op.set_field": "Modifica “{field}”", "agent.op.set_image": "Imposta l'immagine “{field}”", "agent.op.list_insert": "Aggiungi elemento a “{field}”", "agent.op.list_hide": "Nascondi l'elemento {n} di “{field}”", "agent.op.list_show": "Mostra l'elemento {n} di “{field}”", "agent.op.list_remove": "Rimuovi l'elemento {n} di “{field}”", "agent.op.list_move": "Sposta l'elemento {from} alla posizione {to} in “{field}”", "agent.op.section_insert": "Aggiungi sezione di tipo {type}", "agent.op.create_news": "Crea articolo di news", "agent.op.create_event": "Crea evento", "agent.op.create_page": "Crea pagina", "agent.op.set_page_menus": "Modifica i menu di questa pagina", "agent.op.in_section": "{what} nella sezione {n} ({type}): “{title}”", "agent.op.in_section_untitled": "{what} nella sezione {n} ({type})", "agent.op.item": "(elemento {item})", "agent.field.content": "Testo", "agent.field.text": "Testo", "agent.field.title": "Titolo", "agent.field.heading": "Titolo della sezione", "agent.field.subtitle": "Sottotitolo", "agent.field.description": "Descrizione", "agent.field.caption": "Didascalia", "agent.field.image": "Immagine", "agent.field.items": "Elementi", "agent.field.alt": "Testo alternativo", "agent.apply": "Applica modifiche", "agent.apply_confirm_title": "Applicare questo pacchetto?", "agent.apply_confirm_body": "Verranno salvate {count} modifiche. Le modifiche ai contenuti esistenti sono subito visibili; i nuovi contenuti restano nascosti finché non li pubblichi. In seguito puoi annullare il pacchetto.", "agent.apply_confirm_body_live": "Verranno salvate {count} modifiche, che saranno subito visibili. In seguito puoi annullare il pacchetto.", "agent.apply_confirm_button": "Applica", "agent.apply_failed": "Impossibile applicare il pacchetto. {message}", "agent.discard": "Scarta", "agent.discard_confirm_title": "Scartare questo pacchetto?", "agent.discard_confirm_body": "Le modifiche e le immagini preparate vengono eliminate. Il tuo sito non cambia.", "agent.discard_confirm_button": "Scarta", "agent.discarded": "Il pacchetto è stato scartato. Non è stato modificato nulla.", "agent.request_changes": "Richiedi modifiche", "agent.applied_title": "Modifiche applicate", "agent.applied_note": "È stato creato un backup. Le modifiche ai contenuti esistenti sono già visibili; i nuovi contenuti restano nascosti finché non li pubblichi.", "agent.applied_note_live": "È stato creato un backup. Le modifiche sono visibili. Con «Annulla» ripristini lo stato precedente.", "agent.applied_summary": "Il pacchetto precedente è stato applicato.", "agent.undo": "Annulla modifiche", "agent.undo_confirm_title": "Annullare questo pacchetto?", "agent.undo_confirm_body": "I contenuti interessati tornano allo stato precedente al pacchetto.", "agent.undone": "Il pacchetto è stato annullato.", "agent.publish": "Pubblica", "agent.publish_confirm_title": "Pubblicare questo elemento?", "agent.publish_confirm_body": "Diventa visibile ai visitatori.", "agent.publish_not_allowed": "Per pubblicare serve un ruolo con questo permesso.", "agent.published": "Pubblicato", "agent.item_news": "Notizia", "agent.item_event": "Evento", "agent.item_page": "Pagina", "agent.item_section": "Sezione", "agent.item_list_item": "Elemento di elenco", "agent.reload": "Ricarica la pagina", "agent.attach": "Allega immagini", "agent.attach_hint": "Allega immagini (JPEG, PNG o WebP). L’agente può usarle nel pacchetto.", "agent.attach_blocked": "Allega le immagini prima di inviare la richiesta.", "agent.drop_hint": "Trascina qui le immagini per allegarle", "agent.upload_busy": "Caricamento…", "agent.upload_failed": "{name}: {message}", "agent.upload_limit": "Puoi allegare fino a {count} immagini alla volta.", "agent.upload_size": "{name} è troppo grande (max. {size} MB).", "agent.upload_type": "Si possono allegare solo immagini JPEG, PNG e WebP.", "agent.chips_remove": "Rimuovi immagini", "ai.agent_title": "Agente IA", "ai.agent_hint": "L’agente elabora una richiesta in autonomia, prepara un pacchetto di modifiche e attende la conferma. Richiede un provider con chiamate a strumenti e usa più richieste IA per esecuzione.", "ai.agent_enable": "Attiva l’agente IA", "ai.agent_status_ready": "L’agente è pronto.", "ai.agent_status_off": "L’agente è disattivato.", "ai.agent_status_ai_off": "Attiva prima l’IA e aggiungi una chiave API.", "ai.agent_status_no_tools": "Il provider o il modello scelto non supporta le chiamate a strumenti, quindi l’agente resta non disponibile.", "ai.agent_status_no_gd": "Manca l’estensione PHP GD, quindi non è possibile preparare le immagini.", "ai.agent_status_no_webp": "GD non supporta WebP; le immagini vengono salvate come JPEG.", "ai.agent_status_limits": "Un’esecuzione dell’agente richiede più richieste IA. Aumenta i limiti giornalieri (ora {requests} richieste) e i token di input massimi (ora {tokens}); circa 300 richieste al giorno e 64.000 token sono un buon inizio.", "ai.agent_limits": "Limiti per esecuzione", "ai.agent_runs_per_hour": "Esecuzioni all’ora per utente", "ai.agent_max_turns": "Turni del modello per ciclo", "ai.agent_max_tool_calls": "Chiamate a strumenti per ciclo", "ai.agent_max_cost": "Tetto di costo per esecuzione (centesimi)", "ai.agent_max_runtime": "Durata massima (minuti)", "ai.agent_uploads": "Caricamenti di immagini ogni 10 minuti", "ai.agent_roles": "Cosa possono fare i redattori", "ai.agent_roles_hint": "Gli amministratori possono fare tutto. I redattori possono sempre modificare testi, immagini e link esistenti.", "ai.agent_right_publish": "Pubblicare nuovi contenuti", "ai.agent_right_stockImages": "Usare foto stock", "ai.agent_right_uploadImages": "Allegare immagini proprie", "ai.agent_right_generateImages": "Generare immagini IA", "ai.agent_right_research": "Fare ricerche sul web", "ai.agent_right_structural": "Aggiungere, rimuovere e spostare elementi e sezioni", "ai.agent_right_createPages": "Creare pagine", "ai.agent_right_createNews": "Creare notizie", "ai.agent_right_createEvents": "Creare eventi", "ai.agent_right_editSharedContent": "Modificare contenuti condivisi (footer, barra laterale)", "ai.agent_images": "Immagini", "ai.agent_media_folder": "Cartella multimediale per le immagini dell’agente", "ai.agent_media_folder_hint": "Lettere minuscole, cifre, - e _. Le immagini portate dall’agente vengono salvate in questa cartella di assets/images/.", "ai.agent_credit_in_news": "Aggiungi i crediti fotografici alle notizie", "ai.agent_pexels_key": "Chiave API Pexels (foto stock)", "ai.agent_research": "Ricerca web", "ai.agent_brave_key": "Chiave API Brave Search", "ai.agent_clear_key": "Rimuovi la chiave API salvata", "ai.agent_allow_domains": "Consenti solo questi siti (uno per riga, facoltativo)", "ai.agent_deny_domains": "Non leggere mai questi siti (uno per riga)", "ai.agent_respect_robots": "Rispetta il robots.txt dei siti", "ai.agent_sources_in_news": "Aggiungi un elenco di fonti alle notizie", "ai.agent_clear_cache": "Svuota la cache di scansione delle pagine", "ai.agent_cache_cleared": "Cache svuotata ({count} file).", "ai.agent_cache_hint": "L’agente analizza i tuoi template di pagina per capire cosa è modificabile. Svuota la cache dopo aver modificato i template a mano.", "system.agent": "Agente IA", "system.agent_state": "Agente", "system.agent_on": "Attivo", "system.agent_off": "Disattivato", "system.agent_tools": "Chiamate a strumenti", "system.agent_gd": "Elaborazione immagini (GD)", "system.agent_webp": "Output WebP", "system.agent_research": "Chiave per la ricerca web", "system.agent_stock": "Chiave per le foto stock", "system.agent_storage_note": "L’agente conserva i suoi dati in content/; il controllo di sicurezza qui sopra mostra che questa cartella non è pubblica.", "system.upload_note": "Se il limite PHP è inferiore al limite immagini, vale il limite PHP. Si imposta in php.ini, .user.ini o .htaccess (upload_max_filesize, post_max_size); l’.htaccess contiene un esempio.", "system.upload_no_webp": "Non possibile: GD senza WebP", "system.upload_off": "Disattivata", "system.upload_on": "Attiva", "system.upload_unlimited": "Illimitato", "system.upload_memory": "Memoria (memory_limit)", "system.upload_web_version": "Versione web al caricamento", "system.upload_server_bound": "vale il limite PHP di {max} MB", "system.upload_image_limit": "Limite immagini della libreria", "system.upload_server_limit": "Limite di caricamento PHP", "system.uploads": "Caricamenti", "system.configured": "Configurato", "system.not_configured": "Non configurato", "agent.step.read_url": "Legge {detail}", "ai.agent_research_hint": "Anche senza chiave Brave, l’agente può leggere gli indirizzi web che l’utente scrive nella chat.", "ai.models_loading": "Caricamento dei modelli del tuo provider…", "ai.models_loaded": "{count} modelli caricati dal tuo provider.", "ai.models_failed": "Impossibile caricare l’elenco dei modelli ({message}). Puoi comunque digitare il nome di un modello.", "ai.agent_recommended_limits": "Usa i limiti consigliati", "ai.agent_recommended_limits_hint": "Aumenta i limiti di token e richieste inferiori a quanto serve all’agente (64.000 token in input, 16.000 in output, 300 richieste al giorno). I valori più alti restano.", "ai.agent_limits_raised": "Limiti portati a quanto serve all’agente. Salva per mantenerli.", "ai.agent_limits_fine": "I tuoi limiti sono già sufficienti.", "ai.limit_kind_month": "Budget mensile dell’IA", "ai.limit_kind_requests": "Richieste IA al giorno", "ai.limit_kind_text": "Richieste IA di testo al giorno", "ai.limit_kind_images": "Richieste IA di immagini al giorno", "ai.limit_warning": "{kind}: {used} di {limit} usato ({percent} %). Aumenta il limite per tempo.", "ai.limit_reached": "{kind}: limite raggiunto ({used} di {limit}). Le nuove richieste IA sono bloccate finché il limite non viene aumentato o il periodo termina.", "ai.limit_adjust": "Modifica i limiti", "ai.limit_raise": "Aumenta del 50 %", "ai.limit_raised": "Limiti aumentati della metà. Salva per mantenerli.", "ai.limit_ask_admin": "Chiedi a un amministratore di aumentare il limite.", "ai.limit_dismiss": "Nascondi", "ai.limits_hint": "I limiti sono indicativi, non muri: una richiesta che parte sotto il limite può concludersi, e un’esecuzione dell’agente in corso può usare circa il 10 % in più prima di essere fermata. Le nuove richieste vengono bloccate al raggiungimento di un limite. Il limite per le immagini è rigido.", "settings.search_engines": "Motori di ricerca", "settings.noindex_site": "Blocca questo sito web ai motori di ricerca (staging)", "settings.noindex_site_hint": "Blocca il sito nel robots.txt, nel meta tag robots e nell’X-Robots-Tag e svuota la sitemap. Pensato per siti di test e di staging. Disattiva il blocco non appena il sito è online.", "settings.site_url": "Indirizzo del sito web", "settings.site_url_hint": "L’indirizzo pubblico con https://, ad esempio https://www.example.com. Compare nei link canonici e nella sitemap. Lascia vuoto per usare l’indirizzo visitato. Aggiornalo quando passi dallo staging al dominio definitivo.", "system.badge": "Avvisi: {count}", "seo_check.title": "Motori di ricerca", "seo_check.running": "Controllo in corso …", "seo_check.pending": "Non ancora controllato", "seo_check.url": "Indirizzo:", "seo_check.expected": "Atteso per un sito online:", "seo_check.allow": "Consenti l’indicizzazione", "seo_check.allowed": "Il blocco è stato rimosso. Il controllo viene eseguito di nuovo.", "seo_check.where_meta": "meta tag robots", "seo_check.where_header": "X-Robots-Tag", "seo_check.skipped_local": "Installazione locale: controllata solo con un indirizzo pubblico", "seo_check.skipped_dev_server": "Non possibile sul server di sviluppo PHP", "seo_check.unknown_unreachable": "Impossibile controllare: il server non raggiunge il proprio indirizzo ({detail})", "seo_check.unknown_auth": "Impossibile controllare: il sito web è protetto da accesso (HTTP 401)", "seo_check.unknown_host": "Impossibile controllare: l’indirizzo del sito web è sconosciuto", "seo_check.unknown_no_curl": "Impossibile controllare: manca l’estensione PHP curl", "seo_check.unknown_fix": "Verifica dall’esterno se l’indirizzo è raggiungibile, ad esempio con: curl -I {url}", "seo_check.robots_txt": "robots.txt", "seo_check.robots_txt_ok": "Consente i motori di ricerca", "seo_check.robots_txt_blocked": "Blocca tutti i motori di ricerca (Disallow: /)", "seo_check.robots_txt_status": "Risponde con {detail}", "seo_check.robots_txt_sitemap_host": "Rimanda a una sitemap a un altro indirizzo: {detail}", "seo_check.robots_txt_no_sitemap": "Non contiene alcun riferimento alla sitemap", "seo_check.robots_txt_expected": "Nessun “Disallow: /” per tutti i motori di ricerca e un riferimento alla sitemap di questo sito web.", "seo_check.robots_txt_fix_blocked_setting": "Il blocco deriva dall’impostazione “Blocca questo sito web ai motori di ricerca” (Impostazioni → Branding → Motori di ricerca). Se il sito è online, consenti l’indicizzazione con il pulsante qui sotto o disattiva l’impostazione.", "seo_check.robots_txt_fix_blocked_file": "Un file robots.txt nella cartella principale del sito sostituisce il robots.txt di Raiju. Se il sito è online, elimina il file o rimuovi la riga “Disallow: /”. Raiju fornirà quindi il robots.txt da sé.", "seo_check.robots_txt_fix_blocked_unknown": "Il blocco non deriva né dall’impostazione di Raiju né da un file nella cartella principale. Controlla se una regola dell’hosting, un proxy o un altro sistema sostituisce il robots.txt.", "seo_check.robots_txt_fix_status": "Il robots.txt non viene servito normalmente. Controlla i reindirizzamenti e le regole dell’hosting per questo indirizzo.", "seo_check.robots_txt_fix_sitemap_host": "Il robots.txt indica la sitemap di un altro indirizzo, di solito il dominio di staging. Inserisci l’indirizzo corretto del sito in Impostazioni → Branding → Motori di ricerca oppure modifica un robots.txt personalizzato nella cartella principale.", "seo_check.robots_txt_fix_no_sitemap": "Aggiungi al robots.txt una riga “Sitemap: https://tuo-dominio/sitemap.xml” oppure elimina un robots.txt personalizzato nella cartella principale, così che Raiju lo generi.", "seo_check.page_robots": "Home page per i motori di ricerca", "seo_check.page_robots_ok": "Nessun noindex nel meta tag robots né nell’X-Robots-Tag", "seo_check.page_robots_noindex": "noindex trovato: {where}", "seo_check.page_robots_redirect": "Reindirizza a un altro indirizzo: {detail}", "seo_check.page_robots_status": "Risponde con {detail}", "seo_check.page_robots_expected": "Né il meta tag robots né l’X-Robots-Tag contengono noindex e l’indirizzo non reindirizza a un altro dominio.", "seo_check.page_robots_fix_noindex_setting": "Il blocco deriva dall’impostazione “Blocca questo sito web ai motori di ricerca” (Impostazioni → Branding → Motori di ricerca). Se il sito è online, consenti l’indicizzazione con il pulsante qui sotto o disattiva l’impostazione.", "seo_check.page_robots_fix_noindex_other": "L’impostazione “Blocca questo sito web ai motori di ricerca” è disattivata, eppure la home page invia noindex. Controlla la home page (impostazioni SEO: Robots), file personalizzati come includes/header.php, l’.htaccess e le regole dell’hosting o di un proxy per l’X-Robots-Tag.", "seo_check.page_robots_fix_redirect": "L’indirizzo reindirizza a un altro dominio, ad esempio il dominio di staging o una pagina di parcheggio. Controlla i reindirizzamenti nel pannello dell’hosting e nell’.htaccess.", "seo_check.page_robots_fix_status": "La home page non viene servita normalmente. Controlla i reindirizzamenti e le regole dell’hosting per questo indirizzo.", "seo_check.sitemap": "sitemap.xml", "seo_check.sitemap_ok": "Valida, {count} indirizzi", "seo_check.sitemap_status": "Risponde con {detail}", "seo_check.sitemap_not_xml": "Non è una sitemap valida (non è XML)", "seo_check.sitemap_empty": "Non contiene pagine", "seo_check.sitemap_empty_blocked": "Vuota perché il sito web è bloccato", "seo_check.sitemap_host": "{count} indirizzi appartengono a un altro dominio, ad esempio {detail}", "seo_check.sitemap_http": "{count} indirizzi usano http://, ad esempio {detail}", "seo_check.sitemap_expected": "XML valido con le pagine di questo sito web, tutti gli indirizzi sullo stesso dominio e con https://.", "seo_check.sitemap_fix_status": "La sitemap.xml non viene servita normalmente. Controlla i reindirizzamenti e le regole dell’hosting per questo indirizzo.", "seo_check.sitemap_fix_not_xml": "A questo indirizzo non c’è alcuna sitemap, probabilmente una pagina di errore o di manutenzione oppure un file sitemap.xml difettoso nella cartella principale. Elimina il file personalizzato affinché Raiju generi la sitemap.", "seo_check.sitemap_fix_empty": "Tutte le pagine sono escluse dalla sitemap (private, noindex o “non includere nella sitemap”) oppure non ci sono ancora pagine pubbliche. Controlla le impostazioni SEO delle pagine.", "seo_check.sitemap_fix_empty_blocked": "La sitemap resta vuota finché il sito web è bloccato. Si riempie non appena l’indicizzazione è consentita.", "seo_check.sitemap_fix_host": "La sitemap indica indirizzi di un altro dominio, di solito quello di staging. Inserisci l’indirizzo corretto del sito in Impostazioni → Branding → Motori di ricerca. Se nella cartella principale c’è una sitemap.xml personalizzata, rigenerala o eliminala.", "seo_check.sitemap_fix_http": "La sitemap indica indirizzi con http:// anche se il sito funziona con https://. Inserisci l’indirizzo con https:// in Impostazioni → Branding → Motori di ricerca. Dietro un proxy deve inoltrare X-Forwarded-Proto.", "seo_check.site_url": "Indirizzo del sito web (impostazione)", "seo_check.site_url_ok": "Corrisponde all’indirizzo visitato", "seo_check.site_url_host": "Impostato su {url}, ma visitato su {detail}", "seo_check.site_url_scheme": "Impostato su {url}, ma il sito funziona con https://", "seo_check.site_url_expected": "Lo stesso dominio dell’indirizzo visitato, con https://.", "seo_check.site_url_fix_host": "Questo indirizzo compare nei link canonici, nell’hreflang e nella sitemap. Dopo il passaggio dallo staging al dominio definitivo va aggiornato (Impostazioni → Branding → Motori di ricerca), altrimenti i motori di ricerca puntano al vecchio dominio.", "seo_check.site_url_fix_scheme": "Inserisci l’indirizzo con https:// in Impostazioni → Branding → Motori di ricerca.", "seo_check.page_noindex": "Singole pagine con noindex", "seo_check.page_noindex_ok": "Nessuna", "seo_check.page_noindex_note": "{count} pagine pubbliche su {total} sono impostate su noindex", "seo_check.page_noindex_expected": "Solo le pagine che devono restare fuori dai motori di ricerca.", "seo_check.page_noindex_fix_note": "Va bene se è voluto, ad esempio per le pagine di ringraziamento. Altrimenti modifica l’impostazione “Robots” nell’area SEO della pagina (elenco delle pagine).", "seo_check.maintenance": "Modalità manutenzione", "seo_check.maintenance_ok": "Disattivata", "seo_check.maintenance_warning": "Attiva: visitatori e motori di ricerca ricevono la pagina di manutenzione (HTTP 503)", "seo_check.maintenance_expected": "Modalità manutenzione disattivata.", "seo_check.maintenance_fix_warning": "Disattiva la modalità manutenzione in Impostazioni → Access non appena il sito è online. Risposte 503 prolungate fanno uscire le pagine dall’indice di ricerca.", "seo_check.banner_title": "Questo sito web è bloccato per i motori di ricerca", "seo_check.banner_text_setting": "L’impostazione “Blocca questo sito web ai motori di ricerca” è attiva. Su un sito di staging o di test è corretto. Quando il sito sarà online, in questo modo non comparirà su Google.", "seo_check.banner_text_other": "Bloccato tramite: {where}. Su un sito di staging o di test è corretto. Quando il sito sarà online, in questo modo non comparirà su Google.", "ai.organization_hint": "Necessario solo se le richieste API devono essere assegnate esplicitamente a una determinata organizzazione OpenAI. Altrimenti lascia vuoto.", "ai.budget_explanation": "I costi si basano sul prezzo del modello effettivamente usato (prezzo di catalogo o prezzo personalizzato). Il limite locale include l’utilizzo concluso e le prenotazioni aperte. Gli addebiti reali del fornitore possono differire; controlla la fatturazione del fornitore.", "ai.model_label": "Modello", "ai.model_group_chat": "Chat/Agente", "ai.model_group_chat_hint": "Per l’assistente, l’agente IA e le bozze di contenuto complete. Qui conta la qualità.", "ai.model_group_text": "Testo/SEO", "ai.model_group_text_hint": "Per suggerimenti sui singoli campi, brevi revisioni di testo e testi SEO. Può essere un modello più economico e veloce.", "ai.model_group_both": "Chat/Agente e Testo/SEO", "ai.reasoning_effort": "Impegno di ragionamento", "ai.reasoning_recommended_with": "Consigliato ({level})", "ai.reasoning_low": "Basso", "ai.reasoning_medium": "Medio", "ai.reasoning_high": "Alto", "ai.reasoning_legacy": "Comportamento precedente (impostazione predefinita del fornitore)", "ai.reasoning_hint": "Un impegno di ragionamento più alto può aiutare nei compiti complessi, ma spesso aumenta tempi di risposta e costi. Per i compiti normali basta l’impostazione consigliata.", "ai.reasoning_unknown": "Per questo modello non è noto alcun livello di ragionamento. Vale l’impostazione predefinita del fornitore.", "ai.reasoning_reset": "Il modello non supporta il livello scelto. Ripristinato su «Consigliato».", "ai.pricing_hint": "I prezzi valgono per fornitore e modello, in USD o EUR per 1 mln di token. Senza prezzo personalizzato si usa quello di catalogo. Letture della cache e token di ragionamento sono contati come indicato dal fornitore; l’impegno di ragionamento non comporta maggiorazioni.", "ai.price_input": "Prezzo input (per 1 mln di token)", "ai.price_output": "Prezzo output (per 1 mln di token)", "ai.price_currency": "Valuta", "ai.price_remove": "Rimuovi prezzo personalizzato", "ai.price_unknown": "Prezzo non disponibile", "ai.price_unknown_notice": "Per almeno un modello non è indicato alcun prezzo. Senza prezzo il budget mensile non può essere monitorato in modo affidabile in denaro; valgono solo i limiti di richieste. Inserisci qui sotto un prezzo personalizzato.", "ai.price_status_catalog": "Prezzo di catalogo: {input} / {output} USD per 1 mln di token (input / output), aggiornato al {date}.", "ai.price_status_override": "Prezzo personalizzato: {input} / {output} {currency} per 1 mln di token (input / output).", "ai.price_status_migrated": "Stima ereditata: {input} / {output} {currency} per 1 mln di token (input / output). Puoi sovrascriverla o rimuoverla.", "ai.price_tier_multiplier": "Oltre {tokens} token di input l’intera richiesta viene addebitata così: input ×{input}, output ×{output}.", "ai.price_tier_absolute": "Oltre {tokens} token di input l’intera richiesta viene addebitata a {input} / {output} USD.", "ai.fx_custom": "Tasso di cambio personalizzato (USD per 1 EUR)", "ai.fx_hint": "Attualmente: 1 EUR = {rate} USD (aggiornato al {date}, {source}). I prezzi in USD vengono convertiti in euro con questo tasso.", "ai.fx_own": "tasso personalizzato", "ai.usage_unpriced": "{count} richieste di questo mese non hanno un prezzo indicato. Il loro costo non è incluso nel totale.", "ai.remove_key_title": "Rimuovi chiave API", "ai.remove_key_confirm": "La chiave salvata viene eliminata subito, indipendentemente da altre modifiche non salvate. Le funzioni che la usano torneranno disponibili solo dopo aver salvato una nuova chiave.", "ai.remove_key_button": "Rimuovi chiave", "ai.key_removed": "La chiave salvata è stata rimossa.", "ai.agent_offer_title": "Attivare l’agente IA?", "ai.agent_offer_text": "L’agente IA funziona particolarmente bene con {model}. Vuoi attivarlo ora?", "ai.agent_offer_confirm": "Attiva agente", "mails.storage_off_title": "I nuovi messaggi non vengono salvati qui", "mails.storage_off_text": "«Salva localmente» è disattivato per tutti i moduli attivi. I messaggi in arrivo quindi non compaiono in questo elenco e arrivano solo via e-mail, se l’invio è configurato.", "mails.forms_disabled_title": "Nessun modulo è attivo", "mails.forms_disabled_text": "Finché nessun modulo è attivo, i visitatori non possono inviare messaggi e questo elenco resta vuoto.", "mails.open_forms_settings": "Apri moduli", "ai.agent_classic_mode": "Offri la modalità classica nella chat", "ai.agent_classic_mode_hint": "Nella chat si può passare dall’agente all’assistente classico. La modalità classica è più rapida ed economica per domande e singoli suggerimenti di testo. Disattivala se la chat deve mostrare solo l’agente.", "ai.images_section": "Immagini", "ai.images_section_hint": "Le immagini arrivano da un servizio a sé, indipendente dal provider di chat. L’agente IA, l’assistente e il generatore di immagini lo usano insieme.", "ai.image_service": "Servizio di immagini", "ai.image_service_inherit": "Come il provider di chat", "ai.image_service_openai": "OpenAI", "ai.image_service_openrouter": "OpenRouter", "ai.image_service_kie": "Kie.ai", "ai.image_service_fal": "fal.ai", "ai.image_service_comet": "Comet API", "ai.image_service_custom": "Personalizzato (compatibile con OpenAI)", "ai.image_service_inherit_hint": "Usa i modelli di immagini del provider di chat (non possibile con Anthropic).", "ai.image_service_inherit_anthropic": "Anthropic non ha un’API per le immagini. Scegli un servizio di immagini, così l’agente e le funzioni di immagine possono creare immagini.", "ai.image_service_key_own": "Chiave propria salvata. Lasciala invariata per mantenerla.", "ai.image_service_key_chat": "Nessuna chiave propria: viene usata la chiave del provider di chat con lo stesso nome. Inserisci qui una chiave per usarne una separata.", "ai.image_service_key_none": "Nessuna chiave API salvata per questo servizio.", "ai.image_service_unverified": "I parametri di questo modello non sono stati verificati con la documentazione del fornitore. Si usano valori predefiniti; se serve, aggiungi sotto parametri specifici del modello.", "ai.image_service_custom_base_url": "URL di base", "ai.image_service_custom_base_url_hint": "Indirizzo di un servizio con endpoint /images/generations compatibile con OpenAI, ad es. https://api.example.com/v1. Gli indirizzi locali richiedono l’opzione «Consenti URL provider locale/privato».", "ai.image_service_custom_base_url_missing": "Inserisci l’URL di base del servizio di immagini.", "ai.image_service_size_mode": "Parametro di dimensione", "ai.image_service_size_mode_size": "Dimensione in pixel (size: 1024x1024)", "ai.image_service_size_mode_aspect": "Proporzioni (aspect_ratio: 16:9)", "ai.image_service_size_mode_none": "Non inviare la dimensione", "ai.image_service_auth_style": "Autenticazione", "ai.image_service_extra_params": "Parametri personalizzati (JSON)", "ai.image_service_extra_params_hint": "Facoltativo. Aggiunto a ogni richiesta di questo servizio, ad es. opzioni specifiche del modello. Non inserire chiavi qui. prompt, model e n sono impostati da raiju.", "ai.image_price_model": "Prezzo dell’immagine", "ai.image_price_per_image": "Prezzo per immagine", "ai.image_price_status_override": "Prezzo personalizzato: {price} {currency} per immagine.", "ai.image_price_status_catalog": "Prezzo di catalogo: {price} {currency} per immagine, aggiornato al {date}.", "ai.image_price_status_default": "Per questo modello non è indicato alcun prezzo: vale il prezzo predefinito di {cents} centesimi per immagine.", "ai.usage_unpriced_images": "{count} richieste di immagini di questo mese non hanno un prezzo indicato. Il loro costo non è incluso nel totale.", "ai.image_price_tables": "Prezzi per risoluzione e qualità (facoltativo)", "ai.image_price_tables_hint": "Se il modello applica prezzi diversi per risoluzione o qualità, inserisci qui il prezzo per immagine di ciascuna. Una richiesta usa il prezzo della sua risoluzione, poi quello della sua qualità, poi il prezzo per immagine indicato sopra. I campi vuoti usano il prezzo per immagine.", "ai.image_price_status_tables": "Sono indicati anche prezzi per risoluzione o qualità.", "ai.image_price_status_tables_only": "Sono indicati prezzi per risoluzione o qualità; le richieste senza corrispondenza usano il prezzo predefinito per immagine.", "ai.image_service_models_loaded": "{count} modelli caricati dal servizio. Puoi comunque digitare qualsiasi ID di modello.", "ai.image_service_unusable_key": "Il servizio di immagini {service} non ha ancora una chiave API. Aggiungila in Impostazioni IA → Immagini.", "ai.image_service_unusable_model": "Per {service} non è scelto alcun modello di immagini. Sceglilo in Impostazioni IA → Immagini.", "ai.image_price_status_catalog_tables": "Prezzi di catalogo per risoluzione o qualità, aggiornati al {date}.", "settings.dashboard_design": "Design" }