feat(player): theme-3 移动端/PC 双端拆分与桌面投注工作台

新增 DesktopShell 及桌面端首页、赛事、钱包、记录等页面,原 H5 视图迁移至 Mobile* 并由路由 wrapper 按视口切换。补齐右侧投注单栏、赔率快捷浮层、联赛/赛事侧栏、串关与定位能力;桌面下注成功改为全局 Toast,修复侧栏成功遮罩被裁剪与底部汇总黑底。同步悬浮客服、公告卡片、三语 i18n、桌面样式体系,以及 API 赛事与 shared 包相关调整。
This commit is contained in:
mars
2026-07-07 17:07:38 +08:00
parent fee34feee8
commit e7e2b77906
125 changed files with 26393 additions and 8687 deletions

View File

@@ -10,6 +10,22 @@ export default {
back_to_top: 'Kembali ke atas',
cancel: 'Batal',
confirm: 'Sahkan',
clear: 'Kosongkan',
no_data: 'Tiada data',
back: 'Kembali',
save: 'Simpan',
expand: 'Kembangkan',
collapse: 'Runtuhkan',
not_found: 'Tidak dijumpai',
load_more: 'Muat lagi',
approved: 'Diluluskan',
rejected: 'Ditolak',
pending: 'Menunggu',
cancelled: 'Dibatalkan',
error: 'Operasi gagal',
status: 'Status',
copy: 'Salin',
copy_success: 'Berjaya disalin',
},
nav: {
home: 'Laman Utama',
@@ -17,6 +33,12 @@ export default {
bet_history: 'Sejarah',
wallet: 'Bil',
profile: 'Profil',
sports: 'Sukan',
football: 'Bola Sepak',
account_hub: 'Pertaruhan & Bil',
search: 'Cari pasukan, liga…',
announcements: 'Pengumuman',
sports_more_soon: 'Lebih banyak sukan akan datang',
},
home: {
hot_matches: 'Perlawanan popular',
@@ -25,12 +47,23 @@ export default {
no_matches: 'Tiada perlawanan',
upcoming_empty: 'Tiada perlawanan dalam 3 hari akan datang',
announcement_badge: 'Notis',
announcement_default:
'Selamat datang ke TheBet365 · Perlawanan bola sepak sedang berlangsung · Bertaruh secara bertanggungjawab',
announcement_default: 'Selamat datang ke TheBet365 · Perlawanan bola sepak sedang berlangsung · Bertaruh secara bertanggungjawab',
banner_prev: 'Slaid sebelumnya',
banner_next: 'Slaid seterusnya',
banner_slide: 'Slaid {n}',
banner_fallback: 'Banner',
quick_entry_title: 'Akses Pantas',
quick_bet: 'Taruh Sekarang',
quick_recharge: 'Deposit',
quick_mybets: 'Taruhan Saya',
quick_announcements: 'Pengumuman',
section_featured: 'Perlawanan Utama',
section_upcoming: 'Akan Berlangsung',
sidebar_recommend: 'Disyorkan',
sidebar_guide: 'Bantuan & Panduan',
guide_link: 'Panduan Taruhan',
faq_link: 'Soalan Lazim',
support_link: 'Sokongan Langsung',
},
announcements: {
title: 'Pusat Pengumuman',
@@ -45,6 +78,10 @@ export default {
go_link: 'Pergi ke halaman',
open_link: 'Buka pautan',
back: 'Kembali',
select_hint: 'Pilih pengumuman untuk dibaca',
center_desc: 'Notis platform, promosi dan penyelenggaraan',
total_count: '{count} jumlah',
read_more: 'Baca lagi',
},
search: {
placeholder: 'Cari pasukan atau liga',
@@ -85,6 +122,9 @@ export default {
view_recharge_history: 'Lihat sejarah deposit',
unread_badge: '{count} belum dibaca',
open_inbox: 'Buka peti mesej',
select_hint: 'Pilih mesej untuk dibaca',
tab_inbox: 'Peti masuk',
tab_support: 'Sokongan',
},
inbox_hub: {
title: 'Mesej & Sokongan',
@@ -133,6 +173,9 @@ export default {
profit: 'Keuntungan',
return_incl_stake: 'Pulangan {amount} (termasuk jumlah)',
stake_to_return: '{stake} × {odds} = {amount}',
filter_status_group: 'Penyelesaian',
filter_push_group: 'Khas',
filter_push_hint: 'Seri: jumlah dikembalikan pada garis seri',
},
auth: {
login: 'Log Masuk',
@@ -194,6 +237,7 @@ export default {
reset_failed: 'Gagal menetapkan semula. Sila cuba lagi.',
phone_not_registered: 'Nombor telefon ini belum didaftarkan',
back_to_login: 'Kembali ke log masuk',
logging_in: 'Sedang log masuk…',
},
support: {
short: 'Sokongan',
@@ -254,6 +298,9 @@ export default {
detail_bet_link: 'Lihat Pertaruhan',
detail_tx_id: 'ID Transaksi',
detail_not_found: 'Rekod tidak dijumpai',
all_records: 'Semua Rekod',
frozen_before: 'Beku Sebelum',
frozen_after: 'Beku Selepas',
ref_bet: 'Pertaruhan',
ref_deposit: 'Deposit',
ref_withdraw: 'Pengeluaran',
@@ -262,6 +309,20 @@ export default {
cashback_filter_hint: 'Senarai ini ialah kredit dompet; tempoh dan kadar ada di butiran rebat.',
ref_cashback: 'Batch rebat',
detail_cashback_link: 'Lihat butiran rebat',
frozen: 'Beku',
cashback_total: 'Jumlah rebat',
type: 'Jenis',
note: 'Nota',
amount: 'Amaun',
time: 'Masa',
transaction_detail: 'Butiran transaksi',
balance_before: 'Baki sebelum',
balance_after: 'Baki selepas',
transaction_id: 'ID transaksi',
detail_title: 'Butiran bil',
recharge_btn: 'Topup',
recharge_history: 'Sejarah topup',
cashbacks_tab: 'Rebat',
},
recharge: {
title: 'Topup',
@@ -318,6 +379,16 @@ export default {
reapply: 'Mohon semula',
reapply_hint: 'Anda menghantar semula pesanan ini. Buat pindahan baharu dan muat naik tangkapan skrin baharu.',
back_to_history: 'Kembali ke sejarah',
scan_to_pay: 'Imbas kod QR untuk bayar',
order_no: 'No. pesanan',
method: 'Kaedah',
amount: 'Amaun',
screenshot: 'Muat naik bukti',
click_to_upload: 'Klik untuk muat naik',
choose_method: 'Pilih akaun pembayaran',
success_title: 'Dihantar',
success_hint: 'Sila tunggu semakan. Anda akan dimaklumkan selepas dikreditkan.',
no_history: 'Tiada rekod topup',
},
cashback: {
title: 'Butiran Rebat',
@@ -330,6 +401,10 @@ export default {
empty: 'Tiada rekod rebat',
empty_hint: 'Rebat dikeluarkan oleh platform mengikut kitaran penyelesaian.',
ledger_hint: 'Sepadan dengan entri dompet di penapis Rebat; jumlah adalah sama.',
match: 'Perlawanan',
amount: 'Amaun rebat',
rate: 'Kadar rebat',
batch_no: 'No. kelompok',
},
bet: {
bet_slip: 'Slip Pertaruhan',
@@ -480,6 +555,59 @@ export default {
odds_now: 'Baharu',
place_success: 'Pertaruhan berjaya',
place_failed: 'Pertaruhan gagal',
quick_bet: 'Pertaruhan Pantas',
popular_teams: 'Pasukan Popular',
view_all_markets: 'Lihat Semua Pasaran',
all: 'Semua',
sport_football: 'Bola Sepak',
sport_basketball: 'Bola Keranjang',
sport_tennis: 'Tenis',
sport_coming_soon: 'Akan datang',
filter_time: 'Masa',
filter_league: 'Liga',
filter_market: 'Pasaran',
time_all: 'Semua',
time_today: 'Hari ini',
time_early: 'Awal',
market_all: 'Semua pasaran',
market_handicap_ou: 'Handicap / O-U',
correct_score: 'Skor tepat',
no_markets: 'Tiada pasaran tersedia',
no_markets_filtered: 'Tiada pasaran sepadan dengan penapis semasa',
no_market_odds: 'Tiada odds pasaran',
popover_title: 'Sahkan pertaruhan',
place_now: 'Pertaruhan sekarang',
add_to_single: 'Tambah tunggal',
add_to_parlay: 'Tambah parlay',
slip_parlay_added_short: 'Dalam parlay · Lihat',
add_to_single_list: 'Tambah ke senarai tunggal',
add_to_parlay_list: 'Tambah ke berganda',
outright_view_all: 'Lihat Semua Pasukan',
added_to_single: 'Ditambah ke senarai tunggal',
added_to_parlay: 'Ditambah ke senarai parlay',
slip_clear: 'Kosongkan semua',
slip_locate: 'Lokasi odds',
slip_locate_aria: 'Tatal ke pilihan ini dalam senarai odds',
slip_tab_history: 'Sejarah',
slip_history_all: 'Semua',
slip_history_match: 'Perlawanan ini',
slip_history_view_all: 'Lihat semua',
slip_history_load_more: 'Muat lagi',
slip_place_single: 'Taruhan tunggal',
slip_place_all: 'Taruhan semua',
slip_parlay_added_btn: 'Ditambah',
place_confirm_title: 'Sahkan pertaruhan',
place_confirm_single: 'Pilihan: {pick} ({\'@\'}{odds})\nJumlah: {stake}\nAnggaran pulangan: {return}\n\nSahkan pertaruhan ini?',
place_confirm_singles: '{count} pertaruhan tunggal\nJumlah keseluruhan: {stake}\nAnggaran pulangan: {return}\n\nSahkan semua?',
place_confirm_parlay: 'Parlay {count} perlawanan, odds {odds}\nJumlah: {stake}\nAnggaran pulangan: {return}\n\nSahkan parlay?',
bet_no: 'No. pertaruhan',
match: 'Perlawanan',
selection: 'Pilihan',
odds: 'Odds',
potential_payout: 'Bayaran anggaran',
placed_at: 'Masa pertaruhan',
detail_title: 'Butiran pertaruhan',
selections: 'Pilihan',
},
profile: {
edit: 'Edit Profil',
@@ -527,5 +655,17 @@ export default {
rules_p3: 'Keputusan berdasarkan skor separuh masa/penuh yang dimasukkan admin; bayaran selepas pratonton disahkan.',
rules_p4: 'Jika bercanggah dengan notis laman, ikut notis terkini dan peraturan pasaran.',
rules_p5: 'Langkah operasi: buka butiran perlawanan, ketik ikon ? di atas kanan.',
edit_title: 'Edit profil',
save_success: 'Berjaya disimpan',
basic_info: 'Maklumat asas',
change_avatar: 'Tukar avatar',
username: 'Nama pengguna',
username_locked: 'Nama pengguna tidak boleh diubah',
account: 'Akaun',
quick_nav: 'Pautan pantas',
},
pagination: {
total: '{total} jumlah',
per_page: '{size} / halaman',
},
} as const;