mirror of
https://github.com/lukevella/rallly.git
synced 2025-06-17 18:11:49 +02:00
Add italian locale (#276)
This commit is contained in:
parent
2648be9b0a
commit
49f31d4904
8 changed files with 201 additions and 3 deletions
|
@ -3,7 +3,7 @@ const path = require("path");
|
||||||
module.exports = {
|
module.exports = {
|
||||||
i18n: {
|
i18n: {
|
||||||
defaultLocale: "en",
|
defaultLocale: "en",
|
||||||
locales: ["en", "es", "de", "fr", "sv", "pt-BR"],
|
locales: ["en", "es", "de", "fr", "it", "sv", "pt-BR"],
|
||||||
localePath: path.resolve("./public/locales"),
|
localePath: path.resolve("./public/locales"),
|
||||||
reloadOnPrerender: process.env.NODE_ENV === "development",
|
reloadOnPrerender: process.env.NODE_ENV === "development",
|
||||||
},
|
},
|
||||||
|
|
128
public/locales/it/app.json
Normal file
128
public/locales/it/app.json
Normal 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"
|
||||||
|
}
|
22
public/locales/it/common.json
Normal file
22
public/locales/it/common.json
Normal 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"
|
||||||
|
}
|
6
public/locales/it/errors.json
Normal file
6
public/locales/it/errors.json
Normal 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"
|
||||||
|
}
|
36
public/locales/it/homepage.json
Normal file
36
public/locales/it/homepage.json
Normal 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."
|
||||||
|
}
|
|
@ -21,8 +21,9 @@ export const LanguageSelect: React.VoidFunctionComponent<{
|
||||||
<option value="en">{t("english")}</option>
|
<option value="en">{t("english")}</option>
|
||||||
<option value="es">{t("spanish")}</option>
|
<option value="es">{t("spanish")}</option>
|
||||||
<option value="de">{t("german")}</option>
|
<option value="de">{t("german")}</option>
|
||||||
<option value="pt-BR">{t("portugueseBr")}</option>
|
|
||||||
<option value="fr">{t("french")}</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>
|
<option value="sv">{t("swedish")}</option>
|
||||||
</select>
|
</select>
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import languageParser from "accept-language-parser";
|
import languageParser from "accept-language-parser";
|
||||||
import { NextRequest, NextResponse } from "next/server";
|
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) {
|
export function middleware({ headers, cookies, nextUrl }: NextRequest) {
|
||||||
const newUrl = nextUrl.clone();
|
const newUrl = nextUrl.clone();
|
||||||
|
|
|
@ -45,6 +45,11 @@ const dayjsLocales: Record<
|
||||||
timeFormat: "24h",
|
timeFormat: "24h",
|
||||||
import: () => import("dayjs/locale/fr"),
|
import: () => import("dayjs/locale/fr"),
|
||||||
},
|
},
|
||||||
|
it: {
|
||||||
|
weekStartsOn: "monday",
|
||||||
|
timeFormat: "24h",
|
||||||
|
import: () => import("dayjs/locale/it"),
|
||||||
|
},
|
||||||
sv: {
|
sv: {
|
||||||
weekStartsOn: "monday",
|
weekStartsOn: "monday",
|
||||||
timeFormat: "24h",
|
timeFormat: "24h",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue