diff --git a/scripts/translations/normalize.sh b/scripts/translations/normalize.sh
index b98642d21..d51bbaf4e 100755
--- a/scripts/translations/normalize.sh
+++ b/scripts/translations/normalize.sh
@@ -3,7 +3,7 @@
ROOT_DIR=$(dirname "$0")/../..
tmp=$(mktemp)
-locale_list=("es.json" "fr.json" "it.json" "nl.json" "pl.json" "pt.json" "ru.json")
+locale_list=("es.json" "fr.json" "it.json" "nl.json" "pl.json" "pt.json" "ru.json" "uk.json")
for locale_file in "${locale_list[@]}"
do
diff --git a/webapp/locales/index.js b/webapp/locales/index.js
index 21f5c2625..55de93f4a 100644
--- a/webapp/locales/index.js
+++ b/webapp/locales/index.js
@@ -1,4 +1,4 @@
-import { enUS, de, nl, fr, es, it, pt, pl, ru, sq } from 'date-fns/locale'
+import { enUS, de, nl, fr, es, it, pt, pl, ru, sq, uk } from 'date-fns/locale'
import find from 'lodash/find'
const locales = [
@@ -82,6 +82,14 @@ const locales = [
enabled: true,
dateFnsLocale: sq,
},
+ {
+ name: 'Українська',
+ code: 'uk',
+ iso: 'uk-UA',
+ flag: '🇺🇦',
+ enabled: true,
+ dateFnsLocale: uk,
+ },
]
export default locales
diff --git a/webapp/locales/uk.json b/webapp/locales/uk.json
new file mode 100644
index 000000000..70e39cdac
--- /dev/null
+++ b/webapp/locales/uk.json
@@ -0,0 +1,1281 @@
+{
+ "actions": {
+ "cancel": "Скасувати",
+ "clear": "Очистити",
+ "close": "Закрити",
+ "create": "Створити",
+ "delete": "Видалити",
+ "edit": "Редагувати",
+ "loading": "завантаження",
+ "loadMore": "завантажити ще",
+ "menu": "Відкрити меню",
+ "save": "Зберегти",
+ "saveCategories": "Зберегти теми",
+ "search": "Пошук"
+ },
+ "admin": {
+ "badges": {
+ "description": "Налаштувати доступні значки для цього користувача",
+ "noBadges": "Немає доступних значків",
+ "revokeTrophy": {
+ "error": "Не вдалося відкликати трофей!",
+ "success": "Трофей успішно відкликано!"
+ },
+ "revokeVerification": {
+ "error": "Не вдалося відкликати верифікацію!",
+ "success": "Верифікацію успішно відкликано"
+ },
+ "rewardTrophy": {
+ "error": "Не вдалося нагородити трофеєм!",
+ "success": "Трофей успішно нагороджено!"
+ },
+ "setVerification": {
+ "error": "Не вдалося встановити верифікацію!",
+ "success": "Верифікацію успішно встановлено!"
+ },
+ "title": "Значки",
+ "trophyBadges": "Трофеї",
+ "verificationBadges": "Верифікації"
+ },
+ "categories": {
+ "categoryName": "Назва",
+ "empty": "Теми не знайдено.",
+ "name": "Теми",
+ "postCount": "Дописи"
+ },
+ "dashboard": {
+ "badgesDisplayed": "Відображені значки",
+ "badgesRewarded": "Нагороджені значки",
+ "chatMessages": "Повідомлення чату",
+ "chatRooms": "Чат-кімнати",
+ "comments": "Коментарі",
+ "emails": "Електронні листи",
+ "follows": "Підписки",
+ "groups": "Групи",
+ "inviteCodes": "Коди запрошення",
+ "inviteCodesExpired": "Прострочені коди запрошення",
+ "inviteCodesRedeemed": "Використані коди запрошення",
+ "invites": "Запрошення",
+ "locations": "Місцезнаходження",
+ "name": "Панель керування",
+ "notifications": "Сповіщення",
+ "posts": "Дописи",
+ "reports": "Скарги",
+ "shouts": "Рекомендації",
+ "tags": "Теги",
+ "users": "Користувачі",
+ "usersDeleted": "Видалені користувачі",
+ "usersVerified": "Верифіковані користувачі"
+ },
+ "donations": {
+ "goal": "Необхідні щомісячні пожертви",
+ "name": "Інформація про пожертви",
+ "progress": "Зібрані пожертви на даний момент",
+ "showDonationsCheckboxLabel": "Показати панель прогресу пожертв",
+ "successfulUpdate": "Інформацію про пожертви успішно оновлено!"
+ },
+ "hashtags": {
+ "name": "Хештеги",
+ "nameOfHashtag": "Назва",
+ "number": "№",
+ "tagCount": "Дописи",
+ "tagCountUnique": "Користувачі"
+ },
+ "invites": {
+ "description": "Запрошення — чудовий спосіб мати своїх друзів у вашій мережі …",
+ "name": "Запросити користувачів",
+ "title": "Запросити людей"
+ },
+ "name": "Адміністрування",
+ "notifications": {
+ "name": "Сповіщення"
+ },
+ "organizations": {
+ "name": "Організації"
+ },
+ "pages": {
+ "name": "Сторінки"
+ },
+ "settings": {
+ "name": "Налаштування"
+ },
+ "users": {
+ "empty": "Користувачів не знайдено",
+ "form": {
+ "placeholder": "електронна пошта, ім'я або опис"
+ },
+ "name": "Користувачі",
+ "roleChanged": "Роль успішно змінено!",
+ "table": {
+ "columns": {
+ "badges": "Значки",
+ "comments": "Коментарі",
+ "contributions": "Внески",
+ "createdAt": "Створено",
+ "email": "Електронна пошта",
+ "name": "Ім'я",
+ "number": "№",
+ "role": "Роль",
+ "shouted": "Рекомендовано",
+ "slug": "Ідентифікатор"
+ }
+ }
+ }
+ },
+ "chat": {
+ "addRoomHeadline": "Пошук користувача для нового чату",
+ "cancelSelectMessage": "Скасувати",
+ "closeChat": "Закрити чат",
+ "conversationStarted": "Розмову розпочато:",
+ "expandChat": "Розгорнути чат",
+ "isOnline": "в мережі",
+ "isTyping": "пише...",
+ "lastSeen": "останній раз ",
+ "messageDeleted": "Це повідомлення було видалено",
+ "messagesEmpty": "Немає повідомлень",
+ "newMessages": "Нові повідомлення",
+ "page": {
+ "headline": "Чат"
+ },
+ "roomEmpty": "Кімнату не вибрано",
+ "roomsEmpty": "Немає кімнат",
+ "search": "Фільтрувати чат-кімнати",
+ "transmitting": "Надсилання повідомлення ...",
+ "typeMessage": "Написати повідомлення",
+ "userProfileButton": {
+ "label": "Чат",
+ "tooltip": "Чат з «{name}»"
+ }
+ },
+ "client-only": {
+ "loading": "Завантаження …"
+ },
+ "code-of-conduct": {
+ "subheader": "для соціальної мережі {ORGANIZATION_NAME}"
+ },
+ "comment": {
+ "content": {
+ "unavailable-placeholder": "… цей коментар більше недоступний"
+ },
+ "edited": "відредаговано",
+ "menu": {
+ "delete": "Видалити коментар",
+ "edit": "Редагувати коментар"
+ },
+ "show": {
+ "less": "показати менше",
+ "more": "показати більше"
+ }
+ },
+ "common": {
+ "category": "Тема ::: Теми",
+ "comment": "Коментар ::: Коментарі",
+ "filter": "Фільтр …",
+ "letsTalk": "Поговорімо",
+ "loading": "завантаження",
+ "loadMore": "завантажити ще",
+ "name": "Назва",
+ "organization": "Організація ::: Організації",
+ "post": "Допис ::: Дописи",
+ "project": "Проєкт ::: Проєкти",
+ "reportContent": "Поскаржитися",
+ "shout": "Рекомендація ::: Рекомендації",
+ "tag": "Тег ::: Теги",
+ "takeAction": "Діяти",
+ "user": "Користувач ::: Користувачі",
+ "validations": {
+ "categories": "потрібно вибрати щонайменше одну та щонайбільше три теми",
+ "email": "має бути дійсною електронною адресою",
+ "eventLocationNameLength": "мінімум {min} або максимум {max} символів",
+ "eventLocationNameNotEmpty": "лише порожні символи не дозволені",
+ "eventVenueLength": "мінімум {min} або максимум {max} символів",
+ "eventVenueNotEmpty": "лише порожні символи не дозволені",
+ "url": "має бути дійсною URL-адресою"
+ },
+ "versus": "Проти"
+ },
+ "component-slider": {
+ "step": "Крок {current} з {total}"
+ },
+ "components": {
+ "dateTimeRange": {
+ "hourMinute": "HH:mm",
+ "monthDay": "dd.MM.",
+ "yearMonthDay": "dd.MM.yyyy"
+ },
+ "password-reset": {
+ "change-password": {
+ "error": "Зміна пароля не вдалася. Можливо, код безпеки був неправильним?",
+ "help": "У разі проблем, зверніться за допомогою, надіславши нам лист на:",
+ "success": "Пароль успішно змінено!"
+ },
+ "request": {
+ "form": {
+ "description": "На вказану електронну адресу буде надіслано лист для скидання пароля.",
+ "submit": "Надіслати лист",
+ "submitted": "Лист з подальшими інструкціями надіслано на {email}"
+ },
+ "title": "Скинути пароль"
+ }
+ },
+ "registration": {
+ "create-user-account": {
+ "buttonTitle": "Створити",
+ "error": "Не вдалося створити обліковий запис!",
+ "help": " Можливо, підтвердження було недійсним? У разі проблем, зверніться за допомогою, надіславши нам лист на:",
+ "receiveCommunicationAsEmailsEtcConfirmed": "Я також погоджуюся отримувати електронні листи та інші форми комунікації (наприклад, push-сповіщення).",
+ "success": "Ваш обліковий запис створено!",
+ "termsAndCondsEtcConfirmed": "Я прочитав(-ла), зрозумів(-ла) та погоджуюся з наступним:",
+ "title": "Створити обліковий запис"
+ },
+ "email": {
+ "buttonTitle": {
+ "resend": "Надіслати лист повторно",
+ "send": "Надіслати лист",
+ "skipResend": "Пропустити повторне надсилання"
+ },
+ "form": {
+ "sendEmailAgain": "Надіслати лист знову",
+ "success": "Лист для верифікації надіслано на {email}!"
+ },
+ "title": "Електронна пошта"
+ },
+ "email-display": {
+ "warningFormat": "⚠️ Електронна адреса має неправильний формат!",
+ "warningUndef": "⚠️ Електронну адресу не вказано!"
+ },
+ "email-nonce": {
+ "buttonTitle": "Продовжити",
+ "form": {
+ "click-next": "Натисніть «Продовжити».",
+ "description": "Відкрийте свою електронну скриньку та введіть код, який ми вам надіслали.",
+ "next": "Продовжити",
+ "nonce": "Код підтвердження: 32143",
+ "validations": {
+ "error": "Недійсний код верифікації {nonce} для електронної адреси {email}!",
+ "length": "має бути довжиною {nonceLength} символів",
+ "success": "Дійсний код верифікації {nonce} для електронної адреси {email}!"
+ }
+ },
+ "title": "Підтвердження електронної пошти"
+ },
+ "invite-code": {
+ "buttonTitle": "Далі",
+ "form": {
+ "description": "Введіть отриманий код запрошення.",
+ "invite-code": "Код запрошення: ACJERB",
+ "next": "Продовжити",
+ "validations": {
+ "error": "Недійсний код запрошення {inviteCode}!",
+ "length": "має бути довжиною {inviteCodeLength} символів",
+ "success": "Дійсний код запрошення {inviteCode}!"
+ }
+ },
+ "invited-by": "Запрошено користувачем {invitedBy}.",
+ "invited-by-and-to": "Запрошено користувачем {invitedBy} до групи {invitedTo}.",
+ "invited-to-hidden-group": "Запрошено користувачем {invitedBy} до прихованої групи."
+ },
+ "no-public-registrstion": {
+ "title": "Публічна реєстрація недоступна"
+ },
+ "signup": {
+ "form": {
+ "data-privacy": "Я прочитав(-ла) та зрозумів(-ла) заяву про конфіденційність.",
+ "description": "Для початку ви можете зареєструватися тут безкоштовно:",
+ "errors": {
+ "email-exists": "Обліковий запис з цією електронною адресою вже існує!"
+ },
+ "submit": "Створити обліковий запис",
+ "success": "На адресу {email} надіслано лист із посиланням для завершення реєстрації",
+ "terms-and-condition": "Я підтверджую Умови використання."
+ },
+ "title": "Приєднуйтесь до {APPLICATION_NAME}!",
+ "unavailable": "На жаль, публічна реєстрація облікових записів на цьому сервері наразі недоступна."
+ }
+ }
+ },
+ "contribution": {
+ "amount-clicks": "{amount} переглядів",
+ "amount-comments": "{amount} коментарів",
+ "amount-shouts": "{amount} рекомендацій",
+ "amount-views": "{amount} переглядів",
+ "categories": {
+ "infoSelectedNoOfMaxCategories": "Вибрано {chosen} з {max} тем"
+ },
+ "category": {
+ "description": {
+ "body-and-excercise": "Спорт, йога, масаж, релаксація",
+ "children": "Сім'я, виховання, школа, формування особистості",
+ "culture": "Мистецтво, театр, музика, фотографія, кіно",
+ "economy": "Торгівля, споживання, маркетинг, ланцюги постачання",
+ "energy": "Нафта, газ, вугілля, вітер, гідроенергія, біогаз, атомна енергія",
+ "finance": "Гроші, фінансова система, альтернативні валюти",
+ "health": "Медицина, харчування, ВООЗ, вакцинація, шкідливі речовини",
+ "home": "Будівництво, спільноти, малі будинки, город",
+ "it-and-media": "Новини, маніпуляції, приватність, контроль, збір даних, ШІ, програмне забезпечення, додатки",
+ "law": "Права людини, закони, укази",
+ "miscellaneous": "Різне",
+ "mobility": "Подорожі, транспорт, електромобільність",
+ "nature": "Тварини, рослини, сільське господарство, екологія, біорізноманіття",
+ "networking": "Співпраця, альянси дій, солідарність, допомога",
+ "peace": "Війна, військо, соціальний захист, зброя, кібератаки",
+ "politics": "Демократія, участь, вибори, корупція, партії",
+ "psyche": "Душа, почуття, щастя",
+ "science": "Освіта, університет, публікації",
+ "spirituality": "Релігія, цінності, етика"
+ },
+ "name": {
+ "body-and-excercise": "Тіло і спорт",
+ "children": "Діти",
+ "culture": "Культура",
+ "economy": "Економіка",
+ "energy": "Енергія",
+ "finance": "Фінанси",
+ "health": "Здоров'я",
+ "home": "Дім",
+ "it-and-media": "ІТ та медіа",
+ "law": "Право",
+ "miscellaneous": "Різне",
+ "mobility": "Мобільність",
+ "nature": "Природа",
+ "networking": "Нетворкінг",
+ "peace": "Мир",
+ "politics": "Політика",
+ "psyche": "Психіка",
+ "science": "Наука",
+ "spirituality": "Духовність"
+ }
+ },
+ "comment": {
+ "commenting-disabled": {
+ "blocked-author": {
+ "button-label": "Перейти до «{name}»",
+ "call-to-action": "Якщо ви хочете залишити коментар, розблокуйте їх у їхньому профілі.",
+ "reason": "Ви блокуєте автора цього допису."
+ },
+ "no-group-member": {
+ "call-to-action": "Якщо ви хочете коментувати, приєднайтеся до групи.",
+ "reason": "Ви не є учасником групи:"
+ }
+ }
+ },
+ "emotions-label": {
+ "angry": "Злість",
+ "cry": "Сум",
+ "funny": "Смішно",
+ "happy": "Радість",
+ "surprised": "Здивування"
+ },
+ "filterFollow": "Користувачі, на яких я підписаний(-а)",
+ "filterMasonryGrid": {
+ "myFriends": "Користувачі, на яких я підписаний(-а)",
+ "myGroups": "Від моїх груп",
+ "myTopics": "Мої теми",
+ "noFilter": "Фільтрувати контент",
+ "onlyArticles": "Статті",
+ "onlyEvents": "Події"
+ },
+ "filterMyGroups": "Мої групи",
+ "inappropriatePicture": "Це зображення може бути неприйнятним для деяких людей.",
+ "languageSelectLabel": "Мова вашого допису",
+ "languageSelectText": "Вибрати мову",
+ "newEvent": "Створити нову подію",
+ "newPost": "Створити новий допис",
+ "success": "Збережено!",
+ "teaserImage": {
+ "cropImage": "Обрізати зображення",
+ "cropperConfirm": "Підтвердити",
+ "errors": {
+ "aspect-ratio-too-small": "Це зображення занадто високе.",
+ "unSupported-file-format": "Будь ласка, завантажте зображення у форматі: JPG, JPEG, PNG або GIF!"
+ },
+ "supportedFormats": "Вставте зображення у форматі JPG, PNG або GIF"
+ },
+ "title": "Заголовок",
+ "visibleOnlyForMembersOfGroup": "Цей допис буде видно лише учасникам групи «{name}»."
+ },
+ "delete": {
+ "cancel": "Скасувати",
+ "comment": {
+ "message": "Ви дійсно хочете видалити коментар «{name}»?",
+ "success": "Коментар успішно видалено!",
+ "title": "Видалити коментар",
+ "type": "Коментар"
+ },
+ "contribution": {
+ "message": "Ви дійсно хочете видалити допис «{name}»?",
+ "success": "Допис успішно видалено!",
+ "title": "Видалити допис",
+ "type": "Допис"
+ },
+ "submit": "Видалити"
+ },
+ "disable": {
+ "cancel": "Скасувати",
+ "comment": {
+ "message": "Ви дійсно хочете деактивувати коментар від «{name}»?",
+ "title": "Деактивувати коментар",
+ "type": "Коментар"
+ },
+ "contribution": {
+ "message": "Ви дійсно хочете деактивувати допис «{name}»?",
+ "title": "Деактивувати допис",
+ "type": "Допис"
+ },
+ "submit": "Деактивувати",
+ "success": "Успішно деактивовано!",
+ "user": {
+ "message": "Ви дійсно хочете деактивувати користувача «{name}»?",
+ "title": "Деактивувати користувача",
+ "type": "Користувач"
+ }
+ },
+ "donations": {
+ "amount-of-total": "{amount} з {total} € зібрано",
+ "donate-now": "Пожертвувати зараз"
+ },
+ "editor": {
+ "embed": {
+ "always_allow": "Завжди дозволяти вбудований контент від сторонніх провайдерів (це налаштування можна змінити будь-коли)",
+ "data_privacy_info": "Ваші дані ще не були передані стороннім провайдерам. Якщо ви продовжите відтворення цього контенту, наступний провайдер, ймовірно, збиратиме дані користувачів:",
+ "data_privacy_warning": "Попередження про конфіденційність даних!",
+ "play_now": "Продовжити"
+ },
+ "hashtag": {
+ "addHashtag": "Новий хештег",
+ "addLetter": "Введіть літеру",
+ "noHashtagsFound": "Хештеги не знайдено"
+ },
+ "legend": {
+ "bold": "Жирний",
+ "heading3": "Заголовок 3",
+ "heading4": "Заголовок 4",
+ "italic": "Курсив",
+ "legendTitle": "Гарячі клавіші та коди розмітки",
+ "link": "Посилання",
+ "orderedList": "Нумерований список",
+ "paragraph": "Абзац",
+ "quote": "Цитата",
+ "ruler": "Лінійка",
+ "underline": "Підкреслений",
+ "unorderedList": "Маркований список"
+ },
+ "mention": {
+ "noUsersFound": "Користувачів не знайдено"
+ },
+ "placeholder": "Залиште свої натхненні думки …"
+ },
+ "error-pages": {
+ "403-default": "Немає доступу до цієї сторінки!",
+ "404-default": "Цю сторінку не знайдено!",
+ "500-default": "Внутрішня помилка сервера!",
+ "503-default": "Сервіс недоступний!",
+ "back-to-index": "Повернутися на головну!",
+ "cannot-edit-post": "Цей допис не можна редагувати!",
+ "default": "Сталася помилка!",
+ "group-not-found": "Цю групу не знайдено!",
+ "post-not-found": "Цей допис не знайдено!",
+ "profile-not-found": "Цей профіль не знайдено!"
+ },
+ "filter-menu": {
+ "all": "Все",
+ "article": "Стаття",
+ "categories": "Теми",
+ "creationDate": "Дата створення",
+ "deleteFilter": "Видалити фільтр",
+ "emotions": "Емоції",
+ "ended": {
+ "all": {
+ "hint": "Показати все, включаючи завершені",
+ "label": "Все"
+ },
+ "onlyEnded": {
+ "hint": "Показати лише незавершені",
+ "label": "Незавершені"
+ }
+ },
+ "event": "Подія",
+ "eventsBy": "Події — показати ...",
+ "eventsEnded": "Завершені",
+ "filter-by": "Фільтрувати за ...",
+ "following": "Користувачі, на яких я підписаний(-а)",
+ "following-title": "Джерела",
+ "languages": "Мови",
+ "my-groups": "Мої групи",
+ "order": {
+ "last": {
+ "hint": "Сортувати дописи за останніми",
+ "label": "Останні"
+ },
+ "newest": {
+ "hint": "Сортувати дописи за найновішими",
+ "label": "Найновіші"
+ },
+ "next": {
+ "hint": "Сортувати дописи за наступними",
+ "label": "Наступні"
+ },
+ "oldest": {
+ "hint": "Сортувати дописи за найстарішими",
+ "label": "Найстаріші"
+ }
+ },
+ "order-by": "Сортувати за ...",
+ "post-type": "Тип контенту",
+ "save": {
+ "error": "Не вдалося зберегти налаштування тем!",
+ "success": "Теми збережено!"
+ },
+ "startDate": "Дата початку"
+ },
+ "followButton": {
+ "follow": "Підписатися",
+ "following": "Підписано"
+ },
+ "group": {
+ "actionRadii": {
+ "continental": "Континентальний",
+ "global": "Глобальний або лише віртуальний",
+ "interplanetary": "Міжпланетний",
+ "national": "Національний",
+ "regional": "Регіональний"
+ },
+ "actionRadius": "Радіус дії групи",
+ "addMemberToGroup": "Додати до групи",
+ "addMemberToGroupSuccess": "«{name}» додано до групи з роллю «{role}»!",
+ "addUser": "Додати користувача",
+ "addUserNoOptions": "Користувачів не знайдено!",
+ "addUserPlaceholder": "Ім'я користувача",
+ "allGroups": "Усі групи",
+ "categories": "Тема ::: Теми",
+ "categoriesTitle": "Теми групи",
+ "changeMemberRole": "Роль змінено на «{role}»!",
+ "contentMenu": {
+ "inviteLinks": "Посилання для запрошення",
+ "menuButton": "Меню групи",
+ "muteGroup": "Вимкнути сповіщення групи",
+ "unmuteGroup": "Увімкнути сповіщення групи",
+ "visitGroupPage": "Показати групу"
+ },
+ "createNewGroup": {
+ "title": "Створити нову групу",
+ "tooltip": "Створити нову групу"
+ },
+ "description": "Опис",
+ "editGroupSettings": {
+ "groupTitle": "Налаштування ",
+ "title": "Редагувати мою групу"
+ },
+ "errors": {
+ "userAlreadyMember": "Користувач «{name}» вже є учасником!"
+ },
+ "follow": "Підписатися",
+ "foundation": "Заснування",
+ "general": "Загальне",
+ "goal": "Мета групи",
+ "groupCreated": "Групу створено!",
+ "in": "в",
+ "invite-links": "Посилання для запрошення",
+ "joinLeaveButton": {
+ "iAmMember": "Я учасник",
+ "join": "Приєднатися",
+ "leave": "Вийти",
+ "pendingMember": "Очікування підтвердження",
+ "tooltip": "Власник групи ще не підтвердив вашу участь."
+ },
+ "labelSlug": "Унікальна назва групи",
+ "leaveModal": {
+ "confirmButton": "Вийти",
+ "message": "Вихід з групи може бути незворотним!
Вийти з групи «{name}»!",
+ "title": "Ви дійсно хочете вийти з групи?"
+ },
+ "memberRemoved": "Користувача «{name}» видалено з групи!",
+ "members": "Учасники",
+ "membersAdministrationList": {
+ "avatar": "Аватар",
+ "name": "Ім'я",
+ "roleInGroup": "Роль",
+ "slug": "Унікальне ім'я"
+ },
+ "membersCount": "Учасник ::: Учасники",
+ "membersListTitle": "Учасники групи",
+ "membersListTitleNotAllowedSeeingGroupMembers": "Учасники групи приховані",
+ "modal": {
+ "cancel": "Скасувати",
+ "confirm": "Підтвердити",
+ "confirmAddGroupMemberText": "Додати користувача «{name}» до групи?",
+ "confirmAddGroupMemberTitle": "Підтвердити"
+ },
+ "muted": "Сповіщення групи вимкнено",
+ "myGroups": "Мої групи",
+ "name": "Назва групи",
+ "radius": "Радіус",
+ "removeMember": "Видалити учасника",
+ "removeMemberButton": "Видалити",
+ "role": "Ваша роль у групі",
+ "roles": {
+ "admin": "Адміністратор",
+ "owner": "Власник",
+ "pending": "Очікуючий учасник",
+ "usual": "Учасник"
+ },
+ "save": "Створити нову групу",
+ "type": "Видимість групи",
+ "types": {
+ "closed": "Закрита",
+ "hidden": "Таємна",
+ "public": "Публічна"
+ },
+ "typesOptions": {
+ "closed": "Закрита — Усі дописи видно лише учасникам групи",
+ "hidden": "Таємна — Група (включаючи назву) повністю невидима",
+ "public": "Публічна — Група та всі дописи видно всім зареєстрованим користувачам"
+ },
+ "unmute": "Увімкнути сповіщення групи",
+ "unmuted": "Сповіщення групи увімкнено",
+ "update": "Зберегти зміни",
+ "updatedGroup": "Дані групи змінено."
+ },
+ "hashtags-filter": {
+ "clearSearch": "Очистити пошук",
+ "hashtag-search": "Пошук за #{hashtag}",
+ "title": "Ваш фільтр"
+ },
+ "header": {
+ "avatarMenu": {
+ "button": {
+ "tooltip": "Мій профіль"
+ },
+ "chats": "Чати",
+ "groups": "Групи",
+ "map": "Карта",
+ "myProfile": "Мій профіль",
+ "notifications": "Сповіщення"
+ },
+ "chats": {
+ "tooltip": "Чати"
+ },
+ "groups": {
+ "tooltip": "Групи"
+ },
+ "map": {
+ "tooltip": "Карта"
+ },
+ "more": "Більше",
+ "notifications": {
+ "tooltip": "Сповіщення"
+ }
+ },
+ "index": {
+ "change-filter-settings": "Змініть налаштування фільтрів, щоб отримати більше результатів.",
+ "no-results": "Дописів не знайдено."
+ },
+ "invite-codes": {
+ "button": {
+ "tooltip": "Запросити друзів"
+ },
+ "comment-placeholder": "Коментар (необов'язково)",
+ "copy-code": "Скопіювати посилання для запрошення",
+ "copy-success": "Код запрошення скопійовано до буферу обміну",
+ "create-error": "Не вдалося створити нове посилання для запрошення! Помилка: {error}",
+ "create-success": "Посилання для запрошення успішно створено!",
+ "delete-modal": {
+ "message": "Ви дійсно хочете анулювати це посилання для запрошення?",
+ "title": "Анулювати посилання?"
+ },
+ "generate-code": "Створити нове посилання",
+ "generate-code-explanation": "Створіть нове посилання. За бажанням додайте коментар (видно лише вам).",
+ "group-invite-links": "Посилання для запрошення в групу",
+ "invalidate": "Анулювати посилання",
+ "invalidate-error": "Не вдалося анулювати посилання для запрошення! Помилка: {error}",
+ "invalidate-success": "Посилання для запрошення успішно анульовано!",
+ "invite-link-message-group": "Вас запрошено приєднатися до групи «{groupName}» у мережі {network}.",
+ "invite-link-message-hidden-group": "Вас запрошено приєднатися до прихованої групи у мережі {network}.",
+ "invite-link-message-personal": "Вас запрошено приєднатися до {network}.",
+ "limit-reached": "Ви досягли максимальної кількості посилань для запрошення.",
+ "my-invite-links": "Мої посилання для запрошення",
+ "no-links": "Посилання для запрошення ще не створено.",
+ "redeemed-count": "Цей код було використано {count} разів.",
+ "redeemed-count-0": "Ніхто ще не використав цей код."
+ },
+ "layout": {
+ "toggle": {
+ "label": "Макет",
+ "multiColumn": "Кілька колонок",
+ "singleColumn": "Одна колонка"
+ }
+ },
+ "localeSwitch": {
+ "tooltip": "Вибрати мову"
+ },
+ "location": {
+ "distance": "{distance} км від мене"
+ },
+ "login": {
+ "email": "Ваша електронна пошта",
+ "failure": "Невірна електронна адреса або пароль.",
+ "forgotPassword": "Забули пароль?",
+ "hello": "Привіт",
+ "loggingOut": "Вихід із системи…",
+ "login": "Увійти",
+ "logout": "Вийти",
+ "moreInfo": "Що таке {APPLICATION_NAME}?",
+ "moreInfoHint": "до сторінки презентації",
+ "no-account": "Немає облікового запису?",
+ "no-cookie": "Неможливо встановити cookie. Ви повинні прийняти файли cookie.",
+ "password": "Ваш пароль",
+ "register": "Зареєструватися",
+ "success": "Ви увійшли в систему!"
+ },
+ "maintenance": {
+ "explanation": "Наразі ми проводимо планове технічне обслуговування, спробуйте пізніше.",
+ "questions": "Якщо у вас є питання або зауваження, надішліть електронний лист на",
+ "title": "{APPLICATION_NAME} на технічному обслуговуванні"
+ },
+ "map": {
+ "alertMessage": "Карта недоступна: токен Mapbox не налаштовано на сервері!",
+ "legend": {
+ "event": "Подія",
+ "group": "Група",
+ "theUser": "Моя позиція",
+ "user": "Користувач"
+ },
+ "markerTypes": {
+ "event": "подія",
+ "group": "група",
+ "theUser": "моя позиція",
+ "user": "користувач"
+ },
+ "pageTitle": "Карта",
+ "styles": {
+ "dark": "Темна",
+ "outdoors": "На відкритому повітрі",
+ "satellite": "Супутник",
+ "streets": "Вулиці"
+ }
+ },
+ "modals": {
+ "deleteUser": {
+ "created": "Створено"
+ }
+ },
+ "moderation": {
+ "name": "Модерація",
+ "reports": {
+ "author": "Автор",
+ "content": "Контент",
+ "decideButton": "Підтвердити",
+ "decided": "Вирішено",
+ "decideModal": {
+ "cancel": "Скасувати",
+ "Comment": {
+ "disable": {
+ "message": "Ви дійсно хочете залишити коментар «{name}» деактивованим?",
+ "title": "Остаточно деактивувати коментар"
+ },
+ "enable": {
+ "message": "Ви дійсно хочете залишити коментар «{name}» активним?",
+ "title": "Остаточно активувати коментар"
+ }
+ },
+ "Post": {
+ "disable": {
+ "message": "Ви дійсно хочете залишити допис «{name}» деактивованим?",
+ "title": "Остаточно деактивувати допис"
+ },
+ "enable": {
+ "message": "Ви дійсно хочете залишити допис «{name}» активним?",
+ "title": "Остаточно активувати допис"
+ }
+ },
+ "submit": "Підтвердити рішення",
+ "User": {
+ "disable": {
+ "message": "Ви дійсно хочете залишити користувача «{name}» деактивованим?",
+ "title": "Остаточно деактивувати користувача"
+ },
+ "enable": {
+ "message": "Ви дійсно хочете залишити користувача «{name}» активним?",
+ "title": "Остаточно активувати користувача"
+ }
+ }
+ },
+ "decision": "Рішення",
+ "DecisionSuccess": "Рішення успішно прийнято!",
+ "disabled": "Деактивовано",
+ "disabledAt": "Деактивовано",
+ "disabledBy": "Деактивовано",
+ "empty": "Вітаємо, нічого не потребує модерації.",
+ "enabled": "Активовано",
+ "enabledAt": "Активовано",
+ "enabledBy": "Активовано",
+ "filterLabel": {
+ "all": "Всі",
+ "closed": "Закриті",
+ "reviewed": "Переглянуті",
+ "unreviewed": "Непереглянуті"
+ },
+ "moreDetails": "Детальніше",
+ "name": "Скарги",
+ "noDecision": "Рішення немає!",
+ "numberOfUsers": "{count} користувачів",
+ "previousDecision": "Попереднє рішення:",
+ "reasonCategory": "Тема",
+ "reasonDescription": "Опис",
+ "reportedOn": "Дата",
+ "status": "Поточний статус",
+ "submitter": "Повідомив(-ла)"
+ }
+ },
+ "notifications": {
+ "comment": "Коментар",
+ "content": "Контент або опис",
+ "empty": "На жаль, наразі у вас немає сповіщень.",
+ "filterLabel": {
+ "all": "Всі",
+ "read": "Прочитані",
+ "unread": "Непрочитані"
+ },
+ "group": "Опис",
+ "markAllAsRead": "Позначити все як прочитане",
+ "pageLink": "Усі сповіщення",
+ "post": "Допис або група",
+ "reason": {
+ "changed_group_member_role": "Змінено вашу роль у групі",
+ "commented_on_post": "Прокоментував(-ла) допис, за яким ви спостерігаєте",
+ "followed_user_posted": "Написав(-ла) новий допис",
+ "mentioned_in_comment": "Згадав(-ла) вас у коментарі",
+ "mentioned_in_post": "Згадав(-ла) вас у дописі",
+ "on_date": "",
+ "post_in_group": "Написав(-ла) допис у групі",
+ "removed_user_from_group": "Видалив(-ла) вас з групи",
+ "user_joined_group": "Приєднався(-лася) до вашої групи",
+ "user_left_group": "Покинув(-ла) вашу групу"
+ },
+ "title": "Сповіщення",
+ "user": "Користувач"
+ },
+ "observeButton": {
+ "observed": "спостерігається"
+ },
+ "pagination": {
+ "next": "Далі",
+ "previous": "Назад"
+ },
+ "post": {
+ "comment": {
+ "joinGroup": "Приєднався(-лася) до групи «{name}»",
+ "reply": "Відповісти",
+ "submit": "Коментувати",
+ "submitted": "Коментар надіслано!",
+ "updated": "Зміни збережено!"
+ },
+ "createNewArticle": {
+ "title": "Створити статтю"
+ },
+ "createNewEvent": {
+ "title": "Створити подію"
+ },
+ "edited": "відредаговано",
+ "editPost": {
+ "event": "Редагувати подію",
+ "forGroup": {
+ "title": "Для групи "
+ },
+ "title": "Редагувати допис"
+ },
+ "event": "Подія",
+ "menu": {
+ "delete": "Видалити допис",
+ "edit": "Редагувати допис",
+ "groupPin": "Закріпити допис (Група)",
+ "groupPinnedSuccessfully": "Допис успішно закріплено!",
+ "groupUnpin": "Відкріпити допис (Група)",
+ "groupUnpinnedSuccessfully": "Допис успішно відкріплено!",
+ "observe": "Спостерігати за дописом",
+ "observedSuccessfully": "Ви тепер спостерігаєте за цим дописом!",
+ "pin": "Закріпити допис",
+ "pinnedSuccessfully": "Допис успішно закріплено!",
+ "push": "Підняти вгору",
+ "pushed": "Піднято вгору",
+ "pushedSuccessfully": "Допис успішно піднято вгору!",
+ "unobserve": "Припинити спостереження",
+ "unobservedSuccessfully": "Ви більше не спостерігаєте за цим дописом!",
+ "unpin": "Відкріпити допис",
+ "unpinnedSuccessfully": "Допис успішно відкріплено!",
+ "unpush": "Скасувати підняття",
+ "unpushedSuccessfully": "Підняття допису скасовано!"
+ },
+ "name": "Стаття",
+ "pinned": "Оголошення",
+ "sensitiveContent": {
+ "hide": "Приховати чутливий вміст",
+ "show": "Показати чутливий вміст"
+ },
+ "takeAction": {
+ "name": "Діяти"
+ },
+ "viewEvent": {
+ "eventEnd": "Кінець",
+ "eventIsOnline": "Онлайн",
+ "eventLocationName": "Адреса для навігації — напр. Вулиця Прикладна 1, 01001 Київ",
+ "eventStart": "Початок",
+ "eventVenue": "Опис місця — напр. подвір'я, 1-й поверх, …",
+ "title": "Подія"
+ },
+ "viewPost": {
+ "forGroup": {
+ "title": "У групі "
+ },
+ "title": "Допис"
+ }
+ },
+ "profile": {
+ "avatar": {
+ "submitted": "Завантаження успішне!"
+ },
+ "commented": "Прокоментовано",
+ "follow": "Підписатися",
+ "followers": "Підписники",
+ "following": "Підписки",
+ "invites": {
+ "description": "Введіть їхню електронну адресу для запрошення.",
+ "emailPlaceholder": "Електронна пошта для запрошення",
+ "title": "Запросити когось до {APPLICATION_NAME}!"
+ },
+ "memberSince": "Учасник з",
+ "network": {
+ "andMore": "та ще {number} …",
+ "followedBy": "підписані:",
+ "followedByNobody": "ніхто не підписаний.",
+ "following": "підписаний(-а) на:",
+ "followingNobody": "ні на кого не підписаний(-а).",
+ "title": "Мережа"
+ },
+ "shouted": "Рекомендовано",
+ "socialMedia": "Де ще можна знайти",
+ "userAnonym": "Анонімний"
+ },
+ "quotes": {
+ "african": {
+ "author": "Африканське прислів'я",
+ "quote": "Багато маленьких людей у багатьох маленьких місцях роблять багато маленьких справ, які можуть змінити обличчя світу."
+ }
+ },
+ "release": {
+ "cancel": "Скасувати",
+ "comment": {
+ "error": "Ви вже повідомляли про цей коментар!",
+ "message": "Ви дійсно хочете відновити коментар від «{name}»?",
+ "title": "Відновити коментар",
+ "type": "Коментар"
+ },
+ "contribution": {
+ "error": "Ви вже повідомляли про цей допис!",
+ "message": "Ви дійсно хочете відновити допис «{name}»?",
+ "title": "Відновити допис",
+ "type": "Допис"
+ },
+ "submit": "Відновити",
+ "success": "Успішно відновлено!",
+ "user": {
+ "error": "Ви вже повідомляли про цього користувача!",
+ "message": "Ви дійсно хочете відновити користувача «{name}»?",
+ "title": "Відновити користувача",
+ "type": "Користувач"
+ }
+ },
+ "report": {
+ "cancel": "Скасувати",
+ "comment": {
+ "error": "Ви вже скаржилися на цей коментар!",
+ "message": "Ви дійсно хочете поскаржитися на коментар від «{name}»?",
+ "title": "Поскаржитися на коментар",
+ "type": "Коментар"
+ },
+ "contribution": {
+ "error": "Ви вже скаржилися на цей допис!",
+ "message": "Ви дійсно хочете поскаржитися на допис «{name}»?",
+ "title": "Поскаржитися на допис",
+ "type": "Допис"
+ },
+ "reason": {
+ "category": {
+ "invalid": "Будь ласка, виберіть дійсну тему",
+ "label": "Виберіть тему:",
+ "options": {
+ "advert_products_services_commercial": "Реклама товарів та послуг з комерційним наміром.",
+ "criminal_behavior_violation_german_law": "Злочинна поведінка або порушення закону.",
+ "discrimination_etc": "Дискримінаційні дописи, коментарі, висловлювання або образи.",
+ "doxing": "Розкриття особистої інформації інших людей без їхньої згоди або погроза цим («доксінг»).",
+ "glorific_trivia_of_cruel_inhuman_acts": "Прославлення або тривіалізація жорстоких чи нелюдських актів насильства.",
+ "intentional_intimidation_stalking_persecution": "Навмисне залякування, переслідування або цькування.",
+ "other": "Інше …",
+ "pornographic_content_links": "Публікація або посилання на явно порнографічний матеріал."
+ },
+ "placeholder": "Тема …"
+ },
+ "description": {
+ "label": "Будь ласка, поясніть: чому ви хочете поскаржитися?",
+ "placeholder": "Додаткова інформація …"
+ }
+ },
+ "submit": "Поскаржитися",
+ "success": "Дякуємо за скаргу!",
+ "user": {
+ "error": "Ви вже скаржилися на цього користувача!",
+ "message": "Ви дійсно хочете поскаржитися на користувача «{name}»?",
+ "title": "Поскаржитися на користувача",
+ "type": "Користувач"
+ }
+ },
+ "search": {
+ "failed": "Нічого не знайдено",
+ "for": "Пошук за ",
+ "heading": {
+ "Group": "Група ::: Групи",
+ "Post": "Допис ::: Дописи",
+ "Tag": "Хештег ::: Хештеги",
+ "User": "Користувач ::: Користувачі"
+ },
+ "hint": "!... шукає дописи, @... шукає користувачів, &... шукає групи, #… шукає хештеги",
+ "no-results": "Результатів для «{search}» не знайдено. Спробуйте інший пошуковий запит!",
+ "page": "Сторінка",
+ "placeholder": "Пошук",
+ "results": "результат знайдено ::: результатів знайдено",
+ "title": "Результати пошуку"
+ },
+ "settings": {
+ "badges": {
+ "click-to-select": "Натисніть на порожнє місце, щоб додати значок.",
+ "click-to-use": "Натисніть на значок, щоб використати його у вибраному місці.",
+ "description": "Тут ви можете вибрати, як відображати ваші зароблені значки у профілі.",
+ "drag-instruction": "Перетягніть значки для зміни порядку.",
+ "drop-to-remove": "Перетягніть сюди, щоб видалити значок.",
+ "error-update": "Сталася помилка при оновленні ваших значків.",
+ "name": "Значки",
+ "no-badges-available": "Наразі у вас немає доступних значків для додавання.",
+ "remove": "Видалити значок",
+ "reserve-title": "Доступні значки",
+ "success-update": "Ваші значки успішно оновлено.",
+ "swap-partial-error": "Заміну значка не вдалося завершити. Спробуйте ще раз.",
+ "verification": "Це ваш значок верифікації, його не можна змінити."
+ },
+ "blocked-users": {
+ "block": "Заблокувати користувача",
+ "columns": {
+ "name": "Ім'я",
+ "slug": "Ідентифікатор",
+ "unblock": "Розблокувати"
+ },
+ "empty": "Наразі ви нікого не заблокували.",
+ "explanation": {
+ "closing": "Цього має бути достатньо, щоб заблоковані користувачі більше не могли вам заважати.",
+ "commenting-disabled": "Ви не можете залишити коментар до цього допису наразі.",
+ "intro": "Якщо ви заблокували іншого користувача, станеться наступне:",
+ "notifications": "Заблоковані користувачі більше не отримуватимуть сповіщення при згадуванні один одного.",
+ "their-perspective": "Навпаки: заблокована особа також більше не зможе взаємодіяти з вашими внесками.",
+ "your-perspective": "Ви більше не зможете взаємодіяти з їхніми внесками."
+ },
+ "how-to": "Ви можете заблокувати інших користувачів на їхній сторінці профілю через контекстне меню.",
+ "name": "Заблоковані користувачі",
+ "unblock": "Розблокувати користувача",
+ "unblocked": "{name} знову розблоковано"
+ },
+ "data": {
+ "givenName": "Ваше ім'я",
+ "givenNamePlaceholder": "Іван",
+ "labelBio": "Про вас",
+ "labelCity": "Ваше місто або регіон",
+ "labelCityHint": "(показує приблизну позицію на карті)",
+ "labelName": "Ваше ім'я",
+ "labelSlug": "Ваш унікальний нік",
+ "name": "Ваші дані",
+ "namePlaceholder": "Іван Іваненко",
+ "realNamePlease": "Будь ласка, введіть ваше справжнє ім'я",
+ "success": "Ваші дані успішно оновлено!",
+ "surName": "Ваше прізвище",
+ "surNamePlaceholder": "Іваненко"
+ },
+ "deleteUserAccount": {
+ "accountDescription": "Зверніть увагу, що ваші дописи та коментарі важливі для нашої спільноти. Якщо ви все ж вирішите їх видалити, позначте їх нижче.",
+ "accountWarning": "Ви НЕ ЗМОЖЕТЕ КЕРУВАТИ та НЕ ЗМОЖЕТЕ ВІДНОВИТИ ваш обліковий запис, дописи чи коментарі після видалення!",
+ "accountWarningAdmin": "Обліковий запис, дописи чи коментарі НЕ МОЖУТЬ БУТИ АДМІНІСТРОВАНІ АБО ВІДНОВЛЕНІ після видалення!",
+ "accountWarningIsAdmin": "Увага! Ви збираєтеся видалити обліковий запис користувача!",
+ "commentedCount": "Видалити мій {count} коментар ::: Видалити мої {count} коментарі",
+ "confirmDeleting": "Видалити обліковий запис зараз",
+ "contributionsCount": "Видалити мій {count} допис ::: Видалити мої {count} дописи",
+ "infoAdmin": "Усі дописи та коментарі користувача також будуть видалені!",
+ "name": "Видалити обліковий запис",
+ "pleaseConfirm": "Незворотна дія! Введіть «{confirm}» для підтвердження.",
+ "success": "Обліковий запис успішно видалено!"
+ },
+ "download": {
+ "description": "Натисніть кнопку вище, щоб завантажити вміст ваших дописів та коментарів. Для завантаження зображень ваших дописів натисніть відповідне посилання нижче.",
+ "json": "як JSON",
+ "name": "Завантажити дані"
+ },
+ "email": {
+ "change-successful": "Вашу електронну адресу успішно змінено.",
+ "labelEmail": "Змінити електронну адресу",
+ "labelNewEmail": "Нова електронна адреса",
+ "labelNonce": "Введіть ваш код",
+ "name": "Ваша електронна пошта",
+ "submitted": "На адресу {email} надіслано лист для верифікації.",
+ "success": "Нову електронну адресу зареєстровано.",
+ "validation": {
+ "same-email": "Це ваша поточна електронна адреса"
+ },
+ "verification-error": {
+ "explanation": "Це може мати різні причини:",
+ "message": "Не вдалося змінити електронну адресу.",
+ "reason": {
+ "invalid-nonce": "Код підтвердження недійсний?",
+ "no-email-request": "Ви впевнені, що надсилали запит на зміну електронної адреси?"
+ },
+ "support": "Якщо проблема не зникає, зверніться до нас на електронну адресу"
+ }
+ },
+ "embeds": {
+ "info-description": "Ось список сторонніх провайдерів, чий вміст може відображатися як сторонній код, наприклад, у вигляді вбудованих відео.",
+ "name": "Сторонні провайдери",
+ "status": {
+ "change": {
+ "allow": "Так, звичайно",
+ "deny": "Ні, дякую",
+ "question": "Чи повинен вбудований код від сторонніх провайдерів завжди відображатися для вас?"
+ },
+ "description": "За замовчуванням для вас вбудований код від сторонніх провайдерів",
+ "disabled": {
+ "off": "спочатку не відображається",
+ "on": "відображається одразу"
+ }
+ }
+ },
+ "invites": {
+ "name": "Запрошення"
+ },
+ "languages": {
+ "name": "Мови"
+ },
+ "muted-users": {
+ "columns": {
+ "name": "Ім'я",
+ "slug": "Ідентифікатор",
+ "unmute": "Увімкнути"
+ },
+ "empty": "Наразі ви нікого не вимкнули.",
+ "explanation": {
+ "intro": "Якщо ви вимкнули іншого користувача, станеться наступне:",
+ "search": "Дописи вимкнених людей зникнуть з ваших результатів пошуку.",
+ "your-perspective": "Дописи вимкненої особи більше не з'являтимуться у вашій стрічці новин."
+ },
+ "how-to": "Ви можете вимкнути інших користувачів на їхній сторінці профілю через контекстне меню.",
+ "mute": "Вимкнути користувача",
+ "name": "Вимкнені користувачі",
+ "unmute": "Увімкнути користувача",
+ "unmuted": "{name} знову увімкнено"
+ },
+ "name": "Налаштування",
+ "notifications": {
+ "chat": "Чат",
+ "chatMessage": "Отримано повідомлення під час відсутності.",
+ "checkAll": "Вибрати все",
+ "commentOnObservedPost": "Коментарі до спостережуваних дописів.",
+ "followingUsers": "Користувач, на якого я підписаний(-а), опублікував новий допис.",
+ "group": "Групи",
+ "groupMemberJoined": "Учасник приєднався до групи, якою я керую.",
+ "groupMemberLeft": "Учасник покинув групу, якою я керую.",
+ "groupMemberRemoved": "Мене видалили з групи.",
+ "groupMemberRoleChanged": "Вашу роль у групі змінено або вас запрошено.",
+ "mention": "Мене згадали.",
+ "name": "Сповіщення електронною поштою",
+ "post": "Дописи та коментарі",
+ "postByFollowedUser": "Дописи від користувачів, на яких я підписаний(-а).",
+ "postInGroup": "Допис у групі, учасником якої я є.",
+ "send-email-notifications": "Надсилати сповіщення електронною поштою",
+ "success-update": "Налаштування сповіщень збережено!",
+ "uncheckAll": "Зняти все"
+ },
+ "organizations": {
+ "name": "Мої організації"
+ },
+ "privacy": {
+ "make-shouts-public": "Показувати статті, які я рекомендував(-ла), у моєму публічному профілі",
+ "name": "Конфіденційність",
+ "success-update": "Налаштування конфіденційності збережено!"
+ },
+ "security": {
+ "change-password": {
+ "button": "Змінити пароль",
+ "label-new-password": "Ваш новий пароль",
+ "label-new-password-confirm": "Підтвердити новий пароль",
+ "label-old-password": "Ваш старий пароль",
+ "message-new-password-confirm-required": "Підтвердіть ваш новий пароль",
+ "message-new-password-missmatch": "Введіть той самий пароль ще раз",
+ "message-new-password-required": "Введіть новий пароль",
+ "message-old-password-required": "Введіть ваш старий пароль",
+ "passwordSecurity": "Безпека пароля",
+ "passwordStrength0": "Дуже ненадійний пароль",
+ "passwordStrength1": "Ненадійний пароль",
+ "passwordStrength2": "Посередній пароль",
+ "passwordStrength3": "Надійний пароль",
+ "passwordStrength4": "Дуже надійний пароль",
+ "success": "Пароль успішно змінено!"
+ },
+ "name": "Безпека"
+ },
+ "social-media": {
+ "add-new-link": "Додати нове посилання",
+ "delete-modal": {
+ "confirm-button": "Видалити",
+ "message": "Видалити «{name}».",
+ "title": "Ви дійсно хочете видалити ваше посилання?"
+ },
+ "edit-link": "Редагувати посилання",
+ "name": "Соціальні мережі",
+ "placeholder": "Ваша URL-адреса соціальної мережі",
+ "requireUnique": "Ви вже додали цю URL-адресу",
+ "submit": "Додати посилання",
+ "successAdd": "Соціальну мережу додано. Профіль оновлено!",
+ "successDelete": "Соціальну мережу видалено. Профіль оновлено!"
+ },
+ "validation": {
+ "slug": {
+ "alreadyTaken": "Це ім'я користувача вже зайнято.",
+ "regex": "Дозволені лише малі літери, цифри, підкреслення та дефіси."
+ }
+ }
+ },
+ "shoutButton": {
+ "shouted": "рекомендовано"
+ },
+ "site": {
+ "back-to-login": "Повернутися на сторінку входу",
+ "bank": "банківський рахунок",
+ "code-of-conduct": "Кодекс поведінки",
+ "contact": "Контакти",
+ "data-privacy": "Конфіденційність даних",
+ "donate": "Пожертвувати",
+ "error-occurred": "Сталася помилка.",
+ "faq": "Часті питання",
+ "germany": "Німеччина",
+ "imprint": "Імпресум",
+ "made": "Зроблено з ❤️",
+ "navigation": "Навігація",
+ "register": "Реєстраційний номер",
+ "support": "Підтримка",
+ "termsAndConditions": "Умови використання",
+ "thanks": "Дякуємо!"
+ },
+ "termsAndConditions": {
+ "newTermsAndConditions": "Нові умови використання",
+ "termsAndConditionsNewConfirm": "Я прочитав(-ла) та погоджуюся з новими умовами використання.",
+ "termsAndConditionsNewConfirmText": "Будь ласка, ознайомтеся з новими умовами використання зараз!"
+ },
+ "user-teaser": {
+ "popover": {
+ "open-profile": "Відкрити профіль"
+ }
+ }
+}
diff --git a/webapp/plugins/i18n.js b/webapp/plugins/i18n.js
index 63e051b8e..49d5f9c54 100644
--- a/webapp/plugins/i18n.js
+++ b/webapp/plugins/i18n.js
@@ -4,9 +4,11 @@ import { isEmpty, find } from 'lodash'
import locales from '~/locales'
import htmlTranslations from '~/locales/html/'
+let fallbackLocale
+
const registerTranslation = ({ Vue, locale }) => {
const translation = require(`~/locales/${locale}.json`)
- translation.html = htmlTranslations[locale]
+ translation.html = htmlTranslations[locale] || htmlTranslations[fallbackLocale]
Vue.i18n.add(locale, translation)
}
@@ -15,6 +17,7 @@ const registerTranslation = ({ Vue, locale }) => {
* and implement the user preference logic
*/
export default ({ app, req, cookie, store }) => {
+ fallbackLocale = app.$env.LANGUAGE_FALLBACK
const debug = app.$env && app.$env.NODE_ENV !== 'production'
const key = 'locale'
@@ -45,7 +48,7 @@ export default ({ app, req, cookie, store }) => {
if (!app.$i18n.localeExists(localeInStore)) {
import(`~/locales/${localeInStore}.json`).then((res) => {
const translation = res.default
- translation.html = htmlTranslations[localeInStore]
+ translation.html = htmlTranslations[localeInStore] || htmlTranslations[fallbackLocale]
app.$i18n.add(localeInStore, translation)
})
}