{ "common": { "error_title": "Error", "no_data_title": "No Data", "access_denied_title": "Access Denied", "access_denied_desc": "This server has been blacklisted.", "no_players_selected": "No players selected. Please select at least one player.", "must_use_in_server": "This command must be used in a server.", "could_not_resolve_channel": "Could not resolve the selected channel.", "failed_update_setting": "❌ Failed to update setting.", "configuration_not_found": "Configuration not found.", "no_channel_selected": "No channel selected.", "no_selection_received": "No selection received.", "database_error": "❌ Database error: {error}", "enabled": "Enabled", "disabled": "Disabled", "not_configured": "Not configured", "unknown": "Unknown", "rating_field": "Rating", "battles_field": "Battles", "wins_field": "Wins", "losses_field": "Losses", "win_rate_field": "Win Rate", "kills_field": "Kills", "deaths_field": "Deaths", "kd_field": "K/D", "members_field": "Members", "placement_field": "Placement", "points_field": "Points", "ground_kills_field": "Ground Kills", "air_kills_field": "Air Kills", "total_kills_field": "Total Kills", "assists_field": "Assists", "captures_field": "Captures", "none_option": "None" }, "buttons": { "skip": "Skip", "previous": "Previous", "next": "Next", "prev": "Prev", "prev_arrow": "◀ Previous", "next_arrow": "Next ▶", "prev_arrow_only": "◀", "next_arrow_only": "▶", "generate_chart": "📊 Generate Chart", "show_graph": "Show Graph", "view_player_stats": "📊 View Player Stats", "compare_nearby": "📈 Compare Nearby Squadrons", "confirm_swap": "Yes, swap it", "cancel_swap": "No, keep the old one", "set_squadron": "Set Squadron", "same_as_logs": "Same as Logs", "require_password": "🔒 Require Password", "password_required": "🔒 Password Required", "lock_data": "🔐 Bind Squadron Data", "data_locked": "🔐 Data Bound to Server", "allow_public": "👥 Allow Public Meta", "public_enabled": "👥 Public Meta Enabled", "update_accounts": "📋 Update Meta Accounts", "change_password": "🔑 Change Password", "help": "❓ Help", "add_player": "➕ Add Player", "update_all": "🔄 Update All Members", "back_to_settings": "⬅ Back to Settings", "manage_notifications": "Manage Notifications", "diagnose_permissions": "Diagnose Permissions", "enable": "Enable", "disable": "Disable", "change_channel": "Change Channel", "view_replay": "View Replay", "view_website": "View on Website", "view_video": "View Video", "view_log": "View Log", "view_chat": "View Chat", "subscribe_website": "Subscribe via Website", "yes_disband": "Yes, Disband", "cancel": "Cancel", "transfer_leave": "Transfer & Leave", "accept_selected": "Accept Selected", "accept_all": "Accept All", "decline_selected": "Decline Selected", "back": "Back", "remove_all": "Remove All", "remove_active": "Remove Active", "remove_queued": "Remove Queued", "remove_selected": "Remove Selected", "ping_all": "Ping All", "ping_active": "Ping Active", "ping_queued": "Ping Queued", "ping_selected": "Ping Selected", "accept_members": "Accept Members", "remove_members": "Remove Members", "ping_members": "Ping Members", "rename_stack": "Rename Stack", "request_to_join": "Request to Join", "leave_withdraw": "Leave / Withdraw", "manage_stack": "Manage Stack ⚙️", "disband_stack": "Disband Stack", "force_disband_create": "Force Disband & Create New" }, "events": { "guild_join_title": "Thanks for adding me!", "guild_join_desc": "Run `/setup` to configure the bot for this server." }, "comp": { "not_found_title": "Comps Not Found", "not_found_desc": "No data for **{squadron}**, try again later.", "error_loading_title": "Error Loading Comps", "error_loading_desc": "Failed to load comp data: {error}", "title": "Comps for {squadron}", "desc": "Comps seen in the last {minutes} minutes", "no_recent_title": "No Recent Comps", "no_recent_desc": "No comps in the last {minutes} minutes.", "comp_title": "COMP {index}", "last_seen_label": "**Last seen** : {timestamp}{warning}", "comp_label": "**Comp**: {notation}", "no_players_recorded": "No players recorded.", "limit_reached_title": "Comp Limit Reached", "limit_reached_desc": "This server has used all {limit} comp lookups for this timeslot. Subscribe (with /unlock) for unlimited access or wait for the next timeslot.", "user_limit_reached_desc": "You have used all {limit} of your personal comp lookups for this timeslot across non-premium servers. Other members here can still use the remaining server quota, and premium servers (where /unlock has been used) stay unrestricted — subscribe with /unlock or wait for the next timeslot.", "remaining_footer": "{remaining}/{limit} comp lookups remaining this timeslot", "user_remaining_footer": "{remaining}/{limit} personal comp lookups remaining this timeslot", "remaining_footer_combined": "{user_remaining}/{user_limit} personal · {server_remaining}/{server_limit} server comp lookups remaining this timeslot" }, "quick_log": { "invalid_type": "Type can only be set to Logs, Points, Leaderboard, Weekly BR, or Both.", "squadron_required": "You must provide a squadron name for Logs, Points, or Both alarms.", "wildcard_logs_only": "Only Logs can be set to wildcard squadron.", "squadron_not_resolved": "Squadron `{squadron}` could not be resolved.", "save_failed": "Failed to save preferences. Please try again later.", "premium_warning": "\n\n> ⚠️ **Game logs require Premium.** Run `/unlock` to subscribe ($2.99/mo) — logs won't post until then.", "leaderboard_set": "Global Leaderboard alarm set to this channel.", "both_set": "Logs and Points alarms for {squadron} set to this channel.{premium_note}", "alarm_set": "{alarm_type} alarm for {squadron} set to this channel.{premium_note}", "weekly_br_wildcard_set": "Weekly BR Report (top-20 squadrons) set to this channel. Fires at the end of every BR rotation.", "weekly_br_squadron_set": "Weekly BR Report for {squadron} (top-15 players) set to this channel. Fires at the end of every BR rotation." }, "diagnostics": { "title": "Autolog Diagnostics", "channel_permissions_header": "**Channel Permissions** (<#{channel_id}>)", "perms_needed": " ^ Autologging needs all of the above to send scoreboards.", "server_squadron_header": "**Server Squadron** (`/set-squadron`)", "server_squadron_short": " Short: `{short}`", "server_squadron_long": " Long: `{long}`", "server_squadron_not_set": " Not set (scoreboard bar color will show as 'not_set')", "autolog_prefs_header": "**Autolog Preferences** (`/quick-log`)", "autolog_none_configured": " ❌ NONE configured - autologging will NOT send anything to this server.", "autolog_setup_hint": " Use `/quick-log Logs` in the target channel to set up.", "autolog_no_logs_channels": " ❌ No Logs channels configured. Only Points/Leaderboard found.", "autolog_enable_hint": " Use `/quick-log Logs` to enable autologging.", "selected_channel_tag": " **(selected channel)**", "missing_send_attach": " (missing send/attach)", "channel_not_found": " (channel not found)", "invalid_channel_id": " (invalid channel ID)", "premium_status_header": "**Premium Status** (`/unlock`)", "premium_active": " ✅ This server has an active Premium subscription.", "premium_not_subscribed": " ❌ This server does **not** have a Premium subscription.", "premium_autolog_required": " Autologging requires Premium. Use `/unlock` to subscribe.", "premium_not_subscribed_free": " ⚪ Not subscribed — use `/unlock` to subscribe ($2.99/mo).", "premium_free_note": " *(Autologs are free for all servers right now.)*" }, "sq_info": { "title": "Squadron Info: {squadron}", "placement_field": "Placement", "total_points_field": "Total Points", "total_members_field": "Total Members", "members_field": "Members", "fetch_failed": "Failed to fetch squadron info." }, "sq_info_graph": { "title": "{squadron} — SQ-INFO (Season {season})", "embed_title": "{squadron} — Roster Composition", "embed_desc": "Season **{season}** · Median games: **{median}** · Core: **{core}** · Active: **{active}** · Weak: **{weak}**\nBars sorted by games desc; height = WR%. Core = top 30% WR rank & games ≥ median. Active = top 30–45% WR rank & games ≈ median. Weak = everyone else.", "core_threshold_line": "CORE ≥ {wr}%", "weak_threshold_line": "WEAK < {wr}%", "y_label": "Win Rate", "core_header": "CORE — {count} · WR {avg}%", "active_header": "ACTIVE — {count} · WR {avg}%", "weak_header": "WEAK — {count} · WR {avg}%", "no_active_season": "No active season was found. Try again once the next season starts.", "no_members": "No current members were found for {squadron}." }, "recap_card": { "unknown_season": "Unknown season: `{season}`.", "no_clan_id": "Could not resolve a squadron ID for `{squadron}`.", "render_failed": "Failed to generate the season recap card. Please try again later." }, "sq_stats": { "no_data_title": "No Data", "no_data_desc": "No historical data found for squadron: {squadron}", "title": "{squadron} // SQUADRON", "desc": "Total Score Trend (Last {count} data points)", "previous_score_field": "Previous Score", "current_score_field": "Current Score", "change_field": "Change", "player_title": "{squadron} // PLAYERS", "player_desc": "Individual player point trends", "comparison_title": "{squadron} // LEADERBOARD COMPARISON", "comparison_desc": "Comparing with squadrons ranked {range}", "current_position_field": "Current Position", "squadrons_shown_field": "Squadrons Shown", "squadron_not_found_error": "Squadron not found in leaderboard", "no_nearby_error": "No nearby squadrons found", "no_historical_error": "No historical data found for nearby squadrons", "comparison_chart_failed": "Failed to generate comparison chart", "select_players_placeholder": "Select players (Page {page})" }, "loss_calc": { "title": "Point Loss — {squadron}", "players_leaving_field": "Players Leaving", "share_of_total_field": "% Share of Total", "points_lost_real_field": "Points Lost (Real)", "points_lost_raw_field": "Points Lost (Raw)", "squadron_rating_field": "Squadron Rating", "squadron_position_field": "Squadron Position", "positions_lost_field": "Positions Lost", "not_found_footer": "Not found in squadron: {players}", "fetch_failed": "Failed to fetch squadron data: {error}", "no_point_data": "No point data available for this squadron.", "no_matching_players": "No matching players found in **{squadron}**." }, "player": { "select_player_placeholder": "Select a player", "no_stats_found": "❌ No stats found for UID: {uid}", "no_vehicle_stats": "❌ No vehicle stats found for this player.", "vehicles_found": "Found **{count}** vehicles for **{nick}**\nSelect a vehicle to view detailed stats:", "vehicle_select_placeholder": "Select a vehicle (Page {page}/{total})", "combat_stats_header": "**__COMBAT STATS__**", "ground_kills_label": "**Ground Kills:** {value}", "air_kills_label": "**Air Kills:** {value}", "total_kills_label": "**Total Kills:** {value}", "assists_label": "**Assists:** {value}", "deaths_label": "**Deaths:** {value}", "kd_label": "**K/D:** {value}", "captures_label": "**Captures:** {value}", "battle_record_header": "**__BATTLE RECORD__**", "total_battles_label": "**Total Battles:** {value}", "wins_label": "**Wins:** {value}", "losses_label": "**Losses:** {value}", "win_rate_label": "**Win Rate:** {value}%", "stats_desc": "Stats for **{nick}** (**{squadron}**)\nUID: `{uid}`", "not_found_title": "Player Not Found", "not_found_desc": "No game history found for `{player}`.", "no_players_found": "No players found matching **{username}**\nTry using `/website` to search on the website.", "multiple_matches": "Multiple matches found, choose the correct one below:", "must_provide_input": "You must provide at least a UID or username." }, "player_games": { "no_recent_title": "No Recent Games", "no_recent_desc": "No games found for **{player}** in the last 8 hours.", "squadron_label": "**Squadron:** {squadron}", "record_label": "**W:** {wins} **L:** {losses} **WR:** {wr}%", "comps_played_header": "\n\n**Comps Played**" }, "match": { "missing_input_title": "Missing Input", "missing_input_desc": "Provide either a `match_id` or a `player_name`.", "not_found_title": "Match Not Found", "not_found_desc": "Could not find a match with ID `{match_id}`.", "invalid_data_title": "Invalid Match Data", "invalid_data_desc": "The replay data could not be parsed.", "scoreboard_error_title": "Scoreboard Error", "scoreboard_error_desc": "Failed to generate the scoreboard image.", "no_games_title": "No Games Found", "no_games_desc": "No game history found for **{player}**.", "recent_matches_title": "Recent matches for {player}", "recent_matches_desc": "Showing up to {count} recent games. Select one to view the full scoreboard.", "select_match_placeholder": "Select a match to view..." }, "compare": { "no_players_found": "No players found matching **{name}**.", "multiple_matches": "Multiple matches for **{name}**: {matches}\nPlease use a more specific name (the autocomplete suggestions are exact).", "could_not_resolve": "Could not resolve players.", "could_not_fetch": "❌ Could not fetch stats for **{name}**.", "no_graph_data": "No data available for the last 90 days.", "no_squadron_points_data": "No squadron points data for {names} (player not found in tracked squadron history).", "graph_title": "Player Points — Last 90 Days", "battles_label": "Battles", "wins_label": "Wins", "losses_label": "Losses", "win_rate_label": "Win Rate", "ground_kills_label": "Ground Kills", "air_kills_label": "Air Kills", "total_kills_label": "Total Kills", "assists_label": "Assists", "deaths_label": "Deaths", "kd_label": "K/D", "captures_label": "Captures" }, "squadron": { "not_found_desc": "Squadron `{squadron}` not found.", "set_title": "✅ Squadron Set", "set_desc": "Squadron **{squadron}** has been set for this server.", "short_name_field": "Short Name", "long_name_field": "Long Name", "swap_title": "✅ Squadron Swapped", "swap_desc": "Replaced **{old}** with **{new}** for this server.", "already_set_title": "⚠️ Squadron Already Set", "already_set_desc": "This server is currently set to **{old}**.\nSwap it to **{new}**?", "swap_cancelled": "❌ Squadron change cancelled." }, "setup": { "step1_title": "Server Setup — Step 1 of 3", "step1_desc": "This wizard will walk you through configuring the bot for your server.\n\n**Step 1** — Set your squadron\n**Step 2** — Choose a logs channel\n**Step 3** — Choose a points channel\n", "step1_current_sq": "\nCurrently configured squadron: **[{short}] {long}**", "step2_title": "Server Setup — Step 2 of 3", "step2_desc": "Squadron set to **[{short}] {long}**.\n\nWhere should **battle logs** be posted?\nSelect a text channel below, or skip this step.", "step3_title": "Server Setup — Step 3 of 3", "step3_desc": "Where should **points notifications** be posted?\nSelect a text channel below, or skip this step.", "step3_same_as_logs": "\n\nYou can also click \"Same as Logs\" to reuse the logs channel.", "summary_title": "Setup Complete", "summary_desc": "You can use `/autolog-management` to change these settings later.", "squadron_field": "Squadron", "logs_channel_field": "Logs Channel", "points_channel_field": "Points Channel", "premium_required_field": "⚠️ Game Logs Require Premium", "premium_required_value": "Automatic game scoreboards won't post until this server has an active subscription. Run `/unlock` to subscribe ($2.99/mo).", "modal_title": "Set Squadron", "modal_label": "Squadron Short Name", "modal_placeholder": "e.g. AXYS", "squadron_not_found": "Squadron `{squadron}` not found. Please try again.", "logs_channel_placeholder": "Select a logs channel...", "points_channel_placeholder": "Select a points channel..." }, "meta_management": { "squadron_not_found_title": "❌ Squadron Not Found", "squadron_not_found_desc": "Could not find clan ID for squadron: **{squadron}**", "access_denied_title": "❌ Access Denied", "access_denied_desc": "Incorrect password. This squadron's meta data is protected.", "data_locked_title": "🔐 Squadron Data Bound", "data_locked_desc": "**{squadron}** has data binding enabled and cannot be transferred to another server.\n\nThe squadron owner must disable **Bind Squadron Data** before it can be moved.", "error_retrieving_settings": "❌ Error retrieving guild settings after transfer. Please try again.", "error_retrieving_settings_retry": "❌ Error retrieving guild settings. Please try running the command again.", "authenticated_title": "✅ Authenticated", "authenticated_desc": "Password verified. Managing settings for **{squadron}**.", "claimed_title": "✅ Squadron Claimed", "claimed_desc": "**{squadron}** has been successfully claimed for this server!", "password_requirement_field": "🔒 Password Requirement", "data_lock_field": "🔐 Squadron Data Binding", "public_meta_field": "👥 Public Meta Access", "access_password_field": "🔑 Access Password", "enabled_value": "✅ Enabled", "disabled_value": "❌ Disabled", "settings_title": "🔐 Meta Management Settings", "settings_desc": "**Squadron:** {squadron}\n**Clan ID:** {clan_id}", "first_time_title": "🔐 Meta Management - First Time Setup", "first_time_owner_desc": "**Squadron:** {squadron}\n**Clan ID:** {clan_id}\n\n🔑 Your access password has been generated. **Save this password** — you'll need it to authenticate meta data access in the future.\n\n**Password:** `{password}`", "first_time_non_owner_desc": "**Squadron:** {squadron}\n**Clan ID:** {clan_id}\n\nSquadron has been set up. Ask the server owner for the access password.", "settings_field": "Settings", "settings_hint": "Use the buttons below to configure access settings.", "password_toggled": "✅ Password requirement: **{state}**", "lock_toggled": "✅ Squadron data binding: **{state}**", "public_meta_toggled": "✅ Public meta access: **{state}**\n{detail}", "public_meta_enabled_detail": "Non-admins can now use `/meta` command.", "public_meta_disabled_detail": "Only admins can use `/meta` command.", "owner_only_password": "❌ Only the server owner can change the squadron password.", "help_title": "📖 Meta Management Help", "help_desc": "Explanation of each setting and feature:", "help_password_field": "🔑 Access Password", "help_password_value": "Your squadron's access password. Only the **server owner** can see the password in the settings panel. Anyone with the password can claim your squadron's meta data on their server, so keep it secure.", "help_require_field": "🔒 Require Password", "help_require_value": "When enabled, even admins on this server must enter the squadron password to access `/meta-management`. Adds an extra layer of security to prevent accidental changes.", "help_lock_field": "🔐 Bind Squadron Data", "help_lock_value": "When enabled, prevents the squadron from being transferred to other servers, even with the correct password. Must be disabled before the squadron can be transferred.", "help_public_field": "👥 Allow Public Meta", "help_public_value": "When enabled, allows non-admin members to use the `/meta` command to search squadron vehicles. When disabled, only server administrators can use `/meta`.", "help_accounts_field": "📋 Update Meta Accounts", "help_accounts_value": "Opens the player roster manager where you can add or remove players from your squadron's meta roster. Use **Update All Members** to sync your entire squadron at once.", "help_change_pw_field": "🔑 Change Password", "help_change_pw_value": "**Server owner only.** Change the squadron's access password and set an optional hint. The hint is shown in the password prompt to help remember it.", "password_modal_title": "Squadron Access Password", "password_modal_label": "Enter Squadron Password", "password_modal_placeholder": "XXXX-XXXX-XXXX", "change_pw_modal_title": "Change Squadron Password", "current_password_label": "Current Password", "current_password_placeholder": "Enter your current password", "new_password_label": "New Password", "new_password_placeholder": "Enter your new password", "confirm_password_label": "Confirm New Password", "confirm_password_placeholder": "Re-enter your new password", "hint_label": "Password Hint (Optional)", "hint_placeholder": "A hint to help remember the password", "pw_incorrect": "❌ Current password is incorrect.", "pw_mismatch": "❌ New passwords do not match. Please try again.", "pw_empty": "❌ New password cannot be empty.", "pw_changed": "✅ Password updated successfully for **{squadron}**.\n**New Password:** `{password}`", "pw_changed_hint": "\n**Hint:** {hint}", "player_add_modal_title": "Add Player to Meta Roster", "player_add_label": "Player UID or Nickname", "player_add_placeholder": "Enter player's UID (e.g., 12345678) or nickname", "player_not_found": "❌ Player `{player}` not found in Players_Global database.\n", "roster_title": "📋 Meta Roster Management - {squadron}", "roster_desc": "**Squadron Clan ID:** {clan_id}\n**Total Players:** {count}", "roster_page_field": "Players (Page {page}/{total})", "no_players_field": "No Players", "no_players_hint": "No players added to meta roster yet. Click **Add Player** to get started.", "remove_player_placeholder": "Select player to remove...", "fetch_members_failed": "❌ Failed to fetch squadron members: {error}", "no_members_found": "❌ No members found in squadron or API call failed.", "roster_synced": "✅ Synced roster with squadron.", "roster_added": "**+{count}** added", "roster_removed": "**-{count}** removed (left squadron)", "roster_up_to_date": "**{count}** already up to date", "refreshing_vehicles": "Refreshing vehicle data in background..." }, "meta": { "not_configured": "❌ Meta data not configured for this server. Run `/meta-management` first.", "no_permission": "❌ You need administrator permissions to use this command.\nAdmins can enable public access via `/meta-management`.", "no_results": "❌ No players in your squadron roster have **{vehicle}**.", "no_results_admin_hint": "\n*Expecting someone to have this? Click the update members button in `/meta-management` and double check.*", "search_title": "🔍 Search Results - {vehicle}", "matches_found": "**Matches Found:** {count} player(s)", "spawns_label": "Spawns", "deaths_label": "Deaths", "gk_label": "GK", "ak_label": "AK", "points_label": "Points", "kdr_label": "KDR", "games_label": "Games", "no_points": "—" }, "top": { "title": "**Top 20 Squadrons**", "rating_label": "**Rating:** {value}", "air_kills_label": "**Air Kills:** {value}", "ground_kills_label": "**Ground Kills:** {value}", "deaths_label": "**Deaths:** {value}", "kd_label": "**K/D:** {value}", "win_rate_label": "**Win Rate:** {value}", "playtime_label": "**Playtime:** {value}", "fetch_failed": "Failed to retrieve squadron data." }, "analytics": { "no_data_title": "No Data", "no_matches_desc": "No matches found.", "no_comp_desc": "No composition data found.", "no_consistency_desc": "Not enough player data (minimum 50 matches).", "no_time_desc": "No time data found.", "unknown_view": "Unknown view.", "map_title": "Map Win Rates: {squadron}", "comp_title": "Team Compositions: {squadron}", "consistency_title": "Player Consistency: {squadron}", "consistency_desc": "Sorted by K/D ratio", "time_title": "Time of Day Performance: {squadron}", "eu_timeslot": "\n**EU Timeslot**", "na_timeslot": "\n**NA Timeslot**", "off_peak": "\n**Off-Peak**", "matchups_title": "📜 {squadron} — Matchup History", "matchups_won_field": "🏆 Most Won Against", "matchups_lost_field": "💀 Most Lost To", "no_matchups_desc": "No recorded matches against other squadrons yet." }, "recent": { "title": "Recent Matches: {squadron}", "no_matches_desc": "No matches found for this squadron." }, "h2h": { "two_required_title": "Two Squadrons Required", "two_required_desc": "Provide at least one squadron, or use `/set-squadron` and provide the opponent.", "provide_a_desc": "Provide `squadron_a` or use `/set-squadron` first.", "provide_b_desc": "Provide `squadron_b` or use `/set-squadron` first.", "squadron_not_found_title": "Squadron Not Found", "same_squadron_title": "Same Squadron", "same_squadron_desc": "You can't check head-to-head against yourself.", "record_desc": "**Record:** {a_wins}W - {b_wins}L ({total} games)", "no_matches_desc": "No recorded matches between **{a}** and **{b}**." }, "autolog": { "premium_active_line": "✅ **Premium:** Active — autologging is enabled for this server.", "premium_not_subscribed_line": "❌ **Premium:** Not subscribed — use `/unlock` to enable autologging.", "premium_free_line": "⚪ **Premium:** Not subscribed — use `/unlock` to subscribe ($2.99/mo). *(Autologs are free for all servers right now.)*", "what_to_do": "\n\nWhat would you like to do?", "select_notif_type": "Select the notification type to manage:", "select_notif_placeholder": "Select notification type", "logs_option": "Logs", "logs_option_desc": "Manage Logs notifications", "points_option": "Points", "points_option_desc": "Manage Points notifications", "leaderboard_option": "Leaderboard", "leaderboard_option_desc": "Manage Leaderboard notifications", "selected_type": "Selected **{type}**. Now choose the squadron to manage:", "select_squadron_placeholder": "Select a squadron", "select_squadron_page_placeholder": "Select a squadron (Page {page})", "no_squadrons_available": "No squadron available for this notification type.", "managing_global": "Managing **{type}** (global) in channel **{channel}**.", "managing_squadron": "Managing **{type}** for squadron **{squadron}** in channel **{channel}**.", "select_channel": "Select a new channel:", "select_channel_placeholder": "Select a channel", "select_channel_page_placeholder": "Select a channel (Page {page})", "global_toggled": "{type} (global) is now {state}.", "squadron_toggled": "{type} for **{squadron}** is now {state}.", "channel_updated_global": "Updated {type} (global) to {channel}", "channel_updated_squadron": "Updated {type} for **{squadron}** to {channel}", "diagnose_channel_placeholder": "Select a channel to diagnose...", "select_channel_diagnose": "Select the channel to diagnose:", "game_not_logged_title": "Game Not Logged", "game_not_logged_desc": "Use `/unlock` to subscribe to the **Standard** tier (or higher) to receive automatic game scoreboards.", "server_not_upgraded_title": "⚠️ Server Not Upgraded", "server_not_upgraded_autolog_desc": "This server does not have an active Premium subscription.\n\n**Automatic game scoreboards will stop being sent to non-upgraded servers after .**\n\nUse `/unlock` to subscribe and keep receiving automatic game logs.", "replay_not_available": "Replay data isn't available yet — wait a bit then try again!", "too_many_videos": "Too many videos rendering right now — please try again in a moment.", "video_gen_failed": "Error generating video: `{error}`", "video_missing": "Failed to generate replay video - output file missing or empty.", "video_too_large": "Replay video too large to upload ({file_mb:.1f} MB). Server limit is {limit_mb:.0f} MB.", "video_web_fallback": "You can also view this match at {url}", "video_upload_failed": "Video too large to upload — view it on the website:\n{url}", "video_unexpected_error": "Unexpected error generating replay video: `{error}`", "replay_not_found": "Replay data not found for session `{session_id}` on disk.", "chat_log_title": "**Chat Log for Game [{session_id}]({url})**", "chat_log_part_title": "**Chat Log for Game [{session_id}]({url}) (Part {part}/{total})**", "chat_log_part_only": "**Chat Log (Part {part}/{total})**", "no_chat_log": "No chat log found for session `{session_id}`.", "chat_log_error": "Unexpected error loading chat log: `{error}`", "battle_log_title": "**Battle Log for Game [{session_id}]({url})**", "battle_log_part_title": "**Battle Log for Game [{session_id}]({url}) (Part {part}/{total})**", "battle_log_part_only": "**Battle Log (Part {part}/{total})**", "no_battle_log": "No combat events found for session `{session_id}`.", "battle_log_error": "Unexpected error loading battle log: `{error}`", "points_update_title": "**{squadron} {region} Points Update**", "points_update_desc": "# {old_total} -> {new_total} {chart}{wl_line}{placement_line}\n\n**Player Changes:**", "points_table_header": "Name Change Now\n", "wl_line": "\n**{squadron}** went **{wins}W-{losses}L** this session", "placement_rose": "\n**{squadron}** rose to **{new_place}** from **{old_place}**", "placement_fell": "\n**{squadron}** fell to **{new_place}** from **{old_place}**", "points_not_logged_title": "Points Not Logged", "points_not_logged_desc": "Use `/unlock` to subscribe to the **Standard** tier (or higher) to receive automatic points updates.", "server_not_upgraded_points_desc": "This server does not have an active Premium subscription.\n\n**Automatic updates will stop being sent to non-upgraded servers after .**\n\nUse `/unlock` to subscribe and keep receiving automatic updates.", "leave_title": "⚠️ Player Left {squadron}", "leave_desc": "**{nick}** ({uid}) has left the squadron.\n\nLast recorded points: **{points}**", "no_squadrons_desc": "No squadrons configured", "no_channels_desc": "No channels available", "over_cap_title": "Squadron over your tier cap", "over_cap_desc": "Your server is on the **{tier}** tier, which allows **{cap} {notif}** squadrons. The squadron **{squadron}** is currently over that limit and not being logged. Upgrade to a higher tier to restore it.", "over_cap_footer": "Upgrade at sre.pawjob.us/premium or via /unlock", "wildcard_blocked_title": "Wildcard logging requires a higher tier", "wildcard_blocked_desc": "Wildcard squadron entries (*, all, everything) are only available on Pro or Max tiers. Your server is on **{tier}** for {notif}. Upgrade to re-enable wildcard logging.", "cap_header": "{used}/{cap} {notif} enabled — {tier} tier" }, "track": { "squadron_not_found": "Squadron not found.", "fetch_failed": "Failed to fetch squadron info." }, "unlock": { "title": "SRE Bot Premium", "desc": "**Unlock premium features for this server.**\n\nPremium includes:\n> • Auto scoreboard posts\n> • Chat & battle logs\n> • Replay lookups\n> • Unlimited /comp lookups\n> • Priority support\n\n**$2.99 / month · per server · cancel anytime**\n\n⚠️ Discord billing is only available in select countries. If the button below shows **\"Product Unavailable\"**, this may be due to an unsupported country or using a **mobile device**. Use the **Subscribe via Website** button instead.", "already_subscribed_title": "SRE Bot Premium", "already_subscribed_desc": "✅ **This server is already subscribed!**", "manage_discord_field": "Manage Subscription", "manage_discord_value": "Your subscription is through **Discord**.\nTo cancel, go to **User Settings → Subscriptions** in Discord.", "manage_website_field": "Manage Subscription", "manage_website_value": "Your subscription is through the **website**.\nManage it at [whop.com/billing](https://whop.com/billing).", "coming_soon_field": "Coming Soon", "coming_soon_value": "Premium subscriptions are not yet available. Check back soon!", "current_tier": "You're on the **{tier}** plan.", "upgrade_to": "Upgrade to {tier}", "upgrade_to_value": "Get a higher squadron cap and more features by upgrading to **{tier}**." }, "language": { "prompt": "Please select your server language:", "select_placeholder": "Choose your server language", "language_set": "Language set to {language}.", "translate_prompt": "Select a target language below 👇", "translate_placeholder": "Choose a target language…", "translate_result": "**{author} → {language}:**\n{text}", "translation_unavailable": "Translation unavailable (DeepL not configured)", "translation_failed": "Translation failed" }, "misc": { "credits_title": "Credits", "credits_desc": "**Meowww**\n\n> **NotSoToothless** - Lead Developer, Bot Manager, Community Manager\n> **Z3R0** - Developer, Optimization Developer, Database Engineer\n> **Clippii (Heidi) ** - Developer, Website Developer, Community Manager\n> **LivingTheDagor** - Developer, Parser Developer, Consultant\n> **Lux_** - API Engineer, Spectra Developer\n> **Konigallerwaffen** - Feedback and Feature Consultant\n> **Žralok Tonda** - Czech Translator\n> **Styevy**, **Lopais** - German Translators\n> **Susogus**, **playforfun698** - Polish Translators\n> **Bobr** - Russian Translator\n\n\n[Feel like joining us?](https://discord.gg/BCvkK8JhPe)", "schedule_title": "SEASON SCHEDULE", "schedule_timeslot_label": "{region} TIMESLOT", "schedule_not_found_title": "Schedule Not Found", "schedule_not_found_desc": "No schedule data is available yet.", "news_no_news_title": "No News", "news_no_news_desc": "There are no announcements right now. Check back later!", "news_footer": "Thank you for your support! ᕙᘘᗢ", "help_title": "Bot Guide", "donate_title": "Support SRE Bot", "donate_desc": "If you enjoy using SRE Bot and want to support its development, consider buying me a coffee!\n\n**[Donate on Ko-fi](https://ko-fi.com/notsotoothless)**\n\nEvery contribution helps keep the bot running and supports new features. Thank you!", "status_title": "Bot Status", "status_last_received": "Last Game Received", "status_avg_ttl": "Avg TTL (Last 30)", "status_no_data": "No data yet", "status_gaijin_slow": "⚠️ Gaijin servers slow", "help_commands_header": "**Commands Overview**", "help_links": "For detailed information, read the documentation [here]({docs}) or get support [here]({support}).", "help_terms": "[Terms of Service]({terms}) • [Privacy Policy]({terms})" }, "dev": { "restricted_dev_team": "This command is restricted to the dev team.", "restricted_bot_owner": "❌ This command is restricted to the bot owner.", "invalid_server_id": "❌ Invalid server ID. Must be a 17-19 digit Discord server ID.", "expiry_too_soon": "❌ Expiry timestamp must be at least 1 month from now.\n> Now: \n> Minimum: \n> You provided: ", "entitlement_write_failed": "❌ Failed to write entitlement: {error}", "entitlement_created_title": "✅ Manual Entitlement Created", "entitlement_created_desc": "**Server:** {guild_name} (`{server_id}`)\n**Expires:** ()\n**Created:** ", "query_failed": "Query failed: {error}", "health_title": "Bot Health Dashboard", "health_uptime": "Uptime", "health_guilds": "Guilds", "health_games_processed": "Games Processed", "health_tasks": "Tasks", "health_websocket": "WebSocket", "health_never": "never", "health_errors": "({count} errors)", "health_last_msg": "last msg {ago} ({count} total)", "health_avg_ttl": "Avg TTL (Last 30)", "entitlements_title": "Active Entitlements ({count} total)", "entitlements_no_entries": "No entitlements.", "entitlements_empty_title": "Active Entitlements", "entitlements_empty_desc": "No active entitlements found.", "entitlements_tag_discord": "Discord", "entitlements_tag_whop": "Whop", "entitlements_tag_manual": "Manual", "query_prefix": "Query: {name}" }, "leaderboard_alarm": { "title": "🏆 Squadron Leaderboard", "top15_desc": "Top 15 squadrons with statistics, sent 35 minutes after timeslot close.\nThis one sent .", "top30_desc": "Squadrons 16-30 with statistics.", "not_logged_title": "Leaderboard Not Logged", "not_logged_desc": "Use `/unlock` to subscribe to the **Standard** tier (or higher) to receive automatic leaderboard updates.", "server_not_upgraded_title": "⚠️ Server Not Upgraded", "server_not_upgraded_desc": "This server does not have an active Premium subscription.\n\n**Automatic updates will stop being sent to non-upgraded servers after .**\n\nUse `/unlock` to subscribe and keep receiving automatic updates." }, "stacks": { "stack_title": "{leader}'s Stack", "stack_named_title": "{name}", "no_members": "No members yet.", "members_field": "Members ({count}/{max})", "queue_field": "Queue ({count}/{max})", "manage_title": "Manage Stack", "no_pending_requests": "No pending requests.", "disbanded_title": "Stack [Disbanded]", "disbanded_desc": "This stack was disbanded by the leader.", "expired_title": "Stack [Expired]", "expired_desc": "This stack has expired.", "join_modal_title": "Apply to Join Stack", "join_vehicle_label": "What will you play?", "join_vehicle_placeholder": "e.g. F-16C, WZ305...", "ping_modal_title": "Ping Message", "ping_message_label": "Custom message (optional)", "ping_message_placeholder": "e.g. Come now! Stack starting!", "rename_modal_title": "Rename Stack", "rename_label": "Stack name", "rename_placeholder": "e.g. Night Owls, Alpha Squad...", "select_new_leader": "Select new leader…", "select_applicants": "Select applicants…", "no_pending_applications": "No pending applications.", "select_to_remove": "Select people to remove…", "no_members_or_applicants": "No members or applicants.", "select_to_ping": "Select people to ping individually…", "stack_not_found": "❌ Stack not found.", "no_longer_exists": "❌ This stack no longer exists.", "member_not_exists": "❌ That member no longer exists.", "already_has_stack": "❌ That player already has an active stack.", "already_member": "❌ You are already a member of this stack.", "already_applied": "❌ You already have a pending application for this stack.", "queue_full": "❌ The queue is full ({max}/{max}). Try again later.", "application_sent": "✅ Application sent! The stack leader will review it.", "stack_disbanded": "✅ Stack disbanded.", "cancelled": "Cancelled.", "select_member_transfer": "❌ Please select a member to transfer ownership to.", "ownership_transferred": "✅ Ownership transferred to {nick}. You have left the stack.", "select_applicant_first": "❌ Please select at least one applicant first.", "stack_full": "❌ Stack is already full ({max}/{max} members).", "select_person_first": "❌ Please select at least one person first.", "no_one_to_ping": "❌ No one to ping.", "ping_footer": "Pinged by {leader} for {stack}.", "pinged": "✅ Pinged!", "select_from_dropdown": "❌ Please select at least one person from the dropdown first.", "stack_renamed": "✅ Stack renamed to **{name}**.", "only_member_use_disband": "❌ You are the only member. Use **Disband Stack** to end it.", "select_transfer_prompt": "Select a member to transfer ownership to before leaving:", "left_stack": "✅ You have left the stack.", "application_withdrawn": "✅ Your application has been withdrawn.", "not_member_or_applicant": "❌ You are not a member of or applicant to this stack.", "leader_only_manage": "❌ Only the stack leader can manage this stack.", "leader_only_disband": "❌ Only the stack leader can disband this stack.", "confirm_disband": "Are you sure you want to disband this stack? This cannot be undone.", "already_active_stack": "⚠️ You already have an active stack. If the original embed is gone (e.g. after a bot restart), you can force disband it and start fresh.", "force_created": "✅ Previous stack disbanded. New stack created.", "no_active_stack": "❌ You don't have an active stack. Use `/stack-create` to start one.", "could_not_parse_channel": "⚠️ Couldn't parse stored channel ID." }, "commands": { "common": { "season": "The season to generate the card for", "theme": "Card color theme", "squadron_short": "The short name of the squadron", "player_username": "The player's username", "choice_dark": "Dark", "choice_light": "Light" }, "comp": { "description": "Find the last known comps for a given team", "squadron_short": "The shortname of the enemy team" }, "quick_log": { "description": "Quickly set an alarm for this squadron in this channel", "squadron_name": "The SHORT name of the squadron to monitor", "type": "Choose Logs, Points, Leaderboard, Weekly BR, or Both", "choice_logs": "Logs", "choice_points": "Points", "choice_leaderboard": "Leaderboard", "choice_both": "Both (Logs + Points)", "choice_weekly_br": "Weekly BR" }, "sq_info": { "description": "Fetch information about a squadron" }, "sq_info_graph": { "description": "Show a roster composition graph by activity and WR (current season)" }, "sq_card": { "description": "Generate a season recap card for a squadron", "squadron": "The short name of the squadron" }, "sq_stats": { "description": "Display a squadron's points over time" }, "loss_calculator": { "description": "Calculate the point loss if players leave a squadron", "player1": "Player leaving", "player_optional": "Player leaving (optional)" }, "website": { "description": "Get a link to the SRE Bot website" }, "card": { "description": "Generate a season recap card for a player" }, "player_stats": { "description": "View detailed vehicle statistics for a player", "username": "The WT username for stats request", "uid": "The WT UID for stats request" }, "view_player_games": { "description": "View the last 20 games for a player" }, "view_match": { "description": "View a match scoreboard by ID or player", "match_id": "The session hex ID of the match to view", "player_name": "A player's username to browse recent matches" }, "compare": { "description": "Compare aggregate SQB stats between players", "player1": "First player username", "player2": "Second player username", "player_optional": "Additional player username (optional)" }, "leaderboard": { "description": "Get the SRE Bot global leaderboard" }, "set_squadron": { "description": "Set the squadron tag for this server", "abbreviated_name": "The short name of the squadron to set" }, "setup": { "description": "Set up the bot for this server" }, "meta_management": { "description": "Manage meta data access settings for this server" }, "meta": { "description": "Search squadron meta roster by vehicle name", "vehicle": "Vehicle name to search for" }, "top": { "description": "Get the top 20 squadrons with detailed stats" }, "language": { "description": "Change the bot's language." }, "translate_message": { "name": "Translate Message" }, "sq_track": { "description": "Track a squadron and compare stats against the last check", "squadron_short_name": "Short name of the squadron to track" }, "analytics": { "description": "View advanced SQB analytics for a squadron", "view": "Which analytics view to show", "choice_maps": "Map Win Rates", "choice_comps": "Team Compositions", "choice_consistency": "Player Consistency", "choice_time": "Time of Day", "choice_matchups": "Matchup History" }, "recent": { "description": "Show recent squadron battles for a squadron", "length": "Number of matches to show" }, "vs": { "description": "Head-to-head record between two squadrons", "squadron_a": "First squadron", "squadron_b": "Second squadron" }, "autolog_management": { "description": "Manage autolog notifications and diagnose permissions" }, "diagnose_perms": { "description": "Diagnose autolog permissions for this channel" }, "unlock": { "description": "Unlock premium features for this server" }, "credits": { "description": "View the team credited for building this" }, "schedule": { "description": "View the current season BR schedule" }, "news": { "description": "View the latest SRE Bot news and announcements" }, "help": { "description": "View the guide, ToS, and support links" }, "donate": { "description": "Support the development of SRE Bot" }, "stack_create": { "description": "Create a new player stack", "vehicle": "What vehicle will you start with?" }, "stack_manage": { "description": "Re-post your active stack embed to this channel" }, "bot_status": { "description": "View bot status: last game received and average TTL" } }, "permission": { "blacklisted_title": "❌ Blacklisted", "blacklisted_desc": "You are blacklisted from using this command.", "reason_line": "**Reason:** {reason}", "access_denied_title": "⛔ Access Denied", "no_permission_desc": "You do not have permission to use this command.", "unexpected_error_title": "❗ Error, report this....", "tier_gate_title": "🔒 Premium Required", "tier_gate_standard_desc": "This command requires a **Standard** entitlement or higher. Use `/unlock` to subscribe.", "tier_gate_pro_desc": "This command requires a **Pro** entitlement or higher. Use `/unlock` to subscribe.", "tier_gate_max_desc": "This command requires a **Max** entitlement. Use `/unlock` to subscribe." }, "weekly_br": { "title_wildcard": "Weekly BR Report — {br} BR", "title_squadron": "Weekly BR Report — [{tag}] {long} • {br} BR", "window_label": "Window: {start} → {end}", "wildcard_desc_first": "Top {count} squadrons by ELO • Ranks {low}–{high}", "wildcard_desc_second": "Top {count} squadrons by ELO • Ranks {low}–{high}", "squadron_stats_line": "- {games} games • K/D {kdr} • WR {wr}%", "top_players_inline_header": "🥇 Top players:", "player_line_short": " {rank}. {nick} ⭐ {score} ({games}g)", "top_players_header": "**Top {count} players by ELO:**", "player_line_full": "{rank}. **{nick}** ⭐ {score} • {games} games • K/D {kdr}", "squadron_header_line": "Squadron ELO: {score} • {games} games • WR {wr}% • K/D {kdr}", "squadron_header_no_aggregate": "Squadron ELO: not enough team activity to score this week.", "no_data": "No matches recorded for [{tag}] this BR rotation." } }