diff --git a/web/public/static/langs/it.json b/web/public/static/langs/it.json
index 0967ef42..0c26ac98 100644
--- a/web/public/static/langs/it.json
+++ b/web/public/static/langs/it.json
@@ -1 +1,191 @@
-{}
+{
+ "action_bar_logo_alt": "logo ntfy",
+ "action_bar_settings": "Impostazioni",
+ "action_bar_clear_notifications": "Cancella tutte le notifiche",
+ "action_bar_unsubscribe": "Annulla l'iscrizione",
+ "action_bar_toggle_action_menu": "Apri/chiudi il menu delle azioni",
+ "message_bar_type_message": "Digita un messaggio qui",
+ "message_bar_error_publishing": "Errore durante la pubblicazione della notifica",
+ "message_bar_show_dialog": "Mostra la finestra di dialogo di pubblicazione",
+ "message_bar_publish": "Pubblica messaggio",
+ "nav_topics_title": "Topic a cui si è iscritti",
+ "nav_button_all_notifications": "Tutte le notifiche",
+ "nav_button_settings": "Impostazioni",
+ "nav_button_publish_message": "Pubblica notifica",
+ "nav_button_subscribe": "Iscriviti al topic",
+ "nav_button_muted": "Notifiche disattivate",
+ "nav_button_connecting": "connessione",
+ "alert_grant_title": "Le notifiche sono disabilitate",
+ "alert_grant_button": "Concedi ora",
+ "notifications_list": "Elenco notifiche",
+ "notifications_list_item": "Notifiche",
+ "notifications_mark_read": "Segna come letto",
+ "notifications_delete": "Elimina",
+ "notifications_copied_to_clipboard": "Copiato negli appunti",
+ "notifications_tags": "Tags",
+ "notifications_priority_x": "Priorità {{priority}}",
+ "notifications_new_indicator": "Nuova notifica",
+ "notifications_attachment_image": "Immagine allegata",
+ "notifications_attachment_copy_url_title": "Copia l'URL dell'allegato negli appunti",
+ "notifications_attachment_copy_url_button": "Copia URL",
+ "notifications_attachment_open_title": "Vai a {{url}}",
+ "notifications_attachment_open_button": "Apri allegato",
+ "notifications_attachment_link_expires": "Il collegamento scade il {{date}}",
+ "notifications_attachment_link_expired": "link per il download scaduto",
+ "notifications_attachment_file_image": "file immagine",
+ "notifications_attachment_file_video": "file video",
+ "action_bar_toggle_mute": "Abilita/disabilita le notifiche",
+ "notifications_attachment_file_document": "altro documento",
+ "notifications_click_copy_url_button": "Copia link",
+ "notifications_click_open_button": "Apri link",
+ "notifications_actions_open_url_title": "Vai a {{url}}",
+ "notifications_actions_not_supported": "Azione non supportata nell'app Web",
+ "notifications_none_for_topic_title": "Non hai ancora ricevuto alcuna notifica per questo topic.",
+ "notifications_none_for_topic_description": "Per inviare notifiche a questo argomento, è sufficiente PUT o POST all'URL del topic.",
+ "notifications_none_for_any_title": "Non hai ricevuto alcuna notifica.",
+ "notifications_no_subscriptions_title": "Sembra che tu non abbia ancora abbonamenti.",
+ "notifications_example": "Esempio",
+ "notifications_more_details": "Per ulteriori informazioni, consulta il sito web o documentazione.",
+ "notifications_loading": "Caricamento notifiche in corso…",
+ "publish_dialog_title_topic": "Pubblica su {{topic}}",
+ "publish_dialog_title_no_topic": "Pubblica notifica",
+ "publish_dialog_progress_uploading": "Caricamento in corso…",
+ "publish_dialog_progress_uploading_detail": "Caricamento {{loaded}}/{{total}} ({{percent}}%)…",
+ "publish_dialog_message_published": "Notifica pubblicata",
+ "publish_dialog_attachment_limits_file_and_quota_reached": "supera {{fileSizeLimit}} limite di file e quota, {{remainingBytes}} rimanenti",
+ "publish_dialog_attachment_limits_file_reached": "supera di {{fileSizeLimit}} il limite dei file",
+ "publish_dialog_attachment_limits_quota_reached": "supera la quota, {{remainingBytes}} rimanenti",
+ "publish_dialog_emoji_picker_show": "Scegli emoji",
+ "publish_dialog_priority_min": "Min. priorità",
+ "publish_dialog_priority_low": "Bassa priorità",
+ "publish_dialog_priority_default": "Priorità predefinita",
+ "publish_dialog_priority_high": "Priorità alta",
+ "publish_dialog_priority_max": "Max. priorità",
+ "publish_dialog_base_url_label": "URL del servizio",
+ "publish_dialog_base_url_placeholder": "URL del servizio, ad es. https://esempio.com",
+ "publish_dialog_topic_label": "Nome topic",
+ "publish_dialog_topic_placeholder": "Nome topic, ad es. avvisi_di_phil",
+ "publish_dialog_topic_reset": "Reset topic",
+ "publish_dialog_title_label": "Titolo",
+ "publish_dialog_title_placeholder": "Titolo della notifica, ad es. Avviso di spazio su disco",
+ "publish_dialog_message_label": "Messaggio",
+ "publish_dialog_message_placeholder": "Digita un messaggio qui",
+ "publish_dialog_tags_label": "Tags",
+ "publish_dialog_priority_label": "Priorità",
+ "publish_dialog_click_label": "Clicca URL",
+ "publish_dialog_click_reset": "Rimuovi l'URL del clic",
+ "publish_dialog_email_label": "Email",
+ "publish_dialog_email_placeholder": "Indirizzo a cui inoltrare la notifica, ad es. phil@example.com",
+ "publish_dialog_email_reset": "Rimuovi inoltro email",
+ "publish_dialog_attach_label": "URL Allegato",
+ "publish_dialog_attach_reset": "Rimuovi l'URL dell'allegato",
+ "publish_dialog_filename_label": "Nome del file",
+ "publish_dialog_filename_placeholder": "Nome file allegato",
+ "publish_dialog_delay_placeholder": "Consegna ritardata, ad es. {{unixTimestamp}}, {{relativeTime}} o \"{{naturalLanguage}}\" (solo in inglese)",
+ "publish_dialog_delay_reset": "Rimuovere la consegna ritardata",
+ "publish_dialog_other_features": "Altre funzionalità:",
+ "publish_dialog_chip_click_label": "Fare clic su URL",
+ "publish_dialog_chip_email_label": "Inoltra a e-mail",
+ "publish_dialog_chip_attach_url_label": "Allega il file tramite URL",
+ "publish_dialog_chip_attach_file_label": "Allega file locale",
+ "publish_dialog_chip_delay_label": "Ritardo nella consegna",
+ "publish_dialog_button_cancel_sending": "Annulla l'invio",
+ "publish_dialog_button_cancel": "Annulla",
+ "publish_dialog_button_send": "Invia",
+ "publish_dialog_checkbox_publish_another": "Pubblica un altro",
+ "publish_dialog_attached_file_title": "File allegato:",
+ "publish_dialog_attached_file_remove": "Rimuovi il file allegato",
+ "publish_dialog_drop_file_here": "Trascina il file qui",
+ "emoji_picker_search_clear": "Cancella ricerca",
+ "subscribe_dialog_subscribe_title": "Iscriviti al topic",
+ "subscribe_dialog_subscribe_topic_placeholder": "Nome dell'argomento, ad es. avvisi_di_phil",
+ "subscribe_dialog_subscribe_base_url_label": "URL del servizio",
+ "subscribe_dialog_subscribe_button_cancel": "Annulla",
+ "subscribe_dialog_login_title": "Accesso richiesto",
+ "subscribe_dialog_login_username_label": "Nome utente, ad es. phil",
+ "subscribe_dialog_login_button_login": "Login",
+ "subscribe_dialog_error_user_anonymous": "anonimo",
+ "prefs_notifications_sound_title": "Suono di notifica",
+ "prefs_notifications_sound_description_some": "Le notifiche riproducono il suono {{sound}} quando arrivano",
+ "prefs_notifications_sound_no_sound": "Nessun suono",
+ "prefs_notifications_min_priority_description_any": "Visualizzazione di tutte le notifiche, indipendentemente dalla priorità",
+ "prefs_notifications_min_priority_description_max": "Mostra notifiche se la priorità è 5 (max)",
+ "prefs_notifications_min_priority_any": "Qualsiasi priorità",
+ "prefs_notifications_min_priority_low_and_higher": "Priorità bassa e superiore",
+ "prefs_notifications_min_priority_high_and_higher": "Priorità alta e superiore",
+ "prefs_notifications_min_priority_max_only": "Solo priorità massima",
+ "prefs_notifications_delete_after_never": "Mai",
+ "prefs_notifications_delete_after_three_hours": "Dopo tre ore",
+ "prefs_notifications_delete_after_one_day": "Dopo un giorno",
+ "prefs_notifications_delete_after_never_description": "Le notifiche non vengono mai eliminate automaticamente",
+ "prefs_notifications_delete_after_one_day_description": "Le notifiche vengono eliminate automaticamente dopo un giorno",
+ "prefs_notifications_delete_after_one_week_description": "Le notifiche vengono eliminate automaticamente dopo una settimana",
+ "prefs_notifications_delete_after_one_month_description": "Le notifiche vengono eliminate automaticamente dopo un mese",
+ "prefs_users_title": "Gestisci gli utenti",
+ "prefs_users_description": "Aggiungi/rimuovi utenti per i tuoi topic protetti qui. Tieni presente che nome utente e password sono memorizzati nella memoria locale del browser.",
+ "prefs_users_table": "Tabella utenti",
+ "prefs_users_add_button": "Aggiungi utente",
+ "prefs_users_edit_button": "Modifica utente",
+ "prefs_users_delete_button": "Elimina utente",
+ "prefs_users_table_user_header": "Utente",
+ "prefs_users_table_base_url_header": "URL del servizio",
+ "prefs_users_dialog_title_add": "Aggiungi utente",
+ "prefs_users_dialog_title_edit": "Modifica utente",
+ "prefs_users_dialog_base_url_label": "URL del servizio, ad es. https://ntfy.sh",
+ "prefs_users_dialog_username_label": "Nome utente, ad es. phil",
+ "prefs_users_dialog_password_label": "Password",
+ "prefs_users_dialog_button_cancel": "Annulla",
+ "prefs_users_dialog_button_add": "Aggiungere",
+ "prefs_users_dialog_button_save": "Salva",
+ "prefs_appearance_title": "Aspetto",
+ "prefs_appearance_language_title": "Lingua",
+ "priority_min": "min",
+ "priority_low": "basso",
+ "priority_default": "predefinito",
+ "priority_high": "alto",
+ "priority_max": "max",
+ "error_boundary_title": "Oh no, ntfy è andato in crash",
+ "error_boundary_description": "Questo ovviamente non dovrebbe accadere. Mi dispiace molto per questo.
Se hai un minuto, per favore segnala su GitHub, o faccelo sapere tramite Discord o Matrix .",
+ "error_boundary_button_copy_stack_trace": "Copia traccia dello stack",
+ "error_boundary_stack_trace": "Traccia dello stack",
+ "error_boundary_gathering_info": "Raccogli più informazioni…",
+ "error_boundary_unsupported_indexeddb_title": "Navigazione privata non supportata",
+ "action_bar_show_menu": "Mostra menu",
+ "action_bar_send_test_notification": "Inviare una notifica di prova",
+ "alert_not_supported_description": "Le notifiche non sono supportate nel tuo browser.",
+ "nav_button_documentation": "Documentazione",
+ "notifications_actions_http_request_title": "Invia HTTP {{method}} a {{url}}",
+ "alert_grant_description": "Concedi al tuo browser l'autorizzazione a visualizzare le notifiche sul desktop.",
+ "alert_not_supported_title": "Notifiche non supportate",
+ "notifications_attachment_file_app": "file app Android",
+ "notifications_no_subscriptions_description": "Fai clic sul link \"{{linktext}}\" per creare o iscriverti a un topic. Successivamente, puoi inviare messaggi tramite PUT o POST e riceverai le notifiche qui.",
+ "notifications_attachment_file_audio": "file audio",
+ "notifications_none_for_any_description": "Per inviare notifiche a un topic, è sufficiente PUT o POST all'URL del topic. Ecco un esempio utilizzando uno dei tuoi topic.",
+ "notifications_click_copy_url_title": "Copia l'URL del collegamento negli appunti",
+ "prefs_notifications_sound_description_none": "Le notifiche non emettono alcun suono quando arrivano",
+ "publish_dialog_delay_label": "Ritardo",
+ "publish_dialog_tags_placeholder": "Elenco di tag separato da virgole, ad es. avviso, backup-srv1",
+ "publish_dialog_click_placeholder": "URL che viene aperto quando si fa clic sulla notifica",
+ "publish_dialog_attach_placeholder": "Allega file tramite URL, ad es. https://f-droid.org/F-Droid.apk",
+ "publish_dialog_chip_topic_label": "Cambia topic",
+ "publish_dialog_details_examples_description": "Per esempi e una descrizione dettagliata di tutte le funzioni di invio, fare riferimento alla documentazione.",
+ "publish_dialog_attached_file_filename_placeholder": "Nome file allegato",
+ "emoji_picker_search_placeholder": "Cerca emoji",
+ "subscribe_dialog_subscribe_description": "Gli argomenti potrebbero non essere protetti da password, quindi scegli un nome che non sia facile da indovinare. Una volta iscritto, puoi inviare le notifiche tramite PUT/POST.",
+ "subscribe_dialog_subscribe_use_another_label": "Usa un altro server",
+ "subscribe_dialog_login_password_label": "Password",
+ "subscribe_dialog_subscribe_button_subscribe": "Iscriviti",
+ "prefs_notifications_sound_play": "Riproduci il suono selezionato",
+ "prefs_notifications_min_priority_title": "Priorità minima",
+ "subscribe_dialog_login_description": "Questo argomento è protetto da password. Per favore inserisci username e password per iscriverti.",
+ "subscribe_dialog_login_button_back": "Indietro",
+ "subscribe_dialog_error_user_not_authorized": "Utente {{username}} non autorizzato",
+ "prefs_notifications_title": "Notifiche",
+ "prefs_notifications_delete_after_title": "Elimina le notifiche",
+ "prefs_notifications_min_priority_default_and_higher": "Priorità predefinita e superiore",
+ "prefs_notifications_min_priority_description_x_or_higher": "Mostra le notifiche se la priorità è {{number}} ({{name}}) o superiore",
+ "prefs_notifications_delete_after_one_week": "Dopo una settimana",
+ "prefs_notifications_delete_after_one_month": "Dopo un mese",
+ "prefs_notifications_delete_after_three_hours_description": "Le notifiche vengono eliminate automaticamente dopo tre ore",
+ "error_boundary_unsupported_indexeddb_description": "L'app web ntfy ha bisogno di IndexedDB per funzionare e il tuo browser non supporta IndexedDB in modalità di navigazione privata.
Anche se questo è un peccato, non ha molto senso usare il web ntfy app in modalità di navigazione privata comunque, perché tutto è archiviato nella memoria del browser. Puoi leggere di più a riguardo in questo numero di GitHub o parlarci su Discord o Matrix."
+}
diff --git a/web/public/static/langs/pt_BR.json b/web/public/static/langs/pt_BR.json
index 00226be5..009458ed 100644
--- a/web/public/static/langs/pt_BR.json
+++ b/web/public/static/langs/pt_BR.json
@@ -187,5 +187,6 @@
"prefs_users_table": "Tabela de usuários",
"prefs_users_edit_button": "Editar usuário",
"prefs_users_delete_button": "Excluir usuário",
- "error_boundary_unsupported_indexeddb_title": "Navegação anônima não suportada"
+ "error_boundary_unsupported_indexeddb_title": "Navegação anônima não suportada",
+ "error_boundary_unsupported_indexeddb_description": "O ntfy web app precisa do IndexedDB para funcionar, e seu navegador não suporta IndexedDB no modo de navegação privada.
Embora isso seja lamentável, também não faz muito sentido usar o ntfy web app no modo de navegação privada de qualquer maneira, porque tudo é armazenado no armazenamento do navegador. Você pode ler mais sobre isso nesta edição do GitHub, ou falar conosco em Discord ou Matrix."
}