Files
thebet365/apps/player/src/i18n/en-US.ts
Mars 78322578d3 fix(admin/player/api): 同步单关串关持久化、仅串关可选与盘口状态展示
1. 后台/API:赛事详情返回 allowSingle/allowParlay,管理端 mapMarkets 正确回读
2. 玩家端:仅关单关时仍可点选加入串关;投注抽屉禁用单关提交并提示
3. 玩家端:盘口暂停/已关闭状态标签;MarketTypeTile 展示 statusLabel

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-17 11:09:55 +08:00

456 lines
17 KiB
TypeScript
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.
export default {
common: {
pull_refresh: 'Pull to refresh',
release_refresh: 'Release to refresh',
refreshing: 'Refreshing…',
loading_more: 'Loading more…',
no_more: 'No more',
load_failed: 'Failed to load',
retry: 'Retry',
back_to_top: 'Back to top',
},
nav: { home: 'Home', bet: 'Bet', bet_history: 'History', wallet: 'Wallet', profile: 'Profile' },
home: {
hot_matches: 'Hot matches',
no_matches: 'No matches',
announcement_badge: 'Notice',
announcement_default:
'Welcome to TheBet365 · Football events are live · Bet responsibly',
banner_prev: 'Previous slide',
banner_next: 'Next slide',
banner_slide: 'Slide {n}',
banner_fallback: 'Banner',
},
history: {
league_default: 'Football',
stake: 'Stake',
return: 'Return',
est_return: 'Est. Return',
odds: 'Odds',
ft: 'FT',
ht: 'HT',
parlay_title: 'Parlay · {n} legs',
parlay_league: 'Parlay',
empty: 'No bets yet',
no_more: 'No more bets',
status_won: 'WON',
status_pending: 'PENDING',
status_lost: 'LOST',
status_push: 'PUSH',
back: 'Back',
not_found: 'Bet not found',
my_pick: 'My pick',
my_bets: 'My bets',
legs: 'Parlay legs',
summary: 'Summary',
bet_no: 'Bet ID',
awaiting_result: 'Awaiting result…',
filter_all: 'All',
filter_won: 'Won',
filter_lost: 'Lost',
filter_pending: 'Pending',
filter_push: 'Push',
stats_total: 'Total',
stats_won: 'Won',
stats_lost: 'Lost',
stats_pending: 'Pending',
stats_push: 'Push',
stats_stake: 'Total Stake',
stats_return: 'Total Return',
cashbacked: 'Cashbacked',
},
auth:
{ login: 'Login',
register: 'Create Account',
logout: 'Log out',
username: 'Username',
password: 'Password',
invite_code: 'Invitation Code',
optional: 'Optional',
captcha_placeholder: 'Code',
captcha_refresh: 'Click to refresh',
captcha_wrong: 'Incorrect captcha code',
slide_to_verify: 'Slide to verify',
click_to_verify: 'Click to verify',
verified: 'Verified',
login_required: 'Login Required',
login_hint: 'Log in to place bets and access more features',
go_login: 'Go to login',
go_register: 'No account? Register now',
have_account: 'Already have an account? Log in',
register_btn: 'Register',
registering: 'Registering…',
sending_sms: 'Sending…',
register_failed: 'Registration failed, please try again',
continue_browsing: 'Skip login',
username_placeholder: 'Enter username',
username_register_placeholder: '7-32 letters or digits',
username_required: 'Username is required',
username_format_invalid: 'Username must be 7-32 letters or digits',
login_account: 'Phone / Username',
login_by_phone: 'Log in with phone',
login_by_account: 'Log in with username',
login_account_placeholder: 'Phone number or username',
login_username_placeholder: 'Phone number or username',
confirm_password: 'Confirm password',
password_mismatch: 'Passwords do not match',
password_min_length: 'Password must be at least 8 characters',
password_placeholder: 'Enter password',
login_btn: 'Log In',
login_failed: 'Login failed, please try again',
phone: 'Phone',
phone_placeholder: 'Enter phone number',
phone_local_placeholder: 'Enter phone number',
phone_required: 'Phone number is required',
phone_invalid: 'Invalid phone number format',
phone_country_unsupported: 'This country or region is not supported',
sms_code: 'SMS Code',
sms_code_placeholder: '6-digit code',
sms_code_required: 'Please enter the SMS code',
sms_required: 'Please request an SMS code first',
send_sms: 'Get Code',
resend_sms: 'Retry in {sec}s',
country_search: 'Search country or code',
country_not_found: 'No matching country',
forgot_password: 'Forgot password?',
forgot_password_title: 'Reset password',
reset_password_btn: 'Reset password',
reset_success: 'Password reset. Please sign in with your new password. Contact your agent if you cannot log in.',
reset_failed: 'Reset failed. Please try again.',
phone_not_registered: 'This phone number is not registered',
back_to_login: 'Back to login',
},
support: {
short: 'Support',
title: 'Customer Support',
open: 'Open customer support',
close: 'Close',
connecting: 'Connecting to support...',
url_pending: 'Support URL is not configured yet.',
},
wallet: {
balance: 'Balance',
cash_balance: 'Cash Balance',
card_holder: 'Cardholder',
unsettled: 'Unsettled',
available: 'Available',
no_records: 'No records',
tx_deposit: 'Deposit',
tx_admin_deposit: 'Admin top-up',
tx_agent_deposit: 'Agent top-up',
tx_player_deposit: 'Self deposit',
tx_player_deposit_reversal: 'Deposit reversal',
tx_withdraw: 'Withdrawal',
tx_admin_withdraw: 'Admin withdraw',
tx_agent_withdraw: 'Agent withdraw',
tx_adjust: 'Manual Adjust',
tx_bet_freeze: 'Bet Frozen',
tx_bet_deduct: 'Bet Deducted',
tx_bet_win: 'Bet Payout',
tx_bet_lose: 'Bet Settled',
tx_bet_push: 'Bet Push',
tx_bet_refund: 'Bet Refund',
tx_bet_void: 'Bet Voided',
tx_cashback: 'Cashback credit',
tx_resettle: 'Resettlement',
summary_bet: 'Bet {betNo}',
remark_deposit_revoke: 'Revoked approved deposit {orderNo}',
remark_deposit_revoke_generic: 'Revoked approved deposit',
stats_income: 'Income',
stats_expense: 'Expense',
stats_net: 'Net',
stats_cashback: 'Cashback',
filter_all: 'All',
filter_deposit: 'Deposit',
filter_withdraw: 'Withdraw',
filter_bet: 'Bet',
filter_cashback: 'Cashback',
view_all: 'View all transactions',
detail_summary: 'Details',
detail_amount: 'Amount',
detail_balance_before: 'Balance Before',
detail_balance_after: 'Balance After',
detail_frozen_before: 'Frozen Before',
detail_frozen_after: 'Frozen After',
detail_reference: 'Reference',
detail_reference_type: 'Type',
detail_reference_id: 'Reference ID',
detail_remark: 'Remark',
detail_bet_link: 'View Bet',
detail_tx_id: 'Transaction ID',
detail_not_found: 'Transaction not found',
ref_bet: 'Bet',
ref_deposit: 'Deposit',
ref_withdraw: 'Withdraw',
view_cashbacks: 'Cashback details',
view_cashbacks_detail: 'View cashback details (period/rate)',
cashback_filter_hint: 'This list shows wallet credits; see cashback details for period and rate.',
ref_cashback: 'Cashback batch',
detail_cashback_link: 'View cashback details',
},
recharge: {
title: 'Recharge',
history: 'History',
history_title: 'Recharge History',
bank_transfer: 'Bank Transfer',
bank_name: 'Bank Name',
account_holder: 'Account Holder',
account_number: 'Account Number',
usdt_address: 'USDT Address',
amount_label: 'Amount',
amount_placeholder: 'Enter recharge amount',
screenshot_label: 'Upload Screenshot',
upload_hint: 'Click to upload (max 10MB original, compressed to within 1MB)',
compressing: 'Compressing',
submit: 'Submit',
submitting: 'Submitting',
submitted: 'Recharge Submitted',
pending_review: 'Admin is reviewing, please wait',
new_recharge: 'New Recharge',
no_methods: 'No payment methods available',
select_method: 'Please select a payment method',
enter_amount: 'Please enter the amount',
upload_screenshot: 'Please upload a screenshot',
submit_failed: 'Submit failed, please retry',
file_must_be_image: 'Please upload an image file',
file_too_large: 'Original file must be 10MB or less',
compress_failed: 'Could not compress the image to within 1MB. Try a smaller screenshot.',
status_pending: 'Processing',
status_approved: 'Approved',
status_rejected: 'Rejected',
no_orders: 'No recharge records',
credited: 'Credited',
reject_reason: 'Rejection reason',
apply_time: 'Apply time',
review_time: 'Review time',
remark: 'Remark',
audit_title: 'Review history',
audit_submitted: 'Submitted',
audit_approved: 'Approved',
audit_rejected: 'Rejected',
audit_revoked: 'Approval revoked',
audit_reopened: 'Reopened for review',
audit_by_player: 'Player',
audit_by_admin: 'Platform review',
audit_amount: 'Amount',
audit_credited: 'Credited amount',
audit_remark_label: 'Note',
audit_summary: 'Review history · {count} steps',
audit_toggle_show: 'Show review history',
audit_toggle_hide: 'Hide review history',
view_detail: 'View details',
order_detail: 'Order details',
reapply: 'Re-apply',
reapply_hint: 'You are resubmitting this order. Transfer again and upload a new screenshot.',
back_to_history: 'Back to history',
},
cashback: {
title: 'Cashback Details',
list_title: 'Payout details',
total_received: 'Total cashback',
record_count: '{n} record(s)',
period: 'Period',
effective_stake: 'Effective stake',
bet_count: '{n} bet(s)',
empty: 'No cashback records yet',
empty_hint: 'Cashback is issued by the platform after each settlement period.',
ledger_hint: 'Matches wallet entries under the Cashback filter; amounts are the same.',
},
bet: {
bet_slip: 'Bet Slip',
stake: 'Stake',
place_bet: 'Place Bet',
place_bet_short: 'Bet',
parlay: 'Parlay',
tab_matches: 'Matches',
tab_outright: 'Outright',
tab_today: 'Today',
tab_early: 'Early',
filter_time: 'Match Time',
show_open_only: 'Open only',
filter: 'Filter',
filter_status: 'Status',
filter_leagues: 'Leagues',
filter_status_all: 'All',
filter_status_open: 'Open',
filter_status_settled: 'Settled',
filter_leagues_all: 'All Leagues',
filter_reset: 'Reset',
filter_apply: 'Apply',
show_all_matches: 'Show all',
status_open: 'Upcoming',
status_live: 'Live',
match_unit: 'matches',
today: 'Today',
loading: 'Loading…',
no_matches: 'No matches',
outright_coming: 'Outright markets coming soon',
outright_enter_stake: 'Enter stake',
outright_balance: 'Balance',
outright_stake_amount: 'Stake',
outright_success: 'Bet placed',
outright_done: 'Done',
outright_bet_failed: 'Bet failed',
outright_insufficient: 'Insufficient balance',
stake_label: 'Stake',
stake_placeholder: 'Enter amount',
stake_max: 'Max',
placing: 'Placing…',
no_outright: 'No outright markets',
no_outright_hint: 'Sign in as a player. If empty, ask admin to publish outright events.',
outright_events_summary: '{events} outright events · {teams} teams',
outright_teams_count: '{n} teams',
outright_load_failed: 'Failed to load outright markets',
outright_player_only: 'Player login required',
outright_shown_count: '{shown} / {total} teams shown',
outright_load_more: 'Load more',
cancel: 'Cancel',
parlay_max_legs: 'Parlay allows up to 5 legs',
parlay_block_outright: 'Outright cannot be parlayed',
parlay_block_quarter: 'Quarter-ball HDP/O-U cannot be parlayed',
parlay_block_not_allowed: 'This market cannot be parlayed',
parlay_need_more: 'Select at least 2 legs for parlay',
market_status_suspended: 'Suspended',
market_status_closed: 'Closed',
back: 'Back',
refresh: 'Refresh',
download: 'Download',
reward_active: 'Reward active!',
market_closed: 'Not open',
match_phase_closed_pending: 'Closed pending',
match_phase_settled: 'Settled',
view_match: 'View match',
expand_market: 'Expand',
collapse_market: 'Collapse',
market_cs: 'Correct Score',
market_ht_cs: '1H Correct Score',
market_sh_cs: '2H Correct Score',
market_ft_handicap: 'FT Handicap',
market_ft_ou: 'FT O/U',
market_ft_1x2: 'FT 1X2',
market_ft_oe: 'FT Odd/Even',
market_ht_handicap: 'HT Handicap',
market_ht_ou: 'HT O/U',
market_ht_1x2: 'HT 1X2',
parlay_sel_home: 'H',
parlay_sel_away: 'A',
parlay_sel_draw: 'D',
parlay_sel_over: 'O',
parlay_sel_under: 'U',
parlay_sel_odd: 'Odd',
parlay_sel_even: 'Even',
cs_other_home: 'Home win (other score)',
cs_other_draw: 'Draw (other score)',
cs_other_away: 'Away win (other score)',
col_home: 'Home',
col_draw: 'Draw',
col_away: 'Away',
cs_stake_required: 'Select at least one score',
cs_confirm_title: 'Confirm correct score bets',
cs_confirm_count: '{n} bet(s)',
cs_confirm_total_stake: 'Total stake',
cs_place_success: 'Bet placed',
cs_place_failed: 'Bet failed',
kickoff_time: 'Kickoff: ',
result_stats_title: 'Match facts',
result_ht: 'HT',
result_ft: 'FT',
result_corners: 'Corners',
result_yellow_cards: 'Yellow',
result_red_cards: 'Red',
guide_title: 'How to bet',
guide_help_aria: 'Betting help',
guide_got_it: 'Got it',
guide_flow_normal: 'Handicap / O-U / 1X2 etc.',
guide_normal_1: 'All markets are shown by default',
guide_normal_2: 'Tap any odds to open the bet drawer',
guide_normal_3: 'Enter stake in the drawer, then place a single bet or add it to parlay',
guide_flow_cs: 'Correct score',
guide_cs_1: 'Tap the score you want in the score table',
guide_cs_2: 'The bet drawer opens so you can enter stake and submit',
guide_cs_3: 'Score picks are single bets and can also be added to parlay',
guide_flow_parlay: 'Parlay (25 legs)',
guide_parlay_1: 'Tap any odds to open the drawer, then tap Add to parlay to put the current selection into your parlay slip.',
guide_rules_link: 'Full rules: Profile → Betting Rules.',
mode_cs_tag: 'Bet here',
mode_slip_tag: 'Add to slip',
cs_confirm_btn: 'Confirm bet',
cs_confirm_cell: 'Place order',
cs_panel_hint: 'Enter stakes below, then tap Confirm bet above',
slip_panel_hint: 'Tap odds to add; use the bottom bar when done',
slip_pick_hint: 'Tap to add/remove from slip; gold border = selected',
picked_tag: 'Selected',
pick_added: 'Added to bet slip',
pick_removed: 'Removed from bet slip',
slip_bar_ready: '1 selection',
slip_bar_go: 'Bet slip',
cs_top_hint: '① Enter stake ② Tap Confirm bet above',
slip_empty_hint: 'Tap odds to open the bet drawer',
slip_remove: 'Remove',
slip_est_return: 'Est. max payout',
slip_parlay_odds: 'Combined odds {odds}',
slip_review_title: 'Review selection',
slip_balance: 'Account balance',
slip_tab_single: 'Single',
slip_tab_parlay: 'Parlay',
slip_parlay_empty_hint: 'Pick a selection, then tap Add to parlay',
slip_add_parlay: 'Add to parlay',
slip_parlay_only_hint: 'This market is parlay-only. Tap Add to parlay to bet.',
slip_parlay_same_match: 'Parlay selections cannot be from the same match. Remove the same-match leg first.',
slip_parlay_count: '{n} parlay leg(s)',
slip_total_stake: 'Total stake',
slip_currency: 'Amount',
slip_min: 'Min',
slip_min_error: 'Minimum stake is {amount}',
place_success: 'Bet placed',
place_failed: 'Bet failed',
},
profile: {
edit: 'Edit Profile',
language: 'Language',
avatar: 'Avatar',
avatar_change: 'Change avatar',
avatar_confirm: 'Confirm',
section_contact: 'Contact',
section_account: 'Account',
change_password: 'Change password',
show_password: 'Show',
hide_password: 'Hide',
password_unavailable: '••••••••',
password_unavailable_hint: 'Password not available; contact support to reset',
section_password: 'Change password (optional)',
avatar_hint: 'Choose from built-in player portraits',
avatar_search: 'Search player, position or country',
avatar_empty: 'No players found',
phone: 'Phone',
email: 'Email',
phone_placeholder: 'Phone number',
email_placeholder: 'Email address',
save: 'Save',
password_optional_hint: 'Leave password fields blank to keep current password',
old_password_placeholder: 'Leave blank to skip',
new_password_placeholder: 'Leave blank to skip',
confirm_password_placeholder: 'Leave blank to skip',
old_password: 'Current password',
new_password: 'New password',
confirm_password: 'Confirm password',
back: 'Back',
saved: 'Contact saved',
save_failed: 'Save failed',
password_changed: 'Password updated',
password_failed: 'Password change failed',
password_mismatch: 'Passwords do not match',
password_incomplete: 'Fill current, new and confirm password to change password',
username_placeholder: 'Login username',
username_readonly_hint: 'Username is managed by admin; contact support to change',
username_updated: 'Username updated',
password_disabled: 'Password change is disabled for this account; contact support',
rules_title: 'Betting Rules',
rules_p1: 'Football pre-match only in v1. No live betting, Cash Out, bet edits, or system parlays.',
rules_p2: 'Parlays: 25 legs, with at most one selection per match. Outright and quarter-ball HDP/O-U are excluded.',
rules_p3: 'Results use admin-entered half-time and full-time scores; payouts apply after settlement preview is confirmed.',
rules_p4: 'If this text conflicts with site notices, the latest notice and market rules prevail.',
rules_p5: 'How to bet: open any match, tap the ? icon on the top right.',
},
} as const;