893 lines
31 KiB
JSON
893 lines
31 KiB
JSON
{
|
||
"common": {
|
||
"appName": "HexaHost GameCloud",
|
||
"login": "Sign in",
|
||
"register": "Register",
|
||
"dashboard": "Dashboard",
|
||
"logout": "Sign out",
|
||
"theme": "Theme",
|
||
"themeLight": "Light",
|
||
"themeDark": "Dark",
|
||
"themeSystem": "System",
|
||
"language": "Language",
|
||
"loading": "Loading…",
|
||
"submit": "Submit",
|
||
"cancel": "Cancel",
|
||
"back": "Back",
|
||
"footer": "Self-hosted Minecraft server platform.",
|
||
"servers": "Servers",
|
||
"features": "Features",
|
||
"pricing": "Pricing",
|
||
"docs": "Documentation",
|
||
"status": "Status",
|
||
"impressum": "Legal notice",
|
||
"privacy": "Privacy",
|
||
"terms": "Terms",
|
||
"admin": "Admin",
|
||
"phaseBadge": "MVP · Phases 0–9"
|
||
},
|
||
"landing": {
|
||
"badge": "MVP · Phase 9 complete",
|
||
"title": "Minecraft servers on demand",
|
||
"subtitle": "Create, configure, and operate Minecraft servers through a central web panel — multi-tenant, scalable, and production-ready.",
|
||
"ctaPrimary": "Get started",
|
||
"ctaSecondary": "Sign in",
|
||
"features": {
|
||
"control": {
|
||
"title": "Central control",
|
||
"description": "Server lifecycle, quotas, and scheduling through a unified control plane."
|
||
},
|
||
"nodes": {
|
||
"title": "Multi-node",
|
||
"description": "Horizontal scaling across dedicated game nodes with agent-based orchestration."
|
||
},
|
||
"security": {
|
||
"title": "Enterprise security",
|
||
"description": "mTLS, granular permissions, and auditable state transitions from day one."
|
||
}
|
||
}
|
||
},
|
||
"auth": {
|
||
"loginTitle": "Sign in",
|
||
"loginSubtitle": "Sign in with your account.",
|
||
"registerTitle": "Create account",
|
||
"registerSubtitle": "Register for the platform.",
|
||
"email": "Email",
|
||
"emailPlaceholder": "name@example.com",
|
||
"username": "Username",
|
||
"usernamePlaceholder": "player123",
|
||
"displayName": "Display name",
|
||
"displayNamePlaceholder": "Your name",
|
||
"optional": "optional",
|
||
"password": "Password",
|
||
"passwordPlaceholder": "••••••••",
|
||
"confirmPassword": "Confirm password",
|
||
"noAccount": "No account yet?",
|
||
"hasAccount": "Already registered?",
|
||
"forgotPasswordLink": "Forgot password?",
|
||
"forgotPasswordTitle": "Reset password",
|
||
"forgotPasswordSubtitle": "Enter your email address and we will send you a reset link.",
|
||
"forgotPasswordSubmit": "Send reset link",
|
||
"forgotPasswordSent": "If an account exists for this email, you will receive a reset link shortly.",
|
||
"resetPasswordTitle": "Set new password",
|
||
"resetPasswordSubtitle": "Choose a new password for your account.",
|
||
"resetPasswordSubmit": "Update password",
|
||
"resetPasswordMissingToken": "This reset link is invalid or has expired.",
|
||
"verifyEmailTitle": "Email verification",
|
||
"verifyEmailSent": "Registration successful. Please check your inbox and click the verification link.",
|
||
"verifyEmailLoading": "Verifying your email address…",
|
||
"verifyEmailSuccess": "Your email address has been verified. You can now sign in.",
|
||
"verifyEmailError": "Verification failed. The link may be invalid or expired.",
|
||
"verifyEmailMissingToken": "No verification token was provided.",
|
||
"twoFactorTitle": "Two-factor authentication",
|
||
"twoFactorSubtitle": "Enter the 6-digit code from your authenticator app.",
|
||
"twoFactorCode": "Authentication code",
|
||
"twoFactorSubmit": "Verify",
|
||
"twoFactorMissingChallenge": "No login challenge found. Please sign in again.",
|
||
"twoFactorSetupTitle": "Two-factor authentication",
|
||
"twoFactorSetupDescription": "Add an extra layer of security to your account with TOTP.",
|
||
"twoFactorSetupStart": "Set up 2FA",
|
||
"twoFactorScanQr": "Scan this QR code with your authenticator app, then enter the generated code.",
|
||
"twoFactorQrAlt": "QR code for authenticator setup",
|
||
"twoFactorConfirm": "Enable 2FA",
|
||
"twoFactorEnabled": "Two-factor authentication is enabled on your account.",
|
||
"recoveryCodesTitle": "Recovery codes — save these in a secure place",
|
||
"securityTitle": "Security",
|
||
"securitySubtitle": "Manage authentication and security settings for your account.",
|
||
"backToLogin": "Back to sign in",
|
||
"ssoTitle": "Signing you in",
|
||
"ssoLoading": "Validating your secure sign-in link…",
|
||
"ssoError": "Sign-in failed. The link may be expired or already used.",
|
||
"ssoMissingTicket": "No sign-in ticket was provided.",
|
||
"impersonationBanner": "Support session active: {label}",
|
||
"impersonationDefaultLabel": "WHMCS admin impersonation",
|
||
"sessionNone": "session: none",
|
||
"errors": {
|
||
"generic": "Something went wrong. Please try again."
|
||
}
|
||
},
|
||
"dashboard": {
|
||
"title": "Dashboard",
|
||
"welcome": "Welcome to your control area.",
|
||
"servers": "Servers",
|
||
"serversEmpty": "No servers yet",
|
||
"serversEmptyDescription": "Create your first Minecraft server to get started.",
|
||
"createServer": "Create server",
|
||
"status": "Status",
|
||
"resources": "Resources",
|
||
"activity": "Activity",
|
||
"activityEmpty": "No recent events",
|
||
"controlPlaneOnline": "Control Plane · Online",
|
||
"activeServers": "Active servers",
|
||
"resourcesSubtitle": "Allocated / Quota",
|
||
"allocatedRam": "Allocated RAM",
|
||
"activitySubtitle": "Overview",
|
||
"totalServers": "Total servers",
|
||
"credits": "Credits",
|
||
"creditsSubtitle": "Runtime balance",
|
||
"creditsRemaining": "Credits remaining",
|
||
"viewAllServers": "View all servers",
|
||
"serversSummary": "Servers in your account"
|
||
},
|
||
"validation": {
|
||
"emailRequired": "Email is required",
|
||
"emailInvalid": "Invalid email address",
|
||
"passwordRequired": "Password is required",
|
||
"passwordMin": "Password must be at least 8 characters",
|
||
"confirmPasswordRequired": "Password confirmation is required",
|
||
"passwordMismatch": "Passwords do not match",
|
||
"usernameInvalid": "Username must be 3–32 characters (letters, numbers, _ and -)",
|
||
"codeRequired": "Authentication code is required",
|
||
"codeInvalid": "Enter a valid 6-digit code",
|
||
"serverNameRequired": "Server name is required",
|
||
"serverNameMax": "Server name must be at most 64 characters",
|
||
"planRequired": "Please select a plan",
|
||
"planInvalid": "Invalid plan selected",
|
||
"versionRequired": "Minecraft version is required",
|
||
"softwareRequired": "Software family is required",
|
||
"eulaRequired": "You must accept the Minecraft EULA",
|
||
"motdMax": "MOTD must be at most 256 characters",
|
||
"maxPlayersMin": "At least 1 player required",
|
||
"maxPlayersMax": "At most 200 players allowed"
|
||
},
|
||
"servers": {
|
||
"title": "Servers",
|
||
"subtitle": "Manage your Minecraft servers.",
|
||
"create": "Create server",
|
||
"createTitle": "New server",
|
||
"createDescription": "Configure and provision a new Minecraft server.",
|
||
"name": "Server name",
|
||
"plan": "Plan",
|
||
"selectPlan": "Select a plan",
|
||
"noPlans": "No plans are available. Ask an administrator to create a plan.",
|
||
"software": "Software",
|
||
"version": "Minecraft version",
|
||
"eula": "I accept the Minecraft End User License Agreement (EULA).",
|
||
"loading": "Loading…",
|
||
"cancel": "Cancel",
|
||
"emptyTitle": "No servers yet",
|
||
"emptyDescription": "Create your first server to start playing.",
|
||
"address": "Address",
|
||
"addressPending": "Pending allocation",
|
||
"ram": "RAM",
|
||
"start": "Start",
|
||
"stop": "Stop",
|
||
"idleCountdown": "Auto-stop in {seconds}s (no players)",
|
||
"details": "Details",
|
||
"detailSubtitle": "Server details and lifecycle controls",
|
||
"backToList": "Back to servers",
|
||
"retry": "Retry",
|
||
"status": {
|
||
"DRAFT": "Draft",
|
||
"PROVISIONING": "Provisioning",
|
||
"INSTALLING": "Installing",
|
||
"STOPPED": "Stopped",
|
||
"QUEUED": "Queued",
|
||
"STARTING": "Starting",
|
||
"RUNNING": "Running",
|
||
"STOPPING": "Stopping",
|
||
"UNKNOWN": "Unknown",
|
||
"ERROR": "Error",
|
||
"DELETING": "Deleting",
|
||
"DELETED": "Deleted"
|
||
},
|
||
"softwareOptions": {
|
||
"VANILLA": "Vanilla",
|
||
"PAPER": "Paper",
|
||
"PURPUR": "Purpur",
|
||
"FABRIC": "Fabric",
|
||
"FORGE": "Forge",
|
||
"NEOFORGE": "NeoForge",
|
||
"QUILT": "Quilt",
|
||
"BEDROCK_DEDICATED": "Bedrock Dedicated"
|
||
},
|
||
"errors": {
|
||
"generic": "Something went wrong. Please try again.",
|
||
"loadFailed": "Could not load servers."
|
||
},
|
||
"tabs": {
|
||
"navigation": "Server sections",
|
||
"overview": "Overview",
|
||
"console": "Console",
|
||
"files": "Files",
|
||
"properties": "Properties",
|
||
"players": "Players",
|
||
"worlds": "Worlds",
|
||
"backups": "Backups",
|
||
"addons": "Add-ons",
|
||
"software": "Software",
|
||
"schedules": "Schedules",
|
||
"access": "Access"
|
||
},
|
||
"wizard": {
|
||
"stepsLabel": "Creation steps",
|
||
"steps": {
|
||
"basics": "Basics",
|
||
"software": "Software",
|
||
"review": "Review"
|
||
},
|
||
"next": "Next",
|
||
"back": "Back"
|
||
},
|
||
"software": {
|
||
"title": "Software",
|
||
"description": "Installed server software and version.",
|
||
"loading": "Loading…",
|
||
"loadError": "Could not load software information.",
|
||
"family": "Software family",
|
||
"version": "Minecraft version",
|
||
"edition": "Edition",
|
||
"changeHint": "Software switching will be supported in a future release.",
|
||
"reinstall": "Reinstall software",
|
||
"reinstalling": "Reinstalling…",
|
||
"reinstallConfirm": "Reinstall server software? A backup will be created first.",
|
||
"reinstallStarted": "Reinstall started. The server will be unavailable during installation.",
|
||
"reinstallError": "Could not start reinstall.",
|
||
"reinstallStoppedHint": "Stop the server before reinstalling software."
|
||
},
|
||
"console": {
|
||
"loading": "Loading…",
|
||
"notRunning": "The console is only available while the server is running. Start the server from the overview tab.",
|
||
"connecting": "Connecting…",
|
||
"connected": "Connected",
|
||
"disconnected": "Disconnected",
|
||
"clear": "Clear log",
|
||
"commandPlaceholder": "Enter server command…",
|
||
"send": "Send",
|
||
"errors": {
|
||
"connectionFailed": "Could not connect to the console."
|
||
}
|
||
},
|
||
"files": {
|
||
"loading": "Loading…",
|
||
"browser": "File browser",
|
||
"editor": "Editor",
|
||
"up": "Up",
|
||
"empty": "This directory is empty.",
|
||
"selectFile": "Select a file to view or edit.",
|
||
"readOnlyStopped": "Read-only while the server is stopped.",
|
||
"notAvailable": "Files are only available when the server is running or stopped.",
|
||
"truncated": "File was truncated for display. Edit with care.",
|
||
"save": "Save",
|
||
"saving": "Saving…",
|
||
"saved": "File saved.",
|
||
"upload": "Upload",
|
||
"uploading": "Uploading…",
|
||
"uploaded": "File uploaded.",
|
||
"delete": "Delete",
|
||
"deleted": "Deleted.",
|
||
"deleteConfirm": "Delete {name}?",
|
||
"archive": "Archive selected",
|
||
"archiving": "Archiving…",
|
||
"archived": "Archive created.",
|
||
"unarchive": "Extract archive",
|
||
"unarchiving": "Extracting…",
|
||
"unarchived": "Archive extraction started.",
|
||
"unarchiveConfirm": "Extract {name} into the current directory?",
|
||
"errors": {
|
||
"loadFailed": "Could not load directory.",
|
||
"readFailed": "Could not read file.",
|
||
"saveFailed": "Could not save file.",
|
||
"deleteFailed": "Could not delete file.",
|
||
"uploadFailed": "Could not upload file.",
|
||
"archiveFailed": "Could not create archive.",
|
||
"unarchiveFailed": "Could not extract archive."
|
||
}
|
||
},
|
||
"properties": {
|
||
"title": "Server properties",
|
||
"description": "Edit common server.properties settings. Unknown properties are preserved on the server.",
|
||
"loading": "Loading…",
|
||
"motd": "MOTD",
|
||
"gamemode": "Gamemode",
|
||
"difficulty": "Difficulty",
|
||
"maxPlayers": "Max players",
|
||
"pvp": "PVP",
|
||
"whitelist": "Whitelist",
|
||
"hardcore": "Hardcore",
|
||
"onlineMode": "Online mode",
|
||
"enableCommandBlock": "Command blocks",
|
||
"allowFlight": "Allow flight",
|
||
"viewDistance": "View distance",
|
||
"simulationDistance": "Simulation distance",
|
||
"spawnProtection": "Spawn protection",
|
||
"save": "Save changes",
|
||
"saving": "Saving…",
|
||
"saved": "Properties saved.",
|
||
"gamemodes": {
|
||
"survival": "Survival",
|
||
"creative": "Creative",
|
||
"adventure": "Adventure",
|
||
"spectator": "Spectator"
|
||
},
|
||
"difficulties": {
|
||
"peaceful": "Peaceful",
|
||
"easy": "Easy",
|
||
"normal": "Normal",
|
||
"hard": "Hard"
|
||
},
|
||
"errors": {
|
||
"loadFailed": "Could not load server properties.",
|
||
"saveFailed": "Could not save server properties."
|
||
}
|
||
},
|
||
"players": {
|
||
"loading": "Loading…",
|
||
"onlineCount": "Online players",
|
||
"whitelistCount": "Whitelist entries",
|
||
"operatorsCount": "Operators",
|
||
"onlineTitle": "Online players",
|
||
"whitelistTitle": "Whitelist",
|
||
"operatorsTitle": "Operators",
|
||
"bansTitle": "Banned players",
|
||
"bansEmpty": "No banned players.",
|
||
"empty": "No players online.",
|
||
"retry": "Retry",
|
||
"kick": "Kick",
|
||
"addWhitelist": "Add to whitelist",
|
||
"addOperator": "Add operator",
|
||
"addBan": "Ban player",
|
||
"remove": "Remove",
|
||
"fields": {
|
||
"name": "Player name",
|
||
"uuid": "UUID",
|
||
"reason": "Reason"
|
||
},
|
||
"columns": {
|
||
"name": "Player",
|
||
"ping": "Ping",
|
||
"actions": "Actions"
|
||
},
|
||
"errors": {
|
||
"loadFailed": "Could not load player list.",
|
||
"actionFailed": "Action failed."
|
||
}
|
||
},
|
||
"worlds": {
|
||
"loading": "Loading…",
|
||
"loadError": "Could not load world information.",
|
||
"activeWorld": "Active world: {name}",
|
||
"stoppedHint": "Upload and replace require a stopped server.",
|
||
"worldName": "World name",
|
||
"uploadArchive": "World archive (.tar.gz)",
|
||
"uploadError": "World upload failed.",
|
||
"download": "Download world",
|
||
"downloadError": "Could not start download.",
|
||
"downloadPending": "Backup is being created. Try the download again shortly.",
|
||
"empty": "No worlds found.",
|
||
"validWorld": "Valid world",
|
||
"invalidWorld": "Invalid",
|
||
"active": "Active"
|
||
},
|
||
"backups": {
|
||
"loading": "Loading…",
|
||
"loadError": "Could not load backups.",
|
||
"create": "Create backup",
|
||
"manualLabel": "Manual backup",
|
||
"createError": "Could not create backup.",
|
||
"download": "Download",
|
||
"downloadError": "Could not create download URL.",
|
||
"restore": "Restore",
|
||
"restoreConfirm": "Restore the world from this backup? The server must be stopped.",
|
||
"restoreError": "Restore failed.",
|
||
"delete": "Delete",
|
||
"deleteConfirm": "Delete this backup?",
|
||
"deleteError": "Could not delete backup.",
|
||
"enableSchedule": "Enable scheduled backups",
|
||
"disableSchedule": "Disable scheduled backups",
|
||
"scheduleError": "Could not update schedule.",
|
||
"scheduleInfo": "Interval: every {hours}h · Retention: {retention} backups",
|
||
"label": "Label",
|
||
"status": "Status",
|
||
"size": "Size",
|
||
"created": "Created",
|
||
"actions": "Actions",
|
||
"empty": "No backups yet."
|
||
},
|
||
"addons": {
|
||
"loading": "Loading…",
|
||
"unsupported": "Add-ons are not supported for this server software yet. Use Paper or Fabric.",
|
||
"stoppedHint": "Add-ons can only be installed or removed while the server is stopped.",
|
||
"searchPlaceholder": "Search Modrinth…",
|
||
"search": "Search",
|
||
"searchError": "Catalog search failed.",
|
||
"versionsError": "Could not load versions.",
|
||
"installError": "Installation failed.",
|
||
"removeError": "Remove failed.",
|
||
"select": "Versions",
|
||
"compatibleVersions": "Compatible versions for {name}",
|
||
"install": "Install",
|
||
"remove": "Remove",
|
||
"installed": "Installed",
|
||
"empty": "No add-ons installed yet."
|
||
},
|
||
"schedules": {
|
||
"title": "Schedules",
|
||
"description": "Scheduled start, stop, and maintenance actions.",
|
||
"loading": "Loading…",
|
||
"empty": "No schedules yet.",
|
||
"create": "Create schedule",
|
||
"edit": "Edit",
|
||
"save": "Save changes",
|
||
"cancel": "Cancel",
|
||
"delete": "Delete",
|
||
"enable": "Enable",
|
||
"disable": "Disable",
|
||
"saving": "Saving…",
|
||
"deleteConfirm": "Delete schedule \"{name}\"?",
|
||
"fields": {
|
||
"name": "Name",
|
||
"cron": "Cron expression",
|
||
"timezone": "Timezone",
|
||
"taskType": "Task",
|
||
"enabled": "Enabled",
|
||
"command": "Console command",
|
||
"commandPlaceholder": "say Server restarting"
|
||
},
|
||
"columns": {
|
||
"name": "Name",
|
||
"cron": "Cron",
|
||
"task": "Task",
|
||
"status": "Status",
|
||
"actions": "Actions"
|
||
},
|
||
"status": {
|
||
"enabled": "Enabled",
|
||
"disabled": "Disabled"
|
||
},
|
||
"taskTypes": {
|
||
"START": "Start server",
|
||
"STOP": "Stop server",
|
||
"RESTART": "Restart server",
|
||
"BACKUP": "Create backup",
|
||
"CONSOLE_COMMAND": "Run command",
|
||
"UPDATE_CHECK": "Check for updates",
|
||
"MAINTENANCE": "Maintenance"
|
||
},
|
||
"errors": {
|
||
"loadFailed": "Could not load schedules.",
|
||
"saveFailed": "Could not save schedule.",
|
||
"deleteFailed": "Could not delete schedule."
|
||
}
|
||
},
|
||
"access": {
|
||
"title": "Access",
|
||
"description": "Sharing and permissions for this server.",
|
||
"loading": "Loading…",
|
||
"empty": "No members yet. Invite someone to share this server.",
|
||
"invite": "Invite member",
|
||
"sendInvite": "Send invite",
|
||
"inviting": "Sending…",
|
||
"cancel": "Cancel",
|
||
"remove": "Remove",
|
||
"inviteSuccess": "Member invited successfully.",
|
||
"invitePending": "Invite noted. The user must register before they can access this server.",
|
||
"removeConfirm": "Remove {name} from this server?",
|
||
"fields": {
|
||
"email": "Email address",
|
||
"emailPlaceholder": "user@example.com",
|
||
"role": "Role"
|
||
},
|
||
"columns": {
|
||
"member": "Member",
|
||
"email": "Email",
|
||
"role": "Role",
|
||
"status": "Status",
|
||
"actions": "Actions"
|
||
},
|
||
"roles": {
|
||
"OWNER": "Owner",
|
||
"ADMIN": "Admin",
|
||
"OPERATOR": "Operator",
|
||
"DEVELOPER": "Developer",
|
||
"VIEWER": "Viewer"
|
||
},
|
||
"status": {
|
||
"active": "Active",
|
||
"pending": "Pending"
|
||
},
|
||
"errors": {
|
||
"loadFailed": "Could not load members.",
|
||
"inviteFailed": "Could not send invite.",
|
||
"removeFailed": "Could not remove member."
|
||
}
|
||
}
|
||
},
|
||
"account": {
|
||
"nav": {
|
||
"label": "Account navigation",
|
||
"dashboard": "Dashboard",
|
||
"servers": "Servers",
|
||
"billing": "Billing",
|
||
"profile": "Profile",
|
||
"notifications": "Notifications",
|
||
"security": "Security"
|
||
},
|
||
"billing": {
|
||
"title": "Billing",
|
||
"subtitle": "Credits and transaction history.",
|
||
"loading": "Loading…",
|
||
"loadError": "Could not load billing data.",
|
||
"balanceTitle": "Current balance",
|
||
"periodStart": "Billing period from {date}",
|
||
"creditsLabel": "Credits remaining",
|
||
"transactionsTitle": "Transactions",
|
||
"transactionsEmpty": "No transactions in this period yet.",
|
||
"columns": {
|
||
"date": "Date",
|
||
"type": "Type",
|
||
"amount": "Amount",
|
||
"reference": "Reference"
|
||
}
|
||
},
|
||
"profile": {
|
||
"title": "Profile",
|
||
"subtitle": "Your account information.",
|
||
"loading": "Loading…",
|
||
"notSignedIn": "Not signed in.",
|
||
"accountInfo": "Account details",
|
||
"accountInfoDescription": "Profile information from your account.",
|
||
"fields": {
|
||
"email": "Email",
|
||
"username": "Username",
|
||
"displayName": "Display name",
|
||
"emailVerified": "Email verified",
|
||
"twoFactor": "Two-factor auth"
|
||
},
|
||
"yes": "Yes",
|
||
"no": "No",
|
||
"enabled": "Enabled",
|
||
"disabled": "Disabled",
|
||
"securityHint": "Manage password, 2FA, and sessions at",
|
||
"securityLink": "Security"
|
||
},
|
||
"notifications": {
|
||
"title": "Notifications",
|
||
"subtitle": "Email and in-app notifications.",
|
||
"loading": "Loading…",
|
||
"listTitle": "Recent notifications",
|
||
"unreadCount": "{count, plural, one {# unread notification} other {# unread notifications}}",
|
||
"allRead": "All caught up.",
|
||
"markRead": "Mark read",
|
||
"markAllRead": "Mark all read",
|
||
"emptyTitle": "No notifications",
|
||
"emptyDescription": "You have not received any notifications yet.",
|
||
"preferencesTitle": "Preferences",
|
||
"preferencesDescription": "Choose which notifications you receive on each channel.",
|
||
"enabled": "Enabled",
|
||
"disabled": "Disabled",
|
||
"channels": {
|
||
"IN_APP": "In-app",
|
||
"EMAIL": "Email",
|
||
"WEBHOOK": "Webhook",
|
||
"DISCORD": "Discord"
|
||
},
|
||
"types": {
|
||
"SERVER_READY": "Server ready",
|
||
"SERVER_START_FAILED": "Server start failed",
|
||
"SERVER_STOPPED": "Server stopped",
|
||
"IDLE_STOP_WARNING": "Idle stop warning",
|
||
"BACKUP_SUCCESS": "Backup succeeded",
|
||
"BACKUP_FAILED": "Backup failed",
|
||
"RESTORE_SUCCESS": "Restore succeeded",
|
||
"RESTORE_FAILED": "Restore failed",
|
||
"CREDITS_LOW": "Low credits",
|
||
"BILLING_ISSUE": "Billing issue",
|
||
"INVITE": "Invite",
|
||
"NODE_INCIDENT": "Node incident",
|
||
"MAINTENANCE": "Maintenance",
|
||
"SECURITY": "Security",
|
||
"NEW_LOGIN": "New login",
|
||
"TWO_FA_CHANGED": "Two-factor changed"
|
||
},
|
||
"errors": {
|
||
"loadFailed": "Could not load notifications.",
|
||
"markReadFailed": "Could not update notification.",
|
||
"preferencesFailed": "Could not save preferences."
|
||
}
|
||
}
|
||
},
|
||
"admin": {
|
||
"backToPanel": "Back to panel",
|
||
"nav": {
|
||
"label": "Admin navigation",
|
||
"dashboard": "Dashboard",
|
||
"nodes": "Nodes",
|
||
"users": "Users",
|
||
"jobs": "Jobs",
|
||
"audit": "Audit"
|
||
},
|
||
"dashboard": {
|
||
"title": "Admin dashboard",
|
||
"subtitle": "Platform-wide metrics and system status.",
|
||
"loading": "Loading…",
|
||
"loadError": "Could not load dashboard data.",
|
||
"generatedAt": "As of {time}",
|
||
"stats": {
|
||
"activeUsers": "Active users",
|
||
"totalServers": "Total servers",
|
||
"runningServers": "Running servers",
|
||
"queueLength": "Queue length",
|
||
"onlineNodes": "Online nodes",
|
||
"failedJobs24h": "Failed jobs (24h)",
|
||
"openAbuseReports": "Open abuse reports",
|
||
"openTickets": "Open tickets"
|
||
}
|
||
},
|
||
"nodes": {
|
||
"title": "Game nodes",
|
||
"subtitle": "Node status and maintenance actions.",
|
||
"loading": "Loading…",
|
||
"loadError": "Could not load nodes.",
|
||
"empty": "No nodes registered.",
|
||
"drain": "Drain",
|
||
"maintenance": "Maintenance",
|
||
"exitMaintenance": "Exit maintenance",
|
||
"actionError": "Action failed.",
|
||
"columns": {
|
||
"name": "Node",
|
||
"status": "Status",
|
||
"servers": "Servers",
|
||
"ram": "RAM",
|
||
"actions": "Actions"
|
||
}
|
||
},
|
||
"users": {
|
||
"title": "Users",
|
||
"subtitle": "Search and manage user accounts.",
|
||
"loading": "Loading…",
|
||
"loadError": "Could not load users.",
|
||
"empty": "No users found.",
|
||
"searchPlaceholder": "Email or username…",
|
||
"search": "Search",
|
||
"suspend": "Suspend",
|
||
"unsuspend": "Unsuspend",
|
||
"actionError": "Action failed.",
|
||
"columns": {
|
||
"user": "User",
|
||
"status": "Status",
|
||
"roles": "Roles",
|
||
"servers": "Servers",
|
||
"actions": "Actions"
|
||
}
|
||
},
|
||
"jobs": {
|
||
"title": "Background jobs",
|
||
"subtitle": "Current and recently completed queue jobs.",
|
||
"loading": "Loading…",
|
||
"loadError": "Could not load jobs.",
|
||
"empty": "No jobs found.",
|
||
"columns": {
|
||
"queue": "Queue",
|
||
"job": "Job",
|
||
"status": "Status",
|
||
"attempts": "Attempts",
|
||
"created": "Created"
|
||
}
|
||
},
|
||
"audit": {
|
||
"title": "Audit log",
|
||
"subtitle": "Platform-wide security and lifecycle events.",
|
||
"loading": "Loading…",
|
||
"loadError": "Could not load audit events.",
|
||
"empty": "No events found.",
|
||
"loadMore": "Load more",
|
||
"columns": {
|
||
"time": "Time",
|
||
"action": "Action",
|
||
"user": "User",
|
||
"entity": "Entity"
|
||
}
|
||
}
|
||
},
|
||
"public": {
|
||
"pricing": {
|
||
"title": "Pricing",
|
||
"description": "Transparent plans for Minecraft server hosting.",
|
||
"cta": "Register now →",
|
||
"tiers": {
|
||
"starter": {
|
||
"name": "Starter",
|
||
"description": "Great for trying things out.",
|
||
"price": "Free",
|
||
"features": ["2 GB RAM", "1 server", "Idle shutdown", "Community support"]
|
||
},
|
||
"standard": {
|
||
"name": "Standard",
|
||
"description": "For small communities.",
|
||
"price": "Credits",
|
||
"features": ["4 GB RAM", "3 servers", "Backups", "Modrinth add-ons"]
|
||
},
|
||
"pro": {
|
||
"name": "Pro",
|
||
"description": "For demanding worlds.",
|
||
"price": "Credits",
|
||
"features": ["8+ GB RAM", "Unlimited servers*", "Priority queue", "WHMCS integration"]
|
||
}
|
||
}
|
||
},
|
||
"features": {
|
||
"title": "Features",
|
||
"description": "Everything for professional Minecraft server hosting.",
|
||
"items": {
|
||
"control": {
|
||
"title": "Central control",
|
||
"description": "Lifecycle, console, files, and properties through a unified panel."
|
||
},
|
||
"nodes": {
|
||
"title": "Multi-node",
|
||
"description": "Horizontal scaling with agent-based orchestration."
|
||
},
|
||
"security": {
|
||
"title": "Security",
|
||
"description": "Sessions, 2FA, CSRF protection, and auditable actions."
|
||
},
|
||
"billing": {
|
||
"title": "Credit billing",
|
||
"description": "Runtime-based billing with transparent balance."
|
||
},
|
||
"backups": {
|
||
"title": "Backups & worlds",
|
||
"description": "Manual and scheduled backups, world upload and download."
|
||
},
|
||
"whmcs": {
|
||
"title": "WHMCS integration",
|
||
"description": "Provisioning, SSO, and billing through WHMCS."
|
||
}
|
||
}
|
||
},
|
||
"status": {
|
||
"title": "System status",
|
||
"description": "Current operational status of platform components.",
|
||
"operational": "Operational",
|
||
"selfHostedNote": "Status reflects self-hosted deployment. Configure health checks for live monitoring.",
|
||
"components": {
|
||
"api": {
|
||
"name": "API",
|
||
"description": "REST control plane at /api/v1"
|
||
},
|
||
"worker": {
|
||
"name": "Worker",
|
||
"description": "BullMQ background processing"
|
||
},
|
||
"panel": {
|
||
"name": "Web panel",
|
||
"description": "Next.js user interface"
|
||
},
|
||
"dns": {
|
||
"name": "DNS / Edge",
|
||
"description": "Join-to-start and edge gateway"
|
||
}
|
||
}
|
||
},
|
||
"docs": {
|
||
"title": "Documentation",
|
||
"description": "Getting started, API reference, and operations guides.",
|
||
"openapi": "Interactive API documentation:",
|
||
"openapiLink": "OpenAPI / Swagger",
|
||
"cta": "Create account →",
|
||
"sections": {
|
||
"gettingStarted": {
|
||
"title": "Getting started",
|
||
"body": "Register, verify your email, create a server through the multi-step wizard, and start it from the dashboard."
|
||
},
|
||
"api": {
|
||
"title": "API",
|
||
"body": "The REST API at /api/v1 provides endpoints for auth, server lifecycle, files, backups, and admin functions. Authentication uses session cookies."
|
||
},
|
||
"operations": {
|
||
"title": "Operations",
|
||
"body": "Deploy control plane, worker, and node agent via Docker Compose or Ansible. See docs/operations in the repository."
|
||
},
|
||
"whmcs": {
|
||
"title": "WHMCS",
|
||
"body": "The server module provisions services automatically. SSO enables seamless access from the WHMCS client area."
|
||
}
|
||
}
|
||
},
|
||
"impressum": {
|
||
"title": "Legal notice",
|
||
"description": "Information according to applicable law (German Impressum).",
|
||
"notice": "This is a template legal notice. Replace placeholder details before production use.",
|
||
"sections": {
|
||
"operator": {
|
||
"title": "Service provider",
|
||
"body": "HexaHost\nGame server hosting platform"
|
||
},
|
||
"address": {
|
||
"title": "Address",
|
||
"body": "HexaHost\nMusterstraße 1\n12345 Musterstadt\nGermany"
|
||
},
|
||
"contact": {
|
||
"title": "Contact",
|
||
"body": "Email: kontakt@hexahost.example\nPhone: +49 (0) 123 456789"
|
||
},
|
||
"responsible": {
|
||
"title": "Responsible for content (§ 55 Abs. 2 RStV)",
|
||
"body": "Max Mustermann\nHexaHost\nMusterstraße 1\n12345 Musterstadt"
|
||
},
|
||
"register": {
|
||
"title": "Commercial register",
|
||
"body": "Register court: Amtsgericht Musterstadt\nRegistration number: HRB 12345\nVAT ID: DE123456789"
|
||
},
|
||
"dispute": {
|
||
"title": "Dispute resolution",
|
||
"body": "We are not obliged or willing to participate in dispute resolution proceedings before a consumer arbitration board."
|
||
}
|
||
}
|
||
},
|
||
"privacy": {
|
||
"title": "Privacy policy",
|
||
"description": "Information on processing personal data.",
|
||
"sections": {
|
||
"controller": {
|
||
"title": "Controller",
|
||
"body": "The operator of this self-hosted instance is responsible for data processing. Adapt this policy to your organization."
|
||
},
|
||
"data": {
|
||
"title": "Data collected",
|
||
"body": "We process account data (email, username), session information, server metadata, and usage data for billing."
|
||
},
|
||
"cookies": {
|
||
"title": "Cookies",
|
||
"body": "Session cookies (hgc_session) and CSRF cookies (hgc_csrf) are required for authentication."
|
||
},
|
||
"rights": {
|
||
"title": "Your rights",
|
||
"body": "You have the right to access, rectify, delete, and port your data under applicable privacy law."
|
||
},
|
||
"contact": {
|
||
"title": "Contact",
|
||
"body": "For privacy requests, contact the operator listed in your legal notice."
|
||
}
|
||
}
|
||
},
|
||
"terms": {
|
||
"title": "Terms of service",
|
||
"description": "Terms of use for the platform.",
|
||
"sections": {
|
||
"scope": {
|
||
"title": "Scope",
|
||
"body": "These terms apply to use of the Minecraft server hosting platform by registered users."
|
||
},
|
||
"usage": {
|
||
"title": "Usage",
|
||
"body": "Servers may only be operated for lawful purposes. Abuse may result in suspension."
|
||
},
|
||
"billing": {
|
||
"title": "Billing",
|
||
"body": "Credits are consumed based on runtime. Balance is non-transferable unless otherwise agreed."
|
||
},
|
||
"liability": {
|
||
"title": "Liability",
|
||
"body": "The operator is liable only for intent and gross negligence. Protect against data loss with your own backups."
|
||
},
|
||
"changes": {
|
||
"title": "Changes",
|
||
"body": "The operator may change these terms with reasonable notice. Continued use constitutes acceptance."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|