Files
EpicNext-Cms/src/messages/ru.json
T
SimoandCursor 98613af875
CI / check (push) Successful in 21s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 59s
CI / deploy (push) Failing after 9s
feat(admin): items_base browser and AdminPageShell on core pages
Co-authored-by: Cursor <[email protected]>
2026-07-30 20:41:31 +02:00

3098 lines
123 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.
{
"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": "Девиз"
},
"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."
}
},
"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": "Комнаты",
"featuresAvatar": "Аватар",
"featuresAvatarDesc": "Создай свой уникальный образ",
"featuresFurniture": "Мебель",
"featuresFurnitureDesc": "Украшай комнаты предметами",
"featuresCommunity": "Сообщество",
"featuresCommunityDesc": "Заводи друзей и общайся",
"featuresGames": "Игры",
"featuresGamesDesc": "Соревнуйся и веселись"
},
"news": {
"title": "Новости",
"subtitle": "Последние анонсы, события и обновления от отеля",
"noArticles": "Статей пока нет."
},
"article": {
"backToNews": "← Новости",
"reactionsTitle": "Реакции",
"reactionsSubtitle": "Расскажите нам, что вы думаете",
"reaction": {
"like": "Нравится",
"love": "Любовь",
"wow": "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": "Post thread",
"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": "для песочницы vs. live).",
"balanceTitle": "Ваш баланс",
"signedInAs": "Вы вошли как {username}",
"credits": "Кредиты",
"creditsPerUnit": "Кредиты на 1.00 {currency}",
"rateLine": "Вы получаете <strong>кредиты</strong> {amount} за 1,00 {currency}. Бонусы появляются в игре при следующем входе."
},
"marketplace": {
"title": "Маркетплейс",
"subtitle": "Просмотр мебели и раре, перечисленных игроками. Объявления размещаются в игре и обновляются в реальном времени — отправляйтесь в отель, чтобы сделать предложение.",
"activeOffers": "Активные предложения",
"sellers": "Продавцы",
"totalValue": "Общая стоимость",
"activeListings": "Активные объявления",
"mostRecentFirst": "Недавно перечисленные первые",
"empty": "В настоящее время нет активных предложений на рынке. Повторите попытку позже.",
"colOffer": "Предложение",
"colItem": "Позиция",
"colSeller": "Продавец",
"colPrice": "Цена",
"colListed": "Размещено",
"itemLabel": "Изделие №{id}",
"userLabel": "Пользователь #{id}",
"justNow": "только что",
"minutesAgo": "{count}m назад",
"hoursAgo": "{count}h назад",
"daysAgo": "{count}d назад"
},
"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": "Radio Shouts",
"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": "Двухфакторная аутентификация недоступна до",
"noAppKeyMiddle": "сконфигурирован (тот же Laravel",
"noAppKeySuffix": "при установке AtomCMS, поэтому существующие секреты остаются читаемыми).",
"isEnabled": "2FA включена",
"onYourAccount": "в вашем аккаунте.",
"disable": "Отключить 2FA",
"scanOrEnter": "Отсканируйте или введите этот ключ",
"scanInstructions": "Добавьте это в Google Authenticator / Authy, затем введите 6-значный код для подтверждения.",
"manualKey": "Ручная клавиша:",
"codePlaceholder": "6-значный код",
"confirm": "Подтвердить",
"enableIntro": "Добавьте второй уровень безопасности с помощью приложения-аутентификатора.",
"enable": "Включить 2FA"
},
"title": "Связанные аккаунты",
"subtitle": "Привяжите аккаунт в соцсетях, чтобы войти в систему одним щелчком мыши",
"login": {
"title": "Sign in",
"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": "Создание учетной записи...",
"alreadyHaveAccount": "Уже есть аккаунт? Войти!",
"register": "Регистрация",
"termsError": "Чтобы зарегистрироваться, вы должны принять условия и правила.",
"usernameError": "Требуется имя пользователя.",
"emailError": "Требуется действительный адрес электронной почты.",
"passwordError": "Пароль должен содержать не менее 6 символов.",
"confirmPasswordError": "Пароли не совпадают.",
"termsRequired": "Вы должны принять условия и правила.",
"usernameRequired": "Требуется имя пользователя.",
"emailRequired": "Требуется адрес электронной почты.",
"passwordRequired": "Требуется пароль.",
"passwordsDontMatch": "Пароли не совпадают.",
"alreadyHaveAccountPre": "Уже есть аккаунт?",
"alreadyHaveAccountLink": "Войти",
"whoIsOnline": "Кто онлайн",
"usersOnline": "{count} онлайн"
},
"forgot": {
"title": "Сбросить пароль",
"subtitle": "Мы отправим вам безопасную ссылку для установки нового пароля.",
"sentNotice": "Если это письмо зарегистрировано, ссылка для сброса отправлена. Проверьте папку «Входящие».",
"emailPlaceholder": "Ваш адрес электронной почты",
"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": "Авто DJ",
"system": "Система",
"commandocentrum": "Commandocentrum",
"emulator": "Эмулятор",
"alerts": "Оповещения",
"logs": "Журналы",
"auditLog": "Audit log",
"analytics": "Analytics",
"devops": "DevOps",
"wordFilter": "Фильтр слов",
"maintenance": "Техническое обслуживание",
"rooms": "Номера",
"emailTemplates": "Шаблоны писем",
"theme": "Тема",
"media": "Медиа",
"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",
"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"
},
"dashboard": {
"title": "Панель управления",
"subtitle": "Обзор отеля и статус в реальном времени",
"playersOnline": "Игроки онлайн",
"articles": "Статьи",
"activeBans": "Активные запреты",
"database": "База данных",
"databaseConnected": "Подключено",
"databaseDown": "Вниз",
"usersByRank": "Пользователи по рангу",
"noAccountsToBreakDown": "Пока нет аккаунтов для разбивки",
"rankLabel": "Ранг {rank}",
"rankWithCount": "Ранг {rank}: счета {count}",
"recentStaffActivity": "Недавние действия персонала",
"viewAll": "Посмотреть все",
"noStaffActivityLogged": "Нет зарегистрированных действий персонала"
},
"articles": {
"title": "Статьи",
"subtitle": "Новостные статьи — 50 самых последних",
"newArticle": "+ Новая статья",
"edit": "Редактировать",
"delete": "Удалить",
"noArticles": "Пока нет статей",
"confirmDelete": "Вы уверены, что хотите удалить \"{title}\"?",
"colTitle": "Название",
"colSlug": "Слаг",
"colAuthor": "Автор",
"colCreated": "Создано",
"colActions": "Действия",
"form": {
"title": "Название",
"titlePlaceholder": "Название статьи",
"slug": "Слаг",
"slugPlaceholder": "article-url-slug",
"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": "Отмена"
}
},
"tags": {
"title": "Метки",
"subtitle": "Теги / категории статей",
"addTag": "Добавить тег",
"name": "Имя",
"namePlaceholder": "Название тега",
"backgroundColour": "Цвет фона",
"createTag": "Создать тег",
"editTag": "Редактировать тег",
"updateTag": "Обновить тег",
"deleteTag": "Удалить тег",
"confirmDelete": "Удалить \"{name}\"?",
"noTags": "Пока нет тегов",
"colId": "ID",
"colTag": "Тег",
"colColour": "Цвет",
"colUsedBy": "Используется",
"colCreated": "Создано",
"colActions": "Действия"
},
"navigation": {
"title": "Навигатор",
"flatCategories": "Плоские категории",
"publicRooms": "Общественные помещения",
"addCategory": "Добавить категорию",
"editCategory": "Редактировать категорию",
"deleteCategory": "Удалить категорию",
"categoryName": "Название категории",
"categoryNamePlaceholder": "например, Chill & Chat",
"categoryOrder": "Заказ",
"roomName": "Название помещения",
"roomNamePlaceholder": "например, Welcome Lounge",
"roomId": "ID комнаты",
"roomIdPlaceholder": "Цифровой идентификатор помещения",
"save": "Сохранить",
"cancel": "Отмена",
"noCategories": "Пока нет категорий",
"noPublicRooms": "Общественных комнат пока нет",
"colId": "ID",
"colName": "Имя",
"colOrder": "Заказ",
"colRooms": "Номера",
"colActions": "Действия"
},
"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": "Отмена"
}
},
"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": "Отмена"
}
},
"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"
},
"users": {
"title": "Пользователи",
"subtitle": "Просмотр, поиск и управление аккаунтами отелей",
"search": "Поиск",
"searchPlaceholder": "Поиск по имени пользователя, электронной почте или идентификатору...",
"searchResults": "{count, plural, one {# result} other {# results}} для \"{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": "Идентификатор машины",
"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": "User motto",
"rank": "Rank",
"credits": "Credits",
"duckets": "Duckets",
"diamonds": "Diamonds",
"save": "Save changes",
"saving": "Saving…",
"cancel": "Cancel"
}
},
"bans": {
"title": "Bans",
"subtitle": "Manage account, IP and machine bans",
"newBan": "New ban",
"edit": "Edit",
"delete": "Delete",
"noBans": "No bans yet",
"confirmDelete": "Remove this ban?",
"colId": "ID",
"colValue": "Value",
"colType": "Type",
"colReason": "Reason",
"colBannedBy": "Banned by",
"colExpires": "Expires",
"colCreated": "Created",
"colActions": "Actions",
"form": {
"value": "Value",
"valuePlaceholder": "Username, IP, or machine ID",
"type": "Type",
"typeUser": "User",
"typeIp": "IP",
"typeMachine": "Machine",
"reason": "Reason",
"reasonPlaceholder": "Ban reason",
"expiresAt": "Expires at",
"permanent": "Permanent",
"save": "Save ban",
"saving": "Saving…",
"cancel": "Cancel"
}
},
"ip": {
"title": "IP Management",
"subtitle": "Manage IP whitelist and blacklist",
"whitelist": "Whitelist",
"blacklist": "Blacklist",
"addIp": "Add IP",
"ipAddress": "IP address",
"ipAddressPlaceholder": "e.g. 127.0.0.1",
"reason": "Reason",
"reasonPlaceholder": "Reason for listing",
"add": "Add",
"remove": "Remove",
"confirmRemove": "Remove this IP from the {list}?",
"noWhitelistedIps": "No whitelisted IPs",
"noBlacklistedIps": "No blacklisted IPs",
"colIp": "IP",
"colReason": "Reason",
"colAdded": "Added",
"colActions": "Actions"
},
"vpn": {
"title": "VPN / Proxy Detection",
"subtitle": "Configure VPN and proxy detection settings",
"enabled": "Enabled",
"apiKey": "API key",
"apiKeyPlaceholder": "Your VPN detection API key",
"apiKeyHint": "Leave empty to disable",
"blockOnDetect": "Block on detection",
"blockOnDetectHint": "Automatically block users detected behind a VPN or proxy",
"save": "Save settings",
"saving": "Saving…",
"settingsSaved": "VPN settings saved successfully"
},
"applications": {
"title": "Staff Applications",
"subtitle": "Pending and reviewed staff applications",
"pending": "Pending",
"approved": "Approved",
"rejected": "Rejected",
"noApplications": "No applications yet",
"colId": "ID",
"colApplicant": "Applicant",
"colPosition": "Position",
"colStatus": "Status",
"colSubmitted": "Submitted",
"colActions": "Actions",
"review": "Review",
"approve": "Approve",
"reject": "Reject",
"confirmApprove": "Approve {username} for {position}?",
"confirmReject": "Reject {username}'s application for {position}?",
"detail": {
"title": "Application by {username}",
"subtitle": "For {position}",
"about": "About the applicant",
"message": "Application message",
"status": "Status",
"submitted": "Submitted",
"noMessage": "No message provided"
}
},
"teams": {
"title": "Teams",
"subtitle": "Define staff rank names and descriptions",
"addRank": "Add rank",
"editRank": "Edit rank",
"deleteRank": "Delete rank",
"noTeams": "No rank definitions yet",
"confirmDelete": "Delete rank {id} definition?",
"colId": "ID",
"colRank": "Rank",
"colName": "Name",
"colBadge": "Badge",
"colColour": "Colour",
"colActions": "Actions",
"form": {
"rankId": "Rank ID",
"rankIdPlaceholder": "Numeric rank ID",
"name": "Name",
"namePlaceholder": "e.g. Administrator",
"badge": "Badge code",
"badgePlaceholder": "e.g. ADM001",
"colour": "Colour",
"colourPlaceholder": "e.g. #ff0000",
"save": "Save team definition",
"saving": "Saving…",
"cancel": "Cancel"
}
},
"permissions": {
"title": "Permissions",
"subtitle": "Manage rank-based permissions for the admin panel",
"addPermission": "Add permission",
"editPermission": "Edit permission",
"deletePermission": "Delete permission",
"noPermissions": "No permissions configured yet",
"confirmDelete": "Delete this permission?",
"colId": "ID",
"colRank": "Rank",
"colPermission": "Permission",
"colCreated": "Created",
"colActions": "Actions",
"form": {
"rankId": "Rank ID",
"rankIdPlaceholder": "Minimum rank required",
"permission": "Permission key",
"permissionPlaceholder": "e.g. admin.articles.manage",
"save": "Save permission",
"saving": "Saving…",
"cancel": "Cancel"
}
},
"catalog": {
"title": "Catalog",
"subtitle": "Browse and manage catalog pages and items",
"pages": "Pages",
"items": "Items",
"addPage": "Add page",
"editPage": "Edit page",
"deletePage": "Delete page",
"addItem": "Add item",
"editItem": "Edit item",
"deleteItem": "Delete item",
"noPages": "No catalog pages yet",
"noItems": "No items in this page",
"confirmDeletePage": "Delete catalog page \"{name}\"?",
"confirmDeleteItem": "Delete this item?",
"colId": "ID",
"colName": "Name",
"colIcon": "Icon",
"colOrder": "Order",
"colItems": "Items",
"colEnabled": "Enabled",
"colActions": "Actions",
"colItemId": "Item ID",
"colItemName": "Item name",
"colCostCredits": "Cost (credits)",
"colCostPoints": "Cost (points)",
"colLimited": "Limited",
"pageForm": {
"name": "Name",
"namePlaceholder": "Page name",
"icon": "Icon ID",
"iconPlaceholder": "Numeric icon ID",
"order": "Order",
"enabled": "Enabled",
"parent": "Parent page",
"parentNone": "None (root)",
"save": "Save page",
"saving": "Saving…",
"cancel": "Cancel"
},
"itemForm": {
"itemId": "Item ID",
"itemName": "Item name",
"costCredits": "Cost in credits",
"costDuckets": "Cost in duckets",
"costDiamonds": "Cost in diamonds",
"limitedStack": "Limited stack size",
"limitedSold": "Limited sold",
"save": "Save item",
"saving": "Saving…",
"cancel": "Cancel"
}
},
"shop": {
"title": "Shop",
"subtitle": "Manage packages and orders",
"packages": "Packages",
"orders": "Orders",
"newPackage": "+ New package",
"edit": "Edit",
"delete": "Delete",
"viewOrder": "View",
"noPackages": "No shop packages yet",
"noOrders": "No orders yet",
"confirmDelete": "Delete this package?",
"colId": "ID",
"colName": "Name",
"colPrice": "Price",
"colCurrency": "Currency",
"colType": "Type",
"colSold": "Sold",
"colEnabled": "Enabled",
"colActions": "Actions",
"colOrderId": "Order ID",
"colCustomer": "Customer",
"colPackage": "Package",
"colAmount": "Amount",
"colStatus": "Status",
"colDate": "Date",
"statusPending": "Pending",
"statusCompleted": "Completed",
"statusRefunded": "Refunded",
"form": {
"name": "Name",
"namePlaceholder": "Package name",
"description": "Description",
"descriptionPlaceholder": "Package description",
"price": "Price",
"currency": "Currency",
"currencyPlaceholder": "EUR, USD, GBP…",
"type": "Type",
"typeCredits": "Credits",
"typeDuckets": "Duckets",
"typeDiamonds": "Diamonds",
"typeBadge": "Badge",
"typeFurni": "Furniture",
"typeRank": "Rank",
"amount": "Amount",
"badgeCode": "Badge code",
"badgeCodePlaceholder": "e.g. VIP001",
"rankId": "Rank ID",
"furniItems": "Furniture items",
"enabled": "Enabled",
"save": "Save package",
"saving": "Saving…",
"cancel": "Cancel"
},
"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"
},
"transactions": {
"title": "Transactions",
"subtitle": "PayPal payment log",
"noTransactions": "No transactions yet",
"colId": "ID",
"colUser": "User",
"colAmount": "Amount",
"colCurrency": "Currency",
"colPackage": "Package",
"colStatus": "Status",
"colDate": "Date",
"colActions": "Actions",
"statusCompleted": "Completed",
"statusPending": "Pending",
"statusFailed": "Failed",
"statusRefunded": "Refunded",
"detail": {
"title": "Transaction #{id}",
"paypalId": "PayPal ID",
"payerEmail": "Payer email",
"grossAmount": "Gross amount",
"fee": "Fee",
"netAmount": "Net amount"
},
"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": "Shop Vouchers",
"subtitle": "Manage redeemable voucher codes",
"newVoucher": "+ New voucher",
"edit": "Edit",
"delete": "Delete",
"noVouchers": "No vouchers yet",
"confirmDelete": "Delete voucher \"{code}\"?",
"colId": "ID",
"colCode": "Code",
"colValue": "Value",
"colType": "Type",
"colUses": "Uses / Max",
"colExpires": "Expires",
"colCreated": "Created",
"colActions": "Actions",
"form": {
"code": "Code",
"codePlaceholder": "e.g. SUMMER2025",
"value": "Value",
"type": "Type",
"typeCredits": "Credits",
"typeDuckets": "Duckets",
"typeDiamonds": "Diamonds",
"typeBadge": "Badge",
"typeFurni": "Furniture",
"typeRank": "Rank",
"badgeCode": "Badge code",
"badgeCodePlaceholder": "e.g. VIP001",
"rankId": "Rank ID",
"maxUses": "Max uses",
"maxUsesPlaceholder": "0 = unlimited",
"expiresAt": "Expires at",
"enabled": "Enabled",
"save": "Save voucher",
"saving": "Saving…",
"cancel": "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"
},
"subscriptions": {
"title": "Subscriptions",
"subtitle": "Active recurring subscriptions",
"noSubscriptions": "No active subscriptions",
"cancel": "Cancel",
"confirmCancel": "Cancel subscription for {username}?",
"colId": "ID",
"colUser": "User",
"colPackage": "Package",
"colAmount": "Amount",
"colInterval": "Interval",
"colStarted": "Started",
"colNextBilling": "Next billing",
"colStatus": "Status",
"colActions": "Actions",
"statusActive": "Active",
"statusCancelled": "Cancelled",
"statusExpired": "Expired"
},
"rareValues": {
"title": "Rare Values",
"subtitle": "Manage rare value categories and item prices",
"categories": "Categories",
"items": "Items",
"addCategory": "Add category",
"editCategory": "Edit category",
"deleteCategory": "Delete category",
"noCategories": "No rare value categories yet",
"confirmDeleteCategory": "Delete category \"{name}\" and all its items?",
"colId": "ID",
"colName": "Name",
"colItems": "Items",
"colUpdated": "Updated",
"colActions": "Actions",
"colItemName": "Item name",
"colCredits": "Credits",
"colPoints": "Points",
"colPointType": "Point type",
"categoryForm": {
"name": "Name",
"namePlaceholder": "Category name",
"save": "Save category",
"saving": "Saving…",
"cancel": "Cancel"
},
"itemForm": {
"itemName": "Item name",
"itemNamePlaceholder": "e.g. Throne",
"credits": "Credits value",
"points": "Points value",
"pointType": "Point type",
"pointTypeDuckets": "Duckets",
"pointTypeDiamonds": "Diamonds",
"save": "Save item",
"saving": "Saving…",
"cancel": "Cancel"
}
},
"badges": {
"title": "Badges",
"subtitle": "Upload, give and manage badge catalogue",
"upload": "Upload",
"giveBadge": "Give badge",
"catalogue": "Catalogue",
"uploadTitle": "Upload a new badge",
"uploadSubtitle": "Upload a badge image file",
"badgeCode": "Badge code",
"badgeCodePlaceholder": "e.g. VIP001",
"badgeFile": "Badge file",
"badgeFileHint": "PNG or GIF, recommended 40x40",
"uploadButton": "Upload",
"uploading": "Uploading…",
"giveTitle": "Give badge to user",
"giveSubtitle": "Grant a badge to a specific user",
"username": "Username",
"usernamePlaceholder": "Target username",
"giveButton": "Give badge",
"giving": "Giving…",
"catalogueTitle": "Badge catalogue",
"catalogueSubtitle": "All available badges in the hotel",
"noBadges": "No badges in the catalogue",
"search": "Search badges",
"searchPlaceholder": "Search by code or name…",
"colCode": "Code",
"colImage": "Image",
"colName": "Name",
"colDescription": "Description",
"colActions": "Actions"
},
"achievements": {
"title": "Achievements",
"subtitle": "Read-only list of in-game achievements",
"noAchievements": "No achievements configured",
"colId": "ID",
"colName": "Name",
"colCategory": "Category",
"colLevels": "Levels",
"colReward": "Reward",
"colProgress": "Progress",
"levelLabel": "Level {level}",
"rewardCredits": "{count} credits",
"rewardPoints": "{count} {points}"
},
"calendar": {
"title": "Calendar campaigns",
"subtitle": "Read-only list of calendar campaigns and events",
"noCampaigns": "No calendar campaigns yet",
"colId": "ID",
"colName": "Name",
"colStart": "Start",
"colEnd": "End",
"colType": "Type",
"colReward": "Reward",
"colActions": "Actions",
"detail": {
"title": "Campaign: {name}",
"subtitle": "Calendar event details",
"days": "Days",
"dayLabel": "Day {day}",
"reward": "Reward",
"noDays": "No days configured for this campaign"
}
},
"radio": {
"title": "Radio Moderation",
"subtitle": "Latest shouts, DJ applications and on-air schedules (25 most recent of each).",
"moderation": "Moderation",
"shouts": "Shouts",
"applications": "Applications",
"schedules": "Schedules",
"settings": "Settings",
"embed": "Embed",
"ranks": "Ranks",
"history": "History",
"apiKeys": "API Keys",
"points": "Points",
"autoDj": "AutoDJ",
"monitoring": {
"title": "Radio Monitoring",
"subtitle": "Read-only live probe of the configured radio endpoints (radio_now_playing_api_url, radio_listeners_api_url). Each request fails soft with a {timeout}s timeout — no data is written. Configure URLs under Settings.",
"stream": "Stream",
"online": "Online",
"offline": "Offline",
"notConfigured": "Not configured",
"nowPlaying": "Now playing",
"nowPlayingApi": "Now-playing API",
"listenersApi": "Listeners API",
"listeners": "Listeners",
"currentSong": "Current song",
"bitrate": "Bitrate",
"status": "Status",
"noNowPlayingHint": "no now-playing API set",
"noListenersHint": "no listeners API set",
"endpointDiagnostics": "Endpoint diagnostics",
"diagnosticsLegend": "<span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-green-600/20 text-[var(--color-text)]\">OK</span> reachable · <span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-[var(--color-primary)]/18 text-[var(--color-text)]\">WARN</span> not configured · <span class=\"inline-block text-[0.72rem] font-bold px-2 py-0.5 rounded-full bg-red-500/22 text-[var(--color-text)]\">ERROR</span> fetch failed / timed out.",
"streamUrl": "Stream URL",
"unreachable": "unreachable",
"refresh": "Refresh"
},
"user": "User",
"message": "Message",
"posted": "Posted",
"realName": "Real Name",
"age": "Age",
"style": "Style",
"applied": "Applied",
"day": "Day",
"start": "Start",
"end": "End",
"show": "Show",
"status": "Status",
"active": "active",
"inactive": "inactive",
"hidden": "hidden",
"activeSchedules": "Active schedules",
"noShouts": "No shouts to moderate",
"noApplications": "No applications submitted.",
"noSchedules": "No schedules configured.",
"deleteShout": "Delete",
"confirmDeleteShout": "Delete this shout?",
"pendingApplications": "Pending applications",
"settingsForm": {
"title": "Radio Settings",
"subtitle": "Edits write to website_settings (radio_* keys) and bust the runtime settings cache. Booleans use 0 / 1.",
"enabled": "Enabled",
"disabled": "Disabled",
"totalKeys": "Total keys",
"configured": "Configured",
"curatedHint": "curated keys with a value",
"customKeys": "Custom keys",
"saveAll": "Save all",
"singleKey": "Add / overwrite a single key",
"keyPlaceholder": "radio_custom_key",
"valuePlaceholder": "value",
"commentPlaceholder": "comment (optional)",
"saveSingle": "Save",
"otherSettings": "Other radio settings",
"dbError": "Could not load settings (database unavailable). Defaults will be created on save."
},
"embedPage": {
"title": "Radio Embed",
"subtitle": "Copy-ready embed code for the live stream. Read-only — nothing here writes to the database. Configure the stream URL in Radio Settings (radio_stream_url).",
"streamUrl": "Stream URL",
"configured": "Configured",
"missing": "Missing",
"radioName": "Radio name",
"nowPlayingApi": "Now-playing API",
"set": "Set",
"notSet": "Not set",
"noStreamUrl": "No stream URL configured",
"noStreamUrlText": "There is no radio_stream_url set, so there is nothing to embed yet.",
"goToSettings": "Go to Radio Settings",
"livePreview": "Live preview",
"livePreviewText": "This is the bare <audio> player as visitors will see it. Press play to confirm the stream is reachable.",
"source": "Source",
"audioSnippet": "Audio player snippet",
"audioSnippetDesc": "Drop-in HTML5 audio player pointed straight at the stream. Works anywhere plain HTML is allowed.",
"iframeSnippet": "Iframe wrapper snippet",
"iframeSnippetDesc": "Embeds the site’s own radio player page in an iframe — keeps your styling and now-playing info. Adjust width/height to taste.",
"audioUnsupported": "Your browser does not support the audio element."
},
"banners": {
"title": "Banners",
"heading": "Radio Banners",
"description": "Promotional banners shown on the radio page, ordered by sort order.",
"addBanner": "Add banner",
"createBanner": "Create banner",
"deleteBanner": "Delete banner",
"noBanners": "No banners yet — add one above.",
"existing": "Existing banners ({count})",
"save": "Save",
"delete": "Delete",
"byUser": "by user {id}",
"active": "active",
"hidden": "hidden",
"bannerAlt": "Radio banner",
"statusActive": "Active",
"statusHidden": "Hidden",
"dbError": "Could not load banners (database unavailable).",
"form": {
"imagePath": "Image path / URL",
"imagePathPlaceholder": "/storage/radio/banner.png",
"title": "Title",
"description": "Description",
"sortOrder": "Sort order",
"active": "Active"
}
},
"ranksForm": {
"title": "Radio Ranks",
"subtitle": "DJ / staff ranks assignable on radio applications.",
"dbError": "Could not load ranks (database unavailable).",
"active": "Active",
"addRank": "Add rank",
"name": "Name",
"badgeCode": "Badge code",
"description": "Description",
"createRank": "Create rank",
"existing": "Existing ranks ({count})",
"noRanks": "No ranks yet — add one above.",
"activeLabel": "active",
"inactiveLabel": "inactive",
"save": "Save",
"deleteRank": "Delete rank #{id}"
},
"historyPage": {
"title": "Radio Play History",
"subtitle": "Past DJ shows and airtime (radio_history), most recent first. Read-only log of who was on air, when, and how many listeners tuned in.",
"dbError": "Could not load radio history (database unavailable).",
"showsLogged": "Shows logged",
"onAirNow": "On air now",
"uniqueDjs": "Unique DJs",
"peakListeners": "Peak listeners",
"empty": "No radio history recorded yet.",
"showLog": "Show log ({count})",
"colDj": "DJ",
"colShow": "Show",
"colStarted": "Started",
"colEnded": "Ended",
"colAirtime": "Airtime",
"colListeners": "Listeners",
"colNotes": "Notes",
"onAir": "on air"
},
"apiKeysForm": {
"title": "Radio API Keys",
"subtitle": "API keys for external radio integrations (radio_api_keys). Keys are generated server-side and shown masked — copy the full value from the database when first issued.",
"dbError": "Could not load API keys (database unavailable).",
"totalKeys": "Total keys",
"active": "Active",
"inactive": "Inactive",
"generateKey": "Generate key",
"generateHint": "The secret key is generated automatically with cryptographic randomness — you do not enter it.",
"name": "Name",
"namePlaceholder": "AzureCast bridge",
"rateLimit": "Rate limit (requests/min)",
"allowedIps": "Allowed IPs (optional)",
"allowedIpsPlaceholder": "comma-separated, blank = any",
"generate": "Generate key",
"existingKeys": "Existing keys ({count})",
"noKeys": "No API keys yet — generate one above.",
"colName": "Name",
"colKey": "Key",
"colAllowedIps": "Allowed IPs",
"colRateLimit": "Rate limit",
"colLastUsed": "Last used",
"colExpires": "Expires",
"colStatus": "Status",
"colActions": "Actions",
"maskedHint": "Only the first 8 characters are shown",
"any": "any",
"activeLabel": "active",
"inactiveLabel": "inactive",
"deactivate": "Deactivate",
"activate": "Activate",
"delete": "Delete"
},
"pointsForm": {
"title": "Radio Listener Points",
"subtitle": "Reward listeners with currency for time spent on the radio. Edits write to website_settings (radio_points_* keys) and bust the runtime settings cache. Booleans use 0 / 1.",
"saved": "Saved",
"points": "Points",
"enabled": "Enabled",
"disabled": "Disabled",
"perMinute": "Per minute",
"paidIn": "paid in {currency}",
"maxPerDay": "Max / day",
"unlimited": "Unlimited",
"minListeners": "Min listeners",
"settings": "Settings",
"pointsEnabled": "Points enabled",
"pointsEnabledHint": "Master switch for awarding listener points.",
"currency": "Currency",
"currencyHint": "Which wallet the points are paid into.",
"pointsPerMinute": "Points per minute",
"pointsPerMinuteHint": "Amount awarded for each full minute of listening.",
"maxPerDayHint": "Daily cap per user. Use 0 for unlimited.",
"minListenersHint": "Points are only awarded when at least this many people are tuned in.",
"save": "Save points settings"
},
"autoDjForm": {
"title": "Radio AutoDJ",
"subtitle": "Fallback playlist (radio_auto_dj_playlist) the radio rotates through when no live DJ is streaming. Ordered by sort order then title.",
"dbError": "Could not load the AutoDJ playlist (database unavailable).",
"tracks": "Tracks",
"active": "Active",
"inactive": "Inactive",
"addTrack": "Add track",
"titlePlaceholder": "Track title",
"artist": "Artist",
"album": "Album",
"artworkUrl": "Artwork URL",
"artworkUrlPlaceholder": "https://…/cover.png",
"duration": "Duration (seconds)",
"durationPlaceholder": "e.g. 215",
"sortOrder": "Sort order",
"playlist": "Playlist ({count})",
"noTracks": "No AutoDJ tracks yet — add one above.",
"colOrder": "Order",
"colTitle": "Title",
"colArtist": "Artist",
"colAlbum": "Album",
"colDuration": "Duration",
"colPlays": "Plays",
"colLastPlayed": "Last played",
"colStatus": "Status",
"colActions": "Actions",
"activeLabel": "active",
"inactiveLabel": "inactive",
"deactivate": "Deactivate",
"activate": "Activate",
"delete": "Delete",
"trackTitle": "Title"
},
"moderationPage": {
"title": "DJ Moderation",
"subtitle": "Review and remove radio shouts (50 most recent).",
"recentShouts": "Recent Shouts ({count})"
}
},
"commandocentrum": {
"title": "Commandocentrum",
"subtitle": "Diagnostics, RCON controls and user management",
"diagnostics": "Diagnostics",
"rcon": "RCON",
"userActions": "User actions",
"diagnosticsTitle": "Emulator diagnostics",
"memoryUsage": "Memory usage",
"uptime": "Uptime",
"onlineUsers": "Online users",
"roomsLoaded": "Rooms loaded",
"refresh": "Refresh",
"rconTitle": "RCON commands",
"rconPlaceholder": "Enter RCON command…",
"rconSend": "Send",
"rconSending": "Sending…",
"rconResponse": "Response",
"userActionsTitle": "User actions",
"username": "Username",
"usernamePlaceholder": "Target username",
"action": "Action",
"execute": "Execute",
"actions": {
"disconnect": "Disconnect",
"alert": "Send alert",
"giveCredits": "Give credits",
"giveBadge": "Give badge",
"givePoints": "Give points",
"ban": "Ban",
"kick": "Kick"
},
"messagePlaceholder": "Message (for alerts)…",
"amountPlaceholder": "Amount…",
"badgePlaceholder": "Badge code…"
},
"emulator": {
"title": "Emulator Config",
"subtitle": "View and edit emulator settings and locale texts",
"settings": "Settings",
"texts": "Texts",
"search": "Search",
"searchPlaceholder": "Search keys…",
"noSettings": "No settings found",
"noTexts": "No texts found",
"edit": "Edit",
"save": "Save",
"saving": "Saving…",
"cancel": "Cancel",
"colKey": "Key",
"colValue": "Value",
"colType": "Type",
"colActions": "Actions",
"editDialog": {
"title": "Edit: {key}",
"value": "Value",
"valuePlaceholder": "Enter value…",
"save": "Save changes",
"cancel": "Cancel"
}
},
"alerts": {
"title": "Alerts",
"subtitle": "Send hotel-wide alerts and view recent alerts",
"sendAlert": "Send hotel alert",
"recentAlerts": "Recent alerts",
"noRecentAlerts": "No recent alerts",
"form": {
"title": "Alert title",
"titlePlaceholder": "e.g. Server maintenance in 10 minutes",
"message": "Alert message",
"messagePlaceholder": "Write the alert message…",
"type": "Type",
"typeHotel": "Hotel-wide alert",
"typeStaff": "Staff only",
"urgent": "Urgent",
"send": "Send alert",
"sending": "Sending…"
},
"colId": "ID",
"colTitle": "Title",
"colSentBy": "Sent by",
"colType": "Type",
"colDate": "Date",
"colActions": "Actions"
},
"logs": {
"title": "Staff Activities",
"subtitle": "Audit trail of staff actions in the admin panel",
"noLogs": "No staff activity logged yet",
"colId": "ID",
"colUser": "User",
"colAction": "Action",
"colTarget": "Target",
"colDescription": "Description",
"colIp": "IP",
"colTimestamp": "Timestamp",
"filterByUser": "Filter by user…",
"filterByAction": "Filter by action…",
"clearFilters": "Clear filters",
"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"
},
"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…"
}
},
"wordfilter": {
"title": "Word Filter",
"subtitle": "Manage filtered words and phrases in the hotel",
"addWord": "Add word",
"addWords": "Add words",
"noWords": "No filtered words yet",
"confirmDelete": "Remove \"{word}\" from the filter?",
"colId": "ID",
"colWord": "Word",
"colAddedBy": "Added by",
"colCreated": "Created",
"colActions": "Actions",
"form": {
"word": "Word",
"wordPlaceholder": "e.g. badword",
"addMore": "Add multiple words (one per line)",
"save": "Add to filter",
"saving": "Saving…",
"cancel": "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": "Maintenance Mode",
"subtitle": "Enable or disable hotel-wide maintenance",
"enabled": "Maintenance mode is enabled",
"disabled": "Maintenance mode is disabled",
"enable": "Enable maintenance",
"disable": "Disable maintenance",
"message": "Maintenance message",
"messagePlaceholder": "We'll be back shortly!",
"staffAccess": "Allow staff access during maintenance",
"save": "Save settings",
"saving": "Saving…",
"confirmEnable": "Enabling maintenance will prevent all non-staff users from accessing the hotel. Continue?",
"confirmDisable": "Disable maintenance mode and restore access for all users?"
},
"housekeeping": {
"title": "Ведение домашнего хозяйства Разрешения",
"subtitle": "Configure which Ранги can access which admin sections",
"addPermission": "Add permission",
"editPermission": "Редактировать permission",
"deletePermission": "Удалить permission",
"noPermissions": "Нет Ведение домашнего хозяйства Разрешения configured",
"confirmDelete": "Удалить this permission?",
"colId": "ID",
"colRank": "Ранг",
"colSection": "Section",
"colActions": "Действия",
"form": {
"rankId": "Ранг ID",
"rankIdPlaceholder": "Minimum Ранг",
"section": "Section key",
"sectionPlaceholder": "e.g. admin.Панель управления",
"save": "Сохранить permission",
"saving": "Сохранение...",
"cancel": "Отмена"
},
"saved": "Saved!",
"deleted": "Deleted!",
"errorOccurred": "An error occurred",
"emptyInput": "Empty input",
"invalidJson": "Invalid JSON",
"imported": "Imported!",
"presetApplied": "Preset applied!",
"cleared": "All Разрешения cleared!",
"invalidRank": "Invalid Ранг",
"testDone": "Test done: {count} Разрешения found",
"testing": "Testing...",
"loading": "Loading...",
"prev": "Previous",
"next": "Next",
"confirmClearAll": "Удалить ALL Разрешения? This action cannot be undone!",
"colGroup": "Group",
"colDepends": "Depends on",
"colPermission": "Permission",
"colDescription": "Description",
"colMinRank": "Min. Ранг",
"permissionKey": "Permission key",
"minRank": "Min. Ранг",
"description": "Description",
"permissions": "Разрешения",
"permissionsCount": "{count} Разрешения",
"permission": "permission",
"highestMinRank": "Highest min. Ранг: {rank}",
"totalMinRank": "Total min. Ранг sum: {total}",
"groupCount": "{count} groups",
"rankCount": "{count} Ранги",
"missingDeps": "{count} missing dependencies",
"dependsOn": "depends on",
"notFound": "not found",
"missing": "(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": "Presets",
"tabTest": "Test",
"tabAudit": "Audit log",
"importPermissions": "Импорт Разрешения",
"importHint": "Paste a JSON array of permission 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": "Permission presets",
"presetsHint": "Apply a predefined set 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 permission management and asset Импорт.",
"applyPreset": "Apply preset",
"clearAll": "Clear all Разрешения",
"testTitle": "Test Ранг access",
"testHint": "Enter a Ранг number to see which Разрешения would be granted.",
"test": "Test",
"auditTitle": "Permission audit log",
"auditHint": "All changes to Ведение домашнего хозяйства Разрешения are logged.",
"auditLogsAt": "Audit Журналы are available on the Audit log page.",
"viewAuditLogs": "View audit Журналы",
"importedWithErrors": "Imported {count} Разрешения with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the База данных. Are you sure?",
"confirmDeletePermission": "Удалить this permission permanently?",
"confirmBulkDelete": "Удалить {count} selected Разрешения?",
"deleteSelected": "Удалить {count} selected",
"cancel": "Отмена",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "Пользователь",
"auditAction": "Action",
"auditTarget": "Target",
"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": "Rooms",
"subtitle": "Search and manage hotel rooms",
"search": "Search",
"searchPlaceholder": "Search by name, owner or ID…",
"searchResults": "{count, plural, one {# room} other {# rooms}} found for \"{query}\"",
"noResults": "No rooms found",
"colId": "ID",
"colName": "Name",
"colOwner": "Owner",
"colUsers": "Users",
"colState": "State",
"colCategory": "Category",
"colCreated": "Created",
"colActions": "Actions",
"stateOpen": "Open",
"stateClosed": "Closed",
"stateLocked": "Locked",
"stateInvisible": "Invisible",
"detail": {
"title": "Room: {name}",
"subtitle": "Owned by {owner}",
"overview": "Overview",
"actions": "Actions",
"description": "Description",
"noDescription": "No description",
"owner": "Owner",
"users": "Users online",
"maxUsers": "Max users",
"category": "Category",
"state": "State",
"tags": "Tags",
"noTags": "No tags",
"created": "Created",
"deleteRoom": "Delete room",
"confirmDelete": "Delete room \"{name}\"? This cannot be undone.",
"enterRoom": "Enter room",
"changeOwner": "Change owner",
"changeOwnerPlaceholder": "New owner username"
}
},
"emailTemplates": {
"title": "Email Templates",
"subtitle": "Manage transactional email templates",
"newTemplate": "+ New template",
"edit": "Edit",
"delete": "Delete",
"noTemplates": "No email templates yet",
"confirmDelete": "Delete template \"{name}\"?",
"colId": "ID",
"colName": "Name",
"colSubject": "Subject",
"colKey": "Key",
"colUpdated": "Updated",
"colActions": "Actions",
"form": {
"name": "Name",
"namePlaceholder": "e.g. Welcome email",
"key": "Key",
"keyPlaceholder": "e.g. welcome_email",
"subject": "Subject",
"subjectPlaceholder": "Email subject line",
"body": "Body (HTML)",
"bodyPlaceholder": "<p>Dear {username},</p>",
"variables": "Available variables",
"variablesHint": "{username}, {email}, {hotel_name}",
"save": "Save template",
"saving": "Saving…",
"cancel": "Cancel"
}
},
"theme": {
"title": "Theme",
"subtitle": "Customise the CMS appearance",
"presets": "Presets",
"colours": "Colours",
"css": "CSS",
"presetsTitle": "Theme presets",
"presetsSubtitle": "Choose a pre-built colour scheme",
"applyPreset": "Apply",
"presetApplied": "Preset applied",
"customiseTitle": "Custom colours",
"primary": "Primary",
"secondary": "Secondary",
"accent": "Accent",
"background": "Background",
"surface": "Surface",
"text": "Text",
"saveColours": "Save colours",
"savingColours": "Saving…",
"cssTitle": "Custom CSS",
"cssSubtitle": "Add custom CSS to override theme styles",
"cssPlaceholder": "/* Your custom CSS here */",
"saveCss": "Save CSS",
"savingCss": "Saving…",
"reset": "Reset to defaults",
"confirmReset": "Reset theme to default values?"
},
"media": {
"title": "Media Library",
"subtitle": "Upload and manage media files",
"upload": "Upload",
"uploadTitle": "Upload a file",
"uploadSubtitle": "Drag and drop or click to upload",
"uploadButton": "Choose file",
"uploading": "Uploading…",
"noFiles": "No media files yet",
"delete": "Delete",
"confirmDelete": "Delete this file permanently?",
"search": "Search",
"searchPlaceholder": "Search by filename…",
"colPreview": "Preview",
"colName": "Name",
"colSize": "Size",
"colType": "Type",
"colUploaded": "Uploaded",
"colActions": "Actions",
"copyUrl": "Copy URL",
"urlCopied": "URL copied to clipboard"
},
"favicon": {
"title": "Favicon",
"subtitle": "Upload and manage the site favicon",
"current": "Current favicon",
"uploadLabel": "Upload favicon",
"uploadHint": "PNG, JPEG, GIF, WebP, ICO or SVG. Max 2MB.",
"upload": "Upload",
"uploading": "Uploading…",
"delete": "Remove",
"deleting": "Removing…",
"saved": "Favicon saved successfully!",
"deleted": "Favicon removed successfully!",
"error": "Something went wrong",
"confirmDelete": "Remove the favicon? The site will no longer show a custom favicon.",
"generator": {
"title": "Generate favicon",
"text": "Text",
"bgColor": "Background color",
"textColor": "Text color",
"rounded": "Rounded corners",
"save": "Save as favicon"
},
"cancel": "Cancel"
},
"settings": {
"title": "CMS Settings",
"subtitle": "Manage key/value CMS configuration",
"addSetting": "Add setting",
"edit": "Edit",
"delete": "Delete",
"noSettings": "No settings found",
"confirmDelete": "Delete setting \"{key}\"?",
"colKey": "Key",
"colValue": "Value",
"colUpdated": "Updated",
"colActions": "Actions",
"form": {
"key": "Key",
"keyPlaceholder": "e.g. hotel_name",
"value": "Value",
"valuePlaceholder": "Setting value",
"save": "Save setting",
"saving": "Saving…",
"cancel": "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"
}
},
"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}"
},
"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"
},
"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"
},
"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"
},
"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})"
},
"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}}"
}
},
"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}"
},
"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"
}
},
"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:"
}
}
}