From 5d4a6b26aa58de45e0d73f76431bdb831770f813 Mon Sep 17 00:00:00 2001 From: Luke Vella Date: Fri, 20 Jan 2023 12:31:13 +0000 Subject: [PATCH] Add croatian locale (#411) --- next-i18next.config.js | 1 + public/locales/hr/app.json | 129 ++++++++++++++++++++++ public/locales/hr/common.json | 15 +++ public/locales/hr/errors.json | 6 + public/locales/hr/homepage.json | 39 +++++++ src/components/poll/language-selector.tsx | 1 + src/middleware.ts | 1 + src/utils/dayjs.tsx | 5 + 8 files changed, 197 insertions(+) create mode 100644 public/locales/hr/app.json create mode 100644 public/locales/hr/common.json create mode 100644 public/locales/hr/errors.json create mode 100644 public/locales/hr/homepage.json diff --git a/next-i18next.config.js b/next-i18next.config.js index 598370975..42ef2a32a 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -12,6 +12,7 @@ module.exports = { "es", "fi", "fr", + "hr", "hu", "it", "ko", diff --git a/public/locales/hr/app.json b/public/locales/hr/app.json new file mode 100644 index 000000000..53baa32bb --- /dev/null +++ b/public/locales/hr/app.json @@ -0,0 +1,129 @@ +{ + "12h": "12-satni", + "24h": "24-satni", + "addParticipant": "Dodaj sudionike", + "addTimeOption": "Dodaj opciju vremena - sate", + "alreadyVoted": "Već ste glasali", + "applyToAllDates": "Primjeni na sve datume", + "areYouSure": "Jeste li sigurni?", + "back": "Natrag", + "calendarHelp": "Ne možete stvoriti anketu bez opcija. Dodajte barem jednu opciju kako bi mogli nastaviti.", + "calendarHelpTitle": "Nešto ste zaboravili?", + "cancel": "Otkaži", + "comment": "Komentar", + "commentPlaceholder": "Napišite komentar o ovoj anketi (vidljivo svim sudionicima)", + "comments": "Komentari", + "continue": "Nastavi", + "copied": "Kopirano", + "copyLink": "Kopiraj poveznicu", + "createdBy": "napravio/la {{name}}", + "createPoll": "Stvorite anketu", + "creatingDemo": "Stvaranje demo ankete…", + "delete": "Brisanje", + "deleteComment": "Brisanje komentara", + "deleteDate": "Brisanje datuma", + "deletedPoll": "Izbrisana anketa", + "deletedPollInfo": "Nažalost, ova anketa više ne postoji.", + "deletePoll": "Izbrišite anketu", + "deletePollDescription": "Svi podaci vezani uz ovu anketu bit će izbrisani. Za potvrdu upišite “{{confirmText}}” u polje za unos ispod:", + "deletingOptionsWarning": "Brišete opcije za koje su glasali sudionici. I njihovi odabiri će također biti izbrisani.", + "demoPollNotice": "Demo ankete se automatski brišu nakon 1 dana", + "description": "Opis", + "descriptionPlaceholder": "Pozdrav svima, odaberite termine koji vam odgovaraju!", + "donate": "Donirajte", + "edit": "Uredi", + "editDetails": "Uredi detalje", + "editOptions": "Uredi opcije", + "email": "E-pošta", + "emailPlaceholder": "ime.prezime@email.com", + "endingGuestSessionNotice": "Nakon što anonimna sesija (niste prijavljeni, već prisupate kao gost) završi, ne može se nastaviti. Nećete moći uređivati glasove ili komentare koje ste dali tijekom ove sesije.", + "endSession": "Završi sesiju", + "exportToCsv": "Izvoz u CSV", + "forgetMe": "Zaboravi me", + "goToAdmin": "Otvori admin postavke", + "guest": "Gost", + "guestSessionNotice": "Koristite anonimnu sesiju (pristupate kao gost). To nam omogućuje da vas prepoznamo ako se kasnije vratite kako biste mogli urediti svoje glasove.", + "guestSessionReadMore": "Pročitajte više o sesijama za goste.", + "hide": "Skrij", + "ifNeedBe": "Ako bude postojala potreba", + "linkHasExpired": "Vaša poveznica je istekla i nije više valjana", + "loading": "Učitavanje…", + "loadingParticipants": "Učitavanje sudionika…", + "location": "Lokacija", + "locationPlaceholder": "Ime lokacije", + "lockPoll": "Zaključaj anketu", + "login": "Prijava", + "loginCheckInbox": "Provjerite svoj inbox.", + "loginMagicLinkSent": "Magična poveznica je poslana:", + "loginSendMagicLink": "Pošalji mi magičnu poveznicu za prijavu", + "loginViaMagicLink": "Prijava korištenjem magične poveznice", + "loginViaMagicLinkDescription": "Poslat ćemo vam poruku e-pošte s čarobnom poveznicom za prijavu.", + "loginWithValidEmail": "Molim vas unesite ispravnu adresu e-pošte", + "logout": "Odjava", + "manage": "Upravljanje", + "menu": "Izbornik", + "mixedOptionsDescription": "Ne možete imati opcije datuma i vremena istovremeno u istoj anketi. Koje od tih želite zadržati i koristiti?", + "mixedOptionsKeepDates": "Zadrži opcije datuma", + "mixedOptionsKeepTimes": "Zadrži opcije vremena", + "mixedOptionsTitle": "Čekaj malo… 🤔", + "monday": "Ponedjeljak", + "monthView": "Mjesečni prikaz", + "name": "Ime", + "namePlaceholder": "Ime Prezime", + "new": "Nova", + "newPoll": "Nova anketa", + "next": "Sljedeći", + "nextMonth": "Sljedeći mjesec", + "no": "Ne", + "noDatesSelected": "Datum nije odabran", + "notificationsDisabled": "Obavijesti su isključene", + "notificationsOff": "Obavijesti isključene", + "notificationsOn": "Obavijesti uključene", + "notificationsOnDescription": "Poruka e-pošte će biti poslana na {{email}} kada bude aktivnosti na ovoj anketi.", + "notificationsVerifyEmail": "Morate potvrditi svoju e-poštu kako biste uključili obavijesti", + "noVotes": "Nitko nije glasao za ovu opciju", + "ok": "U redu", + "participant": "Sudionik", + "participantCount_zero": "Broj sudionika: {{count}}", + "participantCount_one": "Broj sudionika: {{count}}", + "participantCount_two": "Broj sudionika: {{count}}", + "participantCount_few": "Broj sudionika: {{count}}", + "participantCount_many": "Broj sudionika: {{count}}", + "participantCount_other": "Broj sudionika: {{count}}", + "pollHasBeenLocked": "Ova anketa je zaključana", + "pollHasBeenVerified": "Ova anketa je provjerena", + "pollOwnerNotice": "Hej {{name}}, izgleda da ste vlasnik ove ankete.", + "pollsEmpty": "Nema stvorenih anketa", + "possibleAnswers": "Mogući odgovori", + "preferences": "Postavke", + "previousMonth": "Prethodni mjesec", + "profileLogin": "Profil - prijava", + "profileUser": "Profil - {{username}}", + "requiredNameError": "Ime je obavezno", + "save": "Pohrani", + "saveInstruction": "Odaberite termine koji vam odgovaraju i kliknite na {{save}}", + "share": "Podijeli", + "shareDescription": "Dajte ovu vezu svojim sudionicima kako biste im omogućili glasanje u vašoj anketi.", + "shareLink": "Podijeli putem poveznice", + "specifyTimes": "Zadaj vrijeme", + "specifyTimesDescription": "Obuhvati vrijeme početka i završetka za svaku opciju", + "stepSummary": "Korak {{current}} od ukupno {{total}}", + "sunday": "Nedjelja", + "timeFormat": "Format vremena:", + "timeZone": "Vremenska zona:", + "title": "Naslov", + "titlePlaceholder": "Mjesečni sastanak", + "today": "Danas", + "unlockPoll": "Otključaj anketu", + "unverifiedMessage": "Poruka e-pošte je poslana na {{email}} s poveznicom za potvrdu vaše adrese e-pošte.", + "user": "Korisnik", + "weekStartsOn": "Početak tjedna", + "weekView": "Tjedni pregled", + "whatsThis": "Što je ovo?", + "yes": "Da", + "you": "Vi", + "yourDetails": "Tvoji podatci", + "yourName": "Vaše ime…", + "yourProfile": "Vaš profil", + "yourPolls": "Vaše ankete" +} diff --git a/public/locales/hr/common.json b/public/locales/hr/common.json new file mode 100644 index 000000000..b255858ab --- /dev/null +++ b/public/locales/hr/common.json @@ -0,0 +1,15 @@ +{ + "blog": "Blog", + "discussions": "Rasprave", + "donate": "Donirajte", + "footerCredit": "Autor: @imlukevella", + "footerSponsor": "Ovaj projekt financiraju korisnici. Razmislite o podršci donacijom.", + "home": "Naslovnica", + "language": "Jezik", + "links": "Poveznice", + "poweredBy": "Pokreće", + "privacyPolicy": "Pravila privatnosti", + "starOnGithub": "Ocijeni na GitHub-u", + "support": "Podrška", + "volunteerTranslator": "Pomozite prevesti ovu stranicu" +} diff --git a/public/locales/hr/errors.json b/public/locales/hr/errors.json new file mode 100644 index 000000000..ca5cba841 --- /dev/null +++ b/public/locales/hr/errors.json @@ -0,0 +1,6 @@ +{ + "notFoundTitle": "404 Nije pronađeno", + "notFoundDescription": "Nije bilo moguće pronaći stranicu koju želite otvoriti.", + "goToHome": "Idi na naslovnicu", + "startChat": "Pokrenite chat" +} diff --git a/public/locales/hr/homepage.json b/public/locales/hr/homepage.json new file mode 100644 index 000000000..0001b6654 --- /dev/null +++ b/public/locales/hr/homepage.json @@ -0,0 +1,39 @@ +{ + "3Ls": "Da, s 3 slova L", + "adFree": "Bez reklama", + "adFreeDescription": "Adblocker vam ne treba ovdje.", + "comments": "Komentari", + "commentsDescription": "Sudionici mogu komentirati vašu anketu i komentari će biti vidljivi svima.", + "features": "Mogućnosti", + "featuresSubheading": "Pametni način zakazivanja sastanaka", + "getStarted": "Započnite", + "heroSubText": "Pronađite pravi termin bez puno muke", + "heroText": "Zakažite
sastanke
s lakoćom", + "links": "Poveznice", + "liveDemo": "Demo", + "metaDescription": "Napravite ankete i glasajte kako biste pronašli najbolji dan ili vrijeme. Besplatna alternativa Doodleu.", + "metaTitle": "Rallly - zakazivanje termina sastanaka", + "mobileFriendly": "Namijenjeno mobilnim uređajima", + "mobileFriendlyDescription": "Sjajno radi na mobilnim uređajima tako da sudionici mogu odgovarati na ankete gdje god se nalazili.", + "new": "Nova", + "noLoginRequired": "Nije potrebna prijava na sustav", + "noLoginRequiredDescription": "Ne morate se prijaviti kako biste stvorili anketu ili sudjelovali u njoj", + "notifications": "Obavijesti", + "notificationsDescription": "Pratite tko je odgovorio. Primite obavijest kada sudionici glasaju ili komentiraju vašu anketu.", + "openSource": "Otvorenog kôda", + "openSourceDescription": "Ovo je rješenje zasnovano na otvorenom kôdu i dostupno je na GitHub-u.", + "participant": "Sudionik", + "participantCount_zero": "Broj sudionika: {{count}}", + "participantCount_one": "Broj sudionika: {{count}}", + "participantCount_two": "Broj sudionika: {{count}}", + "participantCount_few": "Broj sudionika: {{count}}", + "participantCount_many": "Broj sudionika: {{count}}", + "participantCount_other": "Broj sudionika: {{count}}", + "perfect": "Savršeno!", + "principles": "Principi", + "principlesSubheading": "Nismo kao drugi", + "selfHostable": "Instalacija na vašem poslužitelju", + "selfHostableDescription": "Pokrenite ga na vlastitom poslužitelju kako biste preuzeli potpunu kontrolu nad svojim podacima", + "timeSlots": "Vrijeme", + "timeSlotsDescription": "Postavite pojedinačno vrijeme početka i završetka za svaku opciju u svojoj anketi. Vremena se mogu automatski prilagoditi vremenskoj zoni svakog sudionika ili se mogu postaviti da potpuno zanemaruju vremenske zone." +} diff --git a/src/components/poll/language-selector.tsx b/src/components/poll/language-selector.tsx index 3d59bfaf4..605ef22e1 100644 --- a/src/components/poll/language-selector.tsx +++ b/src/components/poll/language-selector.tsx @@ -27,6 +27,7 @@ export const LanguageSelect: React.VoidFunctionComponent<{ + diff --git a/src/middleware.ts b/src/middleware.ts index 8d0229d85..e6a4c75d2 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -11,6 +11,7 @@ const supportedLocales = [ "fi", "fr", "hu", + "hr", "it", "ko", "nl", diff --git a/src/utils/dayjs.tsx b/src/utils/dayjs.tsx index 4e18d75a9..4fabff3b1 100644 --- a/src/utils/dayjs.tsx +++ b/src/utils/dayjs.tsx @@ -60,6 +60,11 @@ const dayjsLocales: Record< timeFormat: "24h", import: () => import("dayjs/locale/fr"), }, + hr: { + weekStartsOn: "monday", + timeFormat: "24h", + import: () => import("dayjs/locale/hr"), + }, it: { weekStartsOn: "monday", timeFormat: "24h",