{
"nav": {
"home": "Home",
"community": "Community",
"articles": "Articles",
"photos": "Photos",
"staff": "Staff",
"rankings": "Rankings",
"guilds": "Guilds",
"events": "Events",
"polls": "Polls",
"leaderboards": "Leaderboards",
"rareValues": "Rare values",
"shop": "Shop",
"market": "Market",
"assistance": "Assistance",
"helpCenter": "Help center",
"myTickets": "My tickets",
"badges": "Badges",
"radio": "Radio",
"friends": "Friends",
"messages": "Messages",
"admin": "Admin",
"openMenu": "Open menu",
"closeMenu": "Close menu",
"drawBadge": "Draw badge",
"mod": "Mod"
},
"header": {
"online": "{count} {hotel} online",
"nitroClient": "Nitro client",
"tagline": "An online virtual world where you can create your own avatar, make friends, chat, create rooms and much more!",
"login": "Login",
"or": "Or",
"createAccount": "Create an account"
},
"footer": {
"copyright": "© {year} - {hotel} is a not for profit educational project"
},
"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:"
}
},
"pages": {
"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"
},
"staff": {
"title": "Staff",
"subtitle": "The team behind the hotel",
"ranksTitle": "Ranks",
"ranksSubtitle": "What each part of the team takes care of",
"membersTitle": "Team members",
"membersEmptySubtitle": "Nobody to show right now",
"membersSubtitle": "{count, plural, one {# member keeping things running} other {# members keeping things running}}",
"emptyState": "No staff members to show.",
"colUsername": "Username",
"colRank": "Rank",
"colMotto": "Motto"
},
"leaderboard": {
"title": "Leaderboard",
"subtitle": "Top 20 players by {currency}",
"tab_credits": "Credits",
"tab_diamonds": "Diamonds",
"tab_duckets": "Duckets",
"tab_achievement": "Achievements",
"tab_respects": "Respects",
"tab_onlinetime": "Online Time",
"emptyState": "No rankings to show yet.",
"colAvatar": "Avatar",
"colPlayer": "Player"
},
"friends": {
"title": "Friends",
"emptySubtitle": "You have no friends added yet",
"subtitle": "{count, plural, one {You have # friend} other {You have # friends}}",
"emptyState": "Add friends in the hotel and they will show up here.",
"noMotto": "No motto",
"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": "Messages",
"subtitle": "Friend requests, offline inbox, and messages to friends",
"requestsTitle": "Friend requests",
"requestsEmptySubtitle": "Nobody's asked to be your friend yet",
"requestsSubtitle": "{count, plural, one {# pending request} other {# pending requests}}",
"requestsEmptyState": "No pending friend requests.",
"wantsToBeFriend": "wants to be your friend.",
"accept": "Accept",
"decline": "Decline",
"offlineTitle": "Offline messages",
"offlineEmptySubtitle": "Your inbox is empty",
"offlineSubtitle": "{count, plural, one {# message received} other {# messages received}}",
"offlineEmptyState": "You have no offline messages.",
"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",
"unknownUser": "User #{id}",
"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."
}
},
"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."
},
"profile": {
"noMotto": "No motto",
"statRank": "Rank",
"statCredits": "Credits",
"statRegistered": "Registered",
"badgesTitle": "Badges",
"badgesEmpty": "No badges yet.",
"photosTitle": "Photos",
"photosEmpty": "No photos yet.",
"guestbookTitle": "Guestbook",
"guestbookSubtitle": "Messages on {username}'s wall",
"leaveMessage": "Leave a message",
"guestbookPlaceholder": "Write something on {username}'s guestbook…",
"post": "Post",
"loginToPost": "Log in to leave a guestbook message.",
"guestbookEmpty": "No guestbook entries yet.",
"unknownUser": "User #{id}",
"statDuckets": "Duckets",
"statDiamonds": "Diamonds",
"walletTitle": "Wallet",
"friendsTitle": "Friends",
"friendsSubtitle": "People in the hotel they hang out with",
"friendsEmpty": "No friends to show.",
"roomsTitle": "Rooms",
"roomsSubtitle": "Rooms they own",
"roomsEmpty": "No rooms to show.",
"roomUntitled": "Untitled room",
"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": "Rankings",
"subtitle": "The top 12 players ranked by credits",
"emptyState": "No players to rank yet."
},
"home": {
"welcome": "Welcome to {hotelName}",
"welcomeSubtitle": "Your retro hotel, now powered by Next.js",
"welcomeBody": "Hang out, collect furni, and meet friends.",
"enterHotel": "Enter {hotelName}",
"onlineFriends": "Online Friends",
"noFriendsOnline": "No friends online",
"register": "REGISTER NOW",
"joinNow": "Join {hotelName} today!",
"recentUsers": "Recent Users",
"recentPhotos": "Recent Photos",
"latestNews": "Latest news",
"newsTitle": "Latest news",
"newsSubtitle": "Fresh from the hotel",
"allNews": "All news →",
"allUsers": "Community →",
"noArticles": "No articles yet.",
"noPhotos": "No photos yet.",
"noUsers": "No users online",
"latestUsers": "Newest citizens ({count} total)",
"latestArticle": "Latest Article",
"statsOnline": "Online",
"statsCitizens": "Citizens",
"statsRooms": "Rooms",
"statsArticles": "Articles",
"featuresAvatar": "Avatar",
"featuresAvatarDesc": "Create your unique look",
"featuresFurniture": "Furniture",
"featuresFurnitureDesc": "Decorate rooms with items",
"featuresCommunity": "Community",
"featuresCommunityDesc": "Make friends and chat",
"featuresGames": "Games",
"featuresGamesDesc": "Compete and have fun"
},
"news": {
"title": "News",
"subtitle": "The latest announcements, events and updates from the hotel",
"noArticles": "No articles yet."
},
"article": {
"backToNews": "← News",
"reactionsTitle": "Reactions",
"reactionsSubtitle": "Tell us what you think",
"reaction": {
"like": "Like",
"love": "Love",
"wow": "Wow"
},
"removeReaction": "Click to remove your reaction",
"reactWith": "React with {reaction}",
"noReactions": "No reactions yet.",
"logIn": "Log in",
"toReact": "to react.",
"commentsTitle": "Comments",
"commentsSubtitle": "Join the conversation",
"commentsCount": "{count} so far",
"noComments": "No comments yet. Be the first to comment.",
"userNumber": "User #{id}",
"addComment": "Add a comment",
"commentPlaceholder": "Write your comment…",
"postComment": "Post comment",
"toComment": "to leave a comment.",
"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": "Photos",
"subtitle": "The latest snapshots taken in the hotel",
"noPhotos": "No photos yet.",
"photoAlt": "Photo by user #{id}",
"byUser": "by user #{id}"
},
"badges": {
"title": "Badges",
"subtitle": "The badges you can earn and show off around the hotel",
"noBadges": "No badges available yet."
},
"community": {
"title": "Community",
"subtitle": "Everything happening around the hotel in one place",
"open": "Open →",
"links": {
"rankings": {
"title": "Rankings",
"text": "See the wealthiest players in the hotel, ranked by credits."
},
"staff": {
"title": "Staff",
"text": "Meet the team that keeps the hotel running every day."
},
"news": {
"title": "News",
"text": "The latest announcements, events and updates."
},
"photos": {
"title": "Photos",
"text": "Snapshots shared by the community from around the hotel."
},
"guilds": {
"title": "Guilds",
"text": "Browse the groups players have created and joined."
},
"leaderboards": {
"title": "Leaderboards",
"text": "Who's on top this season across the hotel's stats."
}
}
},
"guilds": {
"title": "Guilds",
"subtitle": "Browse the groups players have created and joined",
"empty": "No guilds yet.",
"unnamedGuild": "Unnamed guild",
"noDescription": "No description"
},
"guild": {
"allGuilds": "← All guilds",
"unnamedGuild": "Unnamed guild",
"noDescription": "No description",
"memberSingular": "Member",
"memberPlural": "Members",
"founded": "Founded",
"forumLink": "Forum →",
"discussion": "Discussion",
"membersTitle": "Members",
"memberLowerSingular": "member",
"memberLowerPlural": "members",
"noMembers": "No members.",
"owner": "Owner",
"noMotto": "No motto"
},
"guildForum": {
"backToGuild": "← Back to guild",
"unnamedGuild": "Unnamed guild",
"forumTitle": "{guild} — Forum",
"threadSingular": "thread",
"threadPlural": "threads",
"newThread": "+ New thread",
"empty": "No threads in this forum yet.",
"colSubject": "Subject",
"colAuthor": "Author",
"colPosts": "Posts",
"colDate": "Date",
"noSubject": "(no subject)",
"pinned": "Pinned",
"locked": "Locked",
"userNumber": "User #{id}",
"unknown": "Unknown",
"success": {
"posted": "Thread posted."
}
},
"guildForumNew": {
"backToForum": "← Back to forum",
"unnamedGuild": "Unnamed guild",
"title": "New thread",
"subtitle": "in {guild} forum",
"subjectLabel": "Subject",
"subjectPlaceholder": "Thread subject",
"messageLabel": "Message",
"messagePlaceholder": "Write your opening post…",
"postThread": "Post thread",
"cancel": "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."
}
},
"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."
}
},
"shop": {
"title": "Shop",
"subtitle": "Top up your account and grab exclusive packages, currency and badges.",
"browsingCategory": "Browsing the {category} packages.",
"all": "All",
"allPackages": "All packages",
"packagesAvailable": "{count, plural, one {# package available} other {# packages available}}",
"empty": "No packages available right now.",
"buy": "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": "Top up with PayPal",
"subtitle": "Pay securely with PayPal and your credits are added the moment the payment clears.",
"cancelled": "Checkout was cancelled — no payment was taken.",
"chooseAmount": "Choose an amount",
"notConfiguredPre": "PayPal isn't configured yet. An administrator needs to set",
"notConfiguredAnd": "and",
"notConfiguredOptional": "(and optionally",
"notConfiguredPost": "for sandbox vs. live).",
"balanceTitle": "Your balance",
"signedInAs": "Signed in as {username}",
"credits": "Credits",
"creditsPerUnit": "Credits per 1.00 {currency}",
"rateLine": "You receive {amount} credits per 1.00 {currency}. Credits appear in-game the next time you log in."
},
"marketplace": {
"title": "Marketplace",
"subtitle": "Browse furniture and rares listed by players. Listings are placed in-game and update live — head into the hotel to make an offer.",
"activeOffers": "Active offers",
"sellers": "Sellers",
"totalValue": "Total value",
"activeListings": "Active listings",
"mostRecentFirst": "Most recently listed first",
"empty": "There are no active marketplace offers right now. Check back later.",
"colOffer": "Offer",
"colItem": "Item",
"colSeller": "Seller",
"colPrice": "Price",
"colListed": "Listed",
"itemLabel": "Item #{id}",
"userLabel": "User #{id}",
"justNow": "just now",
"minutesAgo": "{count}m ago",
"hoursAgo": "{count}h ago",
"daysAgo": "{count}d ago"
},
"rares": {
"title": "Rare values",
"subtitle": "Get an overview of all of the rares on the hotel, grouped by category.",
"empty": "We currently have no rares listed here.",
"rareCount": "{count, plural, one {# rare} other {# rares}}",
"viewRares": "View rares →"
},
"rareCategory": {
"rareCount": "{count, plural, one {# rare in this category} other {# rares in this category}}",
"allRares": "← All rares",
"empty": "No rares listed in this category yet.",
"colRare": "Rare",
"colCredits": "Credits",
"colCurrency": "Currency",
"creditsValue": "{value} credits",
"duckets": "Duckets",
"diamonds": "Diamonds",
"credits": "Credits"
},
"redeem": {
"title": "Redeem a voucher",
"subtitle": "Got a voucher code? Enter it below to add the reward to your account.",
"enterCode": "Enter your code",
"oncePerAccount": "Each voucher can only be redeemed once per account.",
"balanceTitle": "Your balance",
"signedInAs": "Signed in as {username}",
"credits": "Credits",
"instantCredit": "Redeemed rewards are credited instantly and appear in-game the next time you log in."
},
"help": {
"title": "Help Center",
"subtitle": "Find guides, support topics, and the hotel rules — everything you need to get help.",
"myTickets": "My tickets →",
"topicsTitle": "Support topics",
"topicsSubtitle": "Browse guides and answers to common questions",
"topicsEmpty": "No help topics yet.",
"rulesTitle": "Hotel rules",
"rulesSubtitle": "Please read these before hanging out in the hotel",
"rulesEmpty": "No rules published yet.",
"categoryEmpty": "No rules in this category."
},
"helpCategory": {
"back": "← Help Center",
"topicSubtitle": "Help Center topic",
"moreTitle": "More help topics",
"moreSubtitle": "Jump to another support topic"
},
"helpTickets": {
"title": "Help Tickets",
"subtitle": "Submit a ticket to staff and track your open requests.",
"statTotal": "Total tickets",
"statOpen": "Open",
"statClosed": "Closed",
"newTitle": "New ticket",
"newSubtitle": "Describe your issue and staff will follow up",
"subjectPlaceholder": "Subject",
"contentPlaceholder": "Describe your issue…",
"submit": "Submit ticket",
"banAppealLabel": "This is a ban appeal",
"listTitle": "Your tickets",
"listSubtitle": "Every request you have sent to staff",
"listEmpty": "You have no tickets yet.",
"colId": "ID",
"colSubject": "Subject",
"colStatus": "Status",
"colCreated": "Created",
"statusOpen": "Open",
"statusClosed": "Closed",
"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."
}
},
"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."
}
},
"applyStaff": {
"title": "Apply for {hotel} staff",
"subtitle": "We open staff applications every now and then. If you come across a position you feel you would fit perfectly into, do not hesitate to apply for it.",
"noPositionsTitle": "No positions open",
"noPositionsBody": "There are currently no positions open. Please come back at a later time to check if we have any openings by then. Thank you for your interest.",
"noDeadline": "No deadline set",
"deadline": "Application deadline: {date}",
"alreadyApplied": "You have already applied for {rank}",
"aboutYou": "About you",
"aboutPlaceholder": "Tell us why you'd be a great {rank}…",
"applyFor": "Apply for {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": "Apply for the {hotel} team",
"subtitle": "We open team applications periodically. If you see a team you fit, do not hesitate to apply!",
"noPositionsTitle": "No team positions open",
"noPositionsBody": "There are currently no open team positions. Please come back later to check for new openings. Thank you!",
"pending": "Your application is pending",
"aboutYou": "About you",
"aboutPlaceholder": "Tell us why you'd be a great fit for {rank}…",
"applyFor": "Apply for {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": "Radio",
"subtitle": "Tune in to the hotel radio — live DJ sets, requests and shoutouts.",
"nowPlaying": "Now playing",
"nothingPlaying": "Nothing playing right now.",
"onAir": "On air: {dj}",
"noDj": "No DJ on air.",
"audioUnsupported": "Your browser does not support the audio element.",
"streamOffline": "The stream is currently offline.",
"exploreTitle": "Explore the radio",
"exploreSubtitle": "Schedule, shouts, requests and more",
"linkSchedule": "Schedule",
"linkScheduleText": "Our weekly line-up of DJs and shows.",
"linkShouts": "Shouts",
"linkShoutsText": "Shout-outs and requests from the community.",
"linkRequests": "Requests",
"linkRequestsText": "Ask the DJ to spin your favourite track.",
"linkApply": "Apply as DJ",
"linkApplyText": "Join the team and take to the airwaves.",
"linkLeaderboard": "Leaderboard",
"linkLeaderboardText": "Top listeners ranked by points earned.",
"todayTitle": "Today's schedule",
"todayTitleWithDay": "Today's schedule · {day}",
"todaySubtitle": "What's on the airwaves today",
"fullWeek": "Full week →",
"noShowsToday": "No shows scheduled for today.",
"colTime": "Time",
"colShow": "Show",
"colDj": "DJ",
"untitledShow": "Untitled show",
"userNumber": "User #{id}"
},
"radioSchedule": {
"title": "Radio Schedule",
"subtitle": "Our weekly line-up of DJs and shows",
"empty": "No shows scheduled yet.",
"colDay": "Day",
"colTime": "Time",
"colDj": "DJ",
"colShow": "Show",
"noShows": "No shows"
},
"radioShouts": {
"title": "Radio Shouts",
"subtitle": "Shout-outs and requests from the community",
"postTitle": "Post a shout",
"postSubtitle": "Send a message to the DJ on air",
"messageLabel": "Your message",
"messagePlaceholder": "Send a shout to the DJ…",
"shoutButton": "Shout",
"loginToPost": "Log in to post a shout.",
"latestTitle": "Latest shouts",
"latestSubtitle": "The most recent messages from listeners",
"empty": "No shouts yet. Be the first!",
"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."
}
},
"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"
},
"radioContests": {
"title": "Radio Contests",
"subtitle": "Tune in and take part in our latest on-air contests",
"empty": "No contests yet.",
"contestLabel": "Contest #{id}",
"dateUnknown": "Date unknown"
},
"radioGiveaways": {
"title": "Radio Giveaways",
"subtitle": "Listen in for your chance to win in our radio giveaways",
"empty": "No giveaways yet.",
"giveawayLabel": "Giveaway #{id}",
"dateUnknown": "Date unknown"
},
"radioLeaderboard": {
"title": "Radio Listener Leaderboard",
"subtitle": "Top 50 listeners by points earned tuning in to the radio",
"empty": "No listener points to show yet.",
"colRank": "Rank",
"colAvatar": "Avatar",
"colListener": "Listener",
"colPoints": "Points"
},
"radioRequests": {
"formTitle": "Submit a request",
"formSubtitle": "Ask the DJ to play your favourite track",
"songLabel": "Song",
"songPlaceholder": "Title of the song",
"artistLabel": "Artist",
"artistPlaceholder": "Name of the artist (optional)",
"submitButton": "Submit request",
"loginToRequest": "Log in to submit a request.",
"latestTitle": "Recent requests",
"latestSubtitle": "The most recently requested songs",
"empty": "No requests yet.",
"colSong": "Song",
"colArtist": "Artist",
"colRequester": "Requester",
"colDate": "Date",
"colStatus": "Status",
"statusPending": "Pending",
"statusApproved": "Approved",
"statusPlayed": "Played",
"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": "Apply to be a Radio DJ",
"subtitle": "Tell us about yourself and why you'd be a great fit for the airwaves",
"latestTitle": "Your latest application",
"statusLabel": "Status:",
"submittedOn": "· submitted {date}",
"submitAgain": "You can submit again below if your details have changed.",
"formTitle": "Application form",
"formSubtitle": "All fields marked required must be filled in",
"realNameLabel": "Real name",
"realNamePlaceholder": "Your full name",
"ageLabel": "Age",
"availabilityLabel": "Availability",
"availabilityPlaceholder": "Which days and times can you broadcast?",
"musicStyleLabel": "Music style",
"musicStylePlaceholder": "e.g. House, Pop, Hip-Hop",
"experienceLabel": "Experience",
"optional": "(optional)",
"experiencePlaceholder": "Any prior DJ or hosting experience?",
"motivationLabel": "Motivation",
"motivationPlaceholder": "Why do you want to join the radio team?",
"submitButton": "Submit application",
"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": "Account settings",
"accountSettingsSubtitle": "Manage your profile, security and connected accounts",
"publicProfile": "Your public profile",
"noMotto": "No motto",
"noEmail": "No e-mail on file",
"changeMotto": "Change motto",
"changeMottoSubtitle": "Updates instantly in-game if you are online",
"mottoPlaceholder": "Your motto",
"saveMotto": "Save motto",
"securityTitle": "Security",
"securitySubtitle": "Two-factor authentication",
"securityDescription": "Add a second layer of protection to your account.",
"twoFactorLink": "Two-factor authentication"
},
"settings2fa": {
"backToSettings": "← Settings",
"title": "Two-factor authentication",
"subtitle": "Add a second layer of security with an authenticator app",
"nowEnabled": "2FA is now enabled. 🔒",
"disabledNotice": "2FA has been disabled.",
"badCode": "That code wasn't valid — try again.",
"noAppKeyPrefix": "2FA is unavailable until",
"noAppKeyMiddle": "is configured (the same Laravel",
"noAppKeySuffix": "as your AtomCMS install, so existing secrets stay readable).",
"isEnabled": "2FA is enabled",
"onYourAccount": "on your account.",
"disable": "Disable 2FA",
"scanOrEnter": "Scan or enter this key",
"scanInstructions": "Add this to Google Authenticator / Authy, then enter the 6-digit code to confirm.",
"manualKey": "Manual key:",
"codePlaceholder": "6-digit code",
"confirm": "Confirm",
"enableIntro": "Add a second layer of security with an authenticator app.",
"enable": "Enable 2FA"
},
"login": {
"title": "Sign in",
"subtitle": "Welcome back — log in to enter the hotel.",
"subtitle2fa": "Enter the 6-digit code from your authenticator.",
"welcomeBack": "Welcome back",
"welcomeBackSub": "Sign in to continue to {hotelName}",
"usernamePlaceholder": "Username",
"passwordPlaceholder": "Password",
"codePlaceholder": "2FA code",
"pleaseWait": "Please wait…",
"verify": "Verify",
"signIn": "Sign in",
"or": "or",
"noAccount": "No account?",
"createOne": "Create one",
"forgotPassword": "Forgot password?",
"errorInvalidCredentials": "Invalid username or password",
"errorInvalid2fa": "Invalid 2FA code",
"errorUnverified": "Please verify your email before signing in.",
"errorCaptcha": "Captcha verification failed. Please try again."
},
"register": {
"title": "Create account",
"subtitle": "Join the hotel — it only takes a moment.",
"username": "Username",
"email": "Email",
"password": "Password",
"confirmPassword": "Repeat password",
"usernamePlaceholder": "Username",
"emailPlaceholder": "Email",
"passwordPlaceholder": "Password (min 8 chars)",
"confirmPasswordPlaceholder": "Repeat password",
"selectOutfit": "Select your outfit",
"termsAccept": "I am 18+ and accept the {hotel} terms & rules.",
"accepted": "Accepted & agreed",
"showPassword": "Show",
"hidePassword": "Hide",
"accountDetails": "Account details",
"credentials": "Credentials & security",
"createAccount": "Create account",
"creatingAccount": "Creating account...",
"redirecting": "Redirecting to your account...",
"alreadyHaveAccount": "Already have an account? Login!",
"alreadyHaveAccountPre": "Already have an account?",
"alreadyHaveAccountLink": "Sign in",
"register": "Register",
"whoIsOnline": "Who's online",
"usersOnline": "{count} online",
"termsError": "You must accept the terms & rules to register.",
"usernameError": "Username is required.",
"emailError": "Valid email is required.",
"passwordError": "Password must be at least 6 characters.",
"confirmPasswordError": "Passwords do not match.",
"termsRequired": "You must accept the terms & rules.",
"usernameRequired": "Username is required.",
"emailRequired": "Email is required.",
"passwordRequired": "Password is required.",
"passwordsDontMatch": "Passwords do not match."
},
"forgot": {
"title": "Reset password",
"subtitle": "We'll email you a secure link to set a new password.",
"sentNotice": "If that email is registered, a reset link has been sent. Check your inbox.",
"emailPlaceholder": "Your email",
"sendResetLink": "Send reset link",
"backToLogin": "Back to login",
"errorCaptcha": "Captcha verification failed. Please try again."
},
"reset": {
"title": "Set a new password",
"subtitle": "Choose a strong password you don't use elsewhere.",
"passwordPlaceholder": "New password (min 6 chars)",
"resetPassword": "Reset password",
"backToLogin": "Back to login"
},
"verify": {
"verifiedTitle": "You're all set",
"verifiedSubtitle": "Email verified",
"verifiedBody": "Your email address has been verified. You can now log in and play.",
"goToLogin": "Go to login",
"alreadyTitle": "Already verified",
"alreadySubtitle": "Nothing left to do",
"alreadyBody": "This email address has already been confirmed.",
"unavailableTitle": "Try again shortly",
"unavailableSubtitle": "Server unreachable",
"unavailableBody": "We couldn't reach the server to verify your email. Please retry the link in a moment.",
"invalidTitle": "Email verification",
"invalidSubtitle": "Invalid or expired link",
"invalidBody": "This verification link is not valid. Make sure you opened the full link from your email, or request a new one.",
"backToLogin": "Back to login"
},
"banned": {
"title": "You are banned",
"subtitle": "Account suspended",
"body": "Your account has been suspended from the hotel.",
"reasonLabel": "Reason:",
"permanent": "This ban is permanent.",
"expires": "Expires {date}.",
"contactStaff": "If you believe this is a mistake, contact the staff team."
},
"maintenance": {
"title": "{hotel} is under maintenance",
"subtitle": "We'll be back shortly",
"staffCanLogIn": "Staff can still log in."
},
"admin": {
"nav": {
"overview": "Overview",
"dashboard": "Dashboard",
"content": "Content",
"hubNewsMedia": "News & media",
"hubSiteContent": "Site content",
"hubEngagement": "Engagement",
"articles": "Articles",
"tags": "Tags",
"navigator": "Navigator",
"helpCenter": "Help center",
"advertisements": "Advertisements",
"writeableBoxes": "Writeable boxes",
"photos": "Photos",
"tickets": "Tickets",
"helpTickets": "Help-center tickets",
"events": "Events",
"polls": "Polls",
"guilds": "Guilds",
"banners": "Banners",
"prefixes": "Prefixes",
"usersAndAccess": "Users & access",
"hubUsers": "Users",
"hubAccess": "Access & security",
"users": "Users",
"bans": "Bans",
"ipManagement": "IP management",
"vpn": "VPN",
"applications": "Applications",
"teams": "Teams",
"permissions": "Permissions",
"onlineUsers": "Online users",
"moderation": "Moderation",
"economy": "Economy",
"hubCatalog": "Catalog & rares",
"hubShop": "Shop & payments",
"catalog": "Catalog",
"catalogMaintenance": "Catalog maintenance",
"itemsBase": "Items base",
"shop": "Shop",
"marketplace": "Marketplace",
"transactions": "Transactions",
"vouchers": "Vouchers",
"subscriptions": "Subscriptions",
"rareValues": "Rare values",
"badges": "Badges",
"achievements": "Achievements",
"calendar": "Calendar",
"radio": "Radio",
"radioHistory": "Radio history",
"radioBanners": "Banners",
"radioEmbed": "Embed",
"radioApiKeys": "API keys",
"radioModeration": "Moderation",
"radioSettings": "Settings",
"radioMonitoring": "Monitoring",
"radioPoints": "Points",
"radioRanks": "Ranks",
"radioAutodj": "Auto DJ",
"system": "System",
"hubTools": "Tools",
"hubObservability": "Observability",
"commandocentrum": "Commandocentrum",
"emulator": "Emulator",
"alerts": "Alerts",
"logs": "Logs",
"auditLog": "Audit log",
"analytics": "Analytics",
"devops": "DevOps",
"wordFilter": "Word filter",
"maintenance": "Maintenance",
"rooms": "Rooms",
"emailTemplates": "Email templates",
"theme": "Theme",
"media": "Media",
"favicon": "Favicon",
"sounds": "Sounds",
"translations": "Translations",
"import": "Import",
"settings": "Settings",
"adminMenu": "Admin menu",
"backToSite": "Back to site",
"expandAll": "Expand all",
"collapseAll": "Collapse all",
"searchMenu": "Search menu…",
"clearMenuSearch": "Clear menu search",
"noMenuResults": "No matching pages.",
"housekeeping": "Permission archive",
"hotelManagementPanel": "Hotel management panel",
"rankLabel": "Rank {rank}",
"community": "Community",
"monitoring": "Monitoring",
"staffAccess": "Ranks & permissions",
"multiAccounts": "Multi-accounts",
"chatLog": "Chat log",
"commandLog": "Command log",
"tradeLog": "Trade log",
"tools": "Tools",
"studio": "Studio",
"search": {
"placeholder": "Search…",
"noResults": "No results found",
"users": "Users",
"articles": "Articles",
"rooms": "Rooms",
"guilds": "Guilds",
"shop": "Shop",
"hint": "Start typing to search across users, articles, rooms, guilds and shop items"
}
},
"dashboard": {
"title": "Dashboard",
"subtitle": "Hotel overview & live status",
"playersOnline": "Players online",
"articles": "Articles",
"activeBans": "Active bans",
"database": "Database",
"databaseConnected": "Connected",
"databaseDown": "Down",
"usersByRank": "Users by rank",
"noAccountsToBreakDown": "No accounts to break down yet",
"rankLabel": "Rank {rank}",
"rankWithCount": "Rank {rank}: {count} accounts",
"recentStaffActivity": "Recent staff activity",
"viewAll": "View all",
"noStaffActivityLogged": "No staff activity logged yet"
},
"articles": {
"title": "Articles",
"subtitle": "News articles — 50 most recent",
"newArticle": "+ New article",
"edit": "Edit",
"delete": "Delete",
"noArticles": "No articles yet",
"confirmDelete": "Are you sure you want to delete \"{title}\"?",
"colTitle": "Title",
"colSlug": "Slug",
"colAuthor": "Author",
"colCreated": "Created",
"colActions": "Actions",
"form": {
"title": "Title",
"titlePlaceholder": "Article title",
"slug": "Slug",
"slugPlaceholder": "article-url-slug",
"category": "Category",
"categoryPlaceholder": "Select a category",
"body": "Body",
"bodyPlaceholder": "Write your article content…",
"image": "Image",
"imagePlaceholder": "https://example.com/image.png",
"thumbnail": "Thumbnail",
"thumbnailPlaceholder": "https://example.com/thumb.png",
"published": "Published",
"featured": "Featured",
"save": "Save article",
"saving": "Saving…",
"deleteArticle": "Delete article",
"deleteConfirm": "This action cannot be undone. The article will be permanently removed.",
"cancel": "Cancel",
"status": "Status",
"statusDraft": "Draft",
"statusScheduled": "Scheduled",
"statusPublished": "Published",
"publishAt": "Publish at",
"publishedAt": "Published at"
}
},
"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"
},
"tags": {
"title": "Tags",
"subtitle": "Article tags / categories",
"addTag": "Add tag",
"name": "Name",
"namePlaceholder": "Tag name",
"backgroundColour": "Background colour",
"createTag": "Create tag",
"editTag": "Edit tag",
"updateTag": "Update tag",
"deleteTag": "Delete tag",
"confirmDelete": "Delete \"{name}\"?",
"noTags": "No tags yet",
"colId": "ID",
"colTag": "Tag",
"colColour": "Colour",
"colUsedBy": "Used by",
"colCreated": "Created",
"colActions": "Actions"
},
"navigation": {
"title": "Navigator",
"flatCategories": "Flat categories",
"publicRooms": "Public rooms",
"addCategory": "Add category",
"editCategory": "Edit category",
"deleteCategory": "Delete category",
"categoryName": "Category name",
"categoryNamePlaceholder": "e.g. Chill & Chat",
"categoryOrder": "Order",
"roomName": "Room name",
"roomNamePlaceholder": "e.g. Welcome Lounge",
"roomId": "Room ID",
"roomIdPlaceholder": "Numeric room ID",
"save": "Save",
"cancel": "Cancel",
"noCategories": "No categories yet",
"noPublicRooms": "No public rooms yet",
"colId": "ID",
"colName": "Name",
"colOrder": "Order",
"colRooms": "Rooms",
"colActions": "Actions"
},
"helpCenter": {
"title": "Help Center",
"subtitle": "Support entries and FAQ management",
"entries": "Entries",
"newEntry": "+ New entry",
"edit": "Edit",
"delete": "Delete",
"noEntries": "No entries yet",
"confirmDelete": "Delete \"{title}\"?",
"colId": "ID",
"colTitle": "Title",
"colCategory": "Category",
"colCreated": "Created",
"colActions": "Actions",
"form": {
"title": "Title",
"titlePlaceholder": "Entry title",
"category": "Category",
"categoryPlaceholder": "Select category",
"body": "Body",
"bodyPlaceholder": "Write the answer…",
"save": "Save entry",
"saving": "Saving…",
"deleteEntry": "Delete entry",
"cancel": "Cancel"
}
},
"ads": {
"title": "Advertisements",
"subtitle": "Manage hotel advertisements and promotional banners",
"newAd": "+ New ad",
"edit": "Edit",
"delete": "Delete",
"noAds": "No advertisements yet",
"confirmDelete": "Delete this ad?",
"deleteSuccess": "Advertisement deleted!",
"deleteError": "Failed to delete advertisement.",
"adsCount": "Total ads",
"latest": "Latest",
"mostRecentAd": "Most recent ad",
"allAds": "All advertisements",
"colPreview": "Preview",
"colName": "Name",
"colImage": "Image",
"colUrl": "URL",
"colViews": "Views",
"colStatus": "Status",
"colCreated": "Created",
"colActions": "Actions",
"form": {
"name": "Name",
"namePlaceholder": "Ad name",
"image": "Image URL",
"imagePlaceholder": "https://example.com/banner.png",
"url": "Target URL",
"urlPlaceholder": "https://example.com",
"enabled": "Enabled",
"save": "Save ad",
"saving": "Saving…",
"deleteAd": "Delete ad",
"cancel": "Cancel"
}
},
"writeableBoxes": {
"title": "Writeable Boxes",
"subtitle": "Content panels shown across the hotel and CMS",
"newBox": "New box",
"edit": "Edit",
"delete": "Delete",
"noBoxes": "No writeable boxes yet",
"confirmDelete": "Delete this box?",
"colId": "ID",
"colName": "Name",
"colLocation": "Location",
"colUpdated": "Updated",
"colActions": "Actions",
"form": {
"name": "Name",
"namePlaceholder": "Box name",
"location": "Location",
"locationPlaceholder": "e.g. homepage, sidebar",
"content": "Content",
"contentPlaceholder": "Write the box content…",
"enabled": "Enabled",
"save": "Save box",
"saving": "Saving…",
"deleteBox": "Delete box",
"cancel": "Cancel"
}
},
"photos": {
"title": "Photo Moderation",
"subtitle": "Recent in-game camera photos",
"purgeHint": "Delete removes the database row and best-effort deletes a matching file under /public. External CDN URLs are not purged.",
"delete": "Delete",
"approve": "Approve",
"noPhotos": "No photos to moderate",
"confirmDelete": "Delete this photo permanently?",
"colId": "ID",
"colPreview": "Preview",
"colUser": "User",
"colRoom": "Room",
"colTimestamp": "Timestamp",
"colActions": "Actions",
"photoAlt": "User photo #{id}",
"byUser": "by {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": "Users",
"subtitle": "Browse, search and manage hotel accounts",
"search": "Search",
"searchPlaceholder": "Search by username, email or ID…",
"searchResults": "{count, plural, one {# result} other {# results}} for \"{query}\"",
"noResults": "No users found",
"colId": "ID",
"colUsername": "Username",
"colEmail": "Email",
"colRank": "Rank",
"colOnline": "Online",
"colRegistered": "Registered",
"colLastOnline": "Last online",
"colActions": "Actions",
"yes": "Yes",
"no": "No",
"edit": "Edit",
"setRank": "Set rank",
"disconnect": "Disconnect",
"alert": "Alert",
"ban": "Ban",
"detail": {
"title": "User: {username}",
"subtitle": "Account details and management",
"tabInfo": "Account Info",
"tabBadges": "Badges ({count})",
"tabRooms": "Rooms ({count})",
"tabSanctions": "Sanctions ({count})",
"tabActivity": "Activity",
"overview": "Overview",
"actions": "Actions",
"username": "Username",
"email": "Email",
"motto": "Motto",
"rank": "Rank",
"credits": "Credits",
"duckets": "Duckets",
"diamonds": "Diamonds",
"online": "Online",
"registered": "Registered",
"lastOnline": "Last online",
"ipAddress": "IP address",
"machineId": "Machine ID",
"sendAlert": "Send alert",
"sendMessage": "Send message",
"disconnectUser": "Disconnect user",
"banUser": "Ban user",
"resetPassword": "Reset password",
"deleteUser": "Delete user",
"confirmDelete": "Are you sure you want to delete {username}? This cannot be undone."
},
"editForm": {
"title": "Edit user: {username}",
"subtitle": "Modify account details",
"username": "Username",
"usernamePlaceholder": "Username",
"email": "Email",
"emailPlaceholder": "user@example.com",
"motto": "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"
},
"tickets": {
"title": "CMS support desk",
"subtitle": "Internal CMS tickets (assignee, priority, staff workflow). Not the same as help-center tickets from /help.",
"queueHint": "This queue is the CMS support desk. Player help-center tickets live in the Help-center tickets tab. Use Inbox for both queues.",
"queueOtherCta": "Open help-center tickets",
"queueCounts": "Open here: {here} · Help center: {other}",
"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}"
},
"ticketInbox": {
"hint": "Merged view of open CMS desk and help-center tickets. Detail pages and replies stay on each product’s own route.",
"noTickets": "No open tickets in either queue",
"searchPlaceholder": "Search subject, title, user or ID…",
"statCmsOpen": "CMS open",
"statHelpOpen": "Help open",
"statTotal": "Open total",
"colTicket": "Ticket",
"colStatus": "Status",
"colType": "Queue",
"colUpdated": "Updated",
"meta": "by {user}",
"typeAll": "All queues",
"typeCms": "CMS desk",
"typeHelp": "Help center",
"statusOpen": "Open",
"statusClosed": "Closed",
"statusAll": "All statuses",
"presetOpen": "Open only",
"modNavLabel": "Queues:",
"modNavInbox": "Inbox",
"modNavDesk": "CMS desk",
"modNavHelp": "Help center"
},
"helpTickets": {
"title": "Help center tickets",
"subtitle": "Tickets players open at /help/tickets. Separate from the CMS support desk.",
"queueHint": "This queue is the public help center. Use Inbox for both queues, or Support desk for CMS-only.",
"queueOtherCta": "Open unified inbox",
"queueCounts": "Open here: {here} · Support desk: {other}",
"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",
"liftBanSubmit": "Lift requester ban & close",
"requesterBanned": "Requester banned",
"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."
}
},
"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"
},
"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": "This is the live access control for admin and mod panels",
"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"
}
},
"online": {
"title": "Online users",
"subtitle": "Players currently connected",
"connected": "{count, plural, one {# player connected} other {# players connected}}"
},
"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"
},
"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",
"recentOrders": "Recent orders",
"paidOrders": "Paid orders",
"ordersHint": "Latest PayPal transactions (most recent 25)",
"pageOf": "Page {page} of {lastPage}",
"packagesTotal": "{count} packages",
"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",
"colCredits": "Credits",
"colDuckets": "Duckets",
"colDiamonds": "Diamonds",
"colRank": "Rank",
"colPosition": "Position",
"colCurrency": "Currency",
"colType": "Type",
"colSold": "Sold",
"colEnabled": "Enabled",
"colActions": "Actions",
"colOrderId": "Order ID",
"colCustomer": "Customer",
"colPackage": "Package",
"colTransaction": "Transaction",
"colUser": "User",
"colDescription": "Description",
"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"
}
},
"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"
},
"guilds": {
"title": "Guilds",
"subtitle": "Hotel groups and membership",
"totalGuilds": "Guilds",
"listHeading": "Guilds ({count})",
"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",
"edit": "Edit guild",
"save": "Save",
"saving": "Saving…",
"updated": "Guild updated",
"updateError": "Could not update guild",
"formName": "Name",
"formDescription": "Description",
"formState": "State",
"formForum": "Forum",
"formReadForum": "Read forum",
"formPostMessages": "Post messages",
"formPostThreads": "Post threads",
"formModForum": "Moderate forum"
},
"transactions": {
"title": "Transactions",
"subtitle": "PayPal payment log",
"noTransactions": "No transactions yet",
"totalTransactions": "Total transactions",
"pagePaid": "Paid (this page)",
"pageFailed": "Failed (this page)",
"searchPlaceholder": "Search by user, transaction ID or package…",
"presetPaid": "Paid",
"presetFailed": "Failed",
"colId": "ID",
"colUser": "User",
"colPayer": "Payer",
"colAmount": "Amount",
"colCurrency": "Currency",
"colPackage": "Package",
"colStatus": "Status",
"colTransaction": "Transaction ID",
"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"
}
},
"vouchers": {
"title": "Shop Vouchers",
"subtitle": "Manage redeemable voucher codes",
"vouchers": "Vouchers",
"active": "Active",
"usedUp": "Used up",
"expired": "Expired",
"newVoucher": "+ New voucher",
"edit": "Edit",
"delete": "Delete",
"noVouchers": "No vouchers yet",
"confirmDeleteTitle": "Delete voucher",
"confirmDelete": "Delete voucher \"{code}\"?",
"created": "Voucher created",
"deleted": "Voucher deleted",
"updated": "Voucher updated",
"createError": "Could not create voucher",
"deleteError": "Could not delete voucher",
"updateError": "Could not update voucher",
"statusActive": "Active",
"statusUsedUp": "Used up",
"statusExpired": "Expired",
"colId": "ID",
"colCode": "Code",
"colValue": "Value",
"colAmount": "Amount",
"colType": "Type",
"colUses": "Uses / Max",
"colStatus": "Status",
"colExpires": "Expires",
"colCreated": "Created",
"colActions": "Actions",
"form": {
"code": "Code",
"codePlaceholder": "e.g. SUMMER2025",
"value": "Value",
"amount": "Credits amount",
"amountPlaceholder": "e.g. 100",
"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",
"create": "Create voucher",
"save": "Save voucher",
"saving": "Saving…",
"cancel": "Cancel"
}
},
"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",
"editValue": "Edit value",
"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",
"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