diff --git a/frontend/apps/remark42/app/locales/mk.json b/frontend/apps/remark42/app/locales/mk.json
new file mode 100644
index 00000000..df2b910f
--- /dev/null
+++ b/frontend/apps/remark42/app/locales/mk.json
@@ -0,0 +1,182 @@
+{
+ "auth.back": "Назад",
+ "auth.email-address": "Е-пошта",
+ "auth.loading": "Се вчитува...",
+ "auth.oauth-button": "Најава со {provider}",
+ "auth.oauth-source": "Користи социјална мрежа",
+ "auth.open-profile": "Отвори го мојот профил",
+ "auth.or": "или",
+ "auth.signin": "Најава",
+ "auth.signout": "Одјава",
+ "auth.submit": "Најава",
+ "auth.symbols-restriction": "Корисничкото име може да содржи само букви, бројки, долни црти или празни места",
+ "auth.telegram-check": "Провери",
+ "auth.telegram-link": "СО ЛИНК",
+ "auth.telegram-message-1": "Отвори Telegram",
+ "auth.telegram-message-2": "и кликни таму на „Start“.",
+ "auth.telegram-message-3": "Потоа кликни „Провери“ подолу.",
+ "auth.telegram-optional-qr": "или со скенирање на QR код",
+ "auth.telegram-qr": "Telegram QR-код",
+ "auth.user-not-found": "Корисникот не е пронајден",
+ "auth.username": "Корисничко име",
+ "authPanel.disable-comments": "Оневозможи коментари",
+ "authPanel.disabled-cookies": "Оневозможи колачиња од трети страни кои блокираат најава или коментари",
+ "authPanel.enable-comments": "Овозможи коментари",
+ "authPanel.enable-cookies": "Овозможи колачиња за најава и коментирање",
+ "authPanel.hide-settings": "Скриј подесувања",
+ "authPanel.new-page": "нова страница",
+ "authPanel.read-only": "Само за читање",
+ "authPanel.show-settings": "Прикажи подесувања",
+ "blockingDuration.day": "За еден ден",
+ "blockingDuration.month": "За еден месец",
+ "blockingDuration.permanently": "Постојано",
+ "blockingDuration.week": "За една недела",
+ "comment.block": "Блокирај",
+ "comment.block-user": "Дали сакате да го блокирате {userName} {duration}?",
+ "comment.blocked-user": "Блокиран",
+ "comment.blocking-period": "Период на блокирање",
+ "comment.cancel": "Откажи",
+ "comment.copied": "Копирано!",
+ "comment.copy": "Копирај",
+ "comment.delete": "Избриши",
+ "comment.delete-message": "Дали сакате да го избришете овој коментар?",
+ "comment.deleted-comment": "Овој коментар е избришан",
+ "comment.deleted-user": "Избришан",
+ "comment.edit": "Уреди",
+ "comment.edit-countdown": "Уредувањето ќе биде оневозможено",
+ "comment.expired-time": "Истече времето за уредување.",
+ "comment.go-to-parent": "Оди кај родителскиот коментар",
+ "comment.hide": "Скриј",
+ "comment.hide-user-comment": "Дали сакате да ги скриете коментарите на {userName}?",
+ "comment.paid-patreon": "Платен претплатник на Patreon",
+ "comment.pin": "Пинуван",
+ "comment.pin-comment": "Дали сакате да го пинувате овој коментар?",
+ "comment.reply": "Одговори",
+ "comment.time": "{day} во {time}",
+ "comment.toggle-verification": "Превклучи проверка",
+ "comment.unblock": "Деблокирај",
+ "comment.unblock-user": "Дали сакате да го одблокирате овој корисник?",
+ "comment.unpin": "Отклучи",
+ "comment.unpin-comment": "Дали сакате да го отклучите овој коментар?",
+ "comment.unverified-user": "Не верификуван корисник",
+ "comment.unverify-user": "Дали сакате да го означите {userName} како не верификуван?",
+ "comment.verified-user": "Верификуван корисник",
+ "comment.verify-user": "Дали сакате да го означите {userName} како верификуван?",
+ "commentForm.anonymous-uploading-disabled": "Анонимните корисници не можат да поставуваат слики. Ве молиме најавете се.",
+ "commentForm.exceeded-size": "{fileName} е поголем од дозволената големина {maxImageSize}",
+ "commentForm.input-placeholder": "Вашиот коментар тука",
+ "commentForm.new-comment": "Нов коментар",
+ "commentForm.notice-about-styling": "Може да користите Markdown стил",
+ "commentForm.preview": "Преглед",
+ "commentForm.reply": "Одговори",
+ "commentForm.save": "Зачувај",
+ "commentForm.send": "Испрати",
+ "commentForm.subscribe-by": "Претплати се преку",
+ "commentForm.subscribe-or": "или",
+ "commentForm.unauthorized-uploading-disabled": "Неовластените корисници не можат да поставуваат слики. Ве молиме најавете се.",
+ "commentForm.unexpected-error": "Се случи грешка. Ве молиме обидете се повторно подоцна.",
+ "commentForm.upload-file-fail": "Поставувањето на {fileName} не успеа: \"{errorMessage}\"",
+ "commentForm.uploading": "Се поставува...",
+ "commentForm.uploading-file": "Се поставува {fileName}...",
+ "commentsSort.best": "Најдобри",
+ "commentsSort.least-controversial": "Неспорни",
+ "commentsSort.least-recently-updated": "Неодамнешни",
+ "commentsSort.most-controversial": "Спорни",
+ "commentsSort.newest": "Најнови",
+ "commentsSort.oldest": "Најстари",
+ "commentsSort.recently-updated": "Најскоро променети",
+ "commentsSort.worst": "Најлоши",
+ "empty-state": "Сè уште нема коментари",
+ "errors.0": "Се случи грешка. Ве молиме обидете се повторно подоцна.",
+ "errors.1": "Коментарот не е пронајден. Ве молиме освежете ја страната и обидете се повторно.",
+ "errors.10": "Прекасно е за уредување на коментарот.",
+ "errors.11": "Коментарот веќе има одговор, уредувањето не е можно.",
+ "errors.12": "Не може да се зачува резултатот од гласањето. Ве молиме обидете се повторно.",
+ "errors.13": "Не можете да гласате за вашиот коментар.",
+ "errors.14": "Веќе гласавте за овој коментар.",
+ "errors.15": "Премногу гласови за овој коментар.",
+ "errors.16": "Достигнат е минимален резултат за коментарот.",
+ "errors.17": "Акцијата е одбиена. Ве молиме обидете се повторно.",
+ "errors.18": "Бараниот фајл не е пронајден.",
+ "errors.19": "Коментарот содржи ограничени зборови.",
+ "errors.2": "Неуспешно обработување на барањето.",
+ "errors.20": "Поставената слика не е пронајдена. Ве молиме обидете се повторно.",
+ "errors.3": "Немате привилегии за оваа операција.",
+ "errors.4": "Неважечки податоци за коментар.",
+ "errors.5": "Коментарот не е пронајден. Ве молиме освежете ја страната и обидете се повторно.",
+ "errors.6": "Сајтот не е пронајден. Ве молиме освежете ја страната и обидете се повторно.",
+ "errors.7": "Корисникот е блокиран.",
+ "errors.8": "Не можете да поставувате коментари на оваа страница. Коментарите се само за читање.",
+ "errors.9": "Неуспешна промена на коментарот. Ве молиме обидете се повторно.",
+ "errors.conflict": "Конфликт.",
+ "errors.failed-fetch": "Неуспешен контакт. Ве молиме проверете ја интернет конекцијата или обидете се повторно.",
+ "errors.forbidden": "Забрането.",
+ "errors.not-authorized": "Неовластено.",
+ "errors.to-many-request": "Достигнавте максимален број на барања.",
+ "errors.unexpected-error": "Се случи грешка.",
+ "profile.close": "Затвори профил",
+ "profile.request-to-delete-data": "Барање за бришење на моите податоци",
+ "retry": "Обиди се повторно",
+ "root.pinned-comments": "Пинувани коментари",
+ "root.powered-by": "Овозможено од Диосфера",
+ "root.show-more": "Прикажи повеќе",
+ "settings.block": "блокирај",
+ "settings.block-time": "до {day} во {time}",
+ "settings.block-user": "Дали сакате да го блокирате {userName}?",
+ "settings.blocked-users-header": "Блокирани корисници:",
+ "settings.blocked-users-title": "Блокирани корисници",
+ "settings.hidden-user-header": "Скриени корисници:",
+ "settings.hidden-users-title": "Скриени корисници",
+ "settings.hide": "скриј",
+ "settings.no-blocked-users": "Нема блокирани корисници.",
+ "settings.no-hidden-users": "Нема скриени корисници.",
+ "settings.permanently": "постојано",
+ "settings.show": "прикажи",
+ "settings.unblock": "деблокирај",
+ "settings.unblock-user": "Дали сакате да го деблокирате {userName}?",
+ "settings.unknown": "непознато",
+ "sort-by": "Сортирај по",
+ "subscribeByEmail.back": "Назад",
+ "subscribeByEmail.close": "Затвори",
+ "subscribeByEmail.email": "Е-пошта",
+ "subscribeByEmail.have-been-subscribed": "Бевте претплатени преку е-пошта",
+ "subscribeByEmail.have-been-unsubscribed": "Бевте откажани од претплата преку е-пошта",
+ "subscribeByEmail.only-registered-users": "Достапно само за регистрирани корисници",
+ "subscribeByEmail.submit": "Најава",
+ "subscribeByEmail.subscribe": "Претплати се",
+ "subscribeByEmail.subscribe-by-email": "Претплати се преку е-пошта",
+ "subscribeByEmail.subscribe-to-replies": "Претплати се за да одговориш",
+ "subscribeByEmail.subscribed": "Вие сте претплатени преку е-пошта",
+ "subscribeByEmail.unsubscribe": "Откажи претплата",
+ "subscribeByRSS.button-title": "Претплати се преку RSS",
+ "subscribeByRSS.replies": "Коментари",
+ "subscribeByRSS.site": "Страница",
+ "subscribeByRSS.thread": "Дискусија",
+ "subscribeByRSS.title": "RSS",
+ "subscribeByTelegram.have-been-subscribed": "Бевте претплатени преку Telegram",
+ "subscribeByTelegram.have-been-unsubscribed": "Бевте откажани од претплата преку Telegram",
+ "subscribeByTelegram.only-registered-users": "Достапно само за регистрирани корисници",
+ "subscribeByTelegram.resubscribe": "Претплати се повторно",
+ "subscribeByTelegram.subscribe-by-telegram": "Претплати се преку Telegram",
+ "subscribeByTelegram.telegram": "Telegram",
+ "subscribeByTelegram.unsubscribe": "Откажи претплата",
+ "token": "Копирај го токенот од е-пошта",
+ "token.expired": "Токенот е истечен",
+ "token.invalid": "Токенот е неважечки",
+ "toolbar.attach-image": "Додади слика, привлечи или додади преку clipboard",
+ "toolbar.bold": "Задебелен текст",
+ "toolbar.code": "Вметни код",
+ "toolbar.header": "Додади наслов",
+ "toolbar.italic": "Закосен текст",
+ "toolbar.link": "Додади линк",
+ "toolbar.ordered-list": "Додади нумериран список",
+ "toolbar.quote": "Вметни цитат",
+ "toolbar.unordered-list": "Додади ненумериран список",
+ "user.comments": "Коментари",
+ "user.load-more": "Вчитaј повеќе",
+ "user.my-comments": "Мои коментари",
+ "vote.controversy": "Контроверзност: {value}",
+ "vote.downvote": "Гласај ЗА",
+ "vote.score": "Резултат од гласови",
+ "vote.upvote": "Гласај ПРОТИВ"
+}
diff --git a/frontend/apps/remark42/app/utils/loadLocale.ts b/frontend/apps/remark42/app/utils/loadLocale.ts
index 585c41b0..01750859 100644
--- a/frontend/apps/remark42/app/utils/loadLocale.ts
+++ b/frontend/apps/remark42/app/utils/loadLocale.ts
@@ -55,7 +55,9 @@ export async function loadLocale(locale: string): Promise
return import(/* webpackChunkName: "ar" */ '../locales/ar.json').then((res) => res.default).catch(() => enMessages);
}
if (locale === 'zh-tw') {
- return import(/* webpackChunkName: "zh-tw" */ '../locales/zh-tw.json').then((res) => res.default).catch(() => enMessages);
+ return import(/* webpackChunkName: "zh-tw" */ '../locales/zh-tw.json')
+ .then((res) => res.default)
+ .catch(() => enMessages);
}
if (locale === 'th') {
return import(/* webpackChunkName: "th" */ '../locales/th.json').then((res) => res.default).catch(() => enMessages);
@@ -66,6 +68,9 @@ export async function loadLocale(locale: string): Promise
if (locale === 'fa') {
return import(/* webpackChunkName: "fa" */ '../locales/fa.json').then((res) => res.default).catch(() => enMessages);
}
+ if (locale === 'mk') {
+ return import(/* webpackChunkName: "mk" */ '../locales/mk.json').then((res) => res.default).catch(() => enMessages);
+ }
return enMessages;
}
diff --git a/frontend/apps/remark42/tasks/supportedLocales.json b/frontend/apps/remark42/tasks/supportedLocales.json
index cd8284d2..4af133a8 100644
--- a/frontend/apps/remark42/tasks/supportedLocales.json
+++ b/frontend/apps/remark42/tasks/supportedLocales.json
@@ -1 +1 @@
-["en", "ru", "de", "fi", "es", "zh", "tr", "bg", "ua", "pl", "vi", "be", "fr", "ja", "ko", "bp", "it", "ar", "zh-tw", "th", "cs", "fa"]
+["en", "ru", "de", "fi", "es", "zh", "tr", "bg", "ua", "pl", "vi", "be", "fr", "ja", "ko", "bp", "it", "ar", "zh-tw", "th", "cs", "fa", "mk"]