Add italian locale (#276)

This commit is contained in:
Luke Vella 2022-08-06 13:07:40 +01:00 committed by GitHub
parent 2648be9b0a
commit 49f31d4904
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 201 additions and 3 deletions

View file

@ -3,7 +3,7 @@ const path = require("path");
module.exports = {
i18n: {
defaultLocale: "en",
locales: ["en", "es", "de", "fr", "sv", "pt-BR"],
locales: ["en", "es", "de", "fr", "it", "sv", "pt-BR"],
localePath: path.resolve("./public/locales"),
reloadOnPrerender: process.env.NODE_ENV === "development",
},

128
public/locales/it/app.json Normal file
View file

@ -0,0 +1,128 @@
{
"12h": "12 ore",
"24h": "24 ore",
"addParticipant": "Aggiungi partecipante",
"addTimeOption": "Aggiungi opzione orario",
"alreadyVoted": "Hai già votato",
"applyToAllDates": "Applica a tutte le date",
"areYouSure": "Sei sicuro/a?",
"back": "Indietro",
"calendarHelp": "Non puoi creare un sondaggio senza nessuna opzione. Aggiungi almeno un opzione per continuare.",
"calendarHelpTitle": "Dimentichi qualcosa?",
"cancel": "Annulla",
"comment": "Commenta",
"commentPlaceholder": "Lascia un commento su questo sondaggio (visibile a tutti)",
"comments": "Commenti",
"continue": "Continua",
"copied": "Copiato",
"copyLink": "Copia link",
"createdBy": "da <b>{{name}}</b>",
"createPoll": "Crea sondaggio",
"creatingDemo": "Creando sondaggio demo…",
"delete": "Elimina",
"deleteComment": "Elimina commento",
"deleteDate": "Elimina data",
"deletedPoll": "Elimina sondaggio",
"deletedPollInfo": "Questo sondaggio non esiste più.",
"deletePoll": "Elimina sondaggio",
"deletePollDescription": "Tutti i dati relativi a questo sondaggio saranno eliminati. Per confermare, digita <s>“{{confirmText}}”</s> qui sotto:",
"deletingOptionsWarning": "Stai eliminando opzioni per le quali i partecipanti hanno votato. Anche il loro voto sarà eliminato.",
"demoPollNotice": "I sondaggi demo vengono cancellati automaticamente dopo 1 giorno",
"description": "Descrizione",
"descriptionPlaceholder": "Ciao a tutti, scegliete le date che per voi vanno bene!",
"donate": "Dona",
"editDetails": "Modifica i dettagli",
"editOptions": "Modifica opzioni",
"email": "Email",
"emailPlaceholder": "jessie.smith@email.com",
"endingGuestSessionNotice": "Una volta terminata la sessione ospite, la sessione non può essere ripresa. Non sarà possibile modificare alcun voto o commento fatto con questa sessione.",
"endSession": "Termina sessione",
"errorCreate": "Oh oh! Si è verificato un problema durante la creazione del tuo sondaggio. L'errore è stato registrato e proveremo a risolverlo.",
"exportToCsv": "Esporta in CSV",
"finish": "Termina",
"forgetMe": "Dimenticati di me",
"goToAdmin": "Vai a Admin",
"guest": "Ospite",
"guestSessionNotice": "Stai usando una sessione ospite. Questo ci permette di riconoscerti se tornerai più tardi in modo da poter modificare i tuoi voti.",
"guestSessionReadMore": "Leggi altro sulle sessioni ospite.",
"hide": "Nascondi",
"ifNeedBe": "Se necessario",
"linkHasExpired": "Il link è scaduto o non è più valido",
"loading": "Caricamento…",
"loadingParticipants": "Caricamento partecipanti…",
"location": "Posizione",
"locationPlaceholder": "Bar di Joe",
"lockPoll": "Blocca sondaggio",
"login": "Accedi",
"loginCheckInbox": "Verifica la tua posta in arrivo.",
"loginMagicLinkSent": "Un link di accesso è stato inviato a:",
"loginSendMagicLink": "Inviami un link di accesso",
"loginViaMagicLink": "Accedi tramite link di accesso",
"loginViaMagicLinkDescription": "Ti invieremo un email con un link di accesso che puoi usare per effettuare il login.",
"loginWithValidEmail": "Inserisci un indirizzo email valido",
"logout": "Esci",
"manage": "Gestisci",
"menu": "Menu",
"mixedOptionsDescription": "Non puoi avere entrambe le opzioni di data e ora nello stesso sondaggio. Quale vorresti mantenere?",
"mixedOptionsKeepDates": "Mantieni opzioni data",
"mixedOptionsKeepTimes": "Mantieni opzioni tempo",
"mixedOptionsTitle": "Aspetta un minuto…🤔",
"monday": "Lunedì",
"monthView": "Vista mensile",
"name": "Nome",
"namePlaceholder": "Jessie Smith",
"newPoll": "Nuovo sondaggio",
"next": "Avanti",
"nextMonth": "Mese successivo",
"no": "No",
"noDatesSelected": "Nessuna data selezionata",
"notificationsDisabled": "Le notifiche sono state disabilitate",
"notificationsOff": "Notifiche disattive",
"notificationsOn": "Notifiche attive",
"notificationsOnDescription": "Un'email verrà inviata a <b>{{email}}</b> quando c'è attività su questo sondaggio.",
"notificationsVerifyEmail": "Devi verificare la tua email per attivare le notifiche",
"ok": "Ok",
"options": "Opzioni",
"participant": "Partecipante",
"participantCount_other": "{{count}} partecipanti",
"participantCount": "{{count}} partecipante",
"pollHasBeenLocked": "Questo sondaggio è stato bloccato",
"pollHasBeenVerified": "Il tuo sondaggio è stato verificato",
"pollOwnerNotice": "Ehi {{name}}, sembra che tu sia il proprietario di questo sondaggio.",
"pollsEmpty": "Nessun sondaggio creato",
"possibleAnswers": "Possibili risposte",
"preferences": "Impostazioni",
"previousMonth": "Mese precedente",
"profileLogin": "Profilo - Accedi",
"profileUser": "Profilo - {{username}}",
"requiredNameError": "Il nome è obbligatorio",
"save": "Salva",
"saveInstruction": "Seleziona la tua disponibilità e clicca su <b>{{save}}</b>",
"share": "Condividi",
"shareDescription": "Dai questo link ai <b>partecipanti</b> per permette loro di votare al tuo sondaggio.",
"shareLink": "Condividi via link",
"specifyTimes": "Specifica orari",
"specifyTimesDescription": "Includi gli orari di inizio e di fine per ogni opzione",
"stepSummary": "Fase {{current}} di {{total}}",
"sunday": "Domenica",
"timeAndDate": "Data e ora",
"timeFormat": "Formato orario:",
"timeZone": "Fuso orario:",
"title": "Titolo",
"titlePlaceholder": "Riunione Mensile",
"today": "Oggi",
"unlockPoll": "Sblocca sondaggio",
"unverifiedMessage": "Un'email è stata inviata a <b>{{email}}</b> con un link per verificare l'indirizzo email.",
"user": "Utente",
"vote": "Vota",
"voteCount_other": "{{count}} voti",
"voteCount": "{{count}} voti",
"weekStartsOn": "La settimana inizia da",
"weekView": "Vista settimanale",
"whatsThis": "Cos'è questo?",
"yes": "Si",
"you": "Tu",
"yourDetails": "I tuoi dati",
"yourName": "Il tuo nome…",
"yourPolls": "I tuoi sondaggi"
}

View file

@ -0,0 +1,22 @@
{
"blog": "Blog",
"discussions": "Discussioni",
"donate": "Dona",
"english": "Inglese",
"footerCredit": "Realizzato da <a>@imlukevella</a>",
"footerSponsor": "Questo progetto è finanziato dall'utente. Per favore considera di supportarlo <a>donando</a>.",
"french": "Francese",
"german": "Tedesco",
"home": "Home",
"italian": "Italiano",
"language": "Lingua",
"links": "Links",
"portugueseBr": "Portoghese (Brasile)",
"poweredBy": "Powered by",
"privacyPolicy": "Informativa sulla privacy",
"spanish": "Spagnolo",
"starOnGithub": "Aggiungi ai preferiti su Github",
"support": "Assistenza",
"swedish": "Svedese",
"volunteerTranslator": "Aiutaci a tradurre il sito"
}

View file

@ -0,0 +1,6 @@
{
"notFoundTitle": "404 non trovato",
"notFoundDescription": "Non abbiamo trovato la pagina che stavi cercando.",
"goToHome": "Vai alla home",
"startChat": "Avvia la chat"
}

View file

@ -0,0 +1,36 @@
{
"3Ls": "Sì—con 3 <e>L</e>s",
"adFree": "Senza pubblicità",
"adFreeDescription": "Puoi far riposare il tuo ad-blocker — qui non ne avrai bisogno.",
"comments": "Commenti",
"commentsDescription": "I partecipanti possono commentare il sondaggio e i commenti saranno visibili a tutti.",
"features": "Funzionalità",
"featuresSubheading": "Pianificare in modo intelligente",
"follow": "Segui",
"getStarted": "Inizia ora",
"heroSubText": "Trova la data perfetta senza troppi problemi",
"heroText": "Pianifica<br/><s>riunioni di gruppo</s><br />con facilità",
"links": "Links",
"liveDemo": "Demo Live",
"metaDescription": "Crea sondaggi e vota per trovare il miglior giorno o orario. Un alternativa gratuita a Doodle.",
"metaTitle": "Rallly - Programma incontri di gruppo",
"mobileFriendly": "Mobile friendly",
"mobileFriendlyDescription": "Funziona bene su dispositivi mobili in modo che i partecipanti possano rispondere ai sondaggi ovunque si trovino.",
"new": "Nuovo",
"noLoginRequired": "Login non necessario",
"noLoginRequiredDescription": "Non è necessario effettuare il login per creare o partecipare ad un sondaggio",
"notifications": "Notifiche",
"notificationsDescription": "Tieni traccia di chi ha risposto. Ricevi una notifica quando i partecipanti votano o commentano il tuo sondaggio.",
"openSource": "Open-source",
"openSourceDescription": "Il codice è completamente open-source e <a>disponibile su GitHub</a>.",
"participant": "Partecipante",
"participantCount_other": "{{count}} partecipanti",
"participantCount": "{{count}} partecipante",
"perfect": "Perfetto!",
"principles": "Principi",
"principlesSubheading": "Non siamo come gli altri",
"selfHostable": "Self-hostable",
"selfHostableDescription": "Eseguilo sul tuo server personale per avere il pieno controllo dei tuoi dati",
"timeSlots": "Fasce orarie",
"timeSlotsDescription": "Imposta singolarmente i tempi di inizio e fine per ogni opzione nel tuo sondaggio. Gli orari possono essere automaticamente adattati al fuso orario di ogni partecipante o possono essere impostati per ignorare completamente i fuso orari."
}

View file

@ -21,8 +21,9 @@ export const LanguageSelect: React.VoidFunctionComponent<{
<option value="en">{t("english")}</option>
<option value="es">{t("spanish")}</option>
<option value="de">{t("german")}</option>
<option value="pt-BR">{t("portugueseBr")}</option>
<option value="fr">{t("french")}</option>
<option value="it">{t("italian")}</option>
<option value="pt-BR">{t("portugueseBr")}</option>
<option value="sv">{t("swedish")}</option>
</select>
);

View file

@ -1,7 +1,7 @@
import languageParser from "accept-language-parser";
import { NextRequest, NextResponse } from "next/server";
const supportedLocales = ["en", "es", "de", "fr", "sv", "pt-BR"];
const supportedLocales = ["en", "es", "de", "fr", "it", "sv", "pt-BR"];
export function middleware({ headers, cookies, nextUrl }: NextRequest) {
const newUrl = nextUrl.clone();

View file

@ -45,6 +45,11 @@ const dayjsLocales: Record<
timeFormat: "24h",
import: () => import("dayjs/locale/fr"),
},
it: {
weekStartsOn: "monday",
timeFormat: "24h",
import: () => import("dayjs/locale/it"),
},
sv: {
weekStartsOn: "monday",
timeFormat: "24h",