Files
36-character-flower/src/locales/ms-MY.ts
JiaJun 20f31ff0a5 feat(game): 更新游戏状态栏和彩金池组件
- 重构桌面版状态栏布局,优化响应式设计和组件结构
- 添加hud变体类型的彩金池ticker组件,支持新的视觉样式
- 为移动版状态栏调整网格布局和间距设置
- 在多个语言包中添加彩金池促销文案
- 设置默认彩金池金额并改进计时器逻辑
- 优化移动版入口文件中的组件排列方式
2026-07-16 14:23:44 +08:00

867 lines
33 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.
/* 以下为多语言中重复出现的文案,统一声明一次后在下方各 key 复用,避免同一文案多处声明。 */
/** @description 登录的统一文案。 */
const TEXT_LOGIN = 'Log Masuk'
/** @description 注册的统一文案。 */
const TEXT_REGISTER = 'Daftar'
/** @description “是”的统一文案。 */
const TEXT_YES = 'Ya'
/** @description “否”的统一文案。 */
const TEXT_NO = 'Tidak'
/** @description “查看”的统一文案。 */
const TEXT_VIEW = 'Semak'
/** @description 自动托管的统一文案。 */
const TEXT_AUTO_HOSTING = 'Putaran Auto'
/** @description 钱包流水的统一文案。 */
const TEXT_WALLET_RECORDS = 'Rekod Dompet'
/** @description 站内消息的统一文案。 */
const TEXT_SITE_MESSAGES = 'Mesej'
/** @description 分页“第x页/共x条”的统一文案。 */
const TEXT_PAGE_INDICATOR = 'Halaman {{page}} / jumlah {{total}}'
/** @description 上一页的统一文案。 */
const TEXT_PREV_PAGE = 'Sebelumnya'
/** @description 下一页的统一文案。 */
const TEXT_NEXT_PAGE = 'Seterusnya'
/** @description “时间”的统一文案。 */
const TEXT_TIME = 'Masa'
/** @description 超过单次投注限额的统一文案。 */
const TEXT_BET_LIMIT_EXCEEDED = 'Melebihi had taruhan tunggal'
/** @description “提交中...”的统一文案。 */
const TEXT_SUBMITTING = 'Menghantar...'
/** @description 手机号字段标签的统一文案。 */
const TEXT_MOBILE_LABEL = 'Nombor Telefon:'
/** @description 手机号输入占位的统一文案。 */
const TEXT_MOBILE_PLACEHOLDER = 'Masukkan nombor telefon'
/** @description 密码字段标签的统一文案。 */
const TEXT_PASSWORD_LABEL = 'Kata Laluan:'
/** @description 密码输入占位的统一文案。 */
const TEXT_PASSWORD_PLACEHOLDER = 'Masukkan kata laluan'
/** @description “确认”按钮的统一文案。 */
const TEXT_CONFIRM = 'Sahkan'
/** @description “加载中...”的统一文案。 */
const TEXT_LOADING = 'Memuatkan...'
/** @description 货币类型的统一文案。 */
const TEXT_CURRENCY_TYPE = 'Jenis Mata Wang'
/** @description 支付渠道的统一文案。 */
const TEXT_PAYMENT_CHANNEL = 'Saluran Pembayaran'
/** @description “已封盘”的统一文案。 */
const TEXT_LOCKED = 'Dikunci'
/** @description “已结算”的统一文案。 */
const TEXT_SETTLED = 'Selesai'
export default {
nav: {
home: 'Laman Utama',
game: 'Permainan',
},
shell: {
eyebrow: '36 Character Flower',
subtitle:
'Antara muka permainan cabutan masa nyata untuk mudah alih dan desktop',
},
notFound: {
eyebrow: '404',
title: 'Halaman yang anda minta tidak ditemui.',
description:
'Laluan ini tidak wujud. Kembali ke halaman utama rangka kerja.',
home: 'Kembali ke utama',
},
home: {
eyebrow: 'Rangka permainan sedang dibina',
title:
'Rangka permainan dwi-peranti 36-character-flower sedang dibangunkan.',
description:
'Projek ini telah melepasi peringkat rangka asas. Kini ia disusun dengan laluan permainan dikongsi, keadaan dikongsi, serta paparan berasingan untuk mudah alih dan desktop bagi pengalaman pertaruhan masa nyata.',
cards: {
routingMode: 'Laluan',
dataLayer: 'Model keadaan',
transport: 'Masa nyata',
auth: 'Produk',
metadata: 'Fokus semasa',
},
values: {
routingMode: 'URL dikongsi + paparan peranti berasingan',
dataLayer: 'Round / Bet / User / UI / Connection',
transport: 'HTTP + WebSocket',
auth: 'Permainan cabutan langsung grid 36',
metadata: 'Bina struktur dahulu sebelum kemasan state machine',
},
footnote:
'Seterusnya: laluan utama permainan, model perniagaan dikongsi, dan rangka halaman mudah alih serta desktop.',
primaryAction: 'Masuk lobi permainan',
secondaryAction: 'Lihat struktur projek',
},
language: {
label: 'Bahasa',
zhCN: '中文',
enUS: 'English',
msMY: 'Melayu',
idID: 'Indonesia',
},
game: {
metaTitle: 'Lobi Permainan',
metaDescription: 'Lobi permainan langsung 36-character-flower.',
lobbyTitle: 'Lobi 36 Character Flower',
lobbySubtitle:
'Di bawah satu laluan perniagaan yang dikongsi, mudah alih dan desktop memaparkan antara muka berbeza di atas data dan keadaan permainan yang sama.',
status: {
roundState: 'Keadaan pusingan',
currentRound: 'Pusingan semasa {{id}}',
tablePool: 'Dana meja',
onlineCount: '{{count}} dalam talian',
activeChip: 'Cip aktif',
announcementsRead: '{{read}}/{{total}} pengumuman dibaca',
connection: 'Sambungan',
connectionHealthy: 'Penyegerakan stabil',
connectionRecovering: 'Menunggu pemulihan',
synced: 'Disegerakkan',
degraded: 'Terganggu',
},
board: {
historyTitle: 'Sejarah pusingan',
historySubtitle: 'Rekod cabutan dan pembayaran terkini',
trendTitle: 'Radar trend',
trendSubtitle: 'Ringkasan momentum dan kekerapan miss',
stageTitle: 'Pentas cabutan',
stageSubtitle:
'Pentas ini memuatkan papan utama dan struktur kawalan sebelum integrasi penuh state machine serta animasi.',
currentPhase: 'Fasa semasa',
selectedBet: 'Pertaruhan {{amount}}',
hitCount: '{{count}} kena',
hitBadge: '{{count}}x',
badgeWin: 'Menang',
badgeBet: 'Taruhan',
cellLabel: 'Sel {{id}}',
winningCell: 'Sel menang {{id}}',
missedRounds: 'Terlepas {{count}} pusingan',
rising: 'Meningkat',
falling: 'Menurun',
steady: 'Stabil',
hitTotal: '{{count}} kena',
},
phases: {
betting: 'Taruhan',
locked: TEXT_LOCKED,
settled: TEXT_SETTLED,
},
roundBettingStart: {
title: 'Pusingan {{roundId}}',
action: 'Mula Bertaruh',
},
jackpotBroadcast: {
ariaLabel: 'Siaran jackpot',
ariaMessage:
'{{nickname}} sedang dalam streak {{streak}} menang dan memenangi {{amount}}',
iconAlt: 'Siaran',
prefix: 'Jackpot kena',
separator: 'dengan',
streak: 'streak {{count}} menang',
winAction: 'memenangi',
},
jackpotPool: {
ariaLabel: 'Dana jackpot semasa {{amount}}',
iconAlt: 'Dana jackpot',
label: 'Jackpot',
promoLine1: '10 Kemenangan Berturut',
promoLine2: 'Dan Raih Super Jackpot',
},
actions: {
unifiedBetHint: 'Taruhan seragam',
totalBet: 'Jumlah taruhan',
canBet: 'Boleh taruhan',
yes: TEXT_YES,
no: TEXT_NO,
quickBet: 'Taruhan cepat 08',
clearPending: 'Kosongkan belum sah',
autoModeDemo: 'Demo mod auto',
stopAuto: 'Henti auto',
},
modals: {
login: {
title: TEXT_LOGIN,
},
register: {
title: TEXT_REGISTER,
},
notice: {
title: 'Notis Acara',
content:
'Bahagian ini akan memuatkan kandungan notis acara sebenar, bahan visual, dan mesej boleh skrol yang lebih panjang. Versi semasa memfokuskan sambungan modal pelbagai bahasa.',
check: TEXT_VIEW,
},
entryNotice: {
title: 'Notis Laman',
subtitle:
'Sila baca notis berikut dan sahkan sebelum memasuki permainan.',
loading: 'Memuatkan notis...',
loadFailed: 'Gagal memuatkan notis. Sila cuba lagi.',
retry: 'Muat semula',
agreement: 'Saya telah membaca dan bersetuju.',
enterGame: 'Masuk Permainan',
},
rules: {
title: 'Peraturan Permainan',
content: [
'## Panduan Peraturan 36 Zihua',
'',
'### 1. Pengenalan Permainan',
'',
'**36 Zihua** ialah permainan ramalan nombor. Dalam setiap pusingan, **1 nombor kemenangan** akan dipilih daripada **36 simbol**. Pemain memilih nombor dan membuat pertaruhan semasa peringkat pertaruhan. Jika tekaan tepat, pemain akan menerima ganjaran. Kemenangan berturut-turut boleh meningkatkan ganjaran, dan selepas mencapai peringkat jackpot, pemain juga berpeluang memenangi **Jackpot Sejuta**.',
'',
'---',
'',
'### 2. Cara Bermain',
'',
'Setiap pusingan dibahagikan kepada beberapa peringkat berikut:',
'',
'1. **Peringkat Pertaruhan**',
' Pemain memilih nombor yang ingin dipertaruhkan daripada 36 nombor, memilih cip, mengesahkan pertaruhan, dan sistem akan menolak baki serta menjana rekod pertaruhan.',
' Bilangan maksimum nombor yang boleh dipilih bagi setiap pusingan bergantung pada konfigurasi semasa sistem.',
'',
'2. **Peringkat Penutupan Pertaruhan**',
' Apabila pusingan memasuki peringkat penutupan, sistem akan berhenti menerima pertaruhan baharu.',
'',
'3. **Peringkat Cabutan dan Penyelesaian**',
' Sistem akan mengumumkan nombor kemenangan bagi pusingan tersebut dan secara automatik menyelesaikan ganjaran mengikut peraturan semasa.',
'',
'4. **Pusingan Seterusnya Bermula**',
' Selepas pusingan semasa selesai diselesaikan, sistem akan memulakan pusingan seterusnya secara automatik.',
'',
'---',
'',
'### 3. Peraturan Kemenangan',
'',
'1. Hanya **1 nombor kemenangan** akan dikeluarkan dalam setiap pusingan.',
'2. Jika nombor yang dipilih oleh pemain **mengandungi nombor kemenangan**, pertaruhan tersebut dianggap menang.',
'3. Dalam setiap pusingan, pemain hanya boleh bertaruh pada **15 nombor**, dan tidak boleh melebihi **5 nombor**.',
'4. Jika pemain memilih beberapa nombor dan jumlah pertaruhan bagi setiap nombor adalah sama, maka:',
'',
'```text',
'Nilai Pertaruhan Nombor Menang = Jumlah Pertaruhan ÷ Bilangan Nombor yang Dipilih',
'```',
'',
'**Contoh:**',
'Jika pemain memilih **5 nombor** dengan jumlah pertaruhan **💎50**, maka setiap nombor membawa nilai pertaruhan **💎10**.',
'Jika nombor kemenangan berada dalam 5 nombor tersebut, ganjaran akan dikira berdasarkan **💎10**.',
'',
'---',
'',
'### 4. Peraturan Ganjaran',
'',
'Ganjaran kemenangan berturut-turut dibahagikan kepada **dua jenis**, dan hanya satu jenis akan digunakan bagi setiap peringkat kemenangan berturut-turut:',
'',
'#### 1. Ganjaran Pekali',
'',
'Ganjaran dikira dengan mendarab nilai pertaruhan nombor menang dengan pekali odds bagi peringkat semasa:',
'',
'```text',
'Jumlah Kemenangan = Nilai Pertaruhan Nombor Menang × Pekali Odds',
'```',
'',
'#### 2. Ganjaran Tetap',
'',
'Sistem akan terus membayar jumlah tetap yang telah dikonfigurasikan, tanpa mengambil kira jumlah pertaruhan dalam pusingan semasa:',
'',
'```text',
'Jumlah Kemenangan = Jumlah Ganjaran Tetap',
'```',
'',
'#### 3. Nota Jadual Ganjaran',
'',
'Jadual ganjaran kemenangan berturut-turut semasa adalah berdasarkan konfigurasi backend sistem, dan frontend perlu memaparkannya menggunakan data konfigurasi semasa.',
'Setiap peringkat mengandungi maklumat berikut:',
'',
'- Peringkat kemenangan berturut-turut',
'- Jenis ganjaran',
'- Pekali odds',
'- Jumlah ganjaran tetap',
'- Sama ada ia peringkat jackpot',
'',
'Dengan kata lain, jadual ganjaran tidak ditulis tetap. Kandungan sebenar sentiasa mengikut konfigurasi semasa sistem.',
'',
'---',
'',
'### 5. Peraturan Kemenangan Berturut-turut',
'',
'Apabila pemain menang dalam beberapa pusingan berturut-turut, pemain akan memasuki status kemenangan berturut-turut. Semakin tinggi kemenangan berturut-turut, semakin tinggi peringkat ganjaran.',
'',
'#### 1. Peraturan Pengiraan Kemenangan Berturut-turut',
'',
'1. Selepas pemain menang, bilangan kemenangan berturut-turut akan bertambah.',
'2. Ganjaran dikira berdasarkan **peringkat kemenangan berturut-turut semasa pertaruhan dibuat**.',
'3. Jika pemain kalah dalam mana-mana pusingan, kemenangan berturut-turut akan terus direset kepada **0**.',
'4. Dalam pelaksanaan semasa, kemenangan biasa akan meneruskan kemenangan berturut-turut, tetapi jika pemain mengenai **peringkat jackpot**, kemenangan berturut-turut akan direset kepada **0** selepas penyelesaian pusingan tersebut.',
'',
'#### 2. Had Pertaruhan Semasa Kemenangan Berturut-turut Jackpot',
'',
'Apabila kemenangan berturut-turut pemain mencapai peringkat **jackpot pertama** yang ditetapkan oleh sistem, pemain akan memasuki peringkat sekatan pertaruhan jackpot.',
'',
'Peraturannya adalah seperti berikut:',
'',
'1. Dalam setiap pusingan berikutnya, **jumlah keseluruhan pertaruhan** **tidak boleh melebihi** jumlah pertaruhan bagi **pusingan pertama yang memenangi jackpot** dalam kemenangan berturut-turut semasa.',
'2. Had ini akan kekal dikunci sepanjang kemenangan berturut-turut semasa dan tidak akan berubah walaupun pemain menang jackpot lagi selepas itu.',
'3. Sebaik sahaja kemenangan berturut-turut terputus, sekatan ini akan dibuang serta-merta.',
'4. Kemenangan berturut-turut biasa sebelum mencapai peringkat jackpot tidak tertakluk kepada peraturan ini.',
'',
'{{STREAK_REWARD_TABLE}}',
'',
'---',
'',
'### 6. Jackpot Sejuta',
'',
'Apabila pemain mencapai peringkat jackpot yang dikonfigurasikan sistem melalui kemenangan berturut-turut, dan peringkat jackpot tersebut dikonfigurasikan sebagai ganjaran tetap, pemain boleh menerima Jackpot Sejuta.',
'',
'#### 1. Syarat Pencetus',
'',
'1. Pemain mesti terus menang sehingga mencapai peringkat jackpot semasa yang dikonfigurasikan oleh sistem.',
'2. Jika peringkat jackpot dikonfigurasikan sebagai **ganjaran tetap**, contohnya **💎1,000,000**, pemain akan terus menerima Jackpot Sejuta apabila mengenai peringkat tersebut.',
'3. Dalam pelaksanaan semasa, **tiada syarat pertaruhan minimum tambahan**. Selagi pemain memenuhi jumlah pertaruhan minimum yang dibenarkan oleh platform, pemain boleh menyertai kemenangan berturut-turut jackpot.',
'4. Selepas mengenai peringkat jackpot, sebaik sahaja penyelesaian selesai, kemenangan berturut-turut akan direset kepada **0**.',
'',
'#### 2. Peraturan Bayaran',
'',
'- Jika peringkat jackpot dikonfigurasikan sebagai **ganjaran tetap**, jumlah jackpot tetap yang telah dikonfigurasikan akan dibayar terus.',
'- Jika peringkat jackpot dikonfigurasikan sebagai **ganjaran pekali**, ganjaran tetap akan dikira sebagai **nilai pertaruhan nombor menang × pekali odds**, dan satu juta tetap tidak akan dibayar secara automatik.',
'',
'**Contoh:**',
'',
'- Jika peringkat jackpot dikonfigurasikan sebagai ganjaran tetap **💎1,000,000**',
'- Pemain mencapai peringkat jackpot tersebut dan menang',
'- Maka pemain akan terus menerima **💎1,000,000**',
'',
'---',
].join('\n'),
confirm: 'Saya Faham',
streakRewardTable: {
title: 'Jadual Ganjaran Kemenangan Berturut-turut',
columns: {
streak: 'Peringkat',
rewardType: 'Jenis Ganjaran',
oddsFactor: 'Odds',
fixedAmount: 'Ganjaran Tetap',
isJackpot: 'Jackpot',
},
rewardTypes: {
coefficient: 'Ganjaran Pekali',
fixed: 'Ganjaran Tetap',
},
streakValue: 'Pusingan {{streak}}',
yes: TEXT_YES,
no: TEXT_NO,
empty: 'Tiada konfigurasi ganjaran',
},
},
procedures: {
title: 'Tambah Nilai / Pengeluaran',
contentPlaceholder: 'Pilih tindakan yang ingin anda teruskan',
withdraw: 'Keluarkan',
topup: 'Tambah Nilai',
},
autoSetting: {
title: TEXT_AUTO_HOSTING,
startAutoSpin: 'Mula Putaran Auto',
rows: {
stopIfBalanceLowerThan: 'Henti jika baki lebih rendah daripada',
stopIfSingleWinExceeds: 'Henti jika kemenangan tunggal melebihi',
stopOnAnyJackpot: 'Henti pada sebarang jackpot',
},
},
userInfo: {
title: 'Maklumat Pengguna',
tabs: {
profile: 'Profil',
financeRecords: 'Rekod Tambah Nilai / Pengeluaran',
walletRecords: TEXT_WALLET_RECORDS,
message: TEXT_SITE_MESSAGES,
},
profile: {
name: 'Nama',
tel: 'Telefon',
registeredAt: 'Tarikh daftar',
copyInviteLink: 'Salin pautan jemputan',
logout: 'Log Keluar',
loggingOut: 'Sedang log keluar...',
signature:
'Tandatangan saya unik seperti personaliti saya. Bahagian ini akan memaparkan ringkasan profil sebenar kemudian.',
},
message: {
title: TEXT_SITE_MESSAGES,
back: 'Kembali',
loading: 'Memuatkan mesej...',
loadFailed: 'Gagal memuatkan mesej. Sila cuba lagi kemudian.',
empty: 'Belum ada mesej',
read: 'Sudah dibaca',
unread: 'Belum dibaca',
eventBonus:
'[Acara Bonus Tambah Nilai] Dari 1 Oktober hingga 7 Oktober 2026, tuntut ganjaran rebat anda...',
check: TEXT_VIEW,
deleteRecords: 'Padam rekod',
},
financeRecords: {
deposit: 'Rekod Tambah Nilai',
withdraw: 'Rekod Pengeluaran',
orderNo: 'No. Pesanan',
amount: 'Jumlah',
bonusAmount: 'Jumlah Bonus',
status: 'Status',
statuses: {
pending_review: 'Menunggu Semakan',
approved: 'Diluluskan',
rejected: 'Ditolak',
failed: 'Gagal',
},
loading: 'Memuatkan rekod...',
loadFailed: 'Gagal memuatkan rekod. Sila cuba lagi kemudian.',
empty: 'Belum ada rekod',
page: TEXT_PAGE_INDICATOR,
previous: TEXT_PREV_PAGE,
next: TEXT_NEXT_PAGE,
},
walletRecords: {
amount: 'Jumlah',
balanceAfter: 'Selepas',
balanceBefore: 'Sebelum',
empty: 'Belum ada rekod dompet',
loadFailed: 'Gagal memuatkan rekod dompet. Sila cuba lagi kemudian.',
loading: 'Memuatkan rekod dompet...',
next: TEXT_NEXT_PAGE,
page: TEXT_PAGE_INDICATOR,
previous: TEXT_PREV_PAGE,
remark: 'Catatan',
time: TEXT_TIME,
type: TEXT_WALLET_RECORDS,
},
},
withdrawTopup: {
applyWithdraw: 'Mohon Pengeluaran',
applyTopup: 'Mohon Tambah Nilai',
},
},
autoSpin: {
eyebrow: 'Putaran auto',
title: 'Putaran auto sedang berjalan',
description:
'Mod auto akan menutup papan sambil mengekalkan fokus sel sasaran dan kemajuan.',
runningRounds: 'Putaran auto berjalan, {{count}} pusingan selesai',
trailingLabel: 'Input manual dikunci',
},
footer: {
implementationTitle: 'Pelaksanaan semasa',
implementationSubtitle:
'Iterasi ini mengutamakan shell dwi-peranti, model dikongsi, dan sambungan logik perniagaan.',
implementationBody:
'Langkah seterusnya ialah API sebenar, WebSocket, UI store penuh, dan state machine kitaran pusingan.',
limitsTitle: 'Had meja',
limitsSubtitle: 'Diambil daripada data lobi semasa',
minBet: 'Taruhan minimum',
maxBet: 'Taruhan maksimum',
},
},
commonUi: {
actions: {
submitting: TEXT_SUBMITTING,
},
dialog: {
close: 'Tutup notifikasi',
confirm: 'OK',
no: TEXT_NO,
yes: TEXT_YES,
},
modal: {
close: 'Tutup modal',
defaultAriaLabel: 'Modal',
},
boot: {
loading: 'Memuatkan sumber',
syncing: 'Menyegerakkan dek bunga dan antara muka permainan',
},
support: {
title: 'Sokongan Langsung',
connecting: 'Menyambung ke sokongan',
},
toast: {
lobbyInitFailed: 'Gagal memuatkan lobi permainan',
loginRequired: 'Sila log masuk sebelum memasuki permainan',
loginSuccess: 'Log masuk berjaya',
logoutSuccess: 'Telah log keluar',
logoutLocalOnly:
'Permintaan log keluar gagal. Sesi tempatan telah dikosongkan.',
registerSuccess: 'Pendaftaran berjaya',
inviteLinkCopied: 'Pautan jemputan telah disalin',
inviteLinkCopyFailed:
'Gagal menyalin pautan jemputan. Sila salin secara manual.',
insufficientBalance: 'Baki tidak mencukupi. Sila laraskan taruhan.',
betLimitExceeded: TEXT_BET_LIMIT_EXCEEDED,
betUnavailable: 'Taruhan tidak tersedia untuk pusingan ini',
betPlaced: 'Taruhan berjaya dihantar',
noRecentSuccessfulBet:
'Tiada rekod taruhan berjaya untuk pusingan sebelumnya',
repeatSelectionsRestored:
'Pilihan dari pusingan berjaya terakhir telah dipulihkan',
betRejected: 'Taruhan tidak diterima',
betPlaceFailed: 'Gagal menghantar taruhan. Sila cuba lagi.',
selectNumbersBeforeAutoHosting: 'Sila pilih nombor terlebih dahulu',
autoHostingStarted: 'Putaran auto bermula',
autoHostingStopped: 'Putaran auto dihentikan',
autoHostingStoppedBalance:
'Syarat baki dicapai. Putaran auto telah dihentikan.',
autoHostingStoppedBetLimit:
'Melebihi had taruhan tunggal. Putaran auto telah dihentikan.',
autoHostingStoppedWin:
'Syarat kemenangan tunggal dicapai. Putaran auto telah dihentikan.',
autoHostingStoppedJackpot:
'Jackpot dicapai. Putaran auto telah dihentikan.',
autoHostingSubmitFailed:
'Taruhan auto-hosting gagal. Auto-hosting telah dihentikan.',
requestFailed: 'Permintaan gagal. Sila cuba lagi kemudian.',
configError: 'Ralat konfigurasi. Sila hubungi sokongan.',
},
},
auth: {
common: {
arrowIconAlt: 'Anak panah',
actions: {
submitting: TEXT_SUBMITTING,
},
passwordVisibility: {
hide: 'Sembunyikan kata laluan',
show: 'Tunjukkan kata laluan',
},
},
login: {
actions: {
submit: TEXT_LOGIN,
},
fields: {
username: {
label: TEXT_MOBILE_LABEL,
placeholder: TEXT_MOBILE_PLACEHOLDER,
},
password: {
label: TEXT_PASSWORD_LABEL,
placeholder: TEXT_PASSWORD_PLACEHOLDER,
},
},
footer: {
registerAccount: 'Daftar akaun',
forgotPassword: 'Lupa kata laluan',
},
errors: {
submitFailed: 'Log masuk gagal. Sila cuba lagi kemudian.',
invalidCredentials: 'Akaun atau kata laluan tidak betul.',
},
},
register: {
actions: {
submit: TEXT_REGISTER,
},
fields: {
mobile: {
label: TEXT_MOBILE_LABEL,
placeholder: TEXT_MOBILE_PLACEHOLDER,
},
captcha: {
label: 'Kod:',
placeholder: 'Masukkan kod pengesahan',
},
password: {
label: TEXT_PASSWORD_LABEL,
placeholder: TEXT_PASSWORD_PLACEHOLDER,
},
confirmPassword: {
label: 'Sahkan Kata Laluan:',
placeholder: 'Masukkan semula kata laluan',
},
inviteCode: {
label: 'Kod Jemputan:',
placeholder: 'Masukkan kod jemputan',
},
},
footer: {
alreadyHaveAccount: 'Sudah ada akaun',
needHelp: 'Perlukan bantuan',
},
errors: {
submitFailed: 'Pendaftaran gagal. Sila cuba lagi kemudian.',
unauthorized: 'Pendaftaran tidak dibenarkan. Sila cuba lagi kemudian.',
},
sms: {
countdown: '{{seconds}}s',
errors: {
submitFailed: 'Gagal menghantar kod. Sila cuba lagi kemudian.',
},
send: 'Dapatkan kod',
sending: TEXT_SUBMITTING,
success: 'Kod pengesahan telah dihantar.',
},
},
validation: {
captcha: {
required: 'Sila masukkan kod pengesahan.',
},
username: {
required: 'Sila masukkan nombor telefon anda.',
invalidPhone: 'Sila masukkan nombor telefon yang sah.',
},
password: {
min: 'Kata laluan mesti sekurang-kurangnya 6 aksara.',
max: 'Kata laluan mesti maksimum 32 aksara.',
},
inviteCode: {
required: 'Sila masukkan kod jemputan.',
max: 'Kod jemputan mesti maksimum 32 aksara.',
},
confirmPassword: {
mismatch: 'Kedua-dua kata laluan tidak sepadan.',
},
},
errors: {
requestFailed: 'Permintaan gagal. Sila cuba lagi kemudian.',
authTokenConfigMissing:
'Konfigurasi pengesahan tiada. Sila hubungi sokongan.',
timeout: 'Permintaan tamat masa. Sila cuba lagi kemudian.',
serviceUnavailable:
'Perkhidmatan tidak tersedia buat sementara waktu. Sila cuba lagi kemudian.',
},
},
gameDesktop: {
header: {
systemTime: 'Masa Sistem',
rules: 'Peraturan',
message: TEXT_SITE_MESSAGES,
bgm: 'BGM',
id: 'ID',
fullscreen: 'Skrin',
login: TEXT_LOGIN,
register: TEXT_REGISTER,
},
control: {
trend: 'Trend',
map: 'Peta',
selected: 'Dipilih',
totalBet: 'Jumlah Taruhan',
confirm: TEXT_CONFIRM,
selectNumbers: 'Pilih Nombor',
insufficientBalance: 'Baki Tidak Mencukupi',
betLimitExceeded: 'Melebihi Had',
submitting: TEXT_SUBMITTING,
actions: {
clear: 'Kosongkan',
repeat: 'Ulang',
'auto-spin': TEXT_AUTO_HOSTING,
},
},
status: {
odds: 'Peluang',
streak: 'Streak',
limit: 'Had',
roundId: 'Pusingan',
phase: {
betting: {
label: 'Buka',
description: '(Menerima Taruhan)',
},
locked: {
label: TEXT_LOCKED,
description: '(Taruhan Ditutup)',
},
revealing: {
label: 'Cabutan',
description: '(Mendedahkan Hasil)',
},
settled: {
label: 'Cabutan',
description: '(Pusingan Tamat)',
},
waiting: {
label: 'Menunggu',
description: '(Menunggu Pusingan Seterusnya)',
},
},
},
title: {
announcement: 'Pengumuman',
},
animal: {
insufficientBalanceRecharge: 'Baki tidak mencukupi, sila tambah nilai',
betLimitExceeded: TEXT_BET_LIMIT_EXCEEDED,
loading: 'Memuatkan',
selectionLimitReached: 'Melebihi pilihan aksara yang dibenarkan',
tapToEnter: 'Ketik Untuk Masuk',
getStart: 'Mula',
noBet: 'Belum Bertaruh',
noReward: 'Belum Menang Pusingan Ini',
selectedResult: 'Pilihan Anda',
winningResult: 'Bunga Menang',
},
history: {
title: 'Sejarah',
pending: 'PENDING',
win: 'WIN',
lost: 'LOST',
orderNo: 'No. Pesanan',
roundId: 'ID Pusingan',
numbers: 'Nombor Pertaruhan',
createdAt: TEXT_TIME,
settledAt: 'Masa Selesai',
totalPoolAmount: 'Jumlah Pertaruhan',
winningResult: 'Keputusan Menang',
payout: 'Jumlah Menang',
empty: 'Belum ada sejarah',
end: 'Tiada lagi rekod',
loading: TEXT_LOADING,
settled: TEXT_SETTLED,
},
periodHistory: {
title: 'Sejarah Keputusan Cabutan',
close: 'Tutup sejarah keputusan cabutan',
empty: 'Belum ada keputusan cabutan',
failed: 'Gagal memuatkan keputusan cabutan',
loading: TEXT_LOADING,
retry: 'Cuba lagi',
},
topup: {
title: 'Konfigurasi Tambah Nilai',
platformCoinLabel: 'Syiling Platform',
currencyLabel: TEXT_CURRENCY_TYPE,
channelLabel: TEXT_PAYMENT_CHANNEL,
rateHint:
'Kadar pertukaran hanya untuk rujukan. Jumlah akhir tertakluk kepada kadar semasa tambah nilai.',
flow: {
channelTitle: 'Pilih Saluran Pembayaran',
currencyTitle: 'Mata Wang',
methodTitle: 'Kaedah Tambah Nilai',
bankTitle: 'Bank',
bankPlaceholder: 'Pilih bank',
noBank: 'Tiada bank tersedia',
paymentMethods: {
QR: 'Kod QR',
ONLINE_DEBIT: 'Perbankan Dalam Talian',
E_WALLET: 'Dompet Elektronik',
},
},
tier: {
bonus: 'Bonus',
coins: 'Syiling Diterima',
createSuccess: 'Pesanan tambah nilai berjaya dicipta',
empty: 'Tiada tier tambah nilai',
failed: 'Gagal memuatkan tier tambah nilai',
loading: 'Memuatkan tier tambah nilai...',
missingPayUrl: 'Pautan pembayaran tiada. Sila cuba lagi kemudian.',
openPayUrlFailed:
'Gagal membuka halaman pembayaran. Semak tetapan popup pelayar anda.',
source: 'Endpoint tier tambah nilai',
title: 'Tier Tambah Nilai',
},
preview: {
title: 'Pratonton Tambah Nilai',
depositTitle: 'Pilih mata wang tambah nilai dan saluran pembayaran',
depositRate: 'Kadar Tambah Nilai ({{currency}})',
depositRateValue: '1 {{currency}} = {{coins}} {{platformCoinLabel}}',
amount: 'Contoh Kredit',
},
},
mobile: {
placeholder: 'Halaman mudah alih sedang dibina',
},
withdraw: {
availableBalance: 'Baki tersedia: {{amount}}',
currencySelection: 'Pilihan jenis mata wang',
selectCurrency: 'Pilih jenis mata wang',
referenceRateNotice:
'Kadar pertukaran hanya untuk rujukan. Jumlah akhir tertakluk kepada kadar semasa pengeluaran.',
eWallet: 'Dompet elektronik',
bank: 'Bank',
minimumAmount: 'Minimum {{currency}} {{amount}}',
processingTime: 'Masa pemprosesan',
arrivalTimeValue: 'Masuk dalam 30 saat',
notice: 'Perhatian',
feeNotice:
'Transaksi antara RM10 dan RM99.99 akan dikenakan yuran pengeluaran minimum RM 1.',
cancel: 'Batal',
confirm: TEXT_CONFIRM,
submitSuccess: 'Permohonan pengeluaran berjaya dihantar',
withdrawal: 'Pengeluaran',
fields: {
diamondAmount: 'Jumlah Berlian Pengeluaran',
currencyType: TEXT_CURRENCY_TYPE,
paymentChannel: TEXT_PAYMENT_CHANNEL,
paymentType: 'Jenis Pembayaran',
bankCode: 'Kod Bank',
cardHolderName: 'Nama Pemegang Kad',
bankAccountNumber: 'Nombor Akaun Bank',
receiverEmail: 'E-mel Penerima',
receiverPhone: 'Telefon Penerima',
},
placeholders: {
bankCode: 'Pilih kod bank',
paymentType: 'Pilih jenis pembayaran',
cardHolderName: 'Masukkan nama pemegang kad',
bankAccountNumber: 'Masukkan nombor akaun bank',
receiverEmail: 'Masukkan e-mel penerima',
receiverPhone: 'Masukkan nombor telefon penerima',
},
errors: {
amountRequired: 'Sila masukkan jumlah berlian pengeluaran.',
amountBelowMinimum:
'Jumlah pengeluaran tidak boleh kurang daripada minimum ({{currency}} {{amount}} / {{diamonds}} berlian).',
amountBelowPaymentMinimum:
'Jumlah pengeluaran tidak boleh kurang daripada minimum jenis pembayaran ini ({{amount}}).',
amountAbovePaymentMaximum:
'Jumlah pengeluaran tidak boleh melebihi maksimum jenis pembayaran ini ({{amount}}).',
bankCodeRequired: 'Sila pilih kod bank.',
bankCodeUnavailable: 'Tiada kod bank tersedia buat masa ini.',
cardHolderNameRequired: 'Sila masukkan nama pemegang kad.',
bankAccountRequired: 'Sila masukkan nombor akaun bank.',
paymentChannelRequired: 'Sila pilih saluran pembayaran.',
paymentChannelUnavailable:
'Tiada saluran pembayaran tersedia buat masa ini.',
paymentTypeRequired: 'Sila pilih jenis pembayaran.',
receiverEmailInvalid: 'Sila masukkan alamat e-mel yang sah.',
receiverPhoneInvalid: 'Sila masukkan nombor telefon yang sah.',
amountExceedsBalance:
'Jumlah pengeluaran tidak boleh melebihi baki semasa.',
},
success: {
orderNo: 'No. pesanan: {{orderNo}}',
actualArrivalCoin: 'Berlian masuk sebenar: {{amount}}',
feeCoin: 'Berlian yuran: {{amount}}',
reviewRequired: 'Semakan risiko diperlukan: {{value}}',
},
preview: {
title: 'Pratonton Pertukaran',
diamondAmount: 'Jumlah Berlian',
exchangeRate: 'Kadar Pertukaran ({{currency}})',
exchangeRateValue: '{{coins}} {{platformCoinLabel}} = 1 {{currency}}',
convertible: 'Boleh Tukar {{currency}}',
handlingFee: 'Yuran Pengendalian',
quickDiamondAmount: '{{amount}} berlian',
quickHandlingFee: 'Yuran ditolak: {{fee}}',
fixedExchangeDiamondAmount: 'Jumlah Berlian Tukaran Tetap',
},
},
},
} as const