diff --git a/frontend/app/locales/it.json b/frontend/app/locales/it.json
new file mode 100644
index 00000000..58a93cf8
--- /dev/null
+++ b/frontend/app/locales/it.json
@@ -0,0 +1,169 @@
+{
+ "auth.back": "Indietro",
+ "auth.email-address": "Indirizzo email",
+ "auth.loading": "Caricamento...",
+ "auth.oauth-button": "Accedi con {provider}",
+ "auth.oauth-source": "Usa un Social Network",
+ "auth.open-profile": "Apri il mio profilo",
+ "auth.or": "oppure",
+ "auth.signin": "Accedi",
+ "auth.signout": "Esci",
+ "auth.submit": "Invia",
+ "auth.symbols-restriction": "L'username deve contenere solo lettere, numberi, trattini bassi o spazi",
+ "auth.user-not-found": "Nessun utente trovato",
+ "auth.username": "Username",
+ "authPanel.disable-comments": "Disabilita commenti",
+ "authPanel.disabled-cookies": "Disabilita il blocco dei cookies di terze parti per l'accesso o l'apertura di commenti in",
+ "authPanel.enable-comments": "Abilita commenti",
+ "authPanel.enable-cookies": "Consenti i cookies per l'accesso e i commenti",
+ "authPanel.hide-settings": "Nascondi impostazioni",
+ "authPanel.new-page": "nuova pagina",
+ "authPanel.read-only": "Sola lettura",
+ "authPanel.show-settings": "Mostra impostazioni",
+ "blockingDuration.day": "Per un giorno",
+ "blockingDuration.month": "Per un mese",
+ "blockingDuration.permanently": "Permanentemente",
+ "blockingDuration.week": "Per una settimana",
+ "comment.block": "Blocca",
+ "comment.block-user": "Vuoi bloccare {userName} {duration}?",
+ "comment.blocked-user": "Bloccato",
+ "comment.blocking-period": "Periodo di blocco",
+ "comment.cancel": "Cancella",
+ "comment.controversy": "Controverso: {value}",
+ "comment.copied": "Copiato!",
+ "comment.copy": "Copia",
+ "comment.delete": "Elimina",
+ "comment.delete-message": "Vuoi eliminare questo commento?",
+ "comment.deleted-comment": "Questo commento è stato eliminato",
+ "comment.deleted-user": "Eliminato",
+ "comment.edit": "Modifica",
+ "comment.expired-time": "Il tempo per le modifiche è scaduto.",
+ "comment.go-to-parent": "Vai al commento padre",
+ "comment.hide": "Nascondi",
+ "comment.hide-user-comment": "Vuoi nascondere i commenti di {userName}?",
+ "comment.pin": "Fissa in alto",
+ "comment.pin-comment": "Vuoi fissare in alto questo commento?",
+ "comment.reply": "Rispondi",
+ "comment.time": "{day} alle {time}",
+ "comment.toggle-verification": "Attiva/Disattiva verifica",
+ "comment.unblock": "Sblocca",
+ "comment.unblock-user": "Vuoi sbloccare questo utente?",
+ "comment.unpin": "Non fissare in alto",
+ "comment.unpin-comment": "Vuoi non fissare in alto questo commento?",
+ "comment.unverified-user": "Utente non verificato",
+ "comment.unverify-user": "Vuoi togliere la verifica a {userName}?",
+ "comment.verified-user": "Utente verificato",
+ "comment.verify-user": "Vuoi verificare {userName}?",
+ "comment.vote-error": "Errore nel voto: {voteErrorMessage}",
+ "commentForm.anonymous-uploading-disabled": "Il caricamento delle immagini è disabilitato per gli utenti anonimi. Perfavore accedi come utente non anonimo per poter allegare delle immagini",
+ "commentForm.exceeded-size": "{fileName} ha superato il limite massimo di {maxImageSize}",
+ "commentForm.input-placeholder": "Qui il tuo commento",
+ "commentForm.new-comment": "Nuovo commento",
+ "commentForm.notice-about-styling": "Il Markdown è sopportato",
+ "commentForm.preview": "Anteprima",
+ "commentForm.reply": "Rispondi",
+ "commentForm.save": "Salva",
+ "commentForm.send": "Invia",
+ "commentForm.subscribe-by": "Iscriviti con",
+ "commentForm.subscribe-or": "oppure",
+ "commentForm.unauthorized-uploading-disabled": "Il caricamento delle immagini è disabilitato per gli utenti non autorizzati. Devi fare il login prima di effettuare il caricamento.",
+ "commentForm.unexpected-error": "Qualcosa è andato storto. Riprova tra poco.",
+ "commentForm.upload-file-fail": "Caricamento di {fileName} fallito con \"{errorMessage}\"",
+ "commentForm.uploading": "Caricamento...",
+ "commentForm.uploading-file": "Caricamento {fileName}...",
+ "commentsSort.best": "Migliore",
+ "commentsSort.least-controversial": "Meno controverso",
+ "commentsSort.least-recently-updated": "Non modificato di recente",
+ "commentsSort.most-controversial": "Più controverso",
+ "commentsSort.newest": "Più recente",
+ "commentsSort.oldest": "Meno recente",
+ "commentsSort.recently-updated": "Modificato di recente",
+ "commentsSort.worst": "Peggiore",
+ "empty-state": "Non ha ancora commenti",
+ "errors.0": "Qualcosa è andato storto. Riprova tra poco.",
+ "errors.1": "Commento non trovato. Aggiorna la pagina e riprova.",
+ "errors.10": "È troppo tardi per modificare il commento.",
+ "errors.11": "Il commento ha delle risposte, non è possibile modificarlo.",
+ "errors.12": "Impossibile salvare la votazione. Riprova tra poco.",
+ "errors.13": "Non puoi votare per il tuo commento.",
+ "errors.14": "Hai già votato per il commento.",
+ "errors.15": "Troppi voti per il commento.",
+ "errors.16": "Punteggio minimo raggiunto per il commento.",
+ "errors.17": "Azione rifiutata. Riprova tra poco.",
+ "errors.18": "Il file richiesto non può essere trovato.",
+ "errors.19": "Il commento contiene parole non autorizzate.",
+ "errors.2": "Impossibile eseguire l'unmarshal della richiesta in arrivo.",
+ "errors.20": "Immagine caricata non trovata. Prova a caricarla nuovamente.",
+ "errors.3": "Non hai i permessi per questa operazione.",
+ "errors.4": "Dati del commento non validi.",
+ "errors.5": "Commento non trovato. Ricarica la pagina e prova di nuovo.",
+ "errors.6": "Sito non trovato. Ricarica la pagina e prova di nuovo.",
+ "errors.7": "L'utente è stato bloccato.",
+ "errors.8": "Impossibile commentare su questa pagina, i commenti sono in sola lettura.",
+ "errors.9": "Modifica del commento non riuscita. Riprova tra poco.",
+ "errors.failed-fetch": "Aggiornamento fallito. Verifica la tua connessione a internet o riprova più tardi.",
+ "errors.forbidden": "Vietato.",
+ "errors.not-authorized": "Non autorizzato.",
+ "errors.to-many-request": "Hai raggiunto il limite massimo di richieste.",
+ "errors.unexpected-error": "Qualcosa è andato storto.",
+ "profile.close": "Chiudi profilo",
+ "profile.request-to-delete-data": "Richiedi la rimozione dei miei dati",
+ "retry": "Riprova",
+ "root.pinned-comments": "Commenti fissati in alto",
+ "root.powered-by": "Powered by Remark42",
+ "root.show-more": "Mostra ancora",
+ "settings.block": "blocca",
+ "settings.block-time": "fino al {day} alle {time}",
+ "settings.block-user": "Vuoi bloccare {userName}?",
+ "settings.blocked-users-header": "Utenti bloccati:",
+ "settings.blocked-users-title": "Utenti bloccati",
+ "settings.hidden-user-header": "Utenti nascosti:",
+ "settings.hidden-users-title": "Utenti nascosti",
+ "settings.hide": "nascondi",
+ "settings.no-blocked-users": "Non ci sono utenti bloccati.",
+ "settings.no-hidden-users": "Non ci sono utenti nascosti.",
+ "settings.permanently": "permanentemente",
+ "settings.show": "mostra",
+ "settings.unblock": "unblsbloccaock",
+ "settings.unblock-user": "Vuoi sbloccare {userName}?",
+ "settings.unknown": "sconosciuto",
+ "sort-by": "Ordina per",
+ "subscribeByEmail.back": "Indietro",
+ "subscribeByEmail.close": "Chiudi",
+ "subscribeByEmail.email": "Email",
+ "subscribeByEmail.have-been-subscribed": "Ti sei iscritto agli aggiornamenti via mail",
+ "subscribeByEmail.have-been-unsubscribed": "Ti sei disiscritto dalla ricezione di aggiornamenti via mail",
+ "subscribeByEmail.only-registered-users": "Disponibile solo per gli utenti registrati",
+ "subscribeByEmail.submit": "Invia",
+ "subscribeByEmail.subscribe": "Iscriviti",
+ "subscribeByEmail.subscribe-by-email": "Iscriviti via mail",
+ "subscribeByEmail.subscribe-to-replies": "Iscriviti alle risposte",
+ "subscribeByEmail.subscribed": "Sei iscritto agli aggiornamenti via mail",
+ "subscribeByEmail.unsubscribe": "Disiscriviti",
+ "subscribeByRSS.button-title": "Iscriviti con RSS",
+ "subscribeByRSS.replies": "Risposte",
+ "subscribeByRSS.site": "Sito",
+ "subscribeByRSS.thread": "Argomento",
+ "subscribeByRSS.title": "RSS",
+ "token": "Token",
+ "token.expired": "Il token è scaduto",
+ "token.invalid": "Il token non è valido",
+ "toolbar.attach-image": "Allega immagini, trascina o incolla qui",
+ "toolbar.bold": "Aggiungi testo in grassetto {shortcut}",
+ "toolbar.code": "Inserisci del codice",
+ "toolbar.header": "Aggiungi titolo",
+ "toolbar.italic": "Aggiungi testo in italico {shortcut}",
+ "toolbar.link": "Aggiungi un link {shortcut}",
+ "toolbar.ordered-list": "Aggiungi lista numerata",
+ "toolbar.quote": "Inserisci citazione",
+ "toolbar.unordered-list": "Aggiungi lista a pallini",
+ "user.my-comments": "I miei commenti recenti",
+ "user.recent-comments": "Commenti recenti",
+ "vote.anonymous": "Gli utenti anonimi non possono votare",
+ "vote.deleted": "Non puoi votare per un commento eliminato",
+ "vote.guest": "Accedi per votare",
+ "vote.only-positive": "Solo punteggi positivi consentiti",
+ "vote.only-post-page": "Voto consentito solo sulla pagina del post",
+ "vote.own-comment": "Non puoi votare per il tuo commento",
+ "vote.readonly": "Non puoi votare sugli argomenti in sola lettura"
+}
diff --git a/frontend/app/utils/loadLocale.ts b/frontend/app/utils/loadLocale.ts
index a7921e0c..20d52971 100644
--- a/frontend/app/utils/loadLocale.ts
+++ b/frontend/app/utils/loadLocale.ts
@@ -48,6 +48,9 @@ export async function loadLocale(locale: string): Promise
if (locale === 'bp') {
return import(/* webpackChunkName: "bp" */ '../locales/bp.json').then((res) => res.default).catch(() => enMessages);
}
+ if (locale === 'it') {
+ return import(/* webpackChunkName: "it" */ '../locales/it.json').then((res) => res.default).catch(() => enMessages);
+ }
return enMessages;
}
diff --git a/frontend/tasks/supportedLocales.json b/frontend/tasks/supportedLocales.json
index e4551dcf..80fc7de1 100644
--- a/frontend/tasks/supportedLocales.json
+++ b/frontend/tasks/supportedLocales.json
@@ -1 +1 @@
-["en", "ru", "de", "fi", "es", "zh", "tr", "bg", "ua", "pl", "vi", "be", "fr", "ja", "ko", "bp"]
+["en", "ru", "de", "fi", "es", "zh", "tr", "bg", "ua", "pl", "vi", "be", "fr", "ja", "ko", "bp", "it"]