Files
SREBOT/BOT/locales/en.json
T
2026-05-19 22:24:03 -07:00

866 lines
48 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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, Player Leave, Leaderboard, Weekly BR, or Both.",
"squadron_required": "You must provide a squadron name for Logs, Points, Player Leave, 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 <squadron_short> 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 <squadron_short> 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 3045% 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 <t:{deadline}:D>.**\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 <t:{deadline}:D>.**\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: <t:{now}:F>\n> Minimum: <t:{min}:F>\n> You provided: <t:{provided}:F>",
"entitlement_write_failed": "❌ Failed to write entitlement: {error}",
"entitlement_created_title": "✅ Manual Entitlement Created",
"entitlement_created_desc": "**Server:** {guild_name} (`{server_id}`)\n**Expires:** <t:{unix_ts}:F> (<t:{unix_ts}:R>)\n**Created:** <t:{now}:F>",
"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 <t:{timestamp}:R>.",
"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 <t:{deadline}:D>.**\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, Player Leave, Leaderboard, Weekly BR, or Both",
"choice_logs": "Logs",
"choice_points": "Points",
"choice_player_leave": "Player Leave",
"choice_leaderboard": "Leaderboard",
"choice_both": "Both Logs and 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."
}
}