diff --git a/next-i18next.config.js b/next-i18next.config.js
index 788692dfd..81fec6340 100644
--- a/next-i18next.config.js
+++ b/next-i18next.config.js
@@ -17,6 +17,7 @@ module.exports = {
"pl",
"pt-BR",
"pt",
+ "sk",
"sv",
"zh",
],
diff --git a/public/locales/sk/app.json b/public/locales/sk/app.json
new file mode 100644
index 000000000..31d9ca303
--- /dev/null
+++ b/public/locales/sk/app.json
@@ -0,0 +1,132 @@
+{
+ "12h": "12-hodinový",
+ "24h": "24-hodinový",
+ "addParticipant": "Pridať účastníka",
+ "addTimeOption": "Vybrať konkrétny čas",
+ "alreadyVoted": "Už ste hlasovali",
+ "applyToAllDates": "Použiť pre všetky termíny",
+ "areYouSure": "Ste si istý?",
+ "back": "Späť",
+ "calendarHelp": "Nie je možné vytvoriť hlasovanie bez možností. Ak chcete pokračovať, pridajte aspoň jednu možnosť.",
+ "calendarHelpTitle": "Zabudli ste niečo?",
+ "cancel": "Zrušiť",
+ "comment": "Komentovať",
+ "commentPlaceholder": "Zanechajte komentár k tejto ankete (viditeľný pre všetkých)",
+ "comments": "Komentáre",
+ "continue": "Pokračovať",
+ "copied": "Skopírované",
+ "copyLink": "Skopírovať odkaz",
+ "createdBy": "od {{name}}",
+ "createPoll": "Vytvoriť anketu",
+ "creatingDemo": "Vytváram demo anketu…",
+ "delete": "Vymazať",
+ "deleteComment": "Odstrániť komentár",
+ "deleteDate": "Odstrániť termín",
+ "deletedPoll": "Odstránená anketa",
+ "deletedPollInfo": "Tato anketa už neexistuje.",
+ "deletePoll": "Odstrániť anketu",
+ "deletePollDescription": "Všetky dáta súvisiace s touto anketou budú zmazané. Pre potvrdenie zadajte “{{confirmText}}” nižšie:",
+ "deletingOptionsWarning": "Odstraňujete možnosti, za ktoré už účastníci hlasovali. Ich hlasy budú taktiež odstránené.",
+ "demoPollNotice": "Demo ankety sa po jednom dni automaticky odstránia",
+ "description": "Popis",
+ "descriptionPlaceholder": "Ahojte všetci, prosím hlasujte za termíny, ktoré vám vyhovujú!",
+ "donate": "Podporiť",
+ "edit": "Upraviť",
+ "editDetails": "Upraviť údaje",
+ "editOptions": "Upraviť možnosti",
+ "email": "Email",
+ "emailPlaceholder": "jan.slovak@email.com",
+ "endingGuestSessionNotice": "Keď relácia hosťa skončí, nie je možné ju obnoviť. Nebudete môcť upravovať žiadne hlasy alebo komentáre, ktoré ste v rámci relácie zapracovali.",
+ "endSession": "Ukončiť reláciu",
+ "errorCreate": "Bum-bác! Pri vytváraní ankety nastala chyba. Chyba bola zaznamenaná a na jej oprave pracujeme.",
+ "exportToCsv": "Exportovať do CSV",
+ "finish": "Dokončiť",
+ "forgetMe": "Zabudnúť ma",
+ "goToAdmin": "Prejsť do administrácie",
+ "guest": "Hosť",
+ "guestSessionNotice": "Používate reláciu hosťa. Vďaka tomu vás rozpoznáme, keď sa vrátite neskôr a budete môcť upraviť svoje hlasy.",
+ "guestSessionReadMore": "Prečítajte si viac o relácii hosťa.",
+ "hide": "Skryť",
+ "ifNeedBe": "Pokiaľ je to nutné",
+ "linkHasExpired": "Platnosť tohto odkazu vypršala alebo už nie je platný",
+ "loading": "Načítava sa…",
+ "loadingParticipants": "Načítavam účastníkov…",
+ "location": "Poloha",
+ "locationPlaceholder": "Kaviareň u Maca",
+ "lockPoll": "Zamknúť anketu",
+ "login": "Prihlásiť sa",
+ "loginCheckInbox": "Skontrolujte si prosím svoju e-mailovú schránku.",
+ "loginMagicLinkSent": "Magický odkaz bol odoslaný na:",
+ "loginSendMagicLink": "Zaslať magický odkaz",
+ "loginViaMagicLink": "Prihlásiť sa pomocou magického odkazu",
+ "loginViaMagicLinkDescription": "Pošleme vám e-mail s magickým odkazom, ktorým sa môžete do aplikácie prihlásiť.",
+ "loginWithValidEmail": "Zadajte platnú e-mailovú adresu",
+ "logout": "Odhlásiť sa",
+ "manage": "Spravovať",
+ "menu": "Menu",
+ "mixedOptionsDescription": "Nemôžete mať v jednej ankete súbežne dátum aj čas. Ktorú voľbu chcete zachovať?",
+ "mixedOptionsKeepDates": "Zachovať dátum",
+ "mixedOptionsKeepTimes": "Zachovať čas",
+ "mixedOptionsTitle": "Vydržte chvíľu…🤔",
+ "monday": "Pondelok",
+ "monthView": "Zobrazenie mesiaca",
+ "name": "Meno",
+ "namePlaceholder": "Ján Slovák",
+ "new": "Nový",
+ "newPoll": "Nová anketa",
+ "next": "Ďalej",
+ "nextMonth": "Ďalší mesiac",
+ "no": "Nie",
+ "noDatesSelected": "Nebol vybraný žiaden termín",
+ "notificationsDisabled": "Upozornenia boli vypnuté",
+ "notificationsOff": "Upozornenia sú vypnuté",
+ "notificationsOn": "Upozornenia sú povolené",
+ "notificationsOnDescription": "Akonáhle sa v ankete niečo zmení, dostanete upozornenie na adresu {{email}}.",
+ "notificationsVerifyEmail": "Pre zapnutie upozornení musíte overiť svoj e-mail",
+ "noVotes": "Nikto pre túto možnosť nehlasoval",
+ "ok": "OK",
+ "options": "Možnosti",
+ "participant": "Účastník",
+ "participantCount_other": "{{count}} účastníkov",
+ "participantCount": "{{count}} účastník",
+ "pollHasBeenLocked": "Anketa bola uzamknutá",
+ "pollHasBeenVerified": "Vaša anketa bola overená",
+ "pollOwnerNotice": "Dobrý deň, {{name}}, zdá sa, že ste vlastníkom tejto ankety.",
+ "pollsEmpty": "Neboli vytvorené žiadne ankety",
+ "possibleAnswers": "Možné odpovede",
+ "preferences": "Nastavenia",
+ "previousMonth": "Predchádzajúci mesiac",
+ "profileLogin": "Profil - Prihlásenie",
+ "profileUser": "Profil - {{username}}",
+ "requiredNameError": "Požadované je meno",
+ "save": "Uložiť",
+ "saveInstruction": "Vyberte svoju dostupnosť a kliknite na {{save}}",
+ "share": "Zdielať",
+ "shareDescription": "Tento odkaz zašlite vašim účastníkom, aby mohli v ankete hlasovať.",
+ "shareLink": "Zdieľať cez odkaz",
+ "specifyTimes": "Určite časy",
+ "specifyTimesDescription": "Zahrnúť počiatočné a koncové časy pre každý termín",
+ "stepSummary": "Krok {{current}} z {{total}}",
+ "sunday": "Nedeľa",
+ "timeAndDate": "Čas & dátum",
+ "timeFormat": "Formát času:",
+ "timeZone": "Časová zóna:",
+ "title": "Názov",
+ "titlePlaceholder": "Pracovná porada",
+ "today": "Dnes",
+ "unlockPoll": "Odomknúť anketu",
+ "unverifiedMessage": "Na adresu {{email}} bol zaslaný odkaz pre overenie e-mailovej adresy.",
+ "user": "Užívateľ",
+ "vote": "Hlasovať",
+ "voteCount_other": "{{count}} hlasov",
+ "voteCount": "{{count}} hlas",
+ "weekStartsOn": "Týždeň začína v",
+ "weekView": "Zobrazenie týždňa",
+ "whatsThis": "Čo je toto?",
+ "yes": "Áno",
+ "you": "Vy",
+ "yourDetails": "Vaše údaje",
+ "yourName": "Vaše meno…",
+ "yourProfile": "Váš profil",
+ "yourPolls": "Vaše ankety"
+}
diff --git a/public/locales/sk/common.json b/public/locales/sk/common.json
new file mode 100644
index 000000000..d02766fcb
--- /dev/null
+++ b/public/locales/sk/common.json
@@ -0,0 +1,15 @@
+{
+ "blog": "Blog",
+ "discussions": "Diskusie",
+ "donate": "Podporiť",
+ "footerCredit": "Vytvoril @imlukevella",
+ "footerSponsor": "Tento projekt je financovaný používateľmi. Zvážte jeho podporu príspevkom.",
+ "home": "Domov",
+ "language": "Jazyk",
+ "links": "Odkazy",
+ "poweredBy": "Beží na",
+ "privacyPolicy": "Ochrana osobných údajov",
+ "starOnGithub": "Podporte nás na GitHube",
+ "support": "Podpora",
+ "volunteerTranslator": "Pomôžte s prekladom tejto stránky"
+}
diff --git a/public/locales/sk/errors.json b/public/locales/sk/errors.json
new file mode 100644
index 000000000..0ced546c8
--- /dev/null
+++ b/public/locales/sk/errors.json
@@ -0,0 +1,6 @@
+{
+ "notFoundTitle": "404 nenájdené",
+ "notFoundDescription": "Nemohli sme nájsť stránku, ktorú hľadáte.",
+ "goToHome": "Prejsť na Domovskú stránku",
+ "startChat": "Spustiť chat"
+}
diff --git a/public/locales/sk/homepage.json b/public/locales/sk/homepage.json
new file mode 100644
index 000000000..8181fdbf0
--- /dev/null
+++ b/public/locales/sk/homepage.json
@@ -0,0 +1,36 @@
+{
+ "3Ls": "Áno — s tromi L",
+ "adFree": "Bez reklám",
+ "adFreeDescription": "Svoj blokátor reklám môžete vypnúť. Tu ho potrebovať nebudete.",
+ "comments": "Komentáre",
+ "commentsDescription": "Účastníci sa môžu vyjadriť k vašemu prieskumu a komentáre budú viditeľné pre všetkých.",
+ "features": "Funkcie",
+ "featuresSubheading": "Jednoduché a šikovné plánovanie",
+ "follow": "Sledovať",
+ "getStarted": "Začnite tu",
+ "heroSubText": "Nájdite správny termín bez zložitého dohadovania sa",
+ "heroText": "Plánujte
skupinvé stretnutia
jednoducho a rýchlo",
+ "links": "Odkazy",
+ "liveDemo": "Zobraziť ukážku",
+ "metaDescription": "Naplánujte si skupinové stretnutia v ten najvhodnejší čas. Bezplatná alternatíva k službe Doodle.",
+ "metaTitle": "Rallly — Naplánujte skupinové stretnutia",
+ "mobileFriendly": "Vhodné pre mobil",
+ "mobileFriendlyDescription": "Funguje skvele na mobilných zariadeniach, aby účastníci mohli odpovedať na ankety, nech sú kdekoľvek.",
+ "new": "Nové",
+ "noLoginRequired": "Bez prihlásenia",
+ "noLoginRequiredDescription": "Pre vytvorenie alebo účasť v ankete sa nemusíte prihlásiť",
+ "notifications": "Notifikácie",
+ "notificationsDescription": "Majte prehľad o tom, kto odpovedal. Dostávajte upozornenia, keď účastníci hlasujú alebo komentujú vašu anketu.",
+ "openSource": "Open-source",
+ "openSourceDescription": "Celý kód je plne open-source a k dispozícii na GitHub.",
+ "participant": "Účastník",
+ "participantCount_other": "{{count}} účastníkov",
+ "participantCount": "{{count}} účastník",
+ "perfect": "Super!",
+ "principles": "Zásady",
+ "principlesSubheading": "Nie sme ako ostatní",
+ "selfHostable": "Vlastný hosting",
+ "selfHostableDescription": "Rozbehnite si vlastný server a získajte plnú kontrolu nad svojimi dátami",
+ "timeSlots": "Časové sloty",
+ "timeSlotsDescription": "Nastavte čas začiatku a konca pre každú z možností vo vašej ankete. Časy môžu byť automaticky upravené podľa časovej zóny každého účastníka, alebo môžu byť nastavené tak, aby časové zóny úplne ignorovali."
+}
diff --git a/src/components/poll/language-selector.tsx b/src/components/poll/language-selector.tsx
index de59c905b..c34921739 100644
--- a/src/components/poll/language-selector.tsx
+++ b/src/components/poll/language-selector.tsx
@@ -32,6 +32,7 @@ export const LanguageSelect: React.VoidFunctionComponent<{
+
);
diff --git a/src/middleware.ts b/src/middleware.ts
index 35ecef190..6de7e4fd4 100644
--- a/src/middleware.ts
+++ b/src/middleware.ts
@@ -15,6 +15,7 @@ const supportedLocales = [
"pl",
"pt-BR",
"pt",
+ "sk",
"sv",
"zh",
];
diff --git a/src/utils/dayjs.tsx b/src/utils/dayjs.tsx
index 6db974899..8fe396425 100644
--- a/src/utils/dayjs.tsx
+++ b/src/utils/dayjs.tsx
@@ -60,6 +60,11 @@ const dayjsLocales: Record<
timeFormat: "24h",
import: () => import("dayjs/locale/sv"),
},
+ sk: {
+ weekStartsOn: "monday",
+ timeFormat: "24h",
+ import: () => import("dayjs/locale/sk"),
+ },
cs: {
weekStartsOn: "monday",
timeFormat: "24h",