Files
EpicNext-Cms/src/messages/uk.json
T
openhands 0af8d8a398
CI / check (push) Failing after 1m5s
CI / deploy (push) Skipped
CI / publish-container (push) Skipped
fix(lint): resolve biome formatting and unused variables across codebase
2026-09-12 19:45:29 +02:00

4914 lines
218 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"draftRecovery": {
"ready": "Копія для відновлення зберігатиметься в цьому браузері 7 днів.",
"saved": "Копію для відновлення збережено в цьому браузері на 7 днів.",
"unavailable": "Відновлення в браузері недоступне. Не закривай цю сторінку, доки зміни не буде збережено.",
"found": "У цьому браузері доступна копія для відновлення. Дата збереження:",
"restore": "Відновити копію з браузера",
"discard": "Видалити копію з браузера",
"confirmRestore": "Замінити поточну форму копією з браузера? Перевір вміст перед збереженням.",
"confirmDiscard": "Видалити цю копію з браузера? Поточна форма залишиться без змін."
},
"nav": {
"home": "додому",
"community": "Спільнота",
"articles": "статті",
"photos": "Фотографії",
"staff": "Персонал",
"rankings": "Рейтинги",
"guilds": "Гільдії",
"leaderboards": "Таблиці лідерів",
"rareValues": "Рідкісні цінності",
"shop": "Магазин",
"market": "Ринок",
"assistance": "Допомога",
"helpCenter": "Довідковий центр",
"myTickets": "Мої квитки",
"badges": "Значки",
"radio": "радіо",
"friends": "друзі",
"messages": "Повідомлення",
"admin": "адмін",
"openMenu": "Відкрити меню",
"closeMenu": "Закрити меню",
"drawBadge": "Намалюйте значок",
"events": "Events",
"polls": "Polls",
"mod": "Mod"
},
"header": {
"online": "{count} {hotel} онлайн",
"nitroClient": "Клієнт Nitro",
"tagline": "Віртуальний онлайн-світ, де ви можете створити свій власний аватар, заводити друзів, спілкуватися, створювати кімнати та багато іншого!",
"login": "Логін",
"or": "Або",
"createAccount": "Створіть обліковий запис"
},
"footer": {
"copyright": "© {year} - {hotel} є некомерційним освітнім проектом"
},
"pages": {
"staff": {
"title": "Персонал",
"subtitle": "Команда готелю",
"ranksTitle": "Чини",
"ranksSubtitle": "Про що піклується кожна частина команди",
"membersTitle": "Члени команди",
"membersEmptySubtitle": "Зараз нікому показати",
"membersSubtitle": "{count, plural, one {# member keeping things running} other {# members keeping things running}}",
"emptyState": "Немає співробітників для показу.",
"colUsername": "Ім'я користувача",
"colRank": "ранг",
"colMotto": "Девіз",
"viewProfile": "View profile",
"noMotto": "No motto set",
"loadError": "Unable to load staff members. Please try again shortly.",
"retry": "Try again"
},
"leaderboard": {
"title": "Таблиця лідерів",
"subtitle": "Топ-20 гравців за {currency}",
"tab_credits": "Кредити",
"tab_diamonds": "Діаманти",
"tab_duckets": "Качки",
"tab_achievement": "Досягнення",
"tab_respects": "З повагою",
"tab_onlinetime": "Час онлайн",
"emptyState": "Рейтингів для показу ще немає.",
"colAvatar": "Аватар",
"colPlayer": "гравець"
},
"friends": {
"title": "друзі",
"emptySubtitle": "Ви ще не додали друзів",
"subtitle": "{count, plural, one {You have # friend} other {You have # friends}}",
"emptyState": "Додайте друзів у готель, і вони з’являться тут.",
"noMotto": "Без девізу",
"remove": "Remove",
"success": {
"removed": "Friend removed."
},
"errors": {
"notFound": "That friendship was not found.",
"invalid": "Invalid friend.",
"error": "Something went wrong. Please try again."
}
},
"messages": {
"title": "Повідомлення",
"subtitle": "Запити в друзі та офлайн-повідомлення чекають на вас",
"requestsTitle": "Запити в друзі",
"requestsEmptySubtitle": "Ще ніхто не просив стати вашим другом",
"requestsSubtitle": "{count, plural, one {# pending request} other {# pending requests}}",
"requestsEmptyState": "Немає незавершених запитів друзів.",
"wantsToBeFriend": "хоче бути твоїм другом.",
"accept": "прийняти",
"offlineTitle": "Офлайн повідомлення",
"offlineEmptySubtitle": "Ваша папка \"Вхідні\" порожня",
"offlineSubtitle": "{count, plural, one {# message received} other {# messages received}}",
"offlineEmptyState": "У вас немає офлайн-повідомлень.",
"unknownUser": "Користувач #{id}",
"decline": "Decline",
"composeTitle": "Send offline message",
"composeSubtitle": "Delivered in the hotel messenger when your friend is offline",
"composeEmptyFriends": "Add friends in the hotel to send offline messages.",
"composeFriendLabel": "Friend",
"composeFriendPlaceholder": "Choose a friend",
"composeMessageLabel": "Message",
"composeMessagePlaceholder": "Write your message (max 500 characters)…",
"composeSend": "Send message",
"success": {
"accepted": "Friend request accepted.",
"declined": "Friend request declined.",
"sent": "Offline message sent."
},
"errors": {
"notFound": "That friend request was not found.",
"unauthorized": "You can't act on this friend request.",
"invalid": "Invalid friend request.",
"error": "Something went wrong. Please try again.",
"notFriend": "You can only message friends.",
"emptyMessage": "Please write a message.",
"rateLimited": "Too many messages. Wait a moment and try again."
}
},
"profile": {
"noMotto": "Без девізу",
"statRank": "ранг",
"statCredits": "Кредити",
"statRegistered": "Зареєстрований",
"badgesTitle": "Значки",
"badgesEmpty": "Ще немає значків.",
"photosTitle": "Фотографії",
"photosEmpty": "Фото ще немає.",
"guestbookTitle": "Гостьова книга",
"guestbookSubtitle": "Повідомлення на стіні {username}",
"leaveMessage": "Залиште повідомлення",
"guestbookPlaceholder": "Напишіть щось у гостьовій книзі {username}…",
"post": "Опублікувати",
"loginToPost": "Увійдіть, щоб залишити повідомлення в гостьовій книзі.",
"guestbookEmpty": "Записів у гостьовій книзі ще немає.",
"unknownUser": "Користувач #{id}",
"statDuckets": "Качки",
"statDiamonds": "Діаманти",
"walletTitle": "Гаманець",
"friendsTitle": "друзі",
"friendsSubtitle": "Люди в готелі, з якими вони тусуються",
"friendsEmpty": "Немає друзів для показу.",
"roomsTitle": "Кімнати",
"roomsSubtitle": "Кімнати у них є",
"roomsEmpty": "Немає кімнат для показу.",
"roomUntitled": "Кімната без назви",
"addFriend": "Add friend",
"alreadyFriends": "You're friends",
"requestPending": "Request pending",
"respondInMessages": "Respond in Messages",
"success": {
"sent": "Friend request sent.",
"guestbook": "Guestbook message posted."
},
"errors": {
"self": "You can't send a friend request to yourself.",
"alreadyFriends": "You're already friends with this user.",
"alreadyPending": "You already sent a friend request to this user.",
"incomingPending": "This user already sent you a request — accept or decline it in Messages.",
"empty": "Please write a message before posting.",
"moderated": "That message was blocked by moderation.",
"ratelimit": "You're posting too fast. Please wait a moment and try again.",
"invalid": "That request was invalid.",
"error": "Something went wrong. Please try again."
},
"noRoomPreview": "Preview unavailable",
"viewRoom": "View room",
"roomStates": {
"open": "Open",
"locked": "Doorbell",
"password": "Password",
"invisible": "Hidden"
},
"privacy": {
"title": "Profile visibility",
"hint": "Choose what visitors can see on your public profile. Your email is never shown here. Your own view still shows your information. These controls apply to the profile page.",
"wallet": "Show my wallet",
"online": "Show my online status",
"friends": "Show my friends",
"photos": "Show my photos",
"registered": "Show my registration date",
"save": "Save visibility",
"saved": "Profile visibility saved.",
"error": "Profile visibility could not be loaded or saved. Please try again.",
"ownerHint": "You are viewing your own information, including hidden sections."
},
"morePhotos": "Show more photos (up to 24 recent photos)",
"openPhoto": "Open full photo in a new tab",
"photosUnavailable": "Photos could not be loaded. Please try again later."
},
"rankings": {
"title": "Рейтинги",
"subtitle": "12 кращих гравців за кредитами",
"emptyState": "Ще немає гравців для рейтингу."
},
"home": {
"welcome": "Ласкаво просимо до {hotelName}",
"welcomeSubtitle": "Ваш ретро-готель, тепер на базі Next.js",
"welcomeBody": "Гуляйте, збирайте меблі та зустрічайтеся з друзями.",
"enterHotel": "Введіть {hotelName}",
"onlineFriends": "Друзі онлайн",
"noFriendsOnline": "Немає друзів онлайн",
"register": "ЗАРЕЄСТРУЙТЕСЯ ЗАРАЗ",
"joinNow": "Приєднуйтесь до {hotelName} сьогодні!",
"recentUsers": "Останні користувачі",
"recentPhotos": "Останні фотографії",
"latestNews": "Останні новини",
"newsTitle": "Останні новини",
"newsSubtitle": "Щойно з готелю",
"allNews": "Всі новини →",
"allUsers": "Спільнота →",
"noArticles": "Ще немає статей.",
"noPhotos": "Фото ще немає.",
"noUsers": "Немає користувачів онлайн",
"latestArticle": "Остання стаття",
"latestUsers": "Найновіші громадяни ({count} всього)",
"statsOnline": "Онлайн",
"statsCitizens": "Громадяни",
"statsRooms": "Кімнати",
"statsArticles": "Статті",
"featuresAvatar": "Аватар",
"featuresAvatarDesc": "Створи свій унікальний вигляд",
"featuresFurniture": "Меблі",
"featuresFurnitureDesc": "Прикрашай кімнати предметами",
"featuresCommunity": "Спільнота",
"featuresCommunityDesc": "Знаходь друзів та спілкуйся",
"featuresGames": "Ігри",
"featuresGamesDesc": "Змагайся та веселись",
"sectionFeaturesLabel": "Features",
"sectionFeaturesTitle": "Everything a great hotel needs",
"sectionStatsLabel": "Live stats",
"sectionStatsTitle": "A community that keeps growing",
"sectionCommunityLabel": "Community",
"sectionCommunityTitle": "Make yourself at home"
},
"news": {
"title": "Новини",
"subtitle": "Останні оголошення, події та оновлення від готелю",
"noArticles": "Ще немає статей.",
"searchLabel": "Search news",
"orderLabel": "Order",
"newest": "Newest first",
"oldest": "Oldest first",
"apply": "Apply",
"loadError": "News could not be loaded. Please try again.",
"pagination": "News pages",
"previous": "Previous",
"next": "Next",
"pageSummary": "Page {page} of {pages} · {total} articles"
},
"article": {
"backToNews": "← Новини",
"reactionsTitle": "реакції",
"reactionsSubtitle": "Розкажіть нам, що ви думаєте",
"reaction": {
"like": "Подобається",
"love": "кохання",
"wow": "Нічого собі"
},
"removeReaction": "Натисніть, щоб видалити свою реакцію",
"reactWith": "Відреагуйте {reaction}",
"noReactions": "Реакцій поки немає.",
"logIn": "авторизуватися",
"toReact": "реагувати.",
"commentsTitle": "Коментарі",
"commentsSubtitle": "Приєднуйтесь до розмови",
"commentsCount": "{count} наразі",
"noComments": "Поки немає коментарів. Залиште перший коментар.",
"userNumber": "Користувач #{id}",
"addComment": "Додайте коментар",
"commentPlaceholder": "Напишіть свій коментар…",
"postComment": "Опублікувати коментар",
"toComment": "щоб залишити коментар.",
"success": {
"posted": "Comment posted.",
"reaction": "Reaction updated."
},
"errors": {
"empty": "Please write a comment before posting.",
"moderated": "That comment was blocked by moderation.",
"ratelimit": "You're commenting too fast. Please wait a moment and try again.",
"invalid": "Invalid comment.",
"notFound": "That article was not found.",
"error": "Something went wrong. Please try again."
}
},
"photos": {
"title": "Фотографії",
"subtitle": "Останні фото, зроблені в готелі",
"noPhotos": "Фото ще немає.",
"photoAlt": "Фото користувача #{id}",
"byUser": "користувач #{id}"
},
"badges": {
"title": "Значки",
"subtitle": "Значки, які ви можете заробити та похизуватися в готелі",
"noBadges": "Ще немає значків."
},
"community": {
"title": "Спільнота",
"subtitle": "Все, що відбувається навколо готелю в одному місці",
"open": "Відкрити →",
"links": {
"rankings": {
"title": "Рейтинги",
"text": "Перегляньте найбагатших гравців у готелі, упорядкованих за кредитами."
},
"staff": {
"title": "Персонал",
"text": "Познайомтеся з командою, яка щодня забезпечує роботу готелю."
},
"news": {
"title": "Новини",
"text": "Останні оголошення, події та оновлення."
},
"photos": {
"title": "Фотографії",
"text": "Знімки, якими ділиться спільнота з усього готелю."
},
"guilds": {
"title": "Гільдії",
"text": "Перегляньте групи, створені гравцями та до яких приєдналися."
},
"leaderboards": {
"title": "Таблиці лідерів",
"text": "Хто лідирує в цьому сезоні за статистикою готелю."
}
}
},
"guilds": {
"title": "Гільдії",
"subtitle": "Перегляньте групи, створені гравцями та до яких приєдналися",
"empty": "Ще немає гільдій.",
"unnamedGuild": "Гільдія без назви",
"noDescription": "Без опису"
},
"guild": {
"allGuilds": "← Усі гільдії",
"unnamedGuild": "Гільдія без назви",
"noDescription": "Без опису",
"memberSingular": "Член",
"memberPlural": "Члени",
"founded": "Заснована",
"forumLink": "Форум →",
"discussion": "Обговорення",
"membersTitle": "Члени",
"memberLowerSingular": "член",
"memberLowerPlural": "членів",
"noMembers": "Немає учасників.",
"owner": "Власник",
"noMotto": "Без девізу"
},
"guildForum": {
"backToGuild": "← Назад до гільдії",
"unnamedGuild": "Гільдія без назви",
"forumTitle": "{guild} — Форум",
"threadSingular": "нитка",
"threadPlural": "нитки",
"newThread": "+ Нова тема",
"empty": "У цьому форумі ще немає тем.",
"colSubject": "Тема",
"colAuthor": "Автор",
"colPosts": "Пости",
"colDate": "Дата",
"noSubject": "(без теми)",
"pinned": "Закріплено",
"locked": "Заблоковано",
"userNumber": "Користувач #{id}",
"unknown": "Невідомий",
"success": {
"posted": "Thread posted."
}
},
"guildForumNew": {
"backToForum": "← Повернутися на форум",
"unnamedGuild": "Гільдія без назви",
"title": "Нова тема",
"subtitle": "на форумі {guild}",
"subjectLabel": "Тема",
"subjectPlaceholder": "Тема теми",
"messageLabel": "повідомлення",
"messagePlaceholder": "Напишіть свій вступний пост…",
"postThread": "Опублікувати тему",
"cancel": "Скасувати",
"errors": {
"invalid": "Subject and message are required.",
"notFound": "That guild was not found.",
"ratelimit": "You're posting too fast. Please wait a moment and try again.",
"error": "Something went wrong. Please try again."
}
},
"shop": {
"title": "Магазин",
"subtitle": "Поповнюйте рахунок і отримуйте ексклюзивні пакети, валюту та значки.",
"browsingCategory": "Перегляд пакетів {category}.",
"all": "всі",
"allPackages": "Всі пакети",
"packagesAvailable": "{count, plural, one {# package available} other {# packages available}}",
"empty": "Зараз немає доступних пакетів.",
"buy": "купити",
"loginToBuy": "Log in to buy",
"creditsHint": "Packages are paid with in-game credits. Top up first if you need more.",
"topUpLink": "Top up credits",
"priceCredits": "{credits} credits (≈ {usd})",
"priceCreditsShort": "{credits} cr",
"success": {
"bought": "Package purchased — rewards have been added to your account.",
"boughtNamed": "You purchased \"{name}\" — rewards have been added to your account."
},
"errors": {
"invalid": "That package is no longer available.",
"credits": "You don't have enough credits for this package.",
"ratelimit": "You're purchasing too fast. Please wait a moment and try again.",
"error": "Something went wrong. Please try again."
}
},
"topup": {
"title": "Поповнити через PayPal",
"subtitle": "Сплачуйте безпечно за допомогою PayPal, і ваші кредити будуть додані в момент отримання платежу.",
"cancelled": "Оформлення замовлення скасовано — оплата не прийнята.",
"chooseAmount": "Виберіть суму",
"notConfiguredPre": "PayPal ще не налаштовано. Адміністратор повинен встановити",
"notConfiguredAnd": "і",
"notConfiguredOptional": "(і за бажанням",
"notConfiguredPost": "для пісочниці проти live).",
"balanceTitle": "Ваш баланс",
"signedInAs": "Ви ввійшли як {username}",
"credits": "Кредити",
"creditsPerUnit": "Кредити за 1,00 {currency}",
"rateLine": "Ви отримуєте <strong>{amount}</strong> кредитів за 1,00 {currency}. Кредити з’являються в грі під час наступного входу."
},
"marketplace": {
"title": "Ринок",
"subtitle": "Перегляньте меблі та рідкісні предмети, перераховані гравцями. Списки розміщуються в грі та оновлюються в реальному часі — вирушайте в готель, щоб зробити пропозицію.",
"activeOffers": "Активні пропозиції",
"sellers": "Продавці",
"totalValue": "Загальна вартість",
"activeListings": "Активні списки",
"mostRecentFirst": "Найновіший у списку першим",
"empty": "Зараз немає активних пропозицій на ринку. Перевірте пізніше.",
"colOffer": "Пропозиція",
"colItem": "Пункт",
"colSeller": "Продавець",
"colPrice": "Ціна",
"colListed": "Перераховано",
"itemLabel": "Пункт №{id}",
"userLabel": "Користувач #{id}",
"justNow": "тільки зараз",
"minutesAgo": "{count}хв тому",
"hoursAgo": "{count} год тому",
"daysAgo": "{count} дн. тому"
},
"rares": {
"title": "Рідкісні цінності",
"subtitle": "Отримайте огляд усіх рідкісних речей у готелі, згрупованих за категоріями.",
"empty": "Наразі тут немає рідкісних предметів.",
"rareCount": "{count, plural, one {# rare} other {# rares}}",
"viewRares": "Переглянути рідкісні →"
},
"rareCategory": {
"rareCount": "{count, plural, one {# rare in this category} other {# rares in this category}}",
"allRares": "← Всі рідкісні",
"empty": "У цій категорії ще немає рідкісних предметів.",
"colRare": "Рідкісний",
"colCredits": "Кредити",
"colCurrency": "Валюта",
"creditsValue": "{value} кредитів",
"duckets": "Качки",
"diamonds": "Діаманти",
"credits": "Кредити"
},
"redeem": {
"title": "Викупити ваучер",
"subtitle": "Отримали код ваучера? Введіть його нижче, щоб додати винагороду до свого облікового запису.",
"enterCode": "Введіть свій код",
"oncePerAccount": "Кожен ваучер можна використати лише один раз на обліковий запис.",
"balanceTitle": "Ваш баланс",
"signedInAs": "Ви ввійшли як {username}",
"credits": "Кредити",
"instantCredit": "Використані винагороди зараховуються миттєво та з’являються в грі під час наступного входу."
},
"help": {
"title": "Довідковий центр",
"subtitle": "Знайдіть путівники, теми підтримки та правила готелю — все, що вам потрібно, щоб отримати допомогу.",
"myTickets": "Мої квитки →",
"topicsTitle": "Теми підтримки",
"topicsSubtitle": "Перегляньте посібники та відповіді на типові запитання",
"topicsEmpty": "Тем довідки ще немає.",
"rulesTitle": "Правила готелю",
"rulesSubtitle": "Будь ласка, прочитайте їх, перш ніж туситися в готелі",
"rulesEmpty": "Правил ще не опубліковано.",
"categoryEmpty": "У цій категорії немає правил."
},
"helpCategory": {
"back": "← Довідковий центр",
"topicSubtitle": "Тема довідкового центру",
"moreTitle": "Більше тем довідки",
"moreSubtitle": "Перейдіть до іншої теми підтримки"
},
"helpTickets": {
"title": "Допомога Квитки",
"subtitle": "Надішліть заявку співробітникам і відстежуйте свої відкриті запити.",
"statTotal": "Всього квитків",
"statOpen": "відкритий",
"statClosed": "Закрито",
"newTitle": "Новий квиток",
"newSubtitle": "Опишіть свою проблему, і персонал зв’яжеться з нею",
"subjectPlaceholder": "Тема",
"contentPlaceholder": "Опишіть свою проблему…",
"submit": "Надішліть квиток",
"listTitle": "Ваші квитки",
"listSubtitle": "Кожен запит, який ви надіслали персоналу",
"listEmpty": "У вас ще немає квитків.",
"colId": "ID",
"colSubject": "Тема",
"colStatus": "Статус",
"colCreated": "Створено",
"statusOpen": "відкритий",
"statusClosed": "Закрито",
"success": {
"created": "Ticket submitted."
},
"errors": {
"invalid": "Please fill in a subject and description.",
"moderated": "That ticket was blocked by moderation.",
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
"error": "Something went wrong. Please try again."
},
"banAppealLabel": "This is a ban appeal"
},
"applyStaff": {
"title": "Подайте заявку на роботу в {hotel}",
"subtitle": "Час від часу ми відкриваємо заявки співробітників. Якщо ви натрапили на посаду, на яку ви б ідеально підходили, не зволікайте, подавайте на неї заявку.",
"noPositionsTitle": "Немає відкритих позицій",
"noPositionsBody": "Наразі немає відкритих вакансій. Будь ласка, поверніться пізніше, щоб перевірити, чи є у нас вакансії. Дякуємо за інтерес.",
"noDeadline": "Дедлайн не встановлено",
"deadline": "Кінцевий термін подання заявки: {date}",
"alreadyApplied": "Ви вже подали заявку на {rank}",
"aboutYou": "Про вас",
"aboutPlaceholder": "Розкажіть нам, чому ви стали б чудовим {rank}…",
"applyFor": "Подати заявку на {rank}",
"success": {
"submitted": "Application submitted — staff will review it soon."
},
"errors": {
"empty": "Please write at least 10 characters about yourself.",
"invalid": "Invalid application.",
"duplicate": "You have already applied for this position.",
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
"error": "Something went wrong. Please try again."
}
},
"applyTeam": {
"title": "Подайте заявку в команду {hotel}",
"subtitle": "Ми періодично відкриваємо командні заявки. Якщо ви бачите команду, яка вам підходить, не зволікайте, подавайте заявку!",
"noPositionsTitle": "Немає відкритих командних позицій",
"noPositionsBody": "Зараз немає відкритих командних вакансій. Будь ласка, поверніться пізніше, щоб перевірити наявність нових вакансій. дякую!",
"pending": "Ваша заявка очікує на розгляд",
"aboutYou": "Про вас",
"aboutPlaceholder": "Розкажіть нам, чому вам підійде {rank}…",
"applyFor": "Подати заявку на {rank}",
"success": {
"submitted": "Application submitted — staff will review it soon."
},
"errors": {
"empty": "Please write at least 10 characters about yourself.",
"invalid": "Invalid application.",
"duplicate": "You have already applied for this team.",
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
"error": "Something went wrong. Please try again."
}
},
"radio": {
"title": "радіо",
"subtitle": "Налаштуйтеся на готельне радіо — живі DJ-сети, прохання та вітання.",
"nowPlaying": "Зараз грає",
"nothingPlaying": "Зараз нічого не відтворюється.",
"onAir": "В ефірі: {dj}",
"noDj": "Немає діджея в ефірі.",
"audioUnsupported": "Ваш браузер не підтримує звуковий елемент.",
"streamOffline": "Потік наразі офлайн.",
"exploreTitle": "Дослідіть радіо",
"exploreSubtitle": "Розклад, крики, прохання та інше",
"linkSchedule": "розклад",
"linkScheduleText": "Наша щотижнева підбірка діджеїв і шоу.",
"linkShouts": "Крики",
"linkShoutsText": "Крики та запити від спільноти.",
"linkRequests": "Запити",
"linkRequestsText": "Попросіть діджея закрутити ваш улюблений трек.",
"linkApply": "Заявка як ді-джей",
"linkApplyText": "Приєднуйся до команди та піднімайся в ефір.",
"linkLeaderboard": "Таблиця лідерів",
"linkLeaderboardText": "Найпопулярніші слухачі в рейтингу за отриманими балами.",
"todayTitle": "Розклад на сьогодні",
"todayTitleWithDay": "Розклад на сьогодні · {day}",
"todaySubtitle": "Що сьогодні в ефірі",
"fullWeek": "Повний тиждень →",
"noShowsToday": "На сьогодні не заплановано показів.",
"colTime": "час",
"colShow": "Показати",
"colDj": "діджей",
"untitledShow": "Шоу без назви",
"userNumber": "Користувач #{id}"
},
"radioSchedule": {
"title": "Розклад радіо",
"subtitle": "Наша щотижнева підбірка діджеїв і шоу",
"empty": "Показів ще не заплановано.",
"colDay": "День",
"colTime": "час",
"colDj": "діджей",
"colShow": "Показати",
"noShows": "Не показує"
},
"radioShouts": {
"title": "Радіо Крики",
"subtitle": "Крики та запити від спільноти",
"postTitle": "Опублікуйте крик",
"postSubtitle": "Надішліть повідомлення діджею в ефірі",
"messageLabel": "Ваше повідомлення",
"messagePlaceholder": "Надішліть крик діджею…",
"shoutButton": "Кричати",
"loginToPost": "Увійдіть, щоб опублікувати крик.",
"latestTitle": "Останні крики",
"latestSubtitle": "Найновіші повідомлення від слухачів",
"empty": "Ще немає криків. Будь першим!",
"success": {
"posted": "Shout posted."
},
"errors": {
"invalid": "Please write a message before shouting.",
"moderated": "That shout was blocked by moderation.",
"ratelimit": "You're shouting too fast. Please wait a moment and try again.",
"error": "Something went wrong. Please try again."
}
},
"radioContests": {
"title": "Радіоконкурси",
"subtitle": "Підключайтеся та беріть участь у наших останніх ефірних конкурсах",
"empty": "Конкурсів ще немає.",
"contestLabel": "Конкурс №{id}",
"dateUnknown": "Дата невідома"
},
"radioGiveaways": {
"title": "Радіо подарунки",
"subtitle": "Слухайте, щоб отримати шанс виграти в наших радіороздачах",
"empty": "Поки що немає подарунків.",
"giveawayLabel": "Роздача #{id}",
"dateUnknown": "Дата невідома"
},
"radioLeaderboard": {
"title": "Лідери радіослухачів",
"subtitle": "50 найкращих слухачів за балами, отриманими під час налаштування радіо",
"empty": "Ще немає очок слухачів для показу.",
"colRank": "ранг",
"colAvatar": "Аватар",
"colListener": "Слухач",
"colPoints": "Очки"
},
"radioRequests": {
"formTitle": "Надішліть запит",
"formSubtitle": "Попросіть ді-джея включити ваш улюблений трек",
"songLabel": "Пісня",
"songPlaceholder": "Назва пісні",
"artistLabel": "Художник",
"artistPlaceholder": "Ім'я виконавця (необов'язково)",
"submitButton": "Надіслати запит",
"loginToRequest": "Увійдіть, щоб надіслати запит.",
"latestTitle": "Останні запити",
"latestSubtitle": "Останні запитувані пісні",
"empty": "Ще немає запитів.",
"colSong": "Пісня",
"colArtist": "Художник",
"colRequester": "Запитувач",
"colDate": "Дата",
"colStatus": "Статус",
"statusPending": "В очікуванні",
"statusApproved": "Затверджено",
"statusPlayed": "Грав",
"success": {
"posted": "Request submitted."
},
"errors": {
"empty": "Please enter a song title or artist.",
"invalid": "Invalid request.",
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
"error": "Something went wrong. Please try again."
}
},
"radioApply": {
"title": "Подайте заявку на посаду ді-джея радіо",
"subtitle": "Розкажіть нам про себе та про те, чому ви чудово підходите для ефіру",
"latestTitle": "Ваша остання заявка",
"statusLabel": "Статус:",
"submittedOn": "· подано {date}",
"submitAgain": "Ви можете надіслати знову нижче, якщо ваші дані змінилися.",
"formTitle": "Форма заявки",
"formSubtitle": "Усі поля, позначені обов’язковими, мають бути заповнені",
"realNameLabel": "Справжнє ім'я",
"realNamePlaceholder": "Ваше повне ім'я",
"ageLabel": "Вік",
"availabilityLabel": "Доступність",
"availabilityPlaceholder": "У які дні та години ви можете транслювати?",
"musicStyleLabel": "Стиль музики",
"musicStylePlaceholder": "напр. Хаус, поп, хіп-хоп",
"experienceLabel": "Досвід",
"optional": "(необов'язково)",
"experiencePlaceholder": "Маєте попередній досвід ді-джея чи хостингу?",
"motivationLabel": "Мотивація",
"motivationPlaceholder": "Чому ви хочете приєднатися до команди радіо?",
"submitButton": "Подати заявку",
"success": {
"submitted": "Application submitted — we will get back to you soon."
},
"errors": {
"invalid": "Please fill in all required fields.",
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
"error": "Something went wrong. Please try again."
}
},
"settings": {
"accountSettings": "Налаштування облікового запису",
"accountSettingsSubtitle": "Керуйте своїм профілем, безпекою та підключеними обліковими записами",
"publicProfile": "Ваш публічний профіль",
"noMotto": "Без девізу",
"noEmail": "Немає електронної пошти в файлі",
"changeMotto": "Змінити девіз",
"changeMottoSubtitle": "Оновлення миттєво в грі, якщо ви онлайн",
"mottoPlaceholder": "Ваш девіз",
"saveMotto": "Зберегти девіз",
"securityTitle": "Безпека",
"securitySubtitle": "Двофакторна аутентифікація",
"securityDescription": "Додайте другий рівень захисту до свого облікового запису.",
"twoFactorLink": "Двофакторна аутентифікація"
},
"settings2fa": {
"backToSettings": "← Налаштування",
"title": "Двофакторна аутентифікація",
"subtitle": "Додайте другий рівень безпеки за допомогою програми автентифікації",
"nowEnabled": "2FA тепер увімкнено. 🔒",
"disabledNotice": "2FA вимкнено.",
"badCode": "Цей код недійсний — повторіть спробу.",
"noAppKeyPrefix": "2FA недоступний до",
"noAppKeyMiddle": "налаштовано (той же Laravel",
"noAppKeySuffix": "під час встановлення AtomCMS, щоб існуючі секрети залишалися читабельними).",
"isEnabled": "2FA увімкнено",
"onYourAccount": "на вашому рахунку.",
"disable": "Вимкніть 2FA",
"scanOrEnter": "Відскануйте або введіть цей ключ",
"scanInstructions": "Додайте це в Google Authenticator / Authy, а потім введіть 6-значний код для підтвердження.",
"manualKey": "Ручний ключ:",
"codePlaceholder": "6-значний код",
"confirm": "Підтвердити",
"enableIntro": "Додайте другий рівень безпеки за допомогою програми автентифікації.",
"enable": "Увімкніть 2FA",
"rateLimit": "Too many attempts. Please wait before trying again."
},
"title": "Підключені облікові записи",
"subtitle": "Зв’яжіть обліковий запис у соціальній мережі, щоб увійти одним клацанням миші",
"connected": "Підключено",
"unavailable": "Недоступний",
"login": {
"title": "Увійдіть",
"subtitle": "Ласкаво просимо назад — увійдіть, щоб увійти в готель.",
"subtitle2fa": "Введіть 6-значний код із вашого автентифікатора.",
"usernamePlaceholder": "Ім'я користувача",
"passwordPlaceholder": "Пароль",
"codePlaceholder": "код 2FA",
"pleaseWait": "Будь ласка, зачекайте…",
"verify": "Підтвердити",
"signIn": "Увійдіть",
"or": "або",
"noAccount": "Немає облікового запису?",
"createOne": "Створіть один",
"forgotPassword": "Забули пароль?",
"errorInvalidCredentials": "Недійсне ім'я користувача або пароль",
"errorInvalid2fa": "Недійсний код 2FA",
"welcomeBack": "З поверненням",
"welcomeBackSub": "Увійди, щоб продовжити в {hotelName}",
"errorUnverified": "Please verify your email before signing in.",
"errorCaptcha": "Captcha verification failed. Please try again."
},
"register": {
"title": "Створити акаунт",
"subtitle": "Приєднайтеся до готелю — це займе лише мить.",
"username": "Ім'я користувача",
"email": "Електронна пошта",
"password": "Пароль",
"confirmPassword": "Повторіть пароль",
"usernamePlaceholder": "Ім'я користувача",
"emailPlaceholder": "Електронна пошта",
"passwordPlaceholder": "Пароль (мінімум 6 символів)",
"confirmPasswordPlaceholder": "Повторіть пароль",
"selectOutfit": "Виберіть свій наряд",
"termsAccept": "Мені 18+ і я приймаю умови та правила {hotel}.",
"createAccount": "Створити акаунт",
"creatingAccount": "Створення облікового запису...",
"redirecting": "Перехід до вашого акаунту...",
"alreadyHaveAccount": "Вже маєте акаунт? Вхід!",
"register": "зареєструватися",
"termsError": "Ви повинні прийняти умови та правила, щоб зареєструватися.",
"usernameError": "Потрібно ввести ім'я користувача.",
"emailError": "Потрібна дійсна електронна адреса.",
"passwordError": "Пароль має бути не менше 6 символів.",
"confirmPasswordError": "Паролі не збігаються.",
"termsRequired": "Ви повинні прийняти умови та правила.",
"usernameRequired": "Потрібно ввести ім'я користувача.",
"emailRequired": "Необхідно вказати адресу електронної пошти.",
"passwordRequired": "Необхідно ввести пароль.",
"passwordsDontMatch": "Паролі не збігаються.",
"alreadyHaveAccountPre": "Вже маєш акаунт?",
"alreadyHaveAccountLink": "Увійти",
"whoIsOnline": "Хто онлайн",
"usersOnline": "{count} онлайн",
"accepted": "Accepted & agreed",
"showPassword": "Show",
"hidePassword": "Hide",
"accountDetails": "Account details",
"credentials": "Credentials & security"
},
"forgot": {
"title": "Скинути пароль",
"subtitle": "Ми надішлемо вам електронною поштою безпечне посилання для встановлення нового пароля.",
"sentNotice": "Якщо ця електронна адреса зареєстрована, буде надіслано посилання для скидання. Перевірте свою поштову скриньку.",
"emailPlaceholder": "Ваш email",
"sendResetLink": "Надіслати посилання для скидання",
"backToLogin": "Назад до входу",
"errorCaptcha": "Captcha verification failed. Please try again."
},
"reset": {
"title": "Встановіть новий пароль",
"subtitle": "Виберіть надійний пароль, який більше не використовується.",
"passwordPlaceholder": "Новий пароль (мінімум 6 символів)",
"resetPassword": "Скинути пароль",
"backToLogin": "Назад до входу"
},
"verify": {
"verifiedTitle": "Ви готові",
"verifiedSubtitle": "Електронна адреса підтверджена",
"verifiedBody": "Вашу електронну адресу перевірено. Тепер ви можете увійти та грати.",
"goToLogin": "Перейти до входу",
"alreadyTitle": "Вже перевірено",
"alreadySubtitle": "Не залишилося нічого робити",
"alreadyBody": "Ця електронна адреса вже підтверджена.",
"unavailableTitle": "Повторіть спробу незабаром",
"unavailableSubtitle": "Сервер недоступний",
"unavailableBody": "Нам не вдалося підключитися до сервера для перевірки вашої електронної пошти. Повторіть спробу за посиланням.",
"invalidTitle": "Підтвердження електронної пошти",
"invalidSubtitle": "Недійсне або прострочене посилання",
"invalidBody": "Це посилання для підтвердження недійсне. Переконайтеся, що ви відкрили повне посилання зі свого електронного листа, або надішліть запит на нове.",
"backToLogin": "Назад до входу"
},
"banned": {
"title": "Ви забанені",
"subtitle": "Обліковий запис призупинено",
"body": "Ваш обліковий запис було призупинено в готелі.",
"reasonLabel": "Причина:",
"permanent": "Ця заборона є постійною.",
"expires": "Термін дії закінчується {date}.",
"contactStaff": "Якщо ви вважаєте, що це помилка, зверніться до команди співробітників."
},
"maintenance": {
"title": "{hotel} знаходиться на ремонті",
"subtitle": "Ми скоро повернемося",
"staffCanLogIn": "Співробітники все ще можуть увійти."
},
"admin": {
"nav": {
"overview": "Огляд",
"dashboard": "Приладова панель",
"content": "Зміст",
"articles": "статті",
"tags": "Теги",
"navigator": "Навігатор",
"helpCenter": "Довідковий центр",
"advertisements": "Оголошення",
"writeableBoxes": "Ящики для запису",
"photos": "Фотографії",
"tickets": "квитки",
"events": "Events",
"polls": "Polls",
"banners": "Banners",
"prefixes": "Prefixes",
"usersAndAccess": "Користувачі та доступ",
"users": "Користувачі",
"bans": "Заборони",
"ipManagement": "Управління IP",
"vpn": "VPN",
"applications": "Додатки",
"teams": "Команди",
"permissions": "Дозволи",
"onlineUsers": "Online users",
"moderation": "Moderation",
"economy": "Економіка",
"catalog": "Каталог",
"shop": "Магазин",
"transactions": "транзакції",
"vouchers": "Ваучери",
"subscriptions": "Підписки",
"rareValues": "Рідкісні цінності",
"badges": "Значки",
"achievements": "Досягнення",
"calendar": "Календар",
"radio": "радіо",
"radioHistory": "Історія радіо",
"radioBanners": "банери",
"radioEmbed": "Вставити",
"radioApiKeys": "Ключі API",
"radioModeration": "Модерація",
"radioSettings": "Налаштування",
"radioMonitoring": "Моніторинг",
"radioPoints": "Очки",
"radioRanks": "Чини",
"radioAutodj": "Авто діджей",
"system": "система",
"commandocentrum": "Командоцентр",
"emulator": "Емулятор",
"alerts": "Оповіщення",
"logs": "Журнали",
"auditLog": "Audit log",
"analytics": "Analytics",
"devops": "DevOps",
"wordFilter": "Фільтр Word",
"maintenance": "Технічне обслуговування",
"rooms": "Кімнати",
"emailTemplates": "Шаблони електронних листів",
"theme": "Тема",
"media": "ЗМІ",
"favicon": "Favicon",
"sounds": "Звуки",
"translations": "Переклади",
"import": "Імпорт",
"settings": "Налаштування",
"backToSite": "Повернутися на сайт",
"housekeeping": "Прибирання",
"hotelManagementPanel": "Панель управління готелем",
"rankLabel": "Рейтинг {rank}",
"hubNewsMedia": "News & media",
"hubSiteContent": "Site content",
"hubEngagement": "Engagement",
"hubUsers": "Users",
"hubAccess": "Access & security",
"hubCatalog": "Catalog & rares",
"hubShop": "Shop & payments",
"hubTools": "Tools",
"hubObservability": "Observability",
"helpTickets": "Help-center tickets",
"marketplace": "Marketplace",
"expandAll": "Expand all",
"collapseAll": "Collapse all",
"searchMenu": "Search menu…",
"clearMenuSearch": "Clear menu search",
"noMenuResults": "No matching pages.",
"community": "Community",
"monitoring": "Monitoring",
"staffAccess": "Ranks & permissions",
"multiAccounts": "Multi-accounts",
"chatLog": "Chat log",
"commandLog": "Command log",
"tradeLog": "Trade log",
"tools": "Tools",
"guilds": "Guilds",
"itemsBase": "Items base",
"adminMenu": "Admin menu",
"operationsCenter": "Operations center",
"catalogMaintenance": "Catalog maintenance",
"studio": "Studio",
"search": {
"placeholder": "Search…",
"noResults": "No results found",
"users": "Users",
"articles": "Articles",
"rooms": "Rooms",
"guilds": "Guilds",
"shop": "Shop",
"hint": "Start typing to search across users, articles, rooms, guilds and shop items"
},
"peopleSupport": "Users and support",
"catalogFurniture": "Catalog and furniture",
"communityContent": "Community and content",
"staffPermissions": "Staff and access",
"cmsErrors": "CMS errors",
"themeBuilder": "Theme builder",
"openSidebar": "Open menu",
"closeSidebar": "Close menu"
},
"dashboard": {
"title": "Приладова панель",
"subtitle": "Огляд готелю та поточний статус",
"playersOnline": "Гравці онлайн",
"articles": "статті",
"activeBans": "Активні заборони",
"database": "База даних",
"databaseConnected": "Підключено",
"databaseDown": "вниз",
"usersByRank": "Користувачі за рангом",
"noAccountsToBreakDown": "Ще немає облікових записів для розбиття",
"rankLabel": "Рейтинг {rank}",
"rankWithCount": "Рейтинг {rank}: {count} облікових записів",
"recentStaffActivity": "Остання діяльність персоналу",
"viewAll": "Переглянути всі",
"noStaffActivityLogged": "Дії персоналу ще не зареєстровано",
"totalAccounts": "{count} total accounts"
},
"articles": {
"title": "статті",
"subtitle": "Новинні статті — 50 останніх",
"newArticle": "+ Нова стаття",
"edit": "Редагувати",
"delete": "Видалити",
"noArticles": "Ще немає статей",
"confirmDelete": "Ви впевнені, що хочете видалити \"{title}\"?",
"colTitle": "Назва",
"colSlug": "Слимак",
"colAuthor": "Автор",
"colCreated": "Створено",
"colActions": "Дії",
"form": {
"title": "Назва",
"titlePlaceholder": "Назва статті",
"slug": "Слимак",
"slugPlaceholder": "URL-адреса статті",
"category": "Категорія",
"categoryPlaceholder": "Виберіть категорію",
"body": "Тіло",
"bodyPlaceholder": "Напишіть зміст статті…",
"image": "Зображення",
"imagePlaceholder": "https://example.com/image.png",
"thumbnail": "Мініатюра",
"thumbnailPlaceholder": "https://example.com/thumb.png",
"published": "Опубліковано",
"featured": "Рекомендовані",
"save": "Зберегти статтю",
"saving": "Збереження…",
"deleteArticle": "Видалити статтю",
"deleteConfirm": "Цю дію не можна скасувати. Стаття буде видалена назавжди.",
"cancel": "Скасувати",
"autosaveLoading": "Loading saved drafts…",
"autosaveReady": "Private draft autosave is ready.",
"autosaveSaving": "Saving private draft…",
"autosaveSaved": "Private draft saved. Publication changes require Save.",
"autosaveFailed": "Draft recovery is unavailable. Keep this page open and use Save; reload to retry recovery.",
"autosaveConflict": "Another tab changed this draft. Autosave is paused: reload to review the newer draft before continuing.",
"recoveryFound": "An unfinished private draft is available. Recover or discard it to enable autosave.",
"recoverDraft": "Recover draft",
"discardDraft": "Discard saved draft",
"confirmRecovery": "Replace the current editor content with this recovered draft? It will remain unpublished until you save.",
"confirmDiscardDraft": "Permanently discard your saved recovery draft? The current editor content will remain.",
"revisionHistory": "Previous saved versions (latest 20)",
"restoreRevision": "Restore into editor",
"confirmRevision": "Replace the current editor content with this previous version as a draft? Review it and choose a publication status before saving.",
"editConflict": "This article changed after you opened it. Your changes were not applied. Copy your work, reload the article, and merge the changes before saving again.",
"retryRecovery": "Reload recovery without changing this form",
"status": "Status",
"statusDraft": "Draft",
"statusScheduled": "Scheduled",
"statusPublished": "Published",
"publishAt": "Publish at",
"publishedAt": "Published at",
"titleRequired": "Enter a title.",
"titleTooLong": "The title must be at most 255 characters.",
"summaryTooLong": "The summary must be at most 255 characters.",
"imageTooLong": "The image URL must be at most 255 characters.",
"invalidStatus": "Select a valid publication status.",
"publishDateRequired": "Choose a valid publication date.",
"saveFailedReference": "Could not save the article. Your content is preserved. Error reference: {reference}",
"articleNotFound": "Article not found.",
"summary": "Summary",
"imageNotFound": "Image not found. Enter a valid URL or browse.",
"imagePreview": "Article image preview",
"previewTitle": "Article preview",
"previewDescription": "Content preview. The published page applies the site theme.",
"previewFrame": "Article content preview",
"imageInvalid": "Use a local image path or an HTTP/HTTPS image URL without credentials.",
"linksInvalid": "Review the content links: only local, HTTP/HTTPS and email links are allowed."
},
"listActionError": "The article action could not be completed.",
"listStatus": "Publication status",
"listStatus_all": "All articles",
"listStatus_draft": "Draft",
"listStatus_published": "Published",
"listStatus_scheduled": "Scheduled",
"listSearch": "Search title or summary",
"listApply": "Apply",
"listLoading": "Loading…",
"listReset": "Reset filters",
"listUnavailable": "Articles are temporarily unavailable. Try again.",
"listRetry": "Try again",
"listTotal": "{count, plural, one {# matching article} other {# matching articles}}",
"listNoMatches": "No articles match these filters. Change the search or reset the filters.",
"listPagination": "Article pages",
"listPrevious": "Previous",
"listNext": "Next",
"listPage": "Page {page} of {total}",
"articlesShown": "Articles shown",
"latest": "Latest article",
"mostRecentPost": "Most recent publication",
"recentArticles": "Recent articles"
},
"tags": {
"title": "Теги",
"subtitle": "Теги / категорії статті",
"addTag": "Додати тег",
"name": "Ім'я",
"namePlaceholder": "Назва тега",
"backgroundColour": "Колір фону",
"createTag": "Створити тег",
"editTag": "Редагувати тег",
"updateTag": "Оновити тег",
"deleteTag": "Видалити тег",
"confirmDelete": "Видалити \"{name}\"?",
"noTags": "Тегів ще немає",
"colId": "ID",
"colTag": "Тег",
"colColour": "колір",
"colUsedBy": "Використовується",
"colCreated": "Створено",
"colActions": "Дії",
"databaseError": "Tags could not be loaded. Please try again.",
"totalTags": "Total tags",
"inUse": "In use",
"attachedToContent": "Attached to content",
"unused": "Unused",
"allTags": "All tags"
},
"navigation": {
"title": "Навігатор",
"flatCategories": "Плоскі категорії",
"publicRooms": "Громадські кімнати",
"addCategory": "Додати категорію",
"editCategory": "Редагувати категорію",
"deleteCategory": "Видалити категорію",
"categoryName": "Назва категорії",
"categoryNamePlaceholder": "напр. Відпочинок і чат",
"categoryOrder": "порядок",
"roomName": "Назва кімнати",
"roomNamePlaceholder": "напр. Привітальний лаунж",
"roomId": "ID кімнати",
"roomIdPlaceholder": "Числовий ідентифікатор кімнати",
"save": "зберегти",
"cancel": "Скасувати",
"noCategories": "Ще немає категорій",
"noPublicRooms": "Громадських кімнат ще немає",
"colId": "ID",
"colName": "Ім'я",
"colOrder": "порядок",
"colRooms": "Кімнати",
"colActions": "Дії",
"publicFlatcats": "Public room categories",
"markedPublic": "Categories marked as public",
"visibleRooms": "Visible rooms",
"rows": "rows",
"unnamed": "Unnamed room"
},
"helpCenter": {
"title": "Довідковий центр",
"subtitle": "Записи підтримки та керування поширеними запитаннями",
"entries": "Записи",
"newEntry": "+ Новий запис",
"edit": "Редагувати",
"delete": "Видалити",
"noEntries": "Записів ще немає",
"confirmDelete": "Видалити \"{title}\"?",
"colId": "ID",
"colTitle": "Назва",
"colCategory": "Категорія",
"colCreated": "Створено",
"colActions": "Дії",
"form": {
"title": "Назва",
"titlePlaceholder": "Заголовок запису",
"category": "Категорія",
"categoryPlaceholder": "Виберіть категорію",
"body": "Тіло",
"bodyPlaceholder": "Напишіть відповідь…",
"save": "Зберегти запис",
"saving": "Збереження…",
"deleteEntry": "Видалити запис",
"cancel": "Скасувати"
},
"withButton": "With a button",
"smallBoxes": "Small boxes"
},
"ads": {
"title": "Оголошення",
"subtitle": "Керуйте рекламою готелів і рекламними банерами",
"newAd": "+ Нове оголошення",
"edit": "Редагувати",
"delete": "Видалити",
"noAds": "Реклами ще немає",
"confirmDelete": "Видалити це оголошення?",
"colId": "ID",
"colName": "Ім'я",
"colImage": "Зображення",
"colUrl": "URL",
"colViews": "Перегляди",
"colStatus": "Статус",
"colCreated": "Створено",
"colActions": "Дії",
"form": {
"name": "Ім'я",
"namePlaceholder": "Назва оголошення",
"image": "URL зображення",
"imagePlaceholder": "https://example.com/banner.png",
"url": "Цільова URL-адреса",
"urlPlaceholder": "https://example.com",
"enabled": "Увімкнено",
"save": "Зберегти оголошення",
"saving": "Збереження…",
"deleteAd": "Видалити оголошення",
"cancel": "Скасувати"
},
"deleteSuccess": "Advertisement deleted!",
"deleteError": "Failed to delete advertisement.",
"adsCount": "Total ads",
"latest": "Latest",
"mostRecentAd": "Most recent ad",
"allAds": "All advertisements",
"colPreview": "Preview"
},
"writeableBoxes": {
"title": "Коробки для запису",
"subtitle": "Панелі вмісту, що відображаються в готелі та CMS",
"newBox": "Нова коробка",
"edit": "Редагувати",
"delete": "Видалити",
"noBoxes": "Ящиків для запису ще немає",
"confirmDelete": "Видалити це поле?",
"colId": "ID",
"colName": "Ім'я",
"colLocation": "Розташування",
"colUpdated": "Оновлено",
"colActions": "Дії",
"form": {
"name": "Ім'я",
"namePlaceholder": "Назва ящика",
"location": "Розташування",
"locationPlaceholder": "напр. домашня сторінка, бічна панель",
"content": "Зміст",
"contentPlaceholder": "Напишіть вміст коробки…",
"enabled": "Увімкнено",
"save": "Скринька збереження",
"saving": "Збереження…",
"deleteBox": "Видалити поле",
"cancel": "Скасувати",
"iconEmoji": "Icon or emoji"
},
"totalBoxes": "Total boxes",
"active": "Active",
"shownOnHomePage": "Shown on the home page",
"position": "Position",
"boxes": "Content boxes",
"hidden": "Hidden",
"hide": "Hide",
"activate": "Activate"
},
"photos": {
"title": "Модерація фото",
"subtitle": "Останні фотографії камери в грі",
"delete": "Видалити",
"approve": "Затвердити",
"noPhotos": "Немає фотографій для модерації",
"confirmDelete": "Видалити це фото назавжди?",
"colId": "ID",
"colPreview": "Попередній перегляд",
"colUser": "Користувач",
"colRoom": "Кімната",
"colTimestamp": "Мітка часу",
"colActions": "Дії",
"photoAlt": "Фото користувача #{id}",
"byUser": "від {username}",
"photosShown": "Shown",
"rooms": "Rooms",
"users": "Users",
"distinctRooms": "Distinct rooms on this page",
"distinctPhotographers": "Distinct photographers on this page",
"total": "Total photos",
"recentPhotos": "Recent photos",
"pageOf": "Page {page} of {last} · {total} total",
"purgeHint": "Delete removes the database row and best-effort deletes a matching file under /public. External CDN URLs are not purged."
},
"users": {
"title": "Користувачі",
"subtitle": "Переглядайте, шукайте та керуйте обліковими записами готелів",
"search": "Пошук",
"searchPlaceholder": "Пошук за іменем користувача, електронною поштою чи ідентифікатором…",
"searchResults": "{count, plural, one {# result} other {# results}} for \"{query}\"",
"noResults": "Користувачів не знайдено",
"colId": "ID",
"colUsername": "Ім'я користувача",
"colEmail": "Електронна пошта",
"colRank": "ранг",
"colOnline": "Онлайн",
"colRegistered": "Зареєстрований",
"colLastOnline": "Останній онлайн",
"colActions": "Дії",
"yes": "так",
"no": "немає",
"edit": "Редагувати",
"setRank": "Встановити ранг",
"disconnect": "Відключити",
"alert": "Попередження",
"ban": "Забанити",
"detail": {
"title": "Користувач: {username}",
"subtitle": "Деталі облікового запису та управління",
"overview": "Огляд",
"actions": "Дії",
"username": "Ім'я користувача",
"email": "Електронна пошта",
"motto": "Девіз",
"rank": "ранг",
"credits": "Кредити",
"duckets": "Качки",
"diamonds": "Діаманти",
"online": "Онлайн",
"registered": "Зареєстрований",
"lastOnline": "Останній онлайн",
"ipAddress": "IP адреса",
"machineId": "ID машини",
"sendAlert": "Надіслати сповіщення",
"sendMessage": "Надіслати повідомлення",
"disconnectUser": "Відключити користувача",
"banUser": "Забанити користувача",
"resetPassword": "Скинути пароль",
"deleteUser": "Видалити користувача",
"confirmDelete": "Ви впевнені, що хочете видалити {username}? Це неможливо скасувати.",
"tabInfo": "Account Info",
"tabBadges": "Badges ({count})",
"tabRooms": "Rooms ({count})",
"tabSanctions": "Sanctions ({count})",
"tabActivity": "Activity"
},
"editForm": {
"title": "Редагувати користувача: {username}",
"subtitle": "Змінити дані облікового запису",
"username": "Ім'я користувача",
"usernamePlaceholder": "Ім'я користувача",
"email": "Електронна пошта",
"emailPlaceholder": "[email protected]",
"motto": "Девіз",
"mottoPlaceholder": "Девіз користувача",
"rank": "ранг",
"credits": "Кредити",
"duckets": "Качки",
"diamonds": "Діаманти",
"save": "Зберегти зміни",
"saving": "Збереження…",
"cancel": "Скасувати"
},
"presentation": {
"users": "Users",
"edit": "Edit",
"view": "View",
"rank": "Rank {rank}",
"online": "Online",
"offline": "Offline",
"banned": "Banned",
"credits": "credits",
"diamonds": "diamonds",
"duckets": "duckets",
"pixels": "pixels",
"rooms": "Rooms",
"messages": "Messages",
"trades": "Trades",
"accountDetails": "Account details",
"registered": "Registered",
"lastLogin": "Last login",
"ipRegister": "Registration IP",
"ipCurrent": "Current IP",
"machineId": "Device ID",
"email": "Email",
"gender": "Gender",
"never": "Never",
"findIp": "Find users with this IP",
"enabled": "Enabled",
"disabled": "Disabled",
"unavailable": "Not available",
"noBadges": "No badges assigned"
},
"create": {
"newUser": "New user",
"title": "Create user",
"description": "Creates the account immediately with a default avatar and 5,000 credits, pixels, duckets and diamonds.",
"username": "Username",
"email": "Email",
"password": "Password",
"rank": "Rank",
"rankOption": "Rank {rank}",
"motto": "Motto (optional)",
"usernamePlaceholder": "NewHabbo",
"passwordPlaceholder": "At least 6 characters",
"mottoPlaceholder": "I'm new here!",
"generate": "Generate",
"passwordGenerated": "Password generated in the password field.",
"required": "Username, email and password are required.",
"invalidUsername": "Use 3–20 characters: letters, numbers, _ or -.",
"passwordLength": "The password must contain at least 6 characters.",
"created": "User {username} created."
},
"overview": {
"title": "Overview",
"hint": "Up to 5 recent records per source. Only sections you can access are shown.",
"restricted": "You do not have permission to view operational records.",
"sanctions": "Recent bans",
"mute": "Active mute",
"tickets": "Support tickets",
"help": "Help center requests",
"reports": "In-game reports",
"transactions": "Payments",
"purchases": "Catalog purchases",
"activity": "Recorded staff actions",
"openModule": "Open management",
"purchaseHint": "Recorded quantities and currency costs.",
"purchaseDetail": "Quantity: {amount} · Credits: {credits} · Points: {points} (type {type})",
"activityHint": "Staff audit entries targeting this account. This is not a complete history of player activity.",
"muteUntil": "Muted until {date}",
"error": "This source could not be loaded. Refresh the page to try again.",
"empty": "No records found.",
"status": {
"active": "Active",
"expired": "Expired",
"open": "Open",
"closed": "Closed",
"reported": "Reported user",
"reporter": "Reporter"
}
}
},
"bans": {
"title": "Заборони",
"subtitle": "Керуйте блокуванням облікових записів, IP-адрес і машин",
"newBan": "Нова заборона",
"edit": "Редагувати",
"delete": "Видалити",
"noBans": "Заборон ще немає",
"confirmDelete": "Зняти цю заборону?",
"colId": "ID",
"colValue": "Значення",
"colType": "Тип",
"colReason": "Причина",
"colBannedBy": "Заборонено",
"colExpires": "Термін дії закінчується",
"colCreated": "Створено",
"colActions": "Дії",
"form": {
"value": "Значення",
"valuePlaceholder": "Ім’я користувача, IP-адреса або ідентифікатор машини",
"type": "Тип",
"typeUser": "Користувач",
"typeIp": "IP",
"typeMachine": "машина",
"reason": "Причина",
"reasonPlaceholder": "Причина заборони",
"expiresAt": "Термін дії закінчується о",
"permanent": "Постійний",
"save": "Зберегти бан",
"saving": "Збереження…",
"cancel": "Скасувати"
},
"activeBans": "Active bans",
"permanent": "Permanent bans",
"accountBans": "Account bans",
"userIdPlaceholder": "User ID",
"typeAccount": "Account",
"typeIp": "IP address",
"typeMachine": "Device",
"typeSuper": "Account, IP and device",
"hoursPlaceholder": "Duration in hours",
"reasonPlaceholder": "Reason for the ban",
"ban": "Ban user",
"colUserId": "User ID",
"lift": "Lift ban"
},
"ip": {
"title": "Управління IP",
"subtitle": "Керуйте білим і чорним списками IP-адрес",
"whitelist": "Білий список",
"blacklist": "Чорний список",
"addIp": "Додайте IP",
"ipAddress": "IP адреса",
"ipAddressPlaceholder": "напр. 127.0.0.1",
"reason": "Причина",
"reasonPlaceholder": "Причина переліку",
"add": "додати",
"remove": "видалити",
"confirmRemove": "Видалити цю IP-адресу зі списку {list}?",
"noWhitelistedIps": "Немає IP-адрес у білому списку",
"noBlacklistedIps": "Немає IP-адрес у чорному списку",
"colIp": "IP",
"colReason": "Причина",
"colAdded": "Додано",
"colActions": "Дії",
"whitelisted": "Allowed IP addresses",
"blacklisted": "Blocked IP addresses",
"asnPlaceholder": "ASN (optional)",
"colAsn": "ASN"
},
"vpn": {
"title": "Виявлення VPN/проксі",
"subtitle": "Налаштуйте параметри виявлення VPN і проксі",
"enabled": "Увімкнено",
"apiKey": "Ключ API",
"apiKeyPlaceholder": "Ваш ключ API виявлення VPN",
"apiKeyHint": "Залиште пустим, щоб вимкнути",
"blockOnDetect": "Блокувати при виявленні",
"blockOnDetectHint": "Автоматично блокуйте користувачів, виявлених за VPN або проксі",
"save": "Зберегти налаштування",
"saving": "Збереження…",
"settingsSaved": "Налаштування VPN успішно збережено",
"protection": "VPN protection",
"on": "Enabled",
"off": "Disabled",
"providerLabel": "Provider: {provider}",
"notScreened": "Connections are not checked for VPN use.",
"settings": "VPN settings",
"provider": "Provider",
"providerHint": "Choose the service used to check incoming connections.",
"blockMessage": "Blocked connection message",
"blockMessagePlaceholder": "Please disable your VPN and try again.",
"blockMessageHint": "Shown when a connection is blocked by VPN protection.",
"rawIpTitle": "IP address lists",
"rawIpDescription": "Manage individual addresses in <ipLink>IP management</ipLink>.",
"openIpManagement": "Open IP management"
},
"applications": {
"title": "Заявки на персонал",
"subtitle": "Очікують на розгляд та розглянуті заявки персоналу",
"pending": "В очікуванні",
"approved": "Затверджено",
"rejected": "Відхилено",
"noApplications": "Заявок ще немає",
"colId": "ID",
"colApplicant": "Заявник",
"colPosition": "Позиція",
"colStatus": "Статус",
"colSubmitted": "Надіслано",
"colActions": "Дії",
"review": "огляд",
"approve": "Затвердити",
"reject": "Відхиляти",
"confirmApprove": "Затвердити {username} на {position}?",
"confirmReject": "Відхилити заявку {username} на {position}?",
"detail": {
"title": "Заява від {username}",
"subtitle": "Для {position}",
"about": "Про заявника",
"message": "Повідомлення програми",
"status": "Статус",
"submitted": "Надіслано",
"noMessage": "Повідомлення не надано"
},
"applicationsTitle": "Applications ({count})",
"userNumber": "User #{id}",
"rankLabel": "Rank {rank}"
},
"teams": {
"title": "Команди",
"subtitle": "Визначте імена та описи співробітників",
"addRank": "Додайте ранг",
"editRank": "Редагувати рейтинг",
"deleteRank": "Видалити ранг",
"noTeams": "Ще немає визначень рангу",
"confirmDelete": "Видалити визначення рангу {id}?",
"colId": "ID",
"colRank": "ранг",
"colName": "Ім'я",
"colBadge": "Бейдж",
"colColour": "колір",
"colActions": "Дії",
"form": {
"rankId": "Ідентифікатор рангу",
"rankIdPlaceholder": "Числовий ідентифікатор рангу",
"name": "Ім'я",
"namePlaceholder": "напр. Адміністратор",
"badge": "Код значка",
"badgePlaceholder": "напр. ADM001",
"colour": "колір",
"colourPlaceholder": "напр. #ff0000",
"save": "Зберегти визначення команди",
"saving": "Збереження…",
"cancel": "Скасувати"
},
"teamRanks": "Staff ranks",
"visible": "Visible",
"hidden": "Hidden",
"newTeamRank": "New staff rank",
"rankName": "Rank name",
"rankNamePlaceholder": "For example: Moderator",
"badgeCode": "Badge code",
"badgeCodePlaceholder": "For example: ADM",
"jobDescription": "Job description",
"jobDescriptionPlaceholder": "Describe this staff role",
"staffColor": "Staff colour",
"staffColorPlaceholder": "For example: #3366cc",
"hiddenRank": "Hide from the staff page",
"createTeam": "Create staff rank",
"ranksTitle": "Staff ranks ({count})",
"badge": "Badge",
"color": "Colour",
"visibility": "Visibility",
"delete": "Delete"
},
"permissions": {
"title": "Дозволи",
"subtitle": "Керуйте дозволами на основі рангу для панелі адміністратора",
"addPermission": "Додайте дозвіл",
"editPermission": "Дозвіл на редагування",
"deletePermission": "Видалити дозвіл",
"noPermissions": "Дозволи ще не налаштовано",
"confirmDelete": "Видалити цей дозвіл?",
"colId": "ID",
"colRank": "ранг",
"colPermission": "Дозвіл",
"colCreated": "Створено",
"colActions": "Дії",
"form": {
"rankId": "Ідентифікатор рангу",
"rankIdPlaceholder": "Необхідний мінімальний ранг",
"permission": "Ключ дозволу",
"permissionPlaceholder": "напр. admin.articles.manage",
"save": "Зберегти дозвіл",
"saving": "Збереження…",
"cancel": "Скасувати"
}
},
"catalog": {
"title": "Каталог",
"subtitle": "Переглядайте та керуйте сторінками та елементами каталогу",
"pages": "сторінки",
"items": "Предмети",
"addPage": "Додати сторінку",
"editPage": "Редагувати сторінку",
"deletePage": "Видалити сторінку",
"addItem": "Додати товар",
"editItem": "Редагувати елемент",
"deleteItem": "Видалити елемент",
"noPages": "Сторінок каталогу ще немає",
"noItems": "На цій сторінці немає елементів",
"confirmDeletePage": "Видалити сторінку каталогу \"{name}\"?",
"confirmDeleteItem": "Видалити цей елемент?",
"colId": "ID",
"colName": "Ім'я",
"colIcon": "значок",
"colOrder": "порядок",
"colItems": "Предмети",
"colEnabled": "Увімкнено",
"colActions": "Дії",
"colItemId": "ID товару",
"colItemName": "Назва предмета",
"colCostCredits": "Вартість (кредити)",
"colCostPoints": "Вартість (бали)",
"colLimited": "Обмежений",
"pageForm": {
"name": "Ім'я",
"namePlaceholder": "Назва сторінки",
"icon": "Ідентифікатор значка",
"iconPlaceholder": "Ідентифікатор цифрового значка",
"order": "порядок",
"enabled": "Увімкнено",
"parent": "Батьківська сторінка",
"parentNone": "Немає (корінь)",
"save": "Зберегти сторінку",
"saving": "Збереження…",
"cancel": "Скасувати"
},
"itemForm": {
"itemId": "ID товару",
"itemName": "Назва предмета",
"costCredits": "Вартість в кредитах",
"costDuckets": "Вартість у качанах",
"costDiamonds": "Вартість в алмазах",
"limitedStack": "Обмежений розмір стопки",
"limitedSold": "Продано обмежено",
"save": "Зберегти товар",
"saving": "Збереження…",
"cancel": "Скасувати"
},
"packages": {
"openPackages": "Catalog packages",
"title": "Catalog packages",
"description": "Prepare category and price changes in a separate draft. Review the catalog before publishing.",
"createPackage": "New package",
"createDraft": "Create draft",
"draftCreated": "Package draft created. The live catalog has not changed.",
"refresh": "Refresh list",
"searchPackages": "Search packages",
"noPackages": "No packages match this search.",
"choosePackage": "Open a package or create a draft from existing categories.",
"name": "Package name",
"mode": "Publication mode",
"update": "Update existing categories",
"copy": "Create copies",
"updateHint": "Publication applies the package to its existing categories and offers.",
"copyHint": "Publication creates new categories and offers under the selected parent. Furniture references are preserved.",
"sourceCategories": "Source categories",
"packageLimits": "Descendant categories are included. Each package supports up to 200 categories and 500 offers.",
"searchCategories": "Search categories",
"selectedCategories": "Selected: {count}",
"targetParent": "Destination parent category",
"rootCategory": "Catalog root",
"draft": "Draft",
"published": "Published",
"editDraft": "Edit draft",
"catalogPreview": "Catalog preview",
"showBaseline": "Show the original saved snapshot",
"changes": "Before and after",
"entry": "Entry",
"field": "Field",
"before": "Before",
"after": "After",
"noChanges": "No edited fields compared with the original snapshot.",
"copyReview": "The entire package will be copied on publication, even if no fields were edited. The table lists edits to the original snapshot.",
"updateReview": "These draft changes will update existing catalog entries after publication.",
"saveDraft": "Save draft",
"saveHint": "Saving keeps the package as a draft. Save all changes before requesting a publication review.",
"draftSaved": "Draft saved. Publication is a separate step.",
"reviewPublication": "Review publication",
"publicationImpact": "Publication affects {pages} categories and {offers} offers.",
"conflicts": "Publication is blocked by conflicts. Resolve them before requesting another review.",
"readyToPublish": "The saved version passed the publication check. Publishing changes the live catalog.",
"publish": "Publish package",
"confirmPublish": "Publish this reviewed package to the live catalog now?",
"publishedSuccess": "Package published: {pages} categories and {offers} offers.",
"staleReview": "This package changed in another session. Reopen it to review the latest saved version.",
"unsaved": "Unsaved changes",
"discardChanges": "Discard unsaved package changes and continue?",
"working": "Working…",
"requestFailed": "The request failed. Try again.",
"invalidFields": "Check required names, layouts and whole-number fields before saving.",
"category": "Category",
"caption": "Category caption",
"iconImage": "Category icon ID",
"minRank": "Minimum rank",
"orderNum": "Display order",
"pageLayout": "Page layout",
"enabled": "Enabled",
"visible": "Visible",
"clubOnly": "Club members only",
"vipOnly": "VIP members only",
"offers": "Offers ({count})",
"offer": "Offer",
"catalogName": "Offer name",
"costCredits": "Credits",
"costPoints": "Points",
"pointsType": "Points currency ID",
"amount": "Amount",
"searchOffers": "Search offers",
"currentCategoryOffers": "Only the selected category",
"selectMatching": "Select all matching offers ({count})",
"clearSelection": "Clear selection",
"selectedOffers": "Selected offers: {count}",
"select": "Select",
"selectOffer": "Select offer #{id}",
"noOffers": "No offers match these filters.",
"bulkPrices": "Bulk draft prices ({count} selected)",
"bulkHint": "Preview the selected price changes, then accept them into this draft. The live catalog remains unchanged until publication.",
"operation": "Operation",
"set": "Set value",
"add": "Add or subtract",
"percent": "Adjust by percent",
"value": "Value",
"reviewBulk": "Preview prices",
"invalidBulk": "Choose valid numbers and at least one offer. Resulting prices must be nonnegative and within the supported range.",
"acceptBulk": "Accept prices into draft",
"previous": "Previous",
"next": "Next"
},
"integrity": {
"title": "Catalog integrity",
"description": "Check references, category paths, identifiers and furniture icons. Scanning does not change records.",
"catalog": "Catalog",
"normal": "Normal catalog",
"bc": "Builders Club",
"refresh": "Scan again",
"working": "Checking…",
"failed": "The operation could not be completed. Try again.",
"stalePreview": "The catalog changed after the preview. Create a new preview before applying repairs.",
"applied": "{count} categories reattached to the catalog root.",
"iconsUnavailable": "The icon folder could not be read. Icon availability has not been verified.",
"healthy": "No issues found in the completed checks.",
"total": "{count} issues found. Showing {shown}.",
"open": "Open",
"reference": "Reference: {value}",
"repairHint": "Preview categories whose parent no longer exists. Applying moves only these categories to the root and preserves every record. Cycles, missing furniture, icons and identifier conflicts require individual review.",
"preview": "Preview safe repairs",
"planned": "{count} categories will be moved:",
"parentChange": "parent #{from} → catalog root",
"apply": "Apply previewed repairs",
"legacyTitle": "Advanced maintenance actions",
"legacyHint": "These existing maintenance tools can rewrite identifiers and merge or remove duplicate records. They are separate from the non-destructive integrity check and its previewed parent repair.",
"issues": {
"missing_furniture": "Offer references missing furniture",
"invalid_item_ids": "Invalid furniture identifiers",
"missing_page": "Offer references a missing category",
"unreachable_page": "Unreachable category",
"category_cycle": "Category path contains a cycle",
"missing_icon": "Missing furniture icon",
"invalid_offer_id": "Invalid offer identifier",
"duplicate_offer_id": "Repeated offer identifier"
}
},
"bulk": {
"undo": "Undo",
"undoHint": "You can also restore individual offers from audit history.",
"undoSuccess": "Restored {count} offers.",
"previewCount": "{count} of {total} offers will change.",
"success": "Updated {count} offers.",
"selectOffer": "Select offer {name} (#{id})",
"pageEmpty": "No category found.",
"clearSelection": "Clear selection",
"disabledReason": "Save or reset pending edits and wait for current operations before bulk editing.",
"operation": "Operation",
"loadingDestinations": "Loading categories…",
"cancel": "Cancel",
"pagePlaceholder": "Select destination category…",
"noChanges": "The selected values already match. No changes to save.",
"costPoints": "Points price",
"chooseFields": "Check at least one field to change.",
"pageAll": "All categories",
"offer": "Offer",
"costCredits": "Credits",
"invalidPrice": "Enter a valid number. Set and add operations require whole numbers.",
"modes": {
"set": "Set to value",
"add": "Add or subtract",
"percent": "Change by percentage"
},
"fieldHint": "Only checked fields will change.",
"currencies": {
"0": "Duckets",
"5": "Diamonds",
"101": "Snowflakes",
"103": "Hearts",
"104": "Stars",
"105": "Shells"
},
"currency": "Points currency",
"button": "Bulk edit ({count})",
"description": "{count} selected offers. Preview changes before saving.",
"confirm": "Confirm and save {count} offers",
"beforeAfter": "Each cell shows the current value → the new value.",
"requestFailed": "The request failed. Refresh the preview before trying again.",
"priceHint": "Use negative additions or percentages to reduce prices. Percentage results round to the nearest integer; final prices cannot be negative.",
"selectedCount": "{count} offers selected across categories",
"value": "Value",
"unknownCurrency": "Type {type}",
"becomes": "becomes",
"title": "Edit selected offers",
"preview": "Preview changes",
"retryDestinations": "Retry loading categories",
"chooseDestination": "Select a destination category.",
"pageSuggested": "Suggested",
"previewTitle": "Review bulk changes",
"visibilityHint": "Visibility is controlled by the category. Moving offers makes them follow the destination category's visibility.",
"percentage": "Percentage (%)",
"destination": "Destination category",
"pageSearch": "Search categories…",
"back": "Edit changes",
"selectionLimit": "Select at most 500 offers for one operation.",
"refreshing": "Refreshing updated offers…"
},
"workspace": {
"diagnostics": "Diagnostics",
"editor": "Editor",
"normal": "Catalog",
"tree": "Tree",
"table": "Table",
"manager": "Catalog manager",
"backToCategories": "Back to categories",
"retryPage": "Retry loading page",
"retryItems": "Retry loading items",
"hotel": "Hotel",
"sent": "Update request sent",
"sendFailed": "Update request failed",
"unknown": "No status yet",
"disabled": "Not configured",
"exportFailed": "Export failed",
"queued": "Export pending",
"exported": "Export completed",
"retryHotel": "Retry hotel update",
"retryStatus": "Status unavailable — retry",
"saved": "Saved",
"globalSearch": "Search catalog",
"searchPlaceholder": "Category, offer, classname or ID",
"searchNoResults": "No results found",
"searchFailed": "Search failed. Try again.",
"searching": "Searching...",
"category": "Category",
"offer": "Offer",
"duplicate": {
"title": "Duplicate category",
"description": "Copy this category, every descendant and all their offers.",
"name": "New category name",
"destination": "Destination category",
"disabled": "The copied root starts disabled and hidden. Descendants keep their settings; furniture definitions and assets are shared.",
"counts": "{pages} categories and {offers} offers",
"summary": "“{name}” under {destination}",
"cancel": "Cancel",
"working": "Working…",
"confirm": "Confirm duplication",
"preview": "Preview copy",
"saved": "Category and offers duplicated",
"savedPending": "Copy saved; hotel update pending",
"failed": "Duplication failed",
"root": "Catalog root",
"search": "Search categories…",
"empty": "No category found",
"suggested": "Suggested",
"all": "All categories",
"draftBlocked": "Save or discard category edits before duplicating."
},
"unsaved": "Unsaved changes",
"fullEditor": "Full editor",
"saveHint": "Category changes are not saved. Use Save or Ctrl+S.",
"access": {
"enabled": "Enabled",
"enabledHint": "Makes this category available in the catalog.",
"visible": "Visible in navigation",
"visibleHint": "Shows this category in the catalog menu.",
"club": "HC only",
"clubHint": "Restricts access to users with an HC subscription.",
"yes": "Yes",
"no": "No"
},
"preview": {
"label": "Live catalog preview",
"title": "Live preview",
"on": "On",
"off": "Off",
"untitled": "Untitled page",
"noItems": "No offers on this page yet",
"items": "offer(s)",
"disabledHint": "This page is disabled — players cannot see it.",
"suggestedLayout": "Better layout suggested",
"suggestedLayoutReason": "This page {reason}. Switch to “{layout}” to match players’ expectations.",
"applyLayout": "Apply layout"
},
"autoCategory": {
"title": "Auto-Category",
"itemsBadge": "{count} items",
"fromFurni": "From furni",
"emptyPage": "Empty page",
"searchPlaceholder": "Search furni by name or classname…",
"noResults": "No results",
"added": "Added",
"price": "Price",
"free": "Free",
"setPrice": "Set a price",
"credits": "Credits",
"points": "Points",
"pointsType": "Type",
"parent": "Parent",
"root": "Catalog root",
"caption": "Caption",
"captionPlaceholder": "e.g. Chairs, Wallpapers…",
"icon": "Icon",
"pickIcon": "Pick icon",
"layout": "Layout",
"suggestedLayout": "Suggested: {layout}",
"enabled": "Enabled",
"visible": "Visible",
"cancel": "Cancel",
"create": "Create",
"createWithItems": "Create ({count} items)"
},
"organizeImports": {
"title": "Organize imports",
"itemsBadge": "{count} items",
"loading": "Loading imported furniture…",
"empty": "No imported furniture found. Import furniture first.",
"loadError": "Could not load imports. Try again.",
"refresh": "Refresh",
"desc": "Imported furniture is grouped into suggested pages. Review each group, then create the pages you approve.",
"selectAll": "Select all",
"deselectAll": "Deselect all",
"mode": "Mode",
"modeCreate": "Create new pages",
"modeMove": "Move into an existing page",
"destination": "Destination page",
"destinationChosen": "selected",
"destinationSearchPlaceholder": "Search pages by name…",
"noDestResults": "No pages found",
"destinationHint": "All approved groups are moved into this page — no new page is created.",
"chooseDestination": "Pick a destination page first",
"move": "Move {count, plural, one {1 item} other {# items}}",
"name": "Name",
"icon": "Icon",
"layout": "Layout",
"resetSuggestion": "Suggested",
"suggestedLayout": "Suggested: {layout}",
"movedLabel": "{count} moved",
"newLabel": "{count} new",
"isNew": "new",
"price": "Price",
"free": "Free",
"setPrice": "Set a price",
"credits": "Credits",
"points": "Points",
"pointsType": "Type",
"newPriceHint": "Applies to new offers only; moved offers keep their current price.",
"parent": "Place pages under",
"root": "Catalog root",
"importedRoot": "Imported Furniture",
"cancel": "Cancel",
"create": "Create {count, plural, one {1 page} other {# pages}}",
"batchLayout": "Set layout for all",
"batchPrefix": "Add prefix to all titles",
"applyBatch": "Apply to all",
"searchGroups": "Filter import groups...",
"visualPreview": "Preview",
"resetAll": "Reset overrides",
"onlyUnplaced": "Only show unplaced items",
"errorMaxItems": "Max 1000 items per run. Reduce selection.",
"errorMaxGroups": "Max {count} groups per run. Reduce selection.",
"errorNoName": "Every approved page needs a name",
"tipMove": "Tip: Pick a destination page below to move furniture.",
"tipCreate": "Tip: Pick this mode to create new pages.",
"limitHint": "Max 1000 items and 50 groups per run.",
"errorFailed": "Failed to organize imports",
"successMove": "Moved {moved} offer{moved, plural, one {} other {s}}{added, plural, =0 {} other {, added {added} new}} to \"{destination}\"",
"successCreate": "Created {count, plural, one {1 page} other {# pages}} with {moved} moved and {added} added furniture",
"batchLabel": "Batch:",
"layoutFallbackDefault3x3": "3x3",
"itemsUnit": "items",
"impPrefix": "Imp ",
"isMoved": "moved"
}
},
"discovery": {
"searchPlaceholder": "Name, classname, furniture ID or #offer ID…",
"filterLabel": "Filter offers",
"filters": {
"all": "All offers",
"free": "Free",
"paid": "Paid",
"bundles": "Bundles",
"limited": "Limited editions"
},
"shown": "({count} shown)",
"selected": "{count} selected",
"reset": "Reset filters",
"results": "Showing {count} of {total} offers.",
"selectionHint": "Changing the search or filter clears the selection.",
"noResults": "No offers match the current search and filter.",
"selectVisible": "Select all visible offers"
}
},
"shop": {
"title": "Магазин",
"subtitle": "Керуйте пакетами та замовленнями",
"packages": "пакети",
"orders": "Замовлення",
"newPackage": "+ Новий пакет",
"edit": "Редагувати",
"delete": "Видалити",
"viewOrder": "Переглянути",
"noPackages": "Пакетів магазину ще немає",
"noOrders": "Замовлень ще немає",
"confirmDelete": "Видалити цей пакет?",
"colId": "ID",
"colName": "Ім'я",
"colPrice": "Ціна",
"colCurrency": "Валюта",
"colType": "Тип",
"colSold": "Продано",
"colEnabled": "Увімкнено",
"colActions": "Дії",
"colOrderId": "ID замовлення",
"colCustomer": "Замовник",
"colPackage": "Пакет",
"colAmount": "Сума",
"colStatus": "Статус",
"colDate": "Дата",
"statusPending": "В очікуванні",
"statusCompleted": "Виконано",
"statusRefunded": "Повернено",
"form": {
"name": "Ім'я",
"namePlaceholder": "Назва пакета",
"description": "опис",
"descriptionPlaceholder": "Опис упаковки",
"price": "Ціна",
"currency": "Валюта",
"currencyPlaceholder": "EUR, USD, GBP…",
"type": "Тип",
"typeCredits": "Кредити",
"typeDuckets": "Качки",
"typeDiamonds": "Діаманти",
"typeBadge": "Бейдж",
"typeFurni": "Меблі",
"typeRank": "ранг",
"amount": "Сума",
"badgeCode": "Код значка",
"badgeCodePlaceholder": "напр. VIP001",
"rankId": "Ідентифікатор рангу",
"furniItems": "Предмети меблів",
"enabled": "Увімкнено",
"save": "Зберегти пакет",
"saving": "Збереження…",
"cancel": "Скасувати",
"infoPlaceholder": "Describe the package contents",
"iconPlaceholder": "Icon URL",
"colorPlaceholder": "For example: #3366cc",
"costsPlaceholder": "Price",
"creditsPlaceholder": "Number of credits",
"ducketsPlaceholder": "Number of duckets",
"diamondsPlaceholder": "Number of diamonds",
"giveRankPlaceholder": "Rank ID (0 for none)",
"badgesPlaceholder": "Badge codes separated by semicolons",
"positionPlaceholder": "Display order",
"create": "Create package",
"deletePackage": "Delete package"
},
"recentOrders": "Recent orders",
"paidOrders": "Paid orders",
"ordersHint": "Latest PayPal transactions",
"colCredits": "Credits",
"colDuckets": "Duckets",
"colDiamonds": "Diamonds",
"colRank": "Rank",
"colPosition": "Position",
"colTransaction": "Transaction",
"colUser": "User",
"colDescription": "Description",
"pageOf": "Page {page} of {lastPage}",
"packagesTotal": "{count} packages",
"newPackageTitle": "New shop package",
"backToShop": "Back to shop",
"editPackageTitle": "Edit shop package"
},
"transactions": {
"title": "транзакції",
"subtitle": "Журнал платежів PayPal",
"noTransactions": "Угод ще немає",
"colId": "ID",
"colUser": "Користувач",
"colAmount": "Сума",
"colCurrency": "Валюта",
"colPackage": "Пакет",
"colStatus": "Статус",
"colDate": "Дата",
"colActions": "Дії",
"statusCompleted": "Виконано",
"statusPending": "В очікуванні",
"statusFailed": "Не вдалося",
"statusRefunded": "Повернено",
"detail": {
"title": "Трансакція №{id}",
"paypalId": "Ідентифікатор PayPal",
"payerEmail": "Електронна адреса платника",
"grossAmount": "Сума брутто",
"fee": "Комісія",
"netAmount": "Сума нетто"
},
"totalTransactions": "Total transactions",
"pagePaid": "Paid (this page)",
"pageFailed": "Failed (this page)",
"searchPlaceholder": "Search by user, transaction ID or package…",
"presetPaid": "Paid",
"presetFailed": "Failed",
"colPayer": "Payer",
"colTransaction": "Transaction ID"
},
"vouchers": {
"title": "Магазин ваучерів",
"subtitle": "Керуйте кодами ваучерів, які можна обміняти",
"newVoucher": "+ Новий ваучер",
"edit": "Редагувати",
"delete": "Видалити",
"noVouchers": "Ваучерів ще немає",
"confirmDelete": "Видалити ваучер \"{code}\"?",
"colId": "ID",
"colCode": "Код",
"colValue": "Значення",
"colType": "Тип",
"colUses": "Використання / Макс",
"colExpires": "Термін дії закінчується",
"colCreated": "Створено",
"colActions": "Дії",
"form": {
"code": "Код",
"codePlaceholder": "напр. ЛІТО2025",
"value": "Значення",
"type": "Тип",
"typeCredits": "Кредити",
"typeDuckets": "Качки",
"typeDiamonds": "Діаманти",
"typeBadge": "Бейдж",
"typeFurni": "Меблі",
"typeRank": "ранг",
"badgeCode": "Код значка",
"badgeCodePlaceholder": "напр. VIP001",
"rankId": "Ідентифікатор рангу",
"maxUses": "Макс використовує",
"maxUsesPlaceholder": "0 = необмежений",
"expiresAt": "Термін дії закінчується о",
"enabled": "Увімкнено",
"save": "Зберегти ваучер",
"saving": "Збереження…",
"cancel": "Скасувати",
"amount": "Credits amount",
"amountPlaceholder": "e.g. 100",
"create": "Create voucher"
},
"vouchers": "Vouchers",
"active": "Active",
"usedUp": "Used up",
"expired": "Expired",
"confirmDeleteTitle": "Delete voucher",
"created": "Voucher created",
"deleted": "Voucher deleted",
"createError": "Could not create voucher",
"deleteError": "Could not delete voucher",
"statusActive": "Active",
"statusUsedUp": "Used up",
"statusExpired": "Expired",
"colAmount": "Amount",
"colStatus": "Status",
"updated": "Voucher updated",
"updateError": "Could not update voucher"
},
"subscriptions": {
"title": "Підписки",
"subtitle": "Активні періодичні підписки",
"noSubscriptions": "Немає активних підписок",
"cancel": "Скасувати",
"confirmCancel": "Скасувати підписку на {username}?",
"colId": "ID",
"colUser": "Користувач",
"colPackage": "Пакет",
"colAmount": "Сума",
"colInterval": "Інтервал",
"colStarted": "розпочато",
"colNextBilling": "Наступний рахунок",
"colStatus": "Статус",
"colActions": "Дії",
"statusActive": "Активний",
"statusCancelled": "Скасовано",
"statusExpired": "Термін дії минув",
"activeSubs": "Active subscriptions",
"types": "Subscription types",
"expiringSoon": "Expiring soon",
"activeSubscriptions": "Active subscriptions",
"colSubId": "Subscription ID",
"colUserId": "User ID",
"colType": "Type",
"colExpires": "Expires"
},
"rareValues": {
"title": "Рідкісні цінності",
"subtitle": "Керуйте рідкісними цінними категоріями та цінами на предмети",
"categories": "Категорії",
"items": "Предмети",
"addCategory": "Додати категорію",
"editCategory": "Редагувати категорію",
"deleteCategory": "Видалити категорію",
"noCategories": "Ще немає рідкісних категорій цінностей",
"confirmDeleteCategory": "Видалити категорію \"{name}\" і всі її елементи?",
"colId": "ID",
"colName": "Ім'я",
"colItems": "Предмети",
"colUpdated": "Оновлено",
"colActions": "Дії",
"colItemName": "Назва предмета",
"colCredits": "Кредити",
"colPoints": "Очки",
"colPointType": "Тип точки",
"categoryForm": {
"name": "Ім'я",
"namePlaceholder": "Назва категорії",
"save": "Зберегти категорію",
"saving": "Збереження…",
"cancel": "Скасувати"
},
"itemForm": {
"itemName": "Назва предмета",
"itemNamePlaceholder": "напр. трон",
"credits": "Вартість кредитів",
"points": "Вартість балів",
"pointType": "Тип точки",
"pointTypeDuckets": "Качки",
"pointTypeDiamonds": "Діаманти",
"save": "Зберегти товар",
"saving": "Збереження…",
"cancel": "Скасувати",
"itemIdPlaceholder": "Item ID",
"iconPlaceholder": "Icon URL",
"creditsPlaceholder": "Credits",
"currencyValuePlaceholder": "Currency value",
"addValue": "Add value"
},
"editValue": "Edit value",
"badgePlaceholder": "Category badge code",
"priorityPlaceholder": "Priority",
"addCategoryButton": "Add category",
"badgeLabel": "Badge: {badge}",
"priorityLabel": "Priority: {priority}",
"itemCount": "{count} items",
"colItemId": "Item ID",
"colCurrencyValue": "Currency value",
"colCurrency": "Currency",
"colIcon": "Icon",
"noValuesInCategory": "No values in this category yet."
},
"badges": {
"title": "Значки",
"subtitle": "Завантажуйте, надавайте та керуйте каталогом значків",
"upload": "Завантажити",
"giveBadge": "Дайте значок",
"catalogue": "Каталог",
"uploadTitle": "Завантажте новий значок",
"uploadSubtitle": "Завантажте файл зображення значка",
"badgeCode": "Код значка",
"badgeCodePlaceholder": "напр. VIP001",
"badgeFile": "Бейдж файл",
"badgeFileHint": "PNG або GIF, рекомендовано 40x40",
"uploadButton": "Завантажити",
"uploading": "Завантаження…",
"giveTitle": "Надати бейдж користувачеві",
"giveSubtitle": "Надати бейдж конкретному користувачеві",
"username": "Ім'я користувача",
"usernamePlaceholder": "Цільове ім'я користувача",
"giveButton": "Дайте значок",
"giving": "Надання…",
"catalogueTitle": "Каталог значків",
"catalogueSubtitle": "Усі наявні значки в готелі",
"noBadges": "Бейджів в каталозі немає",
"search": "Значки пошуку",
"searchPlaceholder": "Пошук за кодом або назвою…",
"colCode": "Код",
"colImage": "Зображення",
"colName": "Ім'я",
"colDescription": "опис",
"colActions": "Дії",
"uploadedMessage": "Badge {code} uploaded.",
"errorMessage": "Upload failed: {error}",
"userIdPlaceholder": "User ID"
},
"achievements": {
"title": "Досягнення",
"subtitle": "Список досягнень у грі лише для читання",
"noAchievements": "Досягнення не налаштовано",
"colId": "ID",
"colName": "Ім'я",
"colCategory": "Категорія",
"colLevels": "Рівні",
"colReward": "Нагорода",
"colProgress": "Прогрес",
"levelLabel": "Рівень {level}",
"rewardCredits": "{count} кредитів",
"rewardPoints": "{count} {points}",
"achievementRows": "Achievement levels",
"distinctAchievements": "Distinct achievements",
"categories": "Categories",
"colLevel": "Level",
"colRewardType": "Reward type",
"colRewardAmount": "Reward amount",
"colPoints": "Points"
},
"calendar": {
"title": "Календарні кампанії",
"subtitle": "Список кампаній і подій календаря лише для читання",
"noCampaigns": "Календарних кампаній ще немає",
"colId": "ID",
"colName": "Ім'я",
"colStart": "старт",
"colEnd": "Кінець",
"colType": "Тип",
"colReward": "Нагорода",
"colActions": "Дії",
"detail": {
"title": "Кампанія: {name}",
"subtitle": "Деталі подій календаря",
"days": "днів",
"dayLabel": "день {day}",
"reward": "Нагорода",
"noDays": "Для цієї кампанії не налаштовано днів",
"campaignMeta": "#{id} · {days} days · starts {date}",
"disabled": "Disabled",
"enabled": "Enabled",
"locksExpired": "Expired days are locked",
"rewards": "Rewards",
"noRewards": "No rewards configured.",
"colId": "ID",
"colProduct": "Product",
"colItem": "Item",
"colCredits": "Credits",
"colPixels": "Duckets",
"colPoints": "Points",
"colBadge": "Badge",
"colSubscription": "Subscription",
"typeLabel": "Type {type}",
"rewardCount": "{count} rewards"
},
"campaigns": "Campaigns",
"enabled": "Enabled campaigns",
"totalRewards": "Total rewards",
"statusEnabled": "Enabled",
"statusDisabled": "Disabled",
"campaignMeta": "#{id} · {days} days · {rewards} rewards",
"startsAt": "Starts: {date}",
"locksExpired": "Expired days are locked"
},
"radio": {
"title": "Модерація радіо",
"subtitle": "Останні крики, додатки ді-джеїв і розклади ефірів (25 найновіших з кожного).",
"moderation": "Модерація",
"shouts": "Крики",
"applications": "Додатки",
"schedules": "Розклади",
"settings": "Налаштування",
"embed": "Вставити",
"ranks": "Чини",
"history": "історія",
"apiKeys": "Ключі API",
"points": "Очки",
"autoDj": "Автодіджей",
"monitoring": {
"title": "Радіомоніторинг",
"subtitle": "Лише для читання живе тестування налаштованих кінцевих радіостанцій (radio_now_playing_api_url, radio_listeners_api_url). Кожен запит виконується м’яко з тайм-аутом {timeout} — дані не записуються. Налаштуйте URL-адреси в розділі «Налаштування».",
"stream": "Потік",
"online": "Онлайн",
"offline": "Офлайн",
"notConfigured": "Не налаштовано",
"nowPlaying": "Зараз грає",
"nowPlayingApi": "API, що грає зараз",
"listenersApi": "API слухачів",
"listeners": "Слухачі",
"currentSong": "Актуальна пісня",
"bitrate": "Бітрейт",
"status": "Статус",
"noNowPlayingHint": "не налаштовано API поточного відтворення",
"noListenersHint": "API слухачів не встановлено",
"endpointDiagnostics": "Діагностика кінцевої точки",
"diagnosticsLegend": "OK: доступно · WARN: не налаштовано · ERROR: помилка запиту або вичерпано час очікування.",
"streamUrl": "URL-адреса потоку",
"unreachable": "недоступний",
"refresh": "Оновити"
},
"user": "Користувач",
"message": "повідомлення",
"posted": "Опубліковано",
"realName": "Справжнє ім'я",
"age": "Вік",
"style": "Стиль",
"applied": "Прикладний",
"day": "День",
"start": "старт",
"end": "Кінець",
"show": "Показати",
"status": "Статус",
"active": "активний",
"inactive": "неактивний",
"hidden": "прихований",
"activeSchedules": "Активні розклади",
"noShouts": "Ніяких криків для модерування",
"noApplications": "Заявок не подано.",
"noSchedules": "Розклади не налаштовані.",
"deleteShout": "Видалити",
"confirmDeleteShout": "Видалити цей крик?",
"pendingApplications": "Заявки, що очікують на розгляд",
"settingsForm": {
"title": "Налаштування радіо",
"subtitle": "Зміни записуються до параметрів website_settings (клавіші radio_*) і очищають кеш налаштувань виконання. Логічні значення використовують 0/1.",
"enabled": "Увімкнено",
"disabled": "Вимкнено",
"totalKeys": "Всього ключів",
"configured": "Налаштовано",
"curatedHint": "підібрані ключі зі значенням",
"customKeys": "Спеціальні ключі",
"saveAll": "Зберегти все",
"singleKey": "Додати / перезаписати один ключ",
"keyPlaceholder": "radio_custom_key",
"valuePlaceholder": "значення",
"commentPlaceholder": "коментар (необов'язково)",
"saveSingle": "зберегти",
"otherSettings": "Інші налаштування радіо",
"dbError": "Не вдалося завантажити налаштування (база даних недоступна). Стандартні параметри будуть створені під час збереження."
},
"embedPage": {
"title": "Вставити радіо",
"subtitle": "Готовий до копіювання код вставки для прямої трансляції. Лише читання — тут нічого не записується в базу даних. Налаштуйте URL-адресу потоку в налаштуваннях радіо (radio_stream_url).",
"streamUrl": "URL-адреса потоку",
"configured": "Налаштовано",
"missing": "Відсутня",
"radioName": "Назва радіо",
"nowPlayingApi": "API, що грає зараз",
"set": "встановити",
"notSet": "Не встановлено",
"noStreamUrl": "URL потоку не налаштовано",
"noStreamUrlText": "Немає параметра radio_stream_url, тому поки що немає чого вставляти.",
"goToSettings": "Перейдіть до налаштувань радіо",
"livePreview": "Попередній перегляд",
"livePreviewText": "Це простий програвач audio, як його побачать відвідувачі. Натисніть кнопку відтворення, щоб підтвердити, що потік доступний.",
"source": "Джерело",
"audioSnippet": "Фрагмент аудіоплеєра",
"audioSnippetDesc": "Вставний аудіопрогравач HTML5 спрямований прямо на потік. Працює скрізь, де дозволено простий HTML.",
"iframeSnippet": "Фрагмент оболонки iframe",
"iframeSnippetDesc": "Вбудовує власну сторінку радіопрогравача сайту в iframe — зберігає ваш стиль і інформацію про відтворення. Відрегулюйте ширину/висоту за смаком.",
"audioUnsupported": "Ваш браузер не підтримує звуковий елемент."
},
"banners": {
"title": "банери",
"heading": "Радіобанери",
"description": "Рекламні банери, що відображаються на сторінці радіо, упорядковані за порядком сортування.",
"addBanner": "Додати банер",
"createBanner": "Створити банер",
"deleteBanner": "Видалити банер",
"noBanners": "Ще немає банерів — додайте один вище.",
"existing": "Існуючі банери ({count})",
"save": "зберегти",
"delete": "Видалити",
"byUser": "від користувача {id}",
"active": "активний",
"hidden": "прихований",
"bannerAlt": "Радіо банер",
"statusActive": "Активний",
"statusHidden": "Прихований",
"dbError": "Не вдалося завантажити банери (база даних недоступна).",
"form": {
"imagePath": "Шлях/URL зображення",
"imagePathPlaceholder": "/storage/radio/banner.png",
"title": "Назва",
"description": "опис",
"sortOrder": "Порядок сортування",
"active": "Активний"
}
},
"ranksForm": {
"title": "Радіо Чини",
"subtitle": "Ранги ді-джеїв / співробітників, які призначаються на радіо.",
"dbError": "Не вдалося завантажити ранги (база даних недоступна).",
"active": "Активний",
"addRank": "Додайте ранг",
"name": "Ім'я",
"badgeCode": "Код значка",
"description": "опис",
"createRank": "Створити ранг",
"existing": "Існуючі ранги ({count})",
"noRanks": "Ще немає рангів — додайте один вище.",
"activeLabel": "активний",
"inactiveLabel": "неактивний",
"save": "зберегти",
"deleteRank": "Видалити рейтинг #{id}"
},
"historyPage": {
"title": "Історія радіопрогравання",
"subtitle": "Минулі шоу ді-джеїв та ефірний час (radio_history), найновіші спочатку. Журнал лише для читання, хто був в ефірі, коли та скільки слухачів налаштувалося.",
"dbError": "Не вдалося завантажити історію радіо (база даних недоступна).",
"showsLogged": "Показує зареєстровані",
"onAirNow": "Зараз в ефірі",
"uniqueDjs": "Унікальні діджеї",
"peakListeners": "Пік слухачів",
"empty": "Історія радіо ще не записана.",
"showLog": "Показати журнал ({count})",
"colDj": "діджей",
"colShow": "Показати",
"colStarted": "розпочато",
"colEnded": "Завершено",
"colAirtime": "Ефірний час",
"colListeners": "Слухачі",
"colNotes": "Примітки",
"onAir": "в ефірі"
},
"apiKeysForm": {
"title": "Ключі радіо API",
"subtitle": "Ключі API для зовнішньої радіоінтеграції (radio_api_keys). Ключі генеруються на стороні сервера та відображаються в масці — скопіюйте повне значення з бази даних під час першого видачі.",
"dbError": "Не вдалося завантажити ключі API (база даних недоступна).",
"totalKeys": "Всього ключів",
"active": "Активний",
"inactive": "Неактивний",
"generateKey": "Згенерувати ключ",
"generateHint": "Секретний ключ генерується автоматично за допомогою криптографічної випадковості — ви не вводите його.",
"name": "Ім'я",
"namePlaceholder": "Міст AzureCast",
"rateLimit": "Ліміт швидкості (запитів/хв)",
"allowedIps": "Дозволені IP (необов’язково)",
"allowedIpsPlaceholder": "розділені комами, пробіл = будь-який",
"generate": "Згенерувати ключ",
"existingKeys": "Існуючі ключі ({count})",
"noKeys": "Ще немає ключів API — створіть один вище.",
"colName": "Ім'я",
"colKey": "ключ",
"colAllowedIps": "Дозволені IP-адреси",
"colRateLimit": "Ліміт тарифу",
"colLastUsed": "Останнє використання",
"colExpires": "Термін дії закінчується",
"colStatus": "Статус",
"colActions": "Дії",
"maskedHint": "Показано лише перші 8 символів",
"any": "будь-який",
"activeLabel": "активний",
"inactiveLabel": "неактивний",
"deactivate": "Дезактивувати",
"activate": "активувати",
"delete": "Видалити"
},
"pointsForm": {
"title": "Бали радіослухачів",
"subtitle": "Винагороджуйте слухачів валютою за час, проведений на радіо. Зміни записуються до параметрів website_settings (клавіші radio_points_*) і очищають кеш налаштувань виконання. Логічні значення використовують 0/1.",
"saved": "Збережено",
"points": "Очки",
"enabled": "Увімкнено",
"disabled": "Вимкнено",
"perMinute": "За хвилину",
"paidIn": "сплачено в {currency}",
"maxPerDay": "Макс / день",
"unlimited": "Необмежений",
"minListeners": "Мін слухачів",
"settings": "Налаштування",
"pointsEnabled": "Бали ввімкнено",
"pointsEnabledHint": "Головний перемикач для нарахування очок слухача.",
"currency": "Валюта",
"currencyHint": "На який гаманець зараховуються бали.",
"pointsPerMinute": "Очок за хвилину",
"pointsPerMinuteHint": "Сума винагороди за кожну повну хвилину прослуховування.",
"maxPerDayHint": "Добове обмеження на користувача. Використовуйте 0 для необмеженого.",
"minListenersHint": "Бали нараховуються лише тоді, коли принаймні стільки людей налаштовано.",
"save": "Зберегти налаштування балів"
},
"autoDjForm": {
"title": "Radio AutoDJ",
"subtitle": "Запасний список відтворення (radio_auto_dj_playlist), у якому радіо обертається, коли ді-джей не транслює пряму трансляцію. Упорядковано за порядком сортування, а потім за назвою.",
"dbError": "Не вдалося завантажити список відтворення AutoDJ (база даних недоступна).",
"tracks": "Доріжки",
"active": "Активний",
"inactive": "Неактивний",
"addTrack": "Додати трек",
"titlePlaceholder": "Назва треку",
"artist": "Художник",
"album": "Альбом",
"artworkUrl": "URL-адреса ілюстрації",
"artworkUrlPlaceholder": "https://…/cover.png",
"duration": "Тривалість (секунди)",
"durationPlaceholder": "напр. 215",
"sortOrder": "Порядок сортування",
"playlist": "Список відтворення ({count})",
"noTracks": "Ще немає треків AutoDJ — додайте один вище.",
"colOrder": "порядок",
"colTitle": "Назва",
"colArtist": "Художник",
"colAlbum": "Альбом",
"colDuration": "Тривалість",
"colPlays": "П'єси",
"colLastPlayed": "Востаннє грали",
"colStatus": "Статус",
"colActions": "Дії",
"activeLabel": "активний",
"inactiveLabel": "неактивний",
"deactivate": "Дезактивувати",
"activate": "активувати",
"delete": "Видалити",
"trackTitle": "Назва"
},
"moderationPage": {
"title": "Модерація DJ",
"subtitle": "Перегляньте та видаліть радіокрики (50 останніх).",
"recentShouts": "Останні крики ({count})"
}
},
"commandocentrum": {
"title": "Командоцентр",
"subtitle": "Діагностика, елементи керування RCON та керування користувачами",
"diagnostics": "діагностика",
"rcon": "RCON",
"userActions": "Дії користувача",
"diagnosticsTitle": "Діагностика емулятора",
"memoryUsage": "Використання пам'яті",
"uptime": "Час роботи",
"onlineUsers": "Інтернет-користувачі",
"roomsLoaded": "Номери завантажені",
"refresh": "Оновити",
"rconTitle": "Команди RCON",
"rconPlaceholder": "Введіть команду RCON…",
"rconSend": "Надіслати",
"rconSending": "Надсилання…",
"rconResponse": "Відповідь",
"userActionsTitle": "Дії користувача",
"username": "Ім'я користувача",
"usernamePlaceholder": "Цільове ім'я користувача",
"action": "Дія",
"execute": "Виконати",
"actions": {
"disconnect": "Відключити",
"alert": "Надіслати сповіщення",
"giveCredits": "Дайте кредити",
"giveBadge": "Дайте значок",
"givePoints": "Дайте бали",
"ban": "Забанити",
"kick": "удар ногою"
},
"messagePlaceholder": "Повідомлення (для сповіщень)…",
"amountPlaceholder": "Сума…",
"badgePlaceholder": "Код значка…",
"commandCategories": "Command categories",
"groups": {
"hotel": "Hotel",
"players": "Players",
"rewards": "Currency and gifts",
"advanced": "Advanced"
},
"executing": "Executing command…",
"chooseCommand": "Choose an operation. Values entered are preserved when switching categories.",
"refreshStatus": "Refresh status",
"checkedAt": "Checked at {time}",
"serviceAttention": "Some services need attention",
"servicesHealthy": "Core services are responding",
"cmsErrors": "CMS error center",
"readFailed": "Data could not be loaded",
"emulatorConfig": "Emulator connection",
"emailConfig": "Email delivery",
"configured": "Configured",
"playersOnline": "Players online",
"totalAccounts": "{count} total accounts",
"dbUnavailable": "Database unavailable",
"emulator": "Emulator",
"online": "Online",
"offline": "Offline",
"rconReachable": "Emulator connection available",
"rconNotResponding": "Emulator is not responding",
"database": "Database",
"connected": "Connected",
"down": "Unavailable",
"queriesResponding": "Database queries are responding",
"cannotReachDb": "Cannot connect to the database",
"emulatorErrors": "Emulator errors",
"last50Logged": "Up to 50 latest records",
"serverInfo": "Server information",
"node": "Node.js",
"platform": "Platform",
"appUptime": "Application uptime",
"heapUsed": "Heap memory used",
"rss": "Process memory (RSS)",
"hostUptime": "Host uptime",
"load1m": "Load average (1 min)",
"cpus": "Logical CPUs",
"systemDiagnostics": "System diagnostics",
"connectionHealthy": "Connection is healthy",
"unreachable": "Unreachable",
"emulatorRcon": "Emulator connection",
"respondingToPing": "Responding to health checks",
"noResponse": "No response",
"notConfigured": "Not configured",
"twoFaEncryptionKey": "2FA encryption key",
"appKeyConfigured": "Encryption key configured",
"appKeyMissing": "Encryption key missing",
"maintenanceMode": "Maintenance mode",
"siteIsInMaintenance": "The site is in maintenance mode",
"siteIsLive": "The site is open",
"recentStaffActivity": "Recent staff activity",
"noStaffActivity": "No recent staff activity",
"colWhen": "Date and time",
"colStaff": "Staff member",
"colAction": "Action",
"colDescription": "Description",
"recentEmulatorErrors": "Recent emulator errors",
"noEmulatorErrors": "No emulator errors recorded",
"colType": "Type",
"colVersion": "Version",
"colStacktrace": "Error details",
"truncated": "Further lines omitted",
"empty": "No details available",
"defaultGiftMessage": "A gift for you!",
"emulatorControls": "Emulator commands",
"updateCatalog": "Reload catalog",
"updateCatalogDesc": "Reload the catalog from the database.",
"updateWordFilter": "Reload word filter",
"updateWordFilterDesc": "Apply the latest word filter settings.",
"updateNavigator": "Reload navigator",
"updateNavigatorDesc": "Reload the room navigator data.",
"hotelAlert": "Hotel announcement",
"hotelAlertDesc": "Send a message to all online players.",
"messageToBroadcast": "Message for all players",
"sendAlert": "Send announcement",
"disconnectDesc": "Disconnect the selected player from the hotel.",
"userId": "User ID",
"usernameRequired": "Username (required)",
"alertDesc": "Send a private alert to a player.",
"alertMessage": "Alert message",
"forwardToRoom": "Move player to room",
"forwardDesc": "Send the selected player to a specific room.",
"roomId": "Room ID",
"forwardUser": "Move player",
"giveCredits": "Give credits",
"giveCreditsDesc": "Add credits to the selected player’s balance.",
"amount": "Amount",
"giveDuckets": "Give duckets",
"giveDucketsDesc": "Add duckets to the selected player’s balance.",
"giveDiamonds": "Give diamonds",
"giveDiamondsDesc": "Add diamonds to the selected player’s balance.",
"giveBadge": "Give badge",
"giveBadgeDesc": "Give a badge to the selected player.",
"badgeCode": "Badge code",
"setMotto": "Change motto",
"setMottoDesc": "Update the selected player’s motto.",
"newMotto": "New motto",
"setRank": "Change rank",
"setRankDesc": "Update the selected player’s rank.",
"rankPlaceholder": "Rank (1–10)",
"executeCommand": "Execute emulator command",
"executeCommandDesc": "Execute a command for the selected player.",
"commandPlaceholder": "Command",
"sendGift": "Send gift",
"sendGiftDesc": "Send a furniture item as a gift to the selected player.",
"furniId": "Furniture ID",
"giftMessage": "Gift message"
},
"emulator": {
"title": "Конфігурація емулятора",
"subtitle": "Перегляд і редагування налаштувань емулятора та текстів мови",
"settings": "Налаштування",
"texts": "Тексти",
"search": "Пошук",
"searchPlaceholder": "Ключі пошуку…",
"noSettings": "Налаштувань не знайдено",
"noTexts": "Тексти не знайдено",
"edit": "Редагувати",
"save": "зберегти",
"saving": "Збереження…",
"cancel": "Скасувати",
"colKey": "ключ",
"colValue": "Значення",
"colType": "Тип",
"colActions": "Дії",
"editDialog": {
"title": "Редагувати: {key}",
"value": "Значення",
"valuePlaceholder": "Введіть значення…",
"save": "Зберегти зміни",
"cancel": "Скасувати"
},
"settingsKeys": "Settings",
"textKeys": "Text entries",
"keysCount": "{count} keys",
"addOverwriteSetting": "Add or update a setting",
"key": "Key",
"value": "Value",
"showingFirst": "Showing the first {count}",
"addOverwriteText": "Add or update a text",
"truncatedHint": "Showing {shown} of {total} entries."
},
"alerts": {
"title": "Оповіщення",
"subtitle": "Надсилайте сповіщення для всього готелю та переглядайте останні сповіщення",
"sendAlert": "Надіслати сповіщення готелю",
"recentAlerts": "Останні сповіщення ({count})",
"noRecentAlerts": "Немає останніх сповіщень",
"form": {
"title": "Назва сповіщення",
"titlePlaceholder": "напр. Обслуговування сервера за 10 хвилин",
"message": "Попереджувальне повідомлення",
"messagePlaceholder": "Напишіть сповіщення…",
"type": "Тип",
"typeHotel": "Сповіщення по всьому готелі",
"typeStaff": "Лише персонал",
"urgent": "Терміново",
"send": "Надіслати сповіщення",
"sending": "Надсилання…",
"description": "Broadcasts via RCON <code>hotelalert</code> to online users."
},
"colId": "ID",
"colTitle": "Назва",
"colSentBy": "Надіслано",
"colType": "Тип",
"colDate": "Дата",
"colActions": "Дії",
"noAlerts": "No recent alerts",
"alertsShown": "Shown",
"critical": "Critical",
"warnings": "Warnings",
"unread": "Unread",
"markAllRead": "Mark all read",
"colWhen": "When",
"colSeverity": "Severity",
"colMessage": "Message"
},
"logs": {
"title": "Діяльність персоналу",
"subtitle": "Аудит дій персоналу в адмінпанелі",
"noLogs": "Дії персоналу ще не зареєстровано",
"colId": "ID",
"colUser": "Користувач",
"colAction": "Дія",
"colTarget": "Цільова",
"colDescription": "опис",
"colIp": "IP",
"colTimestamp": "Мітка часу",
"filterByUser": "Фільтрувати за користувачем…",
"filterByAction": "Фільтрувати за дією…",
"clearFilters": "Очистити фільтри",
"noResults": "No matching activities",
"colStaff": "Staff",
"colWhen": "When",
"searchPlaceholder": "Search action, description or IP…",
"totalActivities": "Total activities",
"onThisPage": "On this page",
"recent": "Last minute",
"authorizationErrors": "Authorization errors",
"authorizationOnly": "Auth errors only",
"allActivities": "All activities",
"staffId": "Staff ID",
"actionType": "Action type",
"filter": "Filter",
"activities": "{count} activities",
"staffWithId": "#{id} {name}",
"userPrefix": "user",
"pagination": "Page {page} of {pages} · {total} total",
"next": "Next",
"prev": "Previous",
"unknownUser": "unknown",
"emptyValue": "-",
"colTime": "Time",
"audit": {
"colTargetId": "Target ID",
"colDetails": "Details",
"colDate": "Date",
"searchPlaceholder": "Search by action or target…",
"changesCount": "{count} changes",
"notAvailable": "N/A",
"filtersTitle": "Filter audit records",
"filterActor": "Actor (exact username or ID)",
"filterAction": "Exact action",
"filterFrom": "From date (UTC)",
"filterTo": "Through date (UTC)",
"filtersHint": "Dates include the full day in UTC. Actions and usernames must match exactly. Records are shown newest first.",
"applyFilters": "Apply filters",
"resetFilters": "Reset filters",
"invalidDetails": "These legacy details cannot be displayed.",
"beforeValue": "Before",
"afterValue": "After",
"exportHint": "CSV exports the current filtered page, up to 100 records.",
"operation": "Operation"
},
"chat": {
"colMessage": "Message",
"colRoomId": "Room ID",
"searchPlaceholder": "Search by username or message…"
},
"commands": {
"colCommand": "Command",
"colParams": "Params",
"searchPlaceholder": "Search by username, command, or params…"
},
"trades": {
"colUserOne": "User one",
"colUserTwo": "User two",
"colStatus": "Status",
"statusUnknown": "unknown",
"searchPlaceholder": "Search by username…"
},
"history": {
"preview": "Preview restore",
"title": "Restore a recorded edit",
"description": "Compare current values with the previous values before confirming. Only category settings, offer prices or news content are restored. Deleted records and category hierarchy cannot be restored here.",
"loading": "Loading…",
"unavailable": "This revision is unavailable or you do not have permission to restore it.",
"conflict": "This record changed after the selected edit. Refresh and review its latest history before restoring.",
"failed": "The restore could not be completed. Please reload and try again.",
"field": "Field",
"current": "Current value",
"restore": "Value to restore",
"confirm": "Confirm restore",
"restoring": "Restoring…",
"fields": {
"caption": "Category name",
"captionSave": "Internal category name",
"pageLayout": "Category layout",
"enabled": "Enabled",
"visible": "Visible",
"clubOnly": "Club members only",
"vipOnly": "VIP members only",
"minRank": "Minimum rank",
"iconImage": "Category icon",
"iconColor": "Icon colour",
"pageHeadline": "Header image",
"pageTeaser": "Preview image",
"pageSpecial": "Special image",
"pageText1": "Primary text",
"pageText2": "Secondary text",
"pageTextDetails": "Details text",
"pageTextTeaser": "Preview text",
"includes": "Included categories",
"costCredits": "Credit price",
"costPoints": "Points price",
"pointsType": "Points currency",
"title": "News title",
"slug": "News address",
"image": "News image",
"shortStory": "Summary",
"fullStory": "Article content",
"status": "Publication status",
"publishAt": "Scheduled publication",
"publishedAt": "Publication date",
"pageId": "Category"
}
}
},
"wordfilter": {
"title": "Фільтр Word",
"subtitle": "Керуйте відфільтрованими словами та фразами в готелі",
"addWord": "Додайте слово",
"addWords": "Додайте слова",
"noWords": "Ще немає відфільтрованих слів",
"confirmDelete": "Видалити \"{word}\" із фільтра?",
"colId": "ID",
"colWord": "Слово",
"colAddedBy": "Додав",
"colCreated": "Створено",
"colActions": "Дії",
"form": {
"word": "Слово",
"wordPlaceholder": "напр. погане слово",
"addMore": "Додайте кілька слів (по одному на рядок)",
"save": "Додати до фільтра",
"saving": "Збереження…",
"cancel": "Скасувати"
},
"filteredWords": "Filtered words",
"words": "Words",
"delete": "Delete",
"confirmDeleteTitle": "Remove word",
"added": "Word added to filter",
"deleted": "Word removed from filter",
"addError": "Could not add word (it may already exist)",
"deleteError": "Could not remove word"
},
"maintenance": {
"title": "Режим обслуговування",
"subtitle": "Увімкнути або вимкнути технічне обслуговування в готелі",
"enabled": "Увімкнено режим обслуговування",
"disabled": "Режим обслуговування вимкнено",
"enable": "Увімкнути обслуговування",
"disable": "Вимкнути обслуговування",
"message": "Повідомлення про технічне обслуговування",
"messagePlaceholder": "Ми скоро повернемося!",
"staffAccess": "Дозвольте персоналу доступ під час технічного обслуговування",
"save": "Зберегти налаштування",
"saving": "Збереження…",
"confirmEnable": "Увімкнувши технічне обслуговування, усі сторонні користувачі не зможуть отримати доступ до готелю. Продовжити?",
"confirmDisable": "Вимкнути режим обслуговування та відновити доступ для всіх користувачів?",
"maintenance": "Maintenance",
"hotelLockedDown": "Access to the hotel is restricted.",
"hotelOpen": "The hotel is open.",
"minLoginRank": "Minimum login rank",
"duringMaintenance": "During maintenance",
"splashMessage": "Maintenance message",
"set": "Configured",
"empty": "Empty",
"currentState": "Current status",
"maintenanceCurrently": "Maintenance: {status}",
"onlyRankCanLogin": "Only users with rank {rank} or higher can log in.",
"hotelOpenToEveryone": "All eligible users can log in.",
"settings": "Settings",
"enableMaintenance": "Enable maintenance mode",
"minLoginRankLabel": "Minimum rank allowed during maintenance",
"maintenanceMessageLabel": "Message shown to visitors",
"maintenanceMessagePlaceholder": "Explain why the hotel is unavailable.",
"saveChanges": "Save changes"
},
"housekeeping": {
"title": "Дозвіл на прибирання",
"subtitle": "Налаштуйте, які ранги мають доступ до певних розділів адміністратора",
"addPermission": "Додайте дозвіл",
"editPermission": "Дозвіл на редагування",
"deletePermission": "Видалити дозвіл",
"noPermissions": "Немає налаштованих дозволів на обслуговування",
"confirmDelete": "Видалити цей дозвіл?",
"colId": "ID",
"colRank": "ранг",
"colSection": "Розділ",
"colActions": "Дії",
"form": {
"rankId": "Ідентифікатор рангу",
"rankIdPlaceholder": "Мінімальний ранг",
"section": "Ключ розділу",
"sectionPlaceholder": "напр. адмін.панель",
"save": "Зберегти дозвіл",
"saving": "Збереження…",
"cancel": "Скасувати"
},
"saved": "Saved!",
"deleted": "Deleted!",
"errorOccurred": "An error occurred",
"emptyInput": "Empty input",
"invalidJson": "Invalid JSON",
"imported": "Imported!",
"presetApplied": "Preset Прикладний!",
"cleared": "All Дозволи cleared!",
"invalidRank": "Invalid ранг",
"testDone": "Test done: {count} Дозволи found",
"testing": "Testing...",
"loading": "Loading...",
"prev": "Previous",
"next": "Next",
"confirmClearAll": "Видалити ALL Дозволи? This Дія cannot be undone!",
"colGroup": "Group",
"colDepends": "Depends on",
"colPermission": "Дозвіл",
"colDescription": "опис",
"colMinRank": "Min. Ранг",
"permissionKey": "Ключ дозволу",
"minRank": "Min. ранг",
"description": "опис",
"permissions": "Дозволи",
"permissionsCount": "{count} Дозволи",
"permission": "Дозвіл",
"highestMinRank": "Highest min. ранг: {rank}",
"totalMinRank": "Total min. ранг sum: {total}",
"groupCount": "{count} groups",
"rankCount": "{count} Чини",
"missingDeps": "{count} Відсутня dependencies",
"dependsOn": "depends on",
"notFound": "not found",
"missing": "(Відсутня)",
"rank": "ранг",
"count": "Count",
"searchPermission": "Пошук Дозволи…",
"search": "Пошук",
"manage": "Manage",
"importSelection": "Імпорт selection",
"noGroup": "Немає group",
"allGroups": "All groups",
"perGroup": "Дозволи per group",
"perRank": "Дозволи per ранг",
"rankOverviewHint": "All Дозволи grouped by the ранг they are assigned to.",
"tabOverview": "Огляд",
"tabManage": "Manage",
"tabImport": "Імпорт / Export",
"tabRanks": "Ранг Огляд",
"tabPresets": "Предустановки",
"tabTest": "Test",
"tabAudit": "Audit log",
"importPermissions": "Імпорт Дозволи",
"importHint": "Paste a JSON array of Дозвіл objects. Format: ['{' \"permission\": \"...\", \"minRank\": 7, \"description\": \"...\", \"groupName\": \"...\", \"dependsOn\": \"...\" '}']",
"importPlaceholder": "Paste JSON here…",
"import": "Імпорт",
"exportTitle": "Export Дозволи",
"exportHint": "Export all Дозволи as JSON for backup or batch editing.",
"export": "Export JSON",
"copy": "Copy",
"copied": "Copied!",
"presets": "Дозвіл Предустановки",
"presetsHint": "Застосувати a predefined встановити of Дозволи for common staff roles.",
"presetModerator": "Moderator",
"presetModeratorDesc": "Basic Модерація tools: Користувач lookup, Заборони, CFH handling, chat Журнали.",
"presetAdmin": "Administrator",
"presetAdminDesc": "Full admin access: Користувачі, Кімнати, news, Налаштування, Магазин, events, радіо & more.",
"presetSuperAdmin": "Super Admin",
"presetSuperAdminDesc": "Complete access to every feature including Дозвіл management and asset Імпорт.",
"applyPreset": "Застосувати preset",
"clearAll": "Clear all Дозволи",
"testTitle": "Test ранг access",
"testHint": "Enter a ранг number to see which Дозволи would be granted.",
"test": "Test",
"auditTitle": "Дозвіл audit log",
"auditHint": "All changes to Прибирання Дозволи are logged.",
"auditLogsAt": "Audit Журнали are available on the Audit log page.",
"viewAuditLogs": "Переглянути audit Журнали",
"importedWithErrors": "Imported {count} Дозволи with {errors} errors",
"confirmClearAllDesc": "This will видалити every Дозвіл entry from the База даних. Are you sure?",
"confirmDeletePermission": "Видалити this Дозвіл permanently?",
"confirmBulkDelete": "Видалити {count} selected Дозволи?",
"deleteSelected": "Видалити {count} selected",
"cancel": "Скасувати",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "Користувач",
"auditAction": "Дія",
"auditTarget": "Цільова",
"selectAllMatching": "Select all {count} matching",
"save": "Save",
"importTitle": "Import permissions",
"legacyBannerTitle": "Use Permissions to change who can do what",
"legacyBannerBody": "This archive does not control the site. Open Permissions to grant or revoke access for ranks.",
"legacyBannerCta": "Open Permissions",
"writesRetired": "Editing here is disabled on purpose. Change access only in Permissions.",
"tabCompare": "ACL compare",
"tabExportOnly": "Export archive",
"compareHint": "Compares legacy housekeeping min-rank rows to live ACL rank_* role grants (lowest rank that has the slug).",
"compareAligned": "{count} aligned",
"compareMissingAcl": "{count} missing in ACL",
"compareMismatch": "{count} rank mismatch",
"colAclPresent": "In ACL",
"colAclMinRank": "ACL min rank",
"colStatus": "Status",
"statusAligned": "Aligned",
"statusMissingAcl": "Missing in ACL",
"statusMismatch": "Rank differs",
"exportOnlyHint": "Writes are disabled. You can still export the legacy table for archival."
},
"rooms": {
"title": "Кімнати",
"subtitle": "Пошук і керування готельними номерами",
"search": "Пошук",
"searchPlaceholder": "Пошук за назвою, власником або ідентифікатором…",
"searchResults": "{count, plural, one {# room} other {# rooms}} знайдено для \"{query}\"",
"noResults": "Номерів не знайдено",
"colId": "ID",
"colName": "Ім'я",
"colOwner": "Власник",
"colUsers": "Користувачі",
"colState": "Держава",
"colCategory": "Категорія",
"colCreated": "Створено",
"colActions": "Дії",
"stateOpen": "відкритий",
"stateClosed": "Закрито",
"stateLocked": "Заблоковано",
"stateInvisible": "Невидимий",
"detail": {
"title": "Кімната: {name}",
"subtitle": "Належить {owner}",
"overview": "Огляд",
"actions": "Дії",
"description": "опис",
"noDescription": "Без опису",
"owner": "Власник",
"users": "Користувачі онлайн",
"maxUsers": "Максимальна кількість користувачів",
"category": "Категорія",
"state": "Держава",
"tags": "Теги",
"noTags": "Без тегів",
"created": "Створено",
"deleteRoom": "Видалити кімнату",
"confirmDelete": "Видалити кімнату \"{name}\"? Це неможливо скасувати.",
"enterRoom": "Увійти в кімнату",
"changeOwner": "Змінити власника",
"changeOwnerPlaceholder": "Нове ім'я власника"
}
},
"emailTemplates": {
"title": "Шаблони електронної пошти",
"subtitle": "Керуйте транзакційними шаблонами електронних листів",
"newTemplate": "+ Новий шаблон",
"edit": "Редагувати",
"delete": "Видалити",
"noTemplates": "Ще немає шаблонів електронних листів",
"confirmDelete": "Видалити шаблон \"{name}\"?",
"colId": "ID",
"colName": "Ім'я",
"colSubject": "Тема",
"colKey": "ключ",
"colUpdated": "Оновлено",
"colActions": "Дії",
"form": {
"name": "Ім'я",
"namePlaceholder": "напр. Вітальний лист",
"key": "ключ",
"keyPlaceholder": "напр. Welcome_email",
"subject": "Тема",
"subjectPlaceholder": "Тема листа",
"body": "Тіло (HTML)",
"bodyPlaceholder": "<p>Шановний {username}!</p>",
"variables": "Доступні змінні",
"variablesHint": "{username}, {email}, {hotel_name}",
"save": "Зберегти шаблон",
"saving": "Збереження…",
"cancel": "Скасувати",
"variablesPlaceholder": "Variables, separated by commas",
"active": "Active"
},
"create": "Create template",
"save": "Save template",
"updated": "Updated: {date}"
},
"theme": {
"title": "Тема",
"subtitle": "Налаштуйте зовнішній вигляд CMS",
"presets": "Предустановки",
"colours": "Кольори",
"css": "CSS",
"presetsTitle": "Попередні налаштування теми",
"presetsSubtitle": "Виберіть попередньо створену колірну схему",
"applyPreset": "Застосувати",
"presetApplied": "Попереднє налаштування застосовано: {preset}",
"customiseTitle": "Нестандартні кольори",
"primary": "Первинний",
"secondary": "Вторинний",
"accent": "Акцент",
"background": "Фон",
"surface": "Поверхня",
"text": "текст",
"saveColours": "Зберегти кольори",
"savingColours": "Збереження…",
"cssTitle": "Спеціальний CSS",
"cssSubtitle": "Додайте власний CSS, щоб замінити стилі теми",
"cssPlaceholder": "/* Ваш власний CSS тут */",
"saveCss": "Зберегти CSS",
"savingCss": "Збереження…",
"reset": "Відновити налаштування за замовчуванням",
"confirmReset": "Відновити значення теми за замовчуванням?",
"saved": "Theme settings saved.",
"typographyLayout": "Typography and layout",
"font": "Font",
"borderRadius": "Corner radius"
},
"media": {
"title": "Медіатека",
"subtitle": "Завантажуйте медіафайли та керуйте ними",
"upload": "Завантажити",
"uploadTitle": "Завантажте файл",
"uploadSubtitle": "Перетягніть або клацніть, щоб завантажити",
"uploadButton": "Виберіть файл",
"uploading": "Завантаження…",
"noFiles": "Медіафайлів ще немає",
"delete": "Видалити",
"confirmDelete": "Видалити цей файл назавжди?",
"search": "Пошук",
"searchPlaceholder": "Пошук за назвою файлу…",
"colPreview": "Попередній перегляд",
"colName": "Ім'я",
"colSize": "Розмір",
"colType": "Тип",
"colUploaded": "Завантажено",
"colActions": "Дії",
"copyUrl": "Копіювати URL",
"urlCopied": "URL-адресу скопійовано в буфер обміну"
},
"favicon": {
"title": "Favicon",
"subtitle": "Завантажте фавікон сайту та керуйте ним",
"current": "Поточний фавікон",
"uploadLabel": "Завантажити фавікон",
"uploadHint": "PNG, JPEG, GIF, WebP, ICO або SVG. Макс. 2 МБ.",
"upload": "Завантажити",
"uploading": "Завантаження…",
"delete": "видалити",
"deleting": "Видалення…",
"saved": "Favicon успішно збережено!",
"deleted": "Favicon успішно видалено!",
"error": "Щось пішло не так",
"confirmDelete": "Видалити значок сайту? На сайті більше не відображатиметься спеціальна піктограма сайту.",
"generator": {
"title": "Створити фавікон",
"text": "текст",
"bgColor": "Колір фону",
"textColor": "Колір тексту",
"rounded": "Заокруглені кути",
"save": "Зберегти як фавікон"
},
"cancel": "Cancel"
},
"settings": {
"title": "Налаштування CMS",
"subtitle": "Керуйте конфігурацією CMS ключ/значення",
"addSetting": "Додати налаштування",
"edit": "Редагувати",
"delete": "Видалити",
"noSettings": "Налаштувань не знайдено",
"confirmDelete": "Видалити налаштування \"{key}\"?",
"colKey": "ключ",
"colValue": "Значення",
"colUpdated": "Оновлено",
"colActions": "Дії",
"form": {
"key": "ключ",
"keyPlaceholder": "напр. hotel_name",
"value": "Значення",
"valuePlaceholder": "Значення налаштування",
"save": "Зберегти налаштування",
"saving": "Збереження…",
"cancel": "Скасувати"
},
"keysInDatabase": "{count} keys in database",
"managedInForm": "{count} managed in form",
"documented": "{count} documented",
"saved": "Settings saved.",
"saveFailed": "Could not save settings.",
"saveSettings": "Save settings",
"viewOnly": "You can view settings but need edit permission to change them."
},
"import": {
"title": "Import",
"subtitle": "Import assets from external sources into your hotel.",
"badges": "Badges",
"badgesDescription": "Import and manage badge assets from external sources.",
"furni": "Furni",
"furniDescription": "Import furniture definitions, SWF files, and icons.",
"clothing": "Clothing",
"clothingDescription": "Import clothing and wearables for avatars.",
"effects": "Effects",
"effectsDescription": "Import avatar effects and animations.",
"pets": "Pets",
"petsDescription": "Import pet data and icons.",
"clone": "Clone",
"cloneDescription": "Clone existing items from one source to another.",
"upload": "Upload .nitro",
"uploadDescription": "Upload .nitro bundles and icons directly without SWF conversion.",
"sync": "Auto Sync",
"syncDescription": "Automatically import missing furniture from all configured sources.",
"repairIcons": "Repair Icons",
"repairIconsDescription": "Download any missing icon files for furniture already in the database.",
"audit": "Catalog Audit",
"auditDescription": "Scan your catalog for missing entries, broken references, and items missing from clone sources."
},
"translations": {
"title": "Translations",
"subtitle": "Translate your hotel into multiple languages.",
"tabs": {
"cms": "CMS",
"client": "Client (Nitro)",
"emulator": "Emulator"
},
"emulator": {
"title": "Emulator",
"subtitle": "User-facing strings from emulator_settings (commands, wordfilter, pet/matchmaking messages).",
"infoBox": "Configuration settings (ports, timeouts, IDs) do not appear here — use the full settings link. Saved changes are synced to the emulator via RCON.",
"fullSettings": "Full settings"
},
"cms": {
"title": "CMS translations",
"description": "Edit the text shown on the website and in housekeeping. Saved changes are applied on the next page load and survive deployments.",
"export": "Export JSON",
"saving": "Saving…",
"saveLocale": "Save {locale}",
"saved": "Translations saved and applied.",
"readOnly": "You can review and export translations. Editing requires permission to change settings.",
"language": "Language",
"coverage": "{total} keys · {missing} missing · {identical} identical to English",
"search": "Search",
"searchPlaceholder": "Key, translation or English source…",
"group": "Group",
"allGroups": "All groups",
"status": "Show",
"all": "All texts",
"missing": "Missing translations",
"identical": "Identical to English",
"modified": "Unsaved changes",
"fallbackHint": "Missing translations use English. Identical text may be intentional. Keep variable names inside braces unchanged.",
"unsaved": "{count} unsaved changes in this language",
"discard": "Discard changes",
"discardConfirm": "Discard unsaved changes in this language?",
"fixErrors": "Fix {count} invalid messages before saving.",
"noResults": "No texts match these filters.",
"source": "English reference",
"missingPlaceholder": "Translation missing; English is used.",
"page": "Page {page} of {total} · {count} keys",
"previous": "Previous",
"next": "Next",
"leaveWarning": "You have unsaved translations. Leave this page?",
"conflict": "These translations changed since you opened the editor. Export your changes, then reload before saving.",
"unknownKey": "Unknown translation key: {key}",
"empty": "Enter a translation for {key}, or discard this change.",
"invalid": "Invalid message syntax in {key}. Check braces and rich-text tags.",
"variables": "Keep the same variable names and rich-text tags as the English source in {key}."
}
},
"tickets": {
"title": "Tickets",
"subtitle": "Support tickets from players",
"noTickets": "No active tickets",
"searchPlaceholder": "Search subject, user, category or ID…",
"presetActive": "Active",
"statusOpen": "Open",
"statusInProgress": "In progress",
"statusWaiting": "Waiting",
"statusClosed": "Closed",
"colTicket": "Ticket",
"colStatus": "Status",
"colPriority": "Priority",
"colAssigned": "Assigned",
"colDate": "Date",
"meta": "by {user} · {count} msg · {category}",
"queueHint": "This queue is the CMS support desk. Player help-center tickets live in the Help-center tickets tab.",
"queueOtherCta": "Open help-center tickets",
"queueCounts": "Open here: {here} · Help center: {other}",
"awaitingStaff": "Waiting for staff",
"assignedMine": "Assigned to me",
"unassigned": "Unassigned",
"assignedAny": "Assigned",
"lastReplyAge": "Since last response",
"ageMinutes": "{count} min ago",
"ageHours": "{count} h ago",
"ageDays": "{count} d ago"
},
"cfh": {
"title": "Call for Help",
"subtitle": "In-game CFH / support tickets",
"noTickets": "No CFH tickets",
"searchPlaceholder": "Search issue, user or ID…",
"noDescription": "No description",
"roomMeta": "Room #{room} · {when}",
"stateOpen": "Open",
"statePicked": "Picked",
"stateClosed": "Closed",
"colId": "ID",
"colIssue": "Issue",
"colSender": "Sender",
"colReported": "Reported",
"colMod": "Mod",
"colStatus": "Status"
},
"hubs": {
"newsMedia": "News & media",
"newsMediaSubtitle": "Articles, photos, banners, ads and media library",
"siteContent": "Site content",
"siteContentSubtitle": "Navigation, help center, boxes, tags and prefixes",
"engagement": "Engagement",
"engagementSubtitle": "Events, polls and support tickets",
"users": "Users",
"usersSubtitle": "Directory, online players, applications and teams",
"access": "Access & security",
"accessSubtitle": "Bans, IP, VPN, permissions and word filter",
"moderation": "Moderation",
"moderationSubtitle": "Reports, actions and moderation team",
"catalog": "Catalog & rares",
"catalogSubtitle": "Catalog, rares, badges, achievements and sounds",
"shop": "Shop & payments",
"shopSubtitle": "Shop, transactions, vouchers, subscriptions and calendar",
"radio": "Radio",
"radioSubtitle": "Stream, DJ tools, embed and monitoring",
"settings": "Settings",
"settingsSubtitle": "CMS config, theme, maintenance and related tools",
"tools": "Tools",
"toolsSubtitle": "RCON, rooms, import and translations",
"observability": "Observability",
"observabilitySubtitle": "Logs, analytics, DevOps and hotel alerts",
"tabs": {
"articles": "Articles",
"photos": "Photos",
"banners": "Banners",
"ads": "Ads",
"media": "Media",
"navigator": "Navigator",
"help": "Help",
"boxes": "Boxes",
"tags": "Tags",
"prefixes": "Prefixes",
"events": "Events",
"eventTypes": "Event types",
"polls": "Polls",
"tickets": "Tickets",
"templates": "Templates",
"directory": "Directory",
"multiAccounts": "Multi-accounts",
"online": "Online",
"applications": "Applications",
"teams": "Teams",
"bans": "Bans",
"ip": "IP",
"vpn": "VPN",
"permissions": "Permissions",
"wordFilter": "Word filter",
"overview": "Overview",
"actions": "Actions",
"cfh": "CFH",
"team": "Team",
"catalogTab": "Catalog",
"rares": "Rares",
"badges": "Badges",
"achievements": "Achievements",
"sounds": "Sounds",
"shopTab": "Shop",
"transactions": "Transactions",
"vouchers": "Vouchers",
"subscriptions": "Subscriptions",
"calendar": "Calendar",
"history": "History",
"moderationTab": "Moderation",
"monitoring": "Monitoring",
"settingsTab": "Settings",
"embed": "Embed",
"apiKeys": "API keys",
"points": "Points",
"ranks": "Ranks",
"autoDj": "Auto DJ",
"cms": "CMS",
"theme": "Theme",
"maintenance": "Maintenance",
"favicon": "Favicon",
"emulator": "Emulator",
"email": "Email",
"housekeeping": "Housekeeping",
"commando": "Commando",
"rooms": "Rooms",
"import": "Import",
"translations": "Translations",
"logs": "Logs",
"audit": "Audit",
"chat": "Chat",
"commands": "Commands",
"trades": "Trades",
"analytics": "Analytics",
"activity": "Activity",
"economy": "Economy",
"devops": "DevOps",
"errors": "Errors",
"alerts": "Alerts",
"toolsGroup": "Tools",
"helpTickets": "Help-center tickets",
"ticketInbox": "Inbox",
"importOverview": "Overview",
"importBadges": "Badges",
"importFurni": "Furni",
"importUpload": "Upload",
"importClothing": "Clothing",
"importEffects": "Effects",
"importPets": "Pets",
"importClone": "Clone",
"importSync": "Sync",
"importRepairIcons": "Repair icons",
"importAudit": "Audit",
"themeBuilder": "Theme Builder",
"studio": "Studio",
"cmsErrors": "CMS errors"
},
"events": "Events",
"eventsSubtitle": "Hotel events and event types",
"tickets": "Support desk",
"ticketsSubtitle": "CMS tickets, help-center tickets, and reply templates",
"staffAccess": "Ranks & permissions",
"staffAccessSubtitle": "Staff ranks, ACL permissions and housekeeping access",
"analytics": "Analytics",
"analyticsSubtitle": "Hotel activity, retention and economy",
"devops": "DevOps",
"devopsSubtitle": "Service health and emulator errors",
"import": "Import",
"importSubtitle": "Furni, badges, clothing and asset tools"
},
"events": {
"newEvent": "+ New event",
"createTitle": "Create event",
"createSubtitle": "Schedule a new hotel event",
"searchPlaceholder": "Search events…",
"colId": "ID",
"colTitle": "Title",
"colType": "Type",
"colStarts": "Starts",
"colStatus": "Status",
"colActions": "Actions",
"statusPublished": "Published",
"statusDraft": "Draft",
"statusCancelled": "Cancelled",
"statusCompleted": "Completed",
"statRegistrations": "Registrations",
"statPrizes": "Prizes",
"statWinners": "Winners",
"statTime": "Time",
"maxPlayers": "Max: {count}",
"timeUpcoming": "Upcoming",
"timePast": "Past",
"endsAt": "Ends: {date}",
"userFallback": "User #{id}",
"registrationsTitle": "Registrations ({count})",
"noRegistrations": "No registrations yet.",
"noPrizes": "No prizes configured yet.",
"noWinners": "No winners yet.",
"addPrize": "Add prize",
"addWinner": "Add winner",
"formEditTitle": "Edit event",
"formDetailsTitle": "Event details",
"formTitle": "Title",
"formEventType": "Event type",
"formSelectType": "Select type",
"formDescription": "Description",
"formStartsAt": "Starts at",
"formEndsAt": "Ends at",
"formSelectStart": "Select start date",
"formSelectEnd": "Select end date",
"formMaxPlayers": "Max players",
"formUnlimited": "Unlimited",
"formRoomId": "Room ID",
"formOptional": "Optional",
"formImageUrl": "Image URL",
"formSaving": "Saving…",
"formUpdate": "Update event",
"formCreate": "Create event",
"toastUpdated": "Event updated!",
"toastCreated": "Event created!"
},
"polls": {
"newPoll": "+ New poll",
"createTitle": "Create poll",
"createSubtitle": "Create a new community poll or survey",
"searchPlaceholder": "Search polls…",
"colId": "ID",
"colTitle": "Title",
"colStatus": "Status",
"colType": "Type",
"colCreated": "Created",
"colActions": "Actions",
"statusActive": "Active",
"statusDraft": "Draft",
"statusClosed": "Closed",
"typeMultiple": "Multiple choice",
"typeSingle": "Single choice",
"statVoters": "Total voters",
"statQuestions": "Questions",
"statVotes": "Total votes",
"questionsTitle": "Questions ({count})",
"addQuestion": "Add question",
"noQuestions": "No questions yet. Add your first question above.",
"resultsTitle": "Results",
"formEditTitle": "Edit poll",
"formDetailsTitle": "Poll details",
"formTitle": "Title",
"formDescription": "Description",
"formStartsAt": "Starts at",
"formEndsAt": "Ends at",
"formSelectStart": "Select start date",
"formSelectEnd": "Select end date",
"formShowResults": "Show results to voters",
"formAllowMultiple": "Allow multiple answers",
"formSaving": "Saving…",
"formUpdate": "Update poll",
"formCreate": "Create poll",
"toastUpdated": "Poll updated!",
"toastCreated": "Poll created!"
},
"multiAccounts": {
"minAccounts": "Min accounts per cluster",
"resultLimit": "Result limit",
"refresh": "Refresh",
"noClusters": "No clusters found at the current thresholds."
},
"devops": {
"noEmulatorErrors": "No emulator errors found",
"noRecentErrors": "No recent errors",
"cmsErrors": "CMS error center"
},
"helpTickets": {
"title": "Help center tickets",
"subtitle": "Player tickets from /help/tickets",
"noTickets": "No open help center tickets",
"searchPlaceholder": "Search title, user or ID…",
"presetOpen": "Open",
"presetAll": "All",
"statusOpen": "Open",
"statusClosed": "Closed",
"colTicket": "Ticket",
"colStatus": "Status",
"colUser": "User",
"colCreated": "Created",
"colUpdated": "Updated",
"meta": "by {user} · {count} replies",
"backToList": "Back to list",
"threadTitle": "Conversation",
"staffBadge": "Staff",
"replyPlaceholder": "Reply as staff…",
"replySubmit": "Send reply",
"replyHint": "Ctrl+Enter to send.",
"closeSubmit": "Close ticket",
"reopenSubmit": "Reopen ticket",
"closedHint": "This ticket is closed.",
"actionsTitle": "Actions",
"requesterTitle": "Requester",
"detailsTitle": "Details",
"rankLabel": "Rank {rank}",
"messageCountLabel": "Messages",
"success": {
"replied": "Reply sent.",
"closed": "Ticket closed.",
"reopened": "Ticket reopened.",
"banLifted": "Ban lifted and ticket closed."
},
"queueHint": "This queue is the public help center. CMS support desk tickets are in the Support desk tab.",
"queueOtherCta": "Open CMS support desk",
"queueCounts": "Open here: {here} · Support desk: {other}",
"liftBanSubmit": "Lift requester ban & close",
"requesterBanned": "Requester banned"
},
"marketplace": {
"title": "Marketplace",
"subtitle": "Hotel marketplace listings",
"activeListings": "Active listings",
"soldListings": "Sold",
"filterActive": "Active",
"filterSold": "Sold",
"empty": "No marketplace listings to show.",
"loadError": "Could not load marketplace data (database unavailable).",
"cancel": "Cancel listing",
"colId": "ID",
"colItem": "Item ID",
"colSeller": "Seller",
"colPrice": "Price",
"colListed": "Listed",
"colSold": "Sold at",
"colActions": "Actions"
},
"analytics": {
"loadError": "Some analytics queries failed. Numbers below may be incomplete — check the database connection and emulator tables.",
"totalUsers": "Total users",
"onlineNow": "{count} online now",
"weekRegistrations": "Week registrations",
"thisMonth": "{count} this month",
"activeRooms": "Active rooms",
"totalRooms": "{count} total rooms",
"weeklyActivity": "Weekly activity",
"tradesAndBans": "{trades} trades, {bans} bans",
"registrationsChartTitle": "Registrations (30 days)",
"registrationsChartDescription": "New user registrations over the last 30 days",
"chatActivity": "Chat activity",
"messagesLast7Days": "Messages in the last 7 days",
"trades": "Trades",
"tradesLast7Days": "Trades in the last 7 days",
"retention": "Retention",
"usersOnlineOverTotal": "Users online / total",
"activity": {
"chatMessages": "Chat messages",
"commands": "Commands",
"bans": "Bans",
"registrations": "Registrations",
"last7Days": "Last 7 days",
"dailyBreakdownTitle": "Daily breakdown (7 days)",
"colDay": "Day",
"colChats": "Chats",
"colCmds": "Cmds",
"colBans": "Bans",
"colRegs": "Regs",
"mostActiveUsersTitle": "Most active users (7 days)",
"noChatActivity": "No chat activity",
"msgCount": "{count} msgs",
"userFallback": "User #{id}"
},
"economy": {
"creditsInCirculation": "Credits in circulation",
"creditsDescription": "Total credits across all users",
"pixelsInCirculation": "Pixels in circulation",
"pixelsDescription": "Total pixels across all users",
"pointsInCirculation": "Points in circulation",
"pointsDescription": "Total points across all users",
"weeklyTrades": "Weekly trades",
"marketplaceListings": "{count} marketplace listings",
"shopRevenueTitle": "Shop revenue (7d)",
"purchases": "Purchases",
"creditsSpent": "Credits spent",
"pointsSpent": "Points spent",
"marketplaceTitle": "Marketplace",
"activeListings": "Active listings",
"sold7d": "Sold (7d)",
"currencyDistributionTitle": "Currency distribution",
"credits": "Credits",
"pixels": "Pixels",
"points": "Points",
"catalogSpendingTitle": "Catalog spending",
"creditsTooltip": "{count} credits",
"pointsTooltip": "{count} points"
},
"peakHours": {
"title": "Peak hours",
"description": "User activity by day & hour (last 7 days)",
"days": {
"mon": "Mon",
"tue": "Tue",
"wed": "Wed",
"thu": "Thu",
"fri": "Fri",
"sat": "Sat",
"sun": "Sun"
},
"tooltip": "{day} {hour}:00 — {count} users",
"less": "Less",
"more": "More"
}
},
"guilds": {
"title": "Guilds",
"subtitle": "Hotel groups and membership",
"totalGuilds": "Guilds",
"searchPlaceholder": "Search by name, description or ID…",
"search": "Search",
"empty": "No guilds found.",
"loadError": "Could not load guilds (database unavailable).",
"colId": "ID",
"colBadge": "Badge",
"colName": "Name",
"colOwner": "Owner",
"colMembers": "Members",
"colCreated": "Created",
"colThreads": "Forum threads",
"colRoom": "Room",
"colUser": "User",
"colLevel": "Level",
"colJoined": "Joined",
"members": "Members",
"noMembers": "No members.",
"back": "Back to guilds",
"viewPublic": "Open public page",
"disband": "Disband guild",
"listHeading": "Guilds ({count})",
"edit": "Edit guild",
"save": "Save",
"saving": "Saving…",
"updated": "Guild updated",
"updateError": "Could not update guild",
"formName": "Name",
"formDescription": "Description",
"formState": "State",
"formForum": "Forum",
"formReadForum": "Read forum",
"formPostMessages": "Post messages",
"formPostThreads": "Post threads",
"formModForum": "Moderate forum"
},
"items": {
"title": "Items base",
"subtitle": "Browse and edit furni definitions in items_base (standalone from catalog pages)",
"total": "{count, plural, one {# item} other {# items}}",
"editTitle": "Edit {name}",
"editSubtitle": "items_base #{id}",
"back": "Back to list",
"save": "Save",
"saved": "Item saved",
"untitled": "Untitled item",
"sectionIdentity": "Identity",
"sectionDims": "Dimensions & interaction",
"sectionFlags": "Allow flags",
"sectionExtra": "Extra",
"publicName": "Public name",
"itemName": "Classname",
"type": "Type",
"spriteId": "Sprite ID",
"width": "Width",
"length": "Length",
"stackHeight": "Stack height",
"interactionType": "Interaction",
"interactionModes": "Modes",
"vendingIds": "Vending IDs",
"multiheight": "Multiheight",
"customparams": "Custom params"
},
"online": {
"title": "Online users",
"subtitle": "Players currently connected",
"connected": "{count, plural, one {# player connected} other {# players connected}}"
},
"ticketInbox": {
"hint": "Merged view of open CMS desk and help-center tickets. Detail pages and replies stay on each product own route.",
"noTickets": "No open tickets in either queue",
"searchPlaceholder": "Search subject, title, user or ID…",
"statCmsOpen": "CMS open",
"statHelpOpen": "Help open",
"statTotal": "Open total",
"colTicket": "Ticket",
"colStatus": "Status",
"colType": "Queue",
"colUpdated": "Updated",
"meta": "by {user}",
"typeAll": "All queues",
"typeCms": "CMS desk",
"typeHelp": "Help center",
"statusOpen": "Open",
"statusClosed": "Closed",
"statusAll": "All statuses",
"presetOpen": "Open only",
"modNavLabel": "Queues:",
"modNavInbox": "Inbox",
"modNavDesk": "CMS desk",
"modNavHelp": "Help center"
},
"menu": {
"title": "Admin menu",
"subtitle": "Reorder and hide sidebar groups and links. Routes and permissions stay in code.",
"save": "Save menu",
"saving": "Saving…",
"saved": "Admin menu saved.",
"saveFailed": "Could not save admin menu.",
"reset": "Reset to default",
"viewOnly": "You can view the menu layout but need settings edit permission to change it.",
"hint": "Dashboard and this page stay visible. ACL still filters what each rank sees.",
"moveUp": "Move up",
"moveDown": "Move down",
"hideGroup": "Hide group",
"showGroup": "Show group",
"hideItem": "Hide item",
"showItem": "Show item",
"pinned": "Pinned"
},
"cmsErrors": {
"firstSeen": "First occurrence in retained records",
"lastSeen": "Latest occurrence",
"affectedUsers": "Distinct identified users",
"unidentifiedEvents": "Events without a verified user ID",
"metricsScope": "Counts cover only the retained records loaded here. Users are counted only from numeric server-side user IDs; anonymous and browser reports are not attributed.",
"assignedStaff": "Assigned to staff #{id}",
"unassigned": "Unassigned",
"assignSelf": "Assign to me",
"clearAssignment": "Clear assignment",
"openOperation": "Open related area",
"releaseOccurrences": "Occurrences by release",
"releaseScope": "These releases appear in the retained records. The earliest occurrence here does not establish which release introduced the error.",
"releaseFilter": "Version",
"allReleases": "All versions",
"period": "Period",
"allRetained": "All retained events",
"last24h": "Last 24 hours",
"last7d": "Last 7 days",
"sort": "Order",
"recentFirst": "Most recent first",
"frequentFirst": "Most frequent first",
"filterScope": "Counts refer to matching retained events. Group status and latest details remain current across versions.",
"title": "CMS error center",
"storageError": "Error storage could not be read. Check the storage volume and permissions.",
"subtitle": "Server and browser errors from the last 7 days. Browser reports are unverified client observations.",
"emulator": "Emulator errors",
"refresh": "Refresh / clear filters",
"search": "Search errors",
"allSources": "All sources",
"empty": "No captured errors match these filters. Older console logs are not imported.",
"resolve": "Mark resolved",
"reopenHint": "A new occurrence reopens the group automatically.",
"references": "Occurrence references",
"stackHint": "Browser stacks may reference compiled chunks. Use the reference to investigate; request bodies are not stored.",
"previous": "Previous",
"next": "Next",
"searchHint": "Reference, digest, message, route or release",
"source": "Error source",
"pages": "Error pages",
"resolved": "Resolved",
"open": "Open",
"occurrences": "{count} occurrences",
"reference": "Reference",
"release": "Release",
"noStack": "No stack supplied. Use the reference or digest to correlate server logs.",
"truncated": "Showing the latest 1,000 events; filters search this retained window.",
"counts": "{count} occurrences · {groups} groups.",
"retention": "Storage is limited to 10 MB per day; excess events remain in server logs where available.",
"status": "Status",
"allStatuses": "All statuses",
"auditTrail": "Related audit records"
},
"installation": {
"title": "Installation diagnostics",
"hint": "Read-only checks of this installation. Unknown means there is not enough evidence; configured does not prove external reachability.",
"checked": "Checked at {time} · probes completed in {ms} ms",
"recheck": "Check again",
"ok": "Check passed",
"failed": "Needs attention",
"unknown": "Not verified",
"missing": "Not configured",
"release": "Running release",
"database": "Database",
"redis": "Redis",
"emulator": "Emulator",
"storage": "Writable storage",
"migrations": "Database migrations",
"worker": "Background worker",
"renderer": "Renderer configuration",
"registry": "Container registry",
"releaseHint": "The full identifier of the running build. Use it to compare installations and choose a previous image for rollback.",
"databaseHint": "Connection check and measured SELECT 1 response time.",
"redisHint": "Optional for some pages; required for queued import work.",
"emulatorHint": "Response to the configured emulator ping.",
"storageHint": "Read/write permissions on storage, Nitro assets and SWF directories.",
"migrationsHint": "Number of packaged migrations absent from the database history. Apply migrations through the release process.",
"workerHint": "Last worker heartbeat in Redis. More than two minutes old needs investigation; no heartbeat cannot establish whether the worker is running.",
"rendererHint": "The client uses the configured address or /nitro-client/ by default. Open the game separately to verify rendering and assets.",
"registryHint": "Registry credentials live in CI, not in the CMS. Check the image publication job and its immutable release tag in Gitea."
},
"importHistory": {
"cancelled": "Cancelled",
"cancelFailed": "Could not request cancellation. Retry or refresh the job history.",
"cancelRequested": "Cancellation requested. The current item will finish; remaining items will not start.",
"cancelHint": "Cancellation preserves completed items and allows the current item to finish.",
"cancelRemaining": "Cancel remaining items",
"historyLimit": "Showing up to 30 most recently updated jobs.",
"refreshHistory": "Refresh history",
"showMoreItems": "Show 50 more items",
"uncertainOutcome": "An interrupted item may already have changed local data. It is excluded from retries.",
"reviewLocalData": "Review local data",
"ownerHistory": "Your imports and repairs, newest first. Retries never repeat completed or uncertain items.",
"previousPage": "Previous",
"nextPage": "Next",
"page": "Page {page}",
"summary": "Import history · {count} active",
"empty": "No background imports yet.",
"result": "{done}/{total} imported · {failed} failed",
"progress": "Import progress",
"queued": "Queued",
"running": "Running",
"completed": "Completed",
"interrupted": "Interrupted",
"done": "Imported",
"failed": "Failed",
"pending": "Pending",
"retryFailed": "Retry failed items only",
"retryUnfinished": "Retry unfinished items"
},
"operations": {
"title": "Needs attention",
"hint": "Accessible work: imports sample your latest 30 jobs; errors sample up to 1,000 retained events. Older work may be outside these counts.",
"empty": "No pending items found in the checked records.",
"errors": "Unresolved CMS error groups",
"imports": "Your imports needing review",
"tickets": "Open support tickets",
"publications": "News drafts",
"unavailable": "{source}: data is temporarily unavailable.",
"installation": "Installation diagnostics"
},
"catalogPackages": {
"backend": {
"sourceChanged": "Source categories or offers changed since this package was created. Create a fresh package to include the current data.",
"saveConflict": "Package changed. Reload it before saving",
"publishConflict": "Package changed. Refresh the publication preview",
"catalogChanged": "Catalog changed. Refresh the publication preview",
"missing": "Catalog package not found",
"pageLimit": "A package supports at most 200 categories including descendants",
"offerLimit": "A package supports at most 500 offers",
"payloadLimit": "Package data exceeds 8 MB safety limit",
"membership": "Package membership cannot change",
"hierarchy": "Package hierarchy cannot change",
"references": "Package furniture references cannot change",
"furnitureMissing": "Package furniture reference no longer exists",
"auditWarning": "Package published, but audit logging failed.",
"hotelWarning": "Package published, but the hotel update was not delivered.",
"exportWarning": "Package published, but export scheduling failed.",
"refreshWarning": "Package published. Refresh the page to see the latest catalog."
}
},
"catalogPackagePreview": {
"title": "Catalog preview",
"hint": "Browse the actual package pages and offers. This is a catalog preview, not a full game-client rendering. No purchases are made.",
"search": "Search categories or offers",
"playerMode": "Player access",
"rank": "Rank",
"club": "Club",
"vip": "VIP",
"externalParents": "This selection starts inside a larger catalog. Access restrictions on ancestors outside this snapshot cannot be evaluated.",
"invalidHierarchy": "{count} pages have a cyclic hierarchy and cannot be navigated.",
"snapshotLimit": "Preview limited to 200 pages and 500 offers.",
"restricted": "{count} pages are hidden by the selected player access settings.",
"categories": "Catalog categories",
"noPages": "This snapshot contains no categories.",
"inaccessible": "No categories are accessible with these settings. Adjust player access or turn it off to inspect the draft.",
"noMatches": "No matches for this search.",
"offerCount": "{count} offers",
"layout": "Layout: {layout}",
"missingLayout": "Not specified",
"unsupportedLayout": "This layout has no dedicated preview. The grid shows the actual offers; custom layout widgets and imagery are not reproduced.",
"loadingIcons": "Loading furniture icons…",
"assetsUnavailable": "Furniture details are temporarily unavailable. Offer data remains visible.",
"assetLimit": "Icons and furniture names are limited to the first 200 item IDs on this view.",
"emptyPage": "This category has no direct offers. Browse its subcategories.",
"missingIcon": "Icon unavailable",
"amount": "Quantity: {count}",
"bundle": "{count} furniture types",
"changed": "Changed from the saved baseline",
"previous": "Previous",
"next": "Next",
"page": "Page {page} of {total}",
"offerId": "Offer #{id}",
"unknownFurniture": "Furniture name unavailable",
"selectOffer": "Select an offer to inspect its price and furniture references.",
"credits": "Credits",
"duckets": "Duckets",
"diamonds": "Diamonds",
"pointsType": "Points (type {type}):",
"free": "Free",
"specialPricing": "Special pricing: {credits} credits, {points} points (type {type})",
"restrictedOffers": "{count} offers in this category require Club membership.",
"clubOffer": "Club offer"
},
"search": {
"furniture": "Furniture",
"catalog": "Catalog categories",
"tickets": "Support tickets",
"loading": "Searching…",
"hint": "Enter a numeric ID or at least 2 characters, or choose a page.",
"retry": "Retry",
"description": "Search pages, users, furniture, catalog categories, articles and support tickets.",
"partialError": "Some results could not be loaded. Try again.",
"pages": "Pages and tools",
"loadError": "Records could not be loaded. You can still open the pages above.",
"placeholder": "Search pages, users, rooms…",
"users": "Users",
"articles": "Articles",
"rooms": "Rooms",
"guilds": "Groups",
"shop": "Shop",
"rareValues": "Rare values",
"noResults": "No results found."
},
"permissionPreview": {
"title": "Role access preview",
"description": "Inspect CMS access without changing a session or impersonating a user.",
"back": "Back to permissions",
"role": "Role",
"show": "Show access",
"missing": "Select an existing role.",
"entryAllowed": "Housekeeping entry allowed",
"entryDenied": "Housekeeping entry denied: dashboard permission missing",
"superAdmin": "This rank currently receives the highest-rank override.",
"scope": "This preview shows one role only. A user may receive additional roles. Navigation customization can hide allowed sections; specific records and actions can require further checks.",
"sections": "Sections",
"allowed": "Allowed",
"denied": "Denied",
"actions": "CMS permissions",
"actionScope": "A granted permission alone does not bypass dashboard entry, rank hierarchy, record ownership or action-specific validation.",
"granted": "Granted",
"notGranted": "Not granted"
},
"operationsCenter": {
"title": "Operations center",
"hint": "Track your durable imports and repairs, and the shared catalog export queue.",
"syncTitle": "Source synchronization",
"syncHint": "Source synchronization shows live progress on its own page. It has no durable history or automatic retry of failed items here. Catalog export reports the shared queue and latest result; item-level retry is not supported.",
"openSync": "Open synchronization and export",
"openImports": "Open furniture imports"
},
"operationsExport": {
"title": "Catalog repository export",
"hint": "Automatic export of bundles, icons, gamedata, translations and catalog SQL. The queue and latest result are shared across operators.",
"loadError": "Unable to load export status",
"queueError": "Unable to queue export",
"loading": "Loading…",
"disabled": "Export is disabled. Open synchronization to review its configuration.",
"active": "Waiting for {count} operation(s) to finish.",
"running": "Export in progress…",
"pending": "{count} update(s) queued for export.",
"idle": "No pending updates.",
"lastCommit": "Last published commit:",
"lastAttempt": "Last attempt: {date}",
"queuing": "Queuing…",
"queue": "Export now / retry"
},
"performance": {
"title": "Request performance",
"scope": "Server measurements for authenticated HK APIs and selected public page components. Choose a group below.",
"refresh": "Refresh",
"shared": "Shared diagnostics via Redis.",
"local": "Local diagnostics for this instance only; cleared on restart.",
"retention": "Up to 200 recent samples per group, retained for one hour. Collection is best effort.",
"search": "Route or operation ID",
"sort": "Order",
"slowest": "Slowest first",
"recent": "Most recent first",
"threshold": "Duration filter",
"all": "All durations",
"slow": "At least 1 second",
"explanation": "Database time includes completed queries and pool waits. External time covers monitored curl downloads only. Concurrent calls can add up to more than the request duration; these values are not exclusive parts of the total.",
"empty": "No matching requests yet. Use the HK, then refresh this page.",
"database": "Database",
"external": "Monitored downloads",
"calls": "{count} calls",
"failures": "{count} failures",
"streaming": "Streaming response: timing stops at response creation, not at the end of the operation.",
"operation": "Operation ID",
"kind": "Measurement group",
"adminApi": "HK APIs",
"publicPage": "Public pages",
"applyFilters": "Apply filters",
"publicBoundary": "Public measurements cover the root server page component on /me, news, profiles, events and search. They exclude metadata, separately rendered children, network transfer and browser rendering. Component outcomes are not HTTP response codes. Static build invocations are excluded.",
"outcomes": {
"completed": "Component completed",
"failed": "Component failed",
"redirect": "Redirect",
"not-found": "Page not found"
}
},
"importProgress": {
"validating": "Checking local data",
"downloading": "Downloading files",
"converting": "Converting to Nitro",
"checking_sources": "Searching configured sources",
"writing_db": "Saving SQL and catalog",
"writing_furnidata": "Updating furnidata",
"translating": "Updating translations",
"current": "Current phase: {phase}",
"last": "Last phase: {phase}",
"elapsed": "{seconds}s in this phase",
"recovered": "Bundle recovered from {source} · revision {revision}. Classname, type and revision matched; bundle identity validated.",
"recoveryHint": "You can continue. If the original files fail, the importer will search enabled sources for a matching classname, type and revision, then validate the Nitro bundle. Unavailable files can still be attached manually."
},
"table": {
"search": "Search…",
"clearSearch": "Clear search",
"filters": "Filters",
"clearAll": "Clear all",
"all": "All",
"columns": "Columns",
"perPage": "{count} / page",
"selected": "{count} selected",
"results": "{count} results",
"empty": "No results match your search or filters.",
"selectAll": "Select all rows on this page",
"selectRow": "Select row {id}",
"removeFilter": "Remove filter: {name}",
"previous": "Previous page",
"next": "Next page",
"page": "Page {page}",
"pageOf": "Page {page} of {last}",
"bulkError": "The operation failed. Your selection has been kept; check the result before retrying.",
"confirmBulk": "{action} on {count} selected rows?",
"views": {
"title": "Saved views",
"hint": "Save filters, sorting and visible columns to your account. Up to 20 views per table.",
"saved": "View saved",
"error": "Saved views are temporarily unavailable. Try again.",
"retry": "Retry",
"loading": "Loading views...",
"empty": "No saved views yet.",
"deleteNamed": "Delete {name}",
"delete": "Delete",
"name": "View name",
"replace": "Replace this view",
"save": "Save current view"
}
},
"actions": {
"saved": "Saved successfully.",
"error": "The operation could not be completed.",
"saving": "Saving…",
"saveError": "Save failed. Your changes are still here; please try again.",
"unsaved": "Unsaved changes",
"leaveUnsaved": "You have unsaved changes. Leave this page?",
"preview": "Preview"
},
"workQueue": {
"title": "Work to review",
"tickets": "Open tickets",
"ticketsHint": "CMS and help-center queues",
"imports": "Imports to review",
"importsHint": "Your interrupted jobs or jobs with failed items",
"errors": "Open CMS error groups",
"errorsHint": "From the retained diagnostic history",
"unavailable": "Status unavailable — open to inspect"
},
"syncQueue": {
"preparing": "Preparing synchronization...",
"queued": "Synchronization saved. Follow its progress in the history below.",
"start": "Start synchronization",
"description": "Synchronization runs in the background. Progress and safe retries remain in your import history after you leave this page.",
"failed": "Could not queue synchronization"
},
"publicationPreflight": {
"affectedPages": "Affected public pages",
"scheduleInvalid": "Choose a valid start or publication date. An event end must follow its start.",
"description": "Checks use the current form values. Remote image and link availability is not tested.",
"slugNormalized": "The public address will use the normalized slug shown below.",
"imageInvalid": "Use a local image path or an HTTP/HTTPS image URL without credentials.",
"imageMissing": "No cover image selected. The page will use its fallback.",
"title": "Publication checks",
"ready": "Image, links and schedule passed the local checks.",
"linksInvalid": "Review the content links: only local, HTTP/HTTPS and email links are allowed.",
"schedulePast": "The selected date is in the past. Review it before publishing.",
"previewHint": "These links show the current public pages. Use Preview to check unsaved content. The final article slug may receive a suffix if already in use."
}
},
"error": {
"code": "Error",
"title": "Something went wrong",
"subtitle": "The hotel hit an unexpected snag.",
"body": "Try again in a moment. If it keeps happening, contact staff with the reference below.",
"tryAgain": "Try again",
"backHome": "Back home",
"reference": "Reference: {digest}"
},
"notFound": {
"code": "404",
"title": "Page not found",
"subtitle": "This room doesn’t exist — or the furniture was moved.",
"body": "Check the link, or head back to the lobby.",
"backHome": "Back home",
"latestNews": "Latest news"
},
"sessions": {
"title": "Login activity",
"subtitle": "Recent sign-ins and failed attempts on your account",
"recentTitle": "Recent sign-ins",
"recentEmpty": "No sign-ins recorded yet.",
"colWhen": "When",
"colIp": "IP",
"colDevice": "Device",
"failedTitle": "Failed attempts",
"failedSubtitle": "Wrong password on your username",
"unknownDevice": "Unknown device",
"signOutEverywhereTitle": "Sign out everywhere",
"signOutEverywhereDescription": "Ends all website sessions on every device. You will need to sign in again here too.",
"signOutEverywhereButton": "Sign out all sessions",
"successSignedOutAll": "All sessions have been signed out."
},
"guildForumThread": {
"backToForum": "← Back to forum",
"unnamedGuild": "Unnamed guild",
"noSubject": "(no subject)",
"inGuildForum": "{guild} forum",
"pinned": "Pinned",
"locked": "Locked",
"postsTitle": "Posts",
"postsSubtitle": "{count, plural, one {# post} other {# posts}}",
"postsEmpty": "No posts in this thread.",
"userNumber": "User #{id}",
"replyTitle": "Reply",
"replySubtitle": "Add your message to this thread",
"replyPlaceholder": "Write your reply…",
"replySubmit": "Post reply",
"lockedHint": "This thread is locked — new replies are disabled.",
"loginToReply": "Sign in to reply.",
"loginLink": "Log in",
"success": {
"replied": "Reply posted."
},
"errors": {
"invalid": "Please enter a message.",
"notFound": "That thread was not found.",
"locked": "This thread is locked.",
"ratelimit": "You're posting too fast. Please wait a moment and try again.",
"error": "Something went wrong. Please try again."
}
},
"helpTicketDetail": {
"backToList": "← Your tickets",
"ticketId": "Ticket #{id}",
"statusOpen": "Open",
"statusClosed": "Closed",
"messagesTitle": "Conversation",
"messagesSubtitle": "{count, plural, one {# message} other {# messages}}",
"you": "You",
"userNumber": "User #{id}",
"replyTitle": "Reply",
"replySubtitle": "Send a follow-up to staff",
"replyPlaceholder": "Write your message…",
"replySubmit": "Send reply",
"closeTitle": "Close ticket",
"closeSubtitle": "Mark this request as resolved when you no longer need help",
"closeSubmit": "Close ticket",
"closedHint": "This ticket is closed. Open a new ticket if you need more help.",
"success": {
"replied": "Reply sent.",
"closed": "Ticket closed."
},
"errors": {
"invalid": "Please enter a message.",
"notFound": "That ticket was not found.",
"closedTicket": "This ticket is closed.",
"moderated": "That message was blocked by moderation.",
"ratelimit": "You're submitting too fast. Please wait a moment and try again.",
"error": "Something went wrong. Please try again."
}
},
"events": {
"title": "Events",
"subtitle": "Upcoming and recent hotel events you can join",
"empty": "No events yet.",
"back": "← Events",
"when": "When",
"status": "Status",
"statusPublished": "Open",
"statusCompleted": "Completed",
"registrations": "Registrations",
"registered": "{count} registered",
"spots": "{count} / {max} spots",
"registerTitle": "Register",
"registerSubtitle": "Save your spot for this event",
"register": "Register for event",
"registering": "Registering…",
"registerSuccess": "You are registered!",
"registerError": "Could not register for this event.",
"loginToRegister": "Log in to register for this event.",
"alreadyRegistered": "You are already registered.",
"eventEnded": "This event has ended.",
"eventFull": "This event is full.",
"cannotRegister": "Registration is not available.",
"prizesTitle": "Prizes",
"winnersTitle": "Winners",
"unknownUser": "User #{id}",
"filterStatus": "Status",
"allEvents": "All events",
"statusOngoing": "In progress",
"statusUpcoming": "Upcoming",
"weekStarting": "Week starting (UTC)",
"myRegistrations": "My registrations",
"apply": "Apply",
"reset": "Reset",
"timeZoneHint": "Times are shown in your local time zone. The seven-day filter uses UTC dates.",
"loginForRegistrations": "Sign in to view your registrations.",
"loadError": "Events could not be loaded. Please try again.",
"youRegistered": "You are registered",
"pagination": "Event pages",
"previous": "Previous",
"next": "Next",
"pageSummary": "Page {page} of {pages} · {total} events",
"weeklyView": "Weekly view",
"previousWeek": "Previous week",
"nextWeek": "Next week"
},
"polls": {
"title": "Polls",
"subtitle": "Share your opinion in community polls",
"empty": "No polls yet.",
"back": "← Polls",
"statusActive": "Open",
"statusClosed": "Closed",
"questionsCount": "{count} questions",
"ends": "Ends {date}",
"voteTitle": "Cast your vote",
"voteSubtitle": "Answer each question below",
"submitVote": "Submit vote",
"voting": "Submitting…",
"voteSuccess": "Thanks for voting!",
"voteError": "Could not submit your vote.",
"loginToVote": "Log in to vote in this poll.",
"alreadyVoted": "You have already voted.",
"pollClosed": "This poll is closed.",
"cannotVote": "Voting is not available.",
"textPlaceholder": "Your answer…",
"resultsTitle": "Results",
"voteCount": "{count} ({pct}%)",
"totalVotes": "{count} total votes",
"textResponses": "{count} free-text responses"
},
"mod": {
"title": "Moderation panel",
"badge": "Mod",
"overviewTitle": "Moderator overview",
"overviewSubtitle": "CFH, quick actions and bans without full admin access.",
"shortcutsTitle": "Shortcuts",
"nav": {
"overview": "Overview",
"cfh": "Call for Help",
"actions": "Quick actions",
"bans": "Bans",
"fullAdmin": "Full admin",
"backToSite": "Back to site",
"tickets": "Tickets",
"team": "Team",
"helpTickets": "Help-center tickets",
"users": "Users"
},
"stats": {
"openCfh": "Open CFH",
"bansToday": "Bans today",
"modsOnline": "Mods online",
"quickActions": "Quick actions",
"quickActionsHint": "Kick, mute, alert",
"openTickets": "Open tickets",
"team": "Mod team",
"teamHint": "Online staff & workload",
"openHelpTickets": "Open help tickets"
},
"usersTitle": "Players",
"usersSubtitle": "Lookup without email or IP — use full admin for sensitive fields.",
"usersEmpty": "No players found",
"usersSearchPlaceholder": "Search username, motto or ID…",
"usersRank": "rank",
"usersPublicProfile": "Public profile",
"usersPiiNote": "Email, IP and currency are hidden in the mod panel. Open full admin if you have access.",
"usersJoined": "Joined",
"usersLastLogin": "Last login",
"usersLastOnline": "Last online"
},
"studio": {
"title": "Studio",
"sourceFurnidata": "{source} furnidata",
"searchPlaceholder": "Search furni, classnames, keywords… (/)",
"results": "{count} results",
"inDb": "in DB",
"inCatalog": "in catalog",
"missingNitro": "missing nitro",
"globalTranslation": "Translation (global)",
"catalogTree": "Catalog",
"source": "Furni source",
"officialSource": "(official)",
"type": "Type",
"allTypes": "All types",
"floorItems": "Floor items",
"wallItems": "Wall items",
"category": "Category",
"allCategories": "All categories",
"status": "Status",
"allStatuses": "All statuses",
"imported": "Imported",
"inCatalogStatus": "In catalog",
"missingNitroStatus": "Missing nitro",
"sort": "Sort",
"defaultOrder": "Default order",
"nameAZ": "Name A–Z",
"classnameAZ": "Classname A–Z",
"categorySort": "Category",
"importedFirst": "Imported first",
"notImportedFirst": "Not imported first",
"noNitro": "{count} no nitro",
"gridView": "Grid view",
"listView": "List view",
"selectAll": "Select all",
"selectedCount": "{count} selected",
"clear": "Clear",
"translate": "Translate",
"noLanguages": "No languages",
"allLanguages": "All languages",
"languagesCount": "{count} languages",
"languages": "Languages",
"all": "All",
"none": "None",
"languageLabel": "Language {lang}",
"translateAll": "Translate all",
"translateAllTitle": "Translate the whole catalog into all languages (afterwards)",
"importAuto": "Import {count} auto",
"maintenance": {
"title": "Catalog maintenance",
"description": "Force the furniture tables to 100% consistency with FurnitureData.json. Every action runs inside a database transaction and rolls back on error.",
"refresh": "Refresh",
"currentHealth": "Current health",
"itemsInBase": "{count} items in items_base",
"loading": "Loading…",
"statSpriteId": "sprite_id ≠ id",
"hintSpriteId": "items_base sprite drift",
"statOfferId": "offer_id ≠ id",
"hintOfferId": "catalog offer drift",
"statDuplicateClassnames": "Duplicate classnames",
"hintDuplicateClassnames": "items_base item_name repeats",
"statDuplicateCatalogRows": "Duplicate catalog rows",
"hintDuplicateCatalogRows": "same product listed twice on a page",
"statIdMismatch": "ID ≠ FurnitureData",
"hintIdMismatch": "items_base id differs from furnidata",
"statDuplicateBcCatalogRows": "Duplicate BC catalog rows",
"hintDuplicateBcCatalogRows": "same product listed twice in builder club",
"statDuplicateCatalogPages": "Duplicate catalog pages",
"hintDuplicateCatalogPages": "same caption under the same parent (double links)",
"optionSpriteId": "Fix sprite_id",
"optionOfferId": "Fix catalog offer_id",
"optionRemoveDuplicates": "Remove duplicates (items + catalog)",
"optionReconcile": "Reconcile FurnitureData ↔ DB",
"optionAlignIds": "Align items_base IDs to FurnitureData",
"alignDescription": "Moves every items_base.id to the FurnitureData sprite id (source of truth). Rewrites all referencing tables.",
"previewChanges": "Preview changes",
"plannedIdMoves": "Planned ID moves: {moves}",
"newItemsInsert": "New items to insert: {inserted}",
"skipped": "Skipped (id occupied): {list}",
"applyAlignment": "Apply alignment",
"fixEverythingTitle": "Fix everything",
"fixEverythingDescription": "Runs the selected repairs in order. Heavy operation — make a backup first.",
"alsoMergeDuplicatePages": "Also merge duplicate catalog pages (double links)",
"runSelected": "Run selected",
"selectAtLeastOne": "Select at least one repair to run",
"previewReady": "Preview ready",
"previewFailed": "Preview failed",
"toast": {
"spriteFixed": "sprite_id fixed",
"offerFixed": "catalog offer_id fixed",
"duplicatesRemoved": "Duplicates removed (items + catalog)",
"reconciled": "FurnitureData reconciled",
"aligned": "items_base IDs aligned to FurnitureData",
"allApplied": "All selected repairs applied",
"failed": "Failed"
}
}
},
"myDashboard": {
"messagesCaughtUp": "No unread messages",
"messagesUnavailable": "Open your inbox to check",
"eventTitle": "On the calendar",
"allEvents": "All events",
"eventsUnavailable": "The calendar is temporarily unavailable. Open all events to try again.",
"eventOngoing": "Happening now",
"eventUpcoming": "Coming up",
"eventDetails": "View event",
"noUpcomingEvents": "No upcoming events have been announced yet.",
"roomsUnavailable": "Rooms are temporarily unavailable. Open the community to try again.",
"title": "My dashboard",
"loadError": "We could not load your dashboard. Please try again.",
"retry": "Try again",
"login": "Sign in",
"never": "Never",
"claimed": "Reward claimed successfully!",
"welcome": "Your space on {hotel}",
"noMotto": "No motto yet",
"registered": "Registered: {date}",
"lastOnline": "Last online: {date}",
"enter": "Enter {hotel}",
"quickLinks": "Quick links",
"messages": "Messages",
"profile": "My profile",
"settings": "Settings",
"shop": "Shop",
"unread": "{count} unread messages",
"wallet": "Your wallet",
"currencies": {
"credits": "Credits",
"duckets": "Duckets",
"diamonds": "Diamonds",
"points": "Points"
},
"onlineFriends": "Online friends",
"allFriends": "All friends",
"noOnlineFriends": "None of your friends are online right now.",
"recentRooms": "New rooms",
"community": "Community",
"roomsHint": "The newest rooms created in the hotel.",
"noRooms": "No rooms available yet.",
"activity": "Your activity",
"achievements": "Achievement score",
"respects": "Respects received",
"friends": "Friends",
"lastLogin": "Last login",
"referrals": "Invite your friends",
"referralHint": "Share your link and earn rewards when new players register.",
"referralProgress": "Progress towards your reward",
"reward": "{amount} {currency} for every {count} new players.",
"rewardHint": "Invite {count} players to unlock your reward.",
"referralLink": "Your invitation link",
"claim": "Claim reward",
"remaining": "{count, plural, one {Invite # more player to unlock your reward.} other {Invite # more players to unlock your reward.}}",
"rules": "Invitation rules",
"rulesText": "Creating extra accounts to increase invitations can lead to removal of progress, currency and inventory, and a ban.",
"badges": "Equipped badges",
"noBadges": "You are not wearing any badges yet.",
"copy": "Copy link",
"copied": "Copied!",
"copyFailed": "Copy failed. Select the link and copy it manually.",
"errors": {
"not_enough": "You need more invitations to claim the reward.",
"no_referrals": "Share your link to invite your first friend.",
"bad_config": "The reward is not configured correctly. Contact the staff.",
"ratelimit": "Too many attempts. Wait a moment and try again.",
"error": "The reward could not be claimed. Please try again."
},
"tasks": {
"title": "To do",
"support": "{count, plural, one {# ticket with a support reply} other {# tickets with support replies}}",
"friends": "{count, plural, one {# friend request to review} other {# friend requests to review}}",
"event": "Your next registered event: {title} · {date}",
"reward": "Your referral reward is ready to claim",
"empty": "You're all caught up. No actions waiting.",
"unavailable": "Some actions could not be checked. Available actions are shown above.",
"retry": "Try again",
"rewardUnavailable": "Referral progress is temporarily unavailable. Please try again."
}
},
"housekeeping": {
"preview": {
"badge": "Foundation preview",
"commandDisabled": "Search and commands are enabled in a later subproject.",
"backToSite": "Back to site"
},
"navigation": {
"skipToContent": "Skip to content",
"primary": "Housekeeping domains",
"contextual": "Domain navigation"
},
"domains": {
"operations": {
"title": "Operations",
"description": "Operational overview and daily queues"
},
"people": {
"title": "People",
"description": "Users, moderation, and support"
},
"content": {
"title": "Content",
"description": "Editorial content and community engagement"
},
"economy": {
"title": "Economy",
"description": "Catalog and shop operations"
},
"hotel": {
"title": "Hotel",
"description": "Rooms, radio, and asset tools"
},
"system": {
"title": "System",
"description": "Configuration, observability, and access"
}
},
"states": {
"loading": {
"title": "Loading housekeeping",
"description": "Preparing the available housekeeping tools."
},
"empty": {
"title": "Nothing available",
"description": "No housekeeping content is available for this domain."
},
"partial": {
"label": "Partial data",
"title": "Some information is unavailable",
"description": "Review the available information and try again later."
},
"error": {
"title": "Unable to load housekeeping",
"description": "Try again later or contact an administrator."
}
}
},
"search": {
"title": "Search",
"subtitle": "Find users, open rooms, news and events.",
"queryLabel": "Search term",
"submit": "Search",
"enterQuery": "Enter a search term to find users, rooms, news and events.",
"resultsFor": "Results for “{query}”",
"users": "Users",
"rooms": "Open rooms",
"news": "News",
"events": "Events",
"loadError": "These results could not be loaded. Please try again.",
"empty": "No matches found.",
"online": "Online",
"offline": "Offline",
"pagination": "{category} pages",
"previous": "Previous",
"next": "Next",
"pageSummary": "Page {page} of {pages} · {total} results"
}
},
"emails": {
"verify": {
"subject": "Verify your email · {hotel}",
"heading": "Verify your email",
"body": "Welcome to {hotel}! Confirm this email address to finish setting up your account.",
"button": "Verify email",
"fallback": "If the button doesn't work, paste this link into your browser:"
}
},
"toolbar": {
"home": "Головна",
"reload": "Перезавантажити",
"fullscreen": "Повний екран",
"logout": "Вийти",
"onlineUsers": "Користувачі онлайн",
"emulatorOnline": "Емулятор онлайн",
"emulatorOffline": "Емулятор офлайн",
"dragToMove": "Перетягніть, щоб перемістити",
"hide": "Сховати панель",
"fullscreenExit": "Вийти з повноекранного режиму",
"show": "Показати панель",
"emulatorUnknown": "Стан емулятора невідомий"
},
"admin": {
"studio": {
"importDiagnostics": {
"attempts": "Діагностика файлів",
"preliminary": "Попередня перевірка адрес; вміст перевіряється під час імпорту.",
"http": "HTTP {status}",
"network": "Не вдалося підключитися",
"timeout": "Джерело не відповіло вчасно",
"invalidResponse": "Джерело повернуло вебсторінку замість файлу",
"available": "Файл знайдено; очікує перевірки",
"recover": "Прикріпити оригінал і продовжити",
"recoveryHint": "Виберіть {file} (до 50 MB). Його відповідність перевіряється. Повторюються невдалі елементи; завершені імпорти зберігаються.",
"attach": "Виберіть оригінальний файл .nitro",
"working": "Перевірка або відновлення...",
"attached": "Відповідний оригінал прикріплено",
"resume": "Повторити невдалі імпорти з цим файлом",
"invalidFile": "Виберіть відповідний оригінальний .nitro до 50 MB і повторіть спробу.",
"resumeError": "Оновіть історію й використайте останню спробу; перевірте файл і спробуйте знову.",
"mismatchedFile": "Цей файл належить іншому предмету меблів.",
"alreadyStarted": "Відновлення вже розпочато. Оновіть історію й використайте останню спробу.",
"notEligible": "Цей елемент не можна відновити вкладенням."
},
"completeness": {
"title": "Completeness and next steps",
"parts": {
"sql": "SQL item",
"catalog": "Catalog offer",
"furnidata": "Furnidata",
"icon": "Local icon",
"nitro": "Nitro file"
},
"statuses": {
"present": "Present",
"missing": "Missing",
"unknown": "Not verified",
"conflict": "Needs review"
},
"actions": {
"sql": "Import or repair this furni to create the missing item record.",
"catalog": "Import or repair this furni to add an offer using the automatic category and price.",
"furnidata": "Import or repair this furni to add the missing furniture data.",
"icon": "Import or repair this furni to retrieve the missing local icon.",
"nitro": "Import or repair this furni to retrieve the asset. For an existing item, Regenerate .nitro is also available.",
"recheck": "Recheck local state before repair. If this persists, check the local file access.",
"audit": "Review duplicate records and matching sprite IDs and types in Catalog audit before repair."
},
"openAudit": "Open Catalog audit to resolve conflicts",
"excludedConflicts": "{count, plural, one {# item needs review and is excluded from this import.} other {# items need review and are excluded from this import.}}"
},
"preflight": {
"filterLabel": "Filter import checks",
"filters": {
"all": "All ({count})",
"complete": "To complete ({count})",
"conflict": "Conflicts ({count})",
"verify": "To verify ({count})"
},
"empty": "No furniture in this group.",
"actions": {
"complete": "Suggested: complete existing furniture",
"import": "Suggested: import new furniture",
"refresh": "Existing furniture is complete; refresh source data",
"conflict": "Resolve the conflicting local records before import",
"verify": "Review the unverified components before continuing"
},
"missing": "Missing: {parts}",
"unknown": "Not verified: {parts}"
}
}
},
"publicData": {
"loadError": "This section could not be loaded. Please try again.",
"retry": "Retry",
"unavailable": "Unavailable"
}
}