feat(player): 新增桌面端 UI 与响应式双端路由架构
- 将原移动端页面重命名为 Mobile*,新增 22 个 Desktop* 视图与 DesktopShell 布局体系 - 路由入口改为 Wrapper 视图,通过 useViewport(≥1024px)自动切换移动/桌面端 - 新增投注单面板、盘口弹层、联赛侧栏、数据表格等桌面组件及独立样式令牌 - 扩展 betSlip store、串关筛选、冠军盘、Toast/悬浮信箱等交互与三语 i18n - 公告/消息 Hub 拆分移动与桌面实现;API 投注/钱包/充值记录支持 pageSize 分页
This commit is contained in:
@@ -10,13 +10,37 @@ 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',
|
||||
},
|
||||
pagination: {
|
||||
total: '{total} jumlah',
|
||||
per_page: '{size} / halaman',
|
||||
},
|
||||
nav: {
|
||||
home: 'Laman Utama',
|
||||
sports: 'Sukan',
|
||||
football: 'Bola Sepak',
|
||||
bet: 'Pertaruhan',
|
||||
bet_history: 'Sejarah',
|
||||
wallet: 'Bil',
|
||||
wallet: 'Transaksi',
|
||||
account_hub: 'Pertaruhan & Bil',
|
||||
profile: 'Profil',
|
||||
search: 'Cari pasukan, liga…',
|
||||
announcements: 'Pengumuman',
|
||||
sports_more_soon: 'Lebih banyak sukan akan datang',
|
||||
},
|
||||
home: {
|
||||
hot_matches: 'Perlawanan popular',
|
||||
@@ -38,6 +62,7 @@ export default {
|
||||
empty: 'Tiada pengumuman',
|
||||
not_found: 'Pengumuman tidak tersedia',
|
||||
view_all: 'Lihat semua pengumuman',
|
||||
select_hint: 'Pilih pengumuman untuk dibaca',
|
||||
type_notice: 'Notis',
|
||||
type_ticker: 'Ticker',
|
||||
type_banner: 'Banner',
|
||||
@@ -45,6 +70,9 @@ export default {
|
||||
go_link: 'Pergi ke halaman',
|
||||
open_link: 'Buka pautan',
|
||||
back: 'Kembali',
|
||||
center_desc: 'Notis platform, promosi dan penyelenggaraan',
|
||||
total_count: '{count} jumlah',
|
||||
read_more: 'Baca lagi',
|
||||
},
|
||||
search: {
|
||||
placeholder: 'Cari pasukan atau liga',
|
||||
@@ -66,6 +94,7 @@ export default {
|
||||
not_found: 'Mesej tidak dijumpai',
|
||||
view_all: 'Kembali ke peti mesej',
|
||||
back: 'Kembali',
|
||||
select_hint: 'Pilih mesej untuk dibaca',
|
||||
mark_all_read: 'Tanda semua dibaca',
|
||||
load_more: 'Muat lagi',
|
||||
delete: 'Padam',
|
||||
@@ -85,6 +114,8 @@ export default {
|
||||
view_recharge_history: 'Lihat sejarah deposit',
|
||||
unread_badge: '{count} belum dibaca',
|
||||
open_inbox: 'Buka peti mesej',
|
||||
tab_inbox: 'Peti masuk',
|
||||
tab_support: 'Sokongan',
|
||||
},
|
||||
inbox_hub: {
|
||||
title: 'Mesej & Sokongan',
|
||||
@@ -122,6 +153,9 @@ export default {
|
||||
filter_lost: 'Kalah',
|
||||
filter_pending: 'Menunggu',
|
||||
filter_push: 'Seri',
|
||||
filter_status_group: 'Penyelesaian',
|
||||
filter_push_group: 'Khas',
|
||||
filter_push_hint: 'Seri: jumlah dikembalikan pada garis seri',
|
||||
stats_total: 'Jumlah',
|
||||
stats_won: 'Menang',
|
||||
stats_lost: 'Kalah',
|
||||
@@ -262,6 +296,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 +366,15 @@ 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',
|
||||
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 +387,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',
|
||||
@@ -339,8 +400,30 @@ export default {
|
||||
parlay: 'Berganda',
|
||||
tab_matches: 'Perlawanan',
|
||||
tab_outright: 'Juara',
|
||||
sport_football: 'Bola Sepak',
|
||||
sport_basketball: 'Bola Keranjang',
|
||||
sport_tennis: 'Tenis',
|
||||
sport_coming_soon: 'Akan datang',
|
||||
tab_today: 'Hari Ini',
|
||||
tab_early: 'Awal',
|
||||
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',
|
||||
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',
|
||||
filter_status_all: 'Semua',
|
||||
filter_status_open: 'Buka',
|
||||
filter_status_settled: 'Selesai',
|
||||
@@ -452,24 +535,37 @@ export default {
|
||||
slip_pick_hint: 'Ketik untuk tambah/buang; sisi emas = dipilih',
|
||||
picked_tag: 'Dipilih',
|
||||
pick_added: 'Ditambah ke slip',
|
||||
added_to_single: 'Ditambah ke senarai tunggal',
|
||||
added_to_parlay: 'Ditambah ke senarai parlay',
|
||||
pick_removed: 'Dikeluarkan dari slip',
|
||||
slip_bar_ready: '1 pilihan',
|
||||
slip_bar_go: 'Buka slip',
|
||||
cs_top_hint: '① Isi jumlah ② Ketik Sahkan di atas',
|
||||
slip_empty_hint: 'Ketik odds untuk buka laci pertaruhan',
|
||||
slip_clear: 'Kosongkan semua',
|
||||
slip_remove: 'Buang',
|
||||
slip_locate: 'Lokasi odds',
|
||||
slip_locate_aria: 'Tatal ke pilihan ini dalam senarai odds',
|
||||
slip_est_return: 'Anggaran bayaran maksimum',
|
||||
slip_parlay_odds: 'Odds gabungan {odds}',
|
||||
slip_review_title: 'Semak pilihan',
|
||||
slip_balance: 'Baki akaun',
|
||||
slip_tab_single: 'Tunggal',
|
||||
slip_tab_parlay: 'Parlay',
|
||||
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_parlay_empty_hint: 'Pilih satu odds, kemudian ketik Tambah ke parlay',
|
||||
slip_add_parlay: 'Tambah ke parlay',
|
||||
slip_parlay_only_hint: 'Pasaran ini hanya parlay. Ketik Tambah ke parlay untuk bertaruh.',
|
||||
slip_parlay_same_match: 'Pilihan parlay tidak boleh daripada perlawanan sama. Buang pilihan perlawanan sama dahulu.',
|
||||
slip_parlay_count: '{n} pilihan parlay',
|
||||
slip_total_stake: 'Jumlah pertaruhan',
|
||||
slip_place_single: 'Taruhan tunggal',
|
||||
slip_place_all: 'Taruhan semua',
|
||||
slip_parlay_added_btn: 'Ditambah',
|
||||
slip_currency: 'Amaun',
|
||||
slip_min: 'Min',
|
||||
slip_min_error: 'Jumlah minimum ialah {amount}',
|
||||
@@ -478,11 +574,34 @@ export default {
|
||||
accept_changes_place: 'Terima perubahan & pertaruh',
|
||||
odds_was: 'Asal',
|
||||
odds_now: 'Baharu',
|
||||
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?',
|
||||
place_success: 'Pertaruhan berjaya',
|
||||
place_failed: 'Pertaruhan gagal',
|
||||
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',
|
||||
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',
|
||||
language: 'Bahasa',
|
||||
avatar: 'Avatar',
|
||||
avatar_change: 'Tukar avatar',
|
||||
|
||||
Reference in New Issue
Block a user