refactor(constants): 提取常量并优化国际化配置
- 创建API相关常量文件,包括响应码、HTTP状态码、请求头等 - 将认证相关常量从auth模块提取到独立的常量文件 - 在API客户端中使用新定义的常量替换硬编码值 - 更新认证API和服务中对常量的引用 - 在国际化配置中创建统一的文案常量以减少重复 - 将认证表单验证规则改为使用常量配置
This commit is contained in:
@@ -1,3 +1,76 @@
|
||||
/* 以下为多语言中重复出现的文案,统一声明一次后在下方各 key 复用,避免同一文案多处声明。 */
|
||||
/** @description 登录的统一文案。 */
|
||||
const TEXT_LOGIN = 'Login'
|
||||
|
||||
/** @description 注册的统一文案。 */
|
||||
const TEXT_REGISTER = 'Register'
|
||||
|
||||
/** @description “是”的统一文案。 */
|
||||
const TEXT_YES = 'Yes'
|
||||
|
||||
/** @description “否”的统一文案。 */
|
||||
const TEXT_NO = 'No'
|
||||
|
||||
/** @description “查看”的统一文案。 */
|
||||
const TEXT_VIEW = 'View'
|
||||
|
||||
/** @description 自动托管的统一文案。 */
|
||||
const TEXT_AUTO_HOSTING = 'Auto Spin'
|
||||
|
||||
/** @description 钱包流水的统一文案。 */
|
||||
const TEXT_WALLET_RECORDS = 'Wallet Records'
|
||||
|
||||
/** @description 站内消息的统一文案。 */
|
||||
const TEXT_SITE_MESSAGES = 'Messages'
|
||||
|
||||
/** @description 分页“第x页/共x条”的统一文案。 */
|
||||
const TEXT_PAGE_INDICATOR = 'Page {{page}} / {{total}} total'
|
||||
|
||||
/** @description 上一页的统一文案。 */
|
||||
const TEXT_PREV_PAGE = 'Previous'
|
||||
|
||||
/** @description 下一页的统一文案。 */
|
||||
const TEXT_NEXT_PAGE = 'Next'
|
||||
|
||||
/** @description “时间”的统一文案。 */
|
||||
const TEXT_TIME = 'Time'
|
||||
|
||||
/** @description 超过单次投注限额的统一文案。 */
|
||||
const TEXT_BET_LIMIT_EXCEEDED = 'Single bet limit exceeded'
|
||||
|
||||
/** @description “提交中...”的统一文案。 */
|
||||
const TEXT_SUBMITTING = 'Submitting...'
|
||||
|
||||
/** @description 手机号字段标签的统一文案。 */
|
||||
const TEXT_MOBILE_LABEL = 'Mobile:'
|
||||
|
||||
/** @description 手机号输入占位的统一文案。 */
|
||||
const TEXT_MOBILE_PLACEHOLDER = 'Enter mobile number'
|
||||
|
||||
/** @description 密码字段标签的统一文案。 */
|
||||
const TEXT_PASSWORD_LABEL = 'Password:'
|
||||
|
||||
/** @description 密码输入占位的统一文案。 */
|
||||
const TEXT_PASSWORD_PLACEHOLDER = 'Enter password'
|
||||
|
||||
/** @description “确认”按钮的统一文案。 */
|
||||
const TEXT_CONFIRM = 'Confirm'
|
||||
|
||||
/** @description “加载中...”的统一文案。 */
|
||||
const TEXT_LOADING = 'Loading...'
|
||||
|
||||
/** @description 货币类型的统一文案。 */
|
||||
const TEXT_CURRENCY_TYPE = 'Currency Type'
|
||||
|
||||
/** @description 支付渠道的统一文案。 */
|
||||
const TEXT_PAYMENT_CHANNEL = 'Payment Channel'
|
||||
|
||||
/** @description “已封盘”的统一文案。 */
|
||||
const TEXT_LOCKED = 'Locked'
|
||||
|
||||
/** @description “已结算”的统一文案。 */
|
||||
const TEXT_SETTLED = 'Settled'
|
||||
|
||||
export default {
|
||||
nav: {
|
||||
home: 'Home',
|
||||
@@ -88,8 +161,8 @@ export default {
|
||||
},
|
||||
phases: {
|
||||
betting: 'Betting',
|
||||
locked: 'Locked',
|
||||
settled: 'Settled',
|
||||
locked: TEXT_LOCKED,
|
||||
settled: TEXT_SETTLED,
|
||||
},
|
||||
roundBettingStart: {
|
||||
title: 'Round {{roundId}}',
|
||||
@@ -99,8 +172,8 @@ export default {
|
||||
unifiedBetHint: 'Unified bet',
|
||||
totalBet: 'Total bet',
|
||||
canBet: 'Can bet',
|
||||
yes: 'Yes',
|
||||
no: 'No',
|
||||
yes: TEXT_YES,
|
||||
no: TEXT_NO,
|
||||
quickBet: 'Quick bet 08',
|
||||
clearPending: 'Clear pending',
|
||||
autoModeDemo: 'Auto mode demo',
|
||||
@@ -108,16 +181,16 @@ export default {
|
||||
},
|
||||
modals: {
|
||||
login: {
|
||||
title: 'Login',
|
||||
title: TEXT_LOGIN,
|
||||
},
|
||||
register: {
|
||||
title: 'Register',
|
||||
title: TEXT_REGISTER,
|
||||
},
|
||||
notice: {
|
||||
title: 'Event Notice',
|
||||
content:
|
||||
'This area will later load the real event announcement body, rich media, and a longer scrollable message. The current version focuses on shared multilingual modal wiring.',
|
||||
check: 'View',
|
||||
check: TEXT_VIEW,
|
||||
},
|
||||
entryNotice: {
|
||||
title: 'Site Notice',
|
||||
@@ -142,7 +215,7 @@ export default {
|
||||
topup: 'Top Up',
|
||||
},
|
||||
autoSetting: {
|
||||
title: 'Auto Spin',
|
||||
title: TEXT_AUTO_HOSTING,
|
||||
startAutoSpin: 'Start Auto Spin',
|
||||
rows: {
|
||||
stopIfBalanceLowerThan: 'Stop if balance is lower than',
|
||||
@@ -155,8 +228,8 @@ export default {
|
||||
tabs: {
|
||||
profile: 'Profile',
|
||||
financeRecords: 'Top Up / Withdraw Records',
|
||||
walletRecords: 'Wallet Records',
|
||||
message: 'Messages',
|
||||
walletRecords: TEXT_WALLET_RECORDS,
|
||||
message: TEXT_SITE_MESSAGES,
|
||||
},
|
||||
profile: {
|
||||
name: 'Name',
|
||||
@@ -169,7 +242,7 @@ export default {
|
||||
'My signature is as unique as my personality. This area will later display the real profile summary.',
|
||||
},
|
||||
message: {
|
||||
title: 'Messages',
|
||||
title: TEXT_SITE_MESSAGES,
|
||||
back: 'Back',
|
||||
loading: 'Loading messages...',
|
||||
loadFailed: 'Failed to load messages. Please try again later.',
|
||||
@@ -178,7 +251,7 @@ export default {
|
||||
unread: 'Unread',
|
||||
eventBonus:
|
||||
'[Top-up Bonus Event] From October 1 to October 7, 2026, claim your rebate rewards...',
|
||||
check: 'View',
|
||||
check: TEXT_VIEW,
|
||||
deleteRecords: 'Delete records',
|
||||
},
|
||||
financeRecords: {
|
||||
@@ -190,9 +263,9 @@ export default {
|
||||
loading: 'Loading records...',
|
||||
loadFailed: 'Failed to load records. Please try again later.',
|
||||
empty: 'No records yet',
|
||||
page: 'Page {{page}} / {{total}} total',
|
||||
previous: 'Previous',
|
||||
next: 'Next',
|
||||
page: TEXT_PAGE_INDICATOR,
|
||||
previous: TEXT_PREV_PAGE,
|
||||
next: TEXT_NEXT_PAGE,
|
||||
},
|
||||
walletRecords: {
|
||||
amount: 'Amount',
|
||||
@@ -201,12 +274,12 @@ export default {
|
||||
empty: 'No wallet records yet',
|
||||
loadFailed: 'Failed to load wallet records. Please try again later.',
|
||||
loading: 'Loading wallet records...',
|
||||
next: 'Next',
|
||||
page: 'Page {{page}} / {{total}} total',
|
||||
previous: 'Previous',
|
||||
next: TEXT_NEXT_PAGE,
|
||||
page: TEXT_PAGE_INDICATOR,
|
||||
previous: TEXT_PREV_PAGE,
|
||||
remark: 'Remark',
|
||||
time: 'Time',
|
||||
type: 'Wallet Records',
|
||||
time: TEXT_TIME,
|
||||
type: TEXT_WALLET_RECORDS,
|
||||
},
|
||||
},
|
||||
withdrawTopup: {
|
||||
@@ -238,8 +311,8 @@ export default {
|
||||
dialog: {
|
||||
close: 'Close alert',
|
||||
confirm: 'OK',
|
||||
no: 'No',
|
||||
yes: 'Yes',
|
||||
no: TEXT_NO,
|
||||
yes: TEXT_YES,
|
||||
},
|
||||
modal: {
|
||||
close: 'Close modal',
|
||||
@@ -256,7 +329,7 @@ export default {
|
||||
inviteLinkCopyFailed:
|
||||
'Failed to copy invite link. Please copy it manually.',
|
||||
insufficientBalance: 'Insufficient balance. Please adjust your bet.',
|
||||
betLimitExceeded: 'Single bet limit exceeded',
|
||||
betLimitExceeded: TEXT_BET_LIMIT_EXCEEDED,
|
||||
betUnavailable: 'Betting is not available for this round',
|
||||
betPlaced: 'Bet placed successfully',
|
||||
noRecentSuccessfulBet:
|
||||
@@ -282,7 +355,7 @@ export default {
|
||||
common: {
|
||||
arrowIconAlt: 'Arrow',
|
||||
actions: {
|
||||
submitting: 'Submitting...',
|
||||
submitting: TEXT_SUBMITTING,
|
||||
},
|
||||
passwordVisibility: {
|
||||
hide: 'Hide password',
|
||||
@@ -295,12 +368,12 @@ export default {
|
||||
},
|
||||
fields: {
|
||||
username: {
|
||||
label: 'Mobile:',
|
||||
placeholder: 'Enter mobile number',
|
||||
label: TEXT_MOBILE_LABEL,
|
||||
placeholder: TEXT_MOBILE_PLACEHOLDER,
|
||||
},
|
||||
password: {
|
||||
label: 'Password:',
|
||||
placeholder: 'Enter password',
|
||||
label: TEXT_PASSWORD_LABEL,
|
||||
placeholder: TEXT_PASSWORD_PLACEHOLDER,
|
||||
},
|
||||
},
|
||||
footer: {
|
||||
@@ -314,20 +387,20 @@ export default {
|
||||
},
|
||||
register: {
|
||||
actions: {
|
||||
submit: 'Register',
|
||||
submit: TEXT_REGISTER,
|
||||
},
|
||||
fields: {
|
||||
mobile: {
|
||||
label: 'Mobile:',
|
||||
placeholder: 'Enter mobile number',
|
||||
label: TEXT_MOBILE_LABEL,
|
||||
placeholder: TEXT_MOBILE_PLACEHOLDER,
|
||||
},
|
||||
captcha: {
|
||||
label: 'Code:',
|
||||
placeholder: 'Enter verification code',
|
||||
},
|
||||
password: {
|
||||
label: 'Password:',
|
||||
placeholder: 'Enter password',
|
||||
label: TEXT_PASSWORD_LABEL,
|
||||
placeholder: TEXT_PASSWORD_PLACEHOLDER,
|
||||
},
|
||||
confirmPassword: {
|
||||
label: 'Confirm Password:',
|
||||
@@ -393,23 +466,23 @@ export default {
|
||||
bgm: 'BGM',
|
||||
id: 'ID',
|
||||
fullscreen: 'Full Screen',
|
||||
login: 'Login',
|
||||
register: 'Register',
|
||||
login: TEXT_LOGIN,
|
||||
register: TEXT_REGISTER,
|
||||
},
|
||||
control: {
|
||||
trend: 'Trend',
|
||||
map: 'Map',
|
||||
selected: 'Selected',
|
||||
totalBet: 'Total Bet',
|
||||
confirm: 'Confirm',
|
||||
confirm: TEXT_CONFIRM,
|
||||
selectNumbers: 'Select Numbers',
|
||||
insufficientBalance: 'Insufficient Balance',
|
||||
betLimitExceeded: 'Limit Exceeded',
|
||||
submitting: 'Submitting...',
|
||||
submitting: TEXT_SUBMITTING,
|
||||
actions: {
|
||||
clear: 'Clear',
|
||||
repeat: 'Repeat',
|
||||
'auto-spin': 'Auto Spin',
|
||||
'auto-spin': TEXT_AUTO_HOSTING,
|
||||
},
|
||||
},
|
||||
status: {
|
||||
@@ -423,7 +496,7 @@ export default {
|
||||
description: '(Accepting Bets)',
|
||||
},
|
||||
locked: {
|
||||
label: 'Locked',
|
||||
label: TEXT_LOCKED,
|
||||
description: '(Betting Closed)',
|
||||
},
|
||||
revealing: {
|
||||
@@ -445,7 +518,7 @@ export default {
|
||||
},
|
||||
animal: {
|
||||
insufficientBalanceRecharge: 'Insufficient balance, please top up',
|
||||
betLimitExceeded: 'Single bet limit exceeded',
|
||||
betLimitExceeded: TEXT_BET_LIMIT_EXCEEDED,
|
||||
loading: 'Loading',
|
||||
selectionLimitReached: 'Selection limit exceeded',
|
||||
tapToEnter: 'Tap To Enter',
|
||||
@@ -460,29 +533,29 @@ export default {
|
||||
orderNo: 'Order No.',
|
||||
roundId: 'Round ID',
|
||||
numbers: 'Bet Numbers',
|
||||
createdAt: 'Time',
|
||||
createdAt: TEXT_TIME,
|
||||
settledAt: 'Settled At',
|
||||
totalPoolAmount: 'Bet Amount',
|
||||
winningResult: 'Winning Result',
|
||||
payout: 'Win Amount',
|
||||
empty: 'No history yet',
|
||||
end: 'No more records',
|
||||
loading: 'Loading...',
|
||||
settled: 'Settled',
|
||||
loading: TEXT_LOADING,
|
||||
settled: TEXT_SETTLED,
|
||||
},
|
||||
periodHistory: {
|
||||
title: 'Draw Result History',
|
||||
close: 'Close draw result history',
|
||||
empty: 'No draw results yet',
|
||||
failed: 'Failed to load draw results',
|
||||
loading: 'Loading...',
|
||||
loading: TEXT_LOADING,
|
||||
retry: 'Retry',
|
||||
},
|
||||
topup: {
|
||||
title: 'Top-up Config',
|
||||
platformCoinLabel: 'Platform Coin',
|
||||
currencyLabel: 'Currency Type',
|
||||
channelLabel: 'Payment Channel',
|
||||
currencyLabel: TEXT_CURRENCY_TYPE,
|
||||
channelLabel: TEXT_PAYMENT_CHANNEL,
|
||||
rateHint:
|
||||
'Exchange rates are for reference only. The final amount follows the top-up-time rate.',
|
||||
tier: {
|
||||
@@ -524,13 +597,13 @@ export default {
|
||||
feeNotice:
|
||||
'Transactions between RM10 and RM99.99 will be charged a minimum withdrawal fee of RM 1.',
|
||||
cancel: 'Cancel',
|
||||
confirm: 'Confirm',
|
||||
confirm: TEXT_CONFIRM,
|
||||
submitSuccess: 'Withdrawal request submitted',
|
||||
withdrawal: 'Withdrawal',
|
||||
fields: {
|
||||
diamondAmount: 'Withdrawal Diamond Amount',
|
||||
currencyType: 'Currency Type',
|
||||
paymentChannel: 'Payment Channel',
|
||||
currencyType: TEXT_CURRENCY_TYPE,
|
||||
paymentChannel: TEXT_PAYMENT_CHANNEL,
|
||||
bankCode: 'Bank Code',
|
||||
cardHolderName: 'Card Holder Name',
|
||||
bankAccountNumber: 'Bank Account Number',
|
||||
|
||||
@@ -1,3 +1,76 @@
|
||||
/* 以下为多语言中重复出现的文案,统一声明一次后在下方各 key 复用,避免同一文案多处声明。 */
|
||||
/** @description 登录的统一文案。 */
|
||||
const TEXT_LOGIN = 'Masuk'
|
||||
|
||||
/** @description 注册的统一文案。 */
|
||||
const TEXT_REGISTER = 'Daftar'
|
||||
|
||||
/** @description “是”的统一文案。 */
|
||||
const TEXT_YES = 'Ya'
|
||||
|
||||
/** @description “否”的统一文案。 */
|
||||
const TEXT_NO = 'Tidak'
|
||||
|
||||
/** @description “查看”的统一文案。 */
|
||||
const TEXT_VIEW = 'Lihat'
|
||||
|
||||
/** @description 自动托管的统一文案。 */
|
||||
const TEXT_AUTO_HOSTING = 'Auto Spin'
|
||||
|
||||
/** @description 钱包流水的统一文案。 */
|
||||
const TEXT_WALLET_RECORDS = 'Riwayat Dompet'
|
||||
|
||||
/** @description 站内消息的统一文案。 */
|
||||
const TEXT_SITE_MESSAGES = 'Pesan'
|
||||
|
||||
/** @description 分页“第x页/共x条”的统一文案。 */
|
||||
const TEXT_PAGE_INDICATOR = 'Halaman {{page}} / total {{total}}'
|
||||
|
||||
/** @description 上一页的统一文案。 */
|
||||
const TEXT_PREV_PAGE = 'Sebelumnya'
|
||||
|
||||
/** @description 下一页的统一文案。 */
|
||||
const TEXT_NEXT_PAGE = 'Berikutnya'
|
||||
|
||||
/** @description “时间”的统一文案。 */
|
||||
const TEXT_TIME = 'Waktu'
|
||||
|
||||
/** @description 超过单次投注限额的统一文案。 */
|
||||
const TEXT_BET_LIMIT_EXCEEDED = 'Melebihi batas taruhan tunggal'
|
||||
|
||||
/** @description “提交中...”的统一文案。 */
|
||||
const TEXT_SUBMITTING = 'Mengirim...'
|
||||
|
||||
/** @description 手机号字段标签的统一文案。 */
|
||||
const TEXT_MOBILE_LABEL = 'Nomor Ponsel:'
|
||||
|
||||
/** @description 手机号输入占位的统一文案。 */
|
||||
const TEXT_MOBILE_PLACEHOLDER = 'Masukkan nomor ponsel'
|
||||
|
||||
/** @description 密码字段标签的统一文案。 */
|
||||
const TEXT_PASSWORD_LABEL = 'Kata Sandi:'
|
||||
|
||||
/** @description 密码输入占位的统一文案。 */
|
||||
const TEXT_PASSWORD_PLACEHOLDER = 'Masukkan kata sandi'
|
||||
|
||||
/** @description “确认”按钮的统一文案。 */
|
||||
const TEXT_CONFIRM = 'Konfirmasi'
|
||||
|
||||
/** @description “加载中...”的统一文案。 */
|
||||
const TEXT_LOADING = 'Memuat...'
|
||||
|
||||
/** @description 货币类型的统一文案。 */
|
||||
const TEXT_CURRENCY_TYPE = 'Jenis Mata Uang'
|
||||
|
||||
/** @description 支付渠道的统一文案。 */
|
||||
const TEXT_PAYMENT_CHANNEL = 'Saluran Pembayaran'
|
||||
|
||||
/** @description “已封盘”的统一文案。 */
|
||||
const TEXT_LOCKED = 'Terkunci'
|
||||
|
||||
/** @description “已结算”的统一文案。 */
|
||||
const TEXT_SETTLED = 'Selesai'
|
||||
|
||||
export default {
|
||||
nav: {
|
||||
home: 'Beranda',
|
||||
@@ -87,8 +160,8 @@ export default {
|
||||
},
|
||||
phases: {
|
||||
betting: 'Betting',
|
||||
locked: 'Terkunci',
|
||||
settled: 'Selesai',
|
||||
locked: TEXT_LOCKED,
|
||||
settled: TEXT_SETTLED,
|
||||
},
|
||||
roundBettingStart: {
|
||||
title: 'Ronde {{roundId}}',
|
||||
@@ -98,8 +171,8 @@ export default {
|
||||
unifiedBetHint: 'Bet seragam',
|
||||
totalBet: 'Total bet',
|
||||
canBet: 'Bisa bet',
|
||||
yes: 'Ya',
|
||||
no: 'Tidak',
|
||||
yes: TEXT_YES,
|
||||
no: TEXT_NO,
|
||||
quickBet: 'Quick bet 08',
|
||||
clearPending: 'Hapus pending',
|
||||
autoModeDemo: 'Demo mode auto',
|
||||
@@ -107,16 +180,16 @@ export default {
|
||||
},
|
||||
modals: {
|
||||
login: {
|
||||
title: 'Masuk',
|
||||
title: TEXT_LOGIN,
|
||||
},
|
||||
register: {
|
||||
title: 'Daftar',
|
||||
title: TEXT_REGISTER,
|
||||
},
|
||||
notice: {
|
||||
title: 'Pengumuman Acara',
|
||||
content:
|
||||
'Bagian ini nantinya akan memuat konten pengumuman acara yang sebenarnya, materi visual, dan pesan panjang yang dapat digulir. Versi saat ini fokus pada sambungan modal multibahasa.',
|
||||
check: 'Lihat',
|
||||
check: TEXT_VIEW,
|
||||
},
|
||||
entryNotice: {
|
||||
title: 'Pengumuman Situs',
|
||||
@@ -141,7 +214,7 @@ export default {
|
||||
topup: 'Isi Ulang',
|
||||
},
|
||||
autoSetting: {
|
||||
title: 'Auto Spin',
|
||||
title: TEXT_AUTO_HOSTING,
|
||||
startAutoSpin: 'Mulai Auto Spin',
|
||||
rows: {
|
||||
stopIfBalanceLowerThan: 'Berhenti jika saldo lebih rendah dari',
|
||||
@@ -154,8 +227,8 @@ export default {
|
||||
tabs: {
|
||||
profile: 'Profil',
|
||||
financeRecords: 'Riwayat Isi Ulang / Penarikan',
|
||||
walletRecords: 'Riwayat Dompet',
|
||||
message: 'Pesan',
|
||||
walletRecords: TEXT_WALLET_RECORDS,
|
||||
message: TEXT_SITE_MESSAGES,
|
||||
},
|
||||
profile: {
|
||||
name: 'Nama',
|
||||
@@ -168,7 +241,7 @@ export default {
|
||||
'Tanda tanganku seunik diriku. Bagian ini nantinya akan menampilkan ringkasan profil yang sebenarnya.',
|
||||
},
|
||||
message: {
|
||||
title: 'Pesan',
|
||||
title: TEXT_SITE_MESSAGES,
|
||||
back: 'Kembali',
|
||||
loading: 'Memuat pesan...',
|
||||
loadFailed: 'Gagal memuat pesan. Silakan coba lagi nanti.',
|
||||
@@ -177,7 +250,7 @@ export default {
|
||||
unread: 'Belum dibaca',
|
||||
eventBonus:
|
||||
'[Event Bonus Isi Ulang] Dari 1 Oktober hingga 7 Oktober 2026, klaim hadiah rebate kamu...',
|
||||
check: 'Lihat',
|
||||
check: TEXT_VIEW,
|
||||
deleteRecords: 'Hapus riwayat',
|
||||
},
|
||||
financeRecords: {
|
||||
@@ -189,9 +262,9 @@ export default {
|
||||
loading: 'Memuat riwayat...',
|
||||
loadFailed: 'Gagal memuat riwayat. Silakan coba lagi nanti.',
|
||||
empty: 'Belum ada riwayat',
|
||||
page: 'Halaman {{page}} / total {{total}}',
|
||||
previous: 'Sebelumnya',
|
||||
next: 'Berikutnya',
|
||||
page: TEXT_PAGE_INDICATOR,
|
||||
previous: TEXT_PREV_PAGE,
|
||||
next: TEXT_NEXT_PAGE,
|
||||
},
|
||||
walletRecords: {
|
||||
amount: 'Jumlah',
|
||||
@@ -200,12 +273,12 @@ export default {
|
||||
empty: 'Belum ada riwayat dompet',
|
||||
loadFailed: 'Gagal memuat riwayat dompet. Silakan coba lagi nanti.',
|
||||
loading: 'Memuat riwayat dompet...',
|
||||
next: 'Berikutnya',
|
||||
page: 'Halaman {{page}} / total {{total}}',
|
||||
previous: 'Sebelumnya',
|
||||
next: TEXT_NEXT_PAGE,
|
||||
page: TEXT_PAGE_INDICATOR,
|
||||
previous: TEXT_PREV_PAGE,
|
||||
remark: 'Catatan',
|
||||
time: 'Waktu',
|
||||
type: 'Riwayat Dompet',
|
||||
time: TEXT_TIME,
|
||||
type: TEXT_WALLET_RECORDS,
|
||||
},
|
||||
},
|
||||
withdrawTopup: {
|
||||
@@ -237,8 +310,8 @@ export default {
|
||||
dialog: {
|
||||
close: 'Tutup notifikasi',
|
||||
confirm: 'OK',
|
||||
no: 'Tidak',
|
||||
yes: 'Ya',
|
||||
no: TEXT_NO,
|
||||
yes: TEXT_YES,
|
||||
},
|
||||
modal: {
|
||||
close: 'Tutup modal',
|
||||
@@ -255,7 +328,7 @@ export default {
|
||||
inviteLinkCopyFailed:
|
||||
'Gagal menyalin tautan undangan. Silakan salin secara manual.',
|
||||
insufficientBalance: 'Saldo tidak cukup. Silakan sesuaikan taruhan.',
|
||||
betLimitExceeded: 'Melebihi batas taruhan tunggal',
|
||||
betLimitExceeded: TEXT_BET_LIMIT_EXCEEDED,
|
||||
betUnavailable: 'Taruhan tidak tersedia untuk ronde ini',
|
||||
betPlaced: 'Taruhan berhasil dikirim',
|
||||
noRecentSuccessfulBet:
|
||||
@@ -282,7 +355,7 @@ export default {
|
||||
common: {
|
||||
arrowIconAlt: 'Panah',
|
||||
actions: {
|
||||
submitting: 'Mengirim...',
|
||||
submitting: TEXT_SUBMITTING,
|
||||
},
|
||||
passwordVisibility: {
|
||||
hide: 'Sembunyikan kata sandi',
|
||||
@@ -291,16 +364,16 @@ export default {
|
||||
},
|
||||
login: {
|
||||
actions: {
|
||||
submit: 'Masuk',
|
||||
submit: TEXT_LOGIN,
|
||||
},
|
||||
fields: {
|
||||
username: {
|
||||
label: 'Nomor Ponsel:',
|
||||
placeholder: 'Masukkan nomor ponsel',
|
||||
label: TEXT_MOBILE_LABEL,
|
||||
placeholder: TEXT_MOBILE_PLACEHOLDER,
|
||||
},
|
||||
password: {
|
||||
label: 'Kata Sandi:',
|
||||
placeholder: 'Masukkan kata sandi',
|
||||
label: TEXT_PASSWORD_LABEL,
|
||||
placeholder: TEXT_PASSWORD_PLACEHOLDER,
|
||||
},
|
||||
},
|
||||
footer: {
|
||||
@@ -314,20 +387,20 @@ export default {
|
||||
},
|
||||
register: {
|
||||
actions: {
|
||||
submit: 'Daftar',
|
||||
submit: TEXT_REGISTER,
|
||||
},
|
||||
fields: {
|
||||
mobile: {
|
||||
label: 'Nomor Ponsel:',
|
||||
placeholder: 'Masukkan nomor ponsel',
|
||||
label: TEXT_MOBILE_LABEL,
|
||||
placeholder: TEXT_MOBILE_PLACEHOLDER,
|
||||
},
|
||||
captcha: {
|
||||
label: 'Kode:',
|
||||
placeholder: 'Masukkan kode verifikasi',
|
||||
},
|
||||
password: {
|
||||
label: 'Kata Sandi:',
|
||||
placeholder: 'Masukkan kata sandi',
|
||||
label: TEXT_PASSWORD_LABEL,
|
||||
placeholder: TEXT_PASSWORD_PLACEHOLDER,
|
||||
},
|
||||
confirmPassword: {
|
||||
label: 'Konfirmasi Kata Sandi:',
|
||||
@@ -352,7 +425,7 @@ export default {
|
||||
submitFailed: 'Gagal mengirim kode. Silakan coba lagi nanti.',
|
||||
},
|
||||
send: 'Ambil kode',
|
||||
sending: 'Mengirim...',
|
||||
sending: TEXT_SUBMITTING,
|
||||
success: 'Kode verifikasi telah dikirim.',
|
||||
},
|
||||
},
|
||||
@@ -389,27 +462,27 @@ export default {
|
||||
header: {
|
||||
systemTime: 'Waktu Sistem',
|
||||
rules: 'Aturan',
|
||||
message: 'Pesan',
|
||||
message: TEXT_SITE_MESSAGES,
|
||||
bgm: 'BGM',
|
||||
id: 'ID',
|
||||
fullscreen: 'Layar',
|
||||
login: 'Masuk',
|
||||
register: 'Daftar',
|
||||
login: TEXT_LOGIN,
|
||||
register: TEXT_REGISTER,
|
||||
},
|
||||
control: {
|
||||
trend: 'Tren',
|
||||
map: 'Peta',
|
||||
selected: 'Dipilih',
|
||||
totalBet: 'Total Bet',
|
||||
confirm: 'Konfirmasi',
|
||||
confirm: TEXT_CONFIRM,
|
||||
selectNumbers: 'Pilih Nombor',
|
||||
insufficientBalance: 'Saldo Tidak Cukup',
|
||||
betLimitExceeded: 'Batas Terlampaui',
|
||||
submitting: 'Mengirim...',
|
||||
submitting: TEXT_SUBMITTING,
|
||||
actions: {
|
||||
clear: 'Hapus',
|
||||
repeat: 'Ulang',
|
||||
'auto-spin': 'Auto Spin',
|
||||
'auto-spin': TEXT_AUTO_HOSTING,
|
||||
},
|
||||
},
|
||||
status: {
|
||||
@@ -423,7 +496,7 @@ export default {
|
||||
description: '(Menerima Bet)',
|
||||
},
|
||||
locked: {
|
||||
label: 'Terkunci',
|
||||
label: TEXT_LOCKED,
|
||||
description: '(Bet Ditutup)',
|
||||
},
|
||||
revealing: {
|
||||
@@ -445,7 +518,7 @@ export default {
|
||||
},
|
||||
animal: {
|
||||
insufficientBalanceRecharge: 'Saldo tidak cukup, silakan isi ulang',
|
||||
betLimitExceeded: 'Melebihi batas taruhan tunggal',
|
||||
betLimitExceeded: TEXT_BET_LIMIT_EXCEEDED,
|
||||
loading: 'Memuat',
|
||||
selectionLimitReached: 'Melebihi pilihan yang diizinkan',
|
||||
tapToEnter: 'Ketuk Untuk Masuk',
|
||||
@@ -460,29 +533,29 @@ export default {
|
||||
orderNo: 'No. Order',
|
||||
roundId: 'ID Ronde',
|
||||
numbers: 'Nomor Taruhan',
|
||||
createdAt: 'Waktu',
|
||||
createdAt: TEXT_TIME,
|
||||
settledAt: 'Waktu Selesai',
|
||||
totalPoolAmount: 'Jumlah Taruhan',
|
||||
winningResult: 'Hasil Menang',
|
||||
payout: 'Jumlah Menang',
|
||||
empty: 'Belum ada riwayat',
|
||||
end: 'Tidak ada catatan lagi',
|
||||
loading: 'Memuat...',
|
||||
settled: 'Selesai',
|
||||
loading: TEXT_LOADING,
|
||||
settled: TEXT_SETTLED,
|
||||
},
|
||||
periodHistory: {
|
||||
title: 'Riwayat Hasil Undian',
|
||||
close: 'Tutup riwayat hasil undian',
|
||||
empty: 'Belum ada hasil undian',
|
||||
failed: 'Gagal memuat hasil undian',
|
||||
loading: 'Memuat...',
|
||||
loading: TEXT_LOADING,
|
||||
retry: 'Coba lagi',
|
||||
},
|
||||
topup: {
|
||||
title: 'Konfigurasi Isi Ulang',
|
||||
platformCoinLabel: 'Koin Platform',
|
||||
currencyLabel: 'Jenis Mata Uang',
|
||||
channelLabel: 'Saluran Pembayaran',
|
||||
currencyLabel: TEXT_CURRENCY_TYPE,
|
||||
channelLabel: TEXT_PAYMENT_CHANNEL,
|
||||
rateHint:
|
||||
'Kurs hanya sebagai referensi. Jumlah akhir mengikuti kurs saat isi ulang.',
|
||||
tier: {
|
||||
@@ -525,13 +598,13 @@ export default {
|
||||
feeNotice:
|
||||
'Transaksi antara RM10 dan RM99.99 akan dikenakan biaya penarikan minimum RM 1.',
|
||||
cancel: 'Batal',
|
||||
confirm: 'Konfirmasi',
|
||||
confirm: TEXT_CONFIRM,
|
||||
submitSuccess: 'Permintaan penarikan berhasil dikirim',
|
||||
withdrawal: 'Penarikan',
|
||||
fields: {
|
||||
diamondAmount: 'Jumlah Berlian Penarikan',
|
||||
currencyType: 'Jenis Mata Uang',
|
||||
paymentChannel: 'Saluran Pembayaran',
|
||||
currencyType: TEXT_CURRENCY_TYPE,
|
||||
paymentChannel: TEXT_PAYMENT_CHANNEL,
|
||||
bankCode: 'Kode Bank',
|
||||
cardHolderName: 'Nama Pemilik Rekening',
|
||||
bankAccountNumber: 'Nomor Rekening Bank',
|
||||
|
||||
@@ -1,3 +1,76 @@
|
||||
/* 以下为多语言中重复出现的文案,统一声明一次后在下方各 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',
|
||||
@@ -90,8 +163,8 @@ export default {
|
||||
},
|
||||
phases: {
|
||||
betting: 'Taruhan',
|
||||
locked: 'Dikunci',
|
||||
settled: 'Selesai',
|
||||
locked: TEXT_LOCKED,
|
||||
settled: TEXT_SETTLED,
|
||||
},
|
||||
roundBettingStart: {
|
||||
title: 'Pusingan {{roundId}}',
|
||||
@@ -101,8 +174,8 @@ export default {
|
||||
unifiedBetHint: 'Taruhan seragam',
|
||||
totalBet: 'Jumlah taruhan',
|
||||
canBet: 'Boleh taruhan',
|
||||
yes: 'Ya',
|
||||
no: 'Tidak',
|
||||
yes: TEXT_YES,
|
||||
no: TEXT_NO,
|
||||
quickBet: 'Taruhan cepat 08',
|
||||
clearPending: 'Kosongkan belum sah',
|
||||
autoModeDemo: 'Demo mod auto',
|
||||
@@ -110,16 +183,16 @@ export default {
|
||||
},
|
||||
modals: {
|
||||
login: {
|
||||
title: 'Log Masuk',
|
||||
title: TEXT_LOGIN,
|
||||
},
|
||||
register: {
|
||||
title: 'Daftar',
|
||||
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: 'Semak',
|
||||
check: TEXT_VIEW,
|
||||
},
|
||||
entryNotice: {
|
||||
title: 'Notis Laman',
|
||||
@@ -144,7 +217,7 @@ export default {
|
||||
topup: 'Tambah Nilai',
|
||||
},
|
||||
autoSetting: {
|
||||
title: 'Putaran Auto',
|
||||
title: TEXT_AUTO_HOSTING,
|
||||
startAutoSpin: 'Mula Putaran Auto',
|
||||
rows: {
|
||||
stopIfBalanceLowerThan: 'Henti jika baki lebih rendah daripada',
|
||||
@@ -157,8 +230,8 @@ export default {
|
||||
tabs: {
|
||||
profile: 'Profil',
|
||||
financeRecords: 'Rekod Tambah Nilai / Pengeluaran',
|
||||
walletRecords: 'Rekod Dompet',
|
||||
message: 'Mesej',
|
||||
walletRecords: TEXT_WALLET_RECORDS,
|
||||
message: TEXT_SITE_MESSAGES,
|
||||
},
|
||||
profile: {
|
||||
name: 'Nama',
|
||||
@@ -171,7 +244,7 @@ export default {
|
||||
'Tandatangan saya unik seperti personaliti saya. Bahagian ini akan memaparkan ringkasan profil sebenar kemudian.',
|
||||
},
|
||||
message: {
|
||||
title: 'Mesej',
|
||||
title: TEXT_SITE_MESSAGES,
|
||||
back: 'Kembali',
|
||||
loading: 'Memuatkan mesej...',
|
||||
loadFailed: 'Gagal memuatkan mesej. Sila cuba lagi kemudian.',
|
||||
@@ -180,7 +253,7 @@ export default {
|
||||
unread: 'Belum dibaca',
|
||||
eventBonus:
|
||||
'[Acara Bonus Tambah Nilai] Dari 1 Oktober hingga 7 Oktober 2026, tuntut ganjaran rebat anda...',
|
||||
check: 'Semak',
|
||||
check: TEXT_VIEW,
|
||||
deleteRecords: 'Padam rekod',
|
||||
},
|
||||
financeRecords: {
|
||||
@@ -192,9 +265,9 @@ export default {
|
||||
loading: 'Memuatkan rekod...',
|
||||
loadFailed: 'Gagal memuatkan rekod. Sila cuba lagi kemudian.',
|
||||
empty: 'Belum ada rekod',
|
||||
page: 'Halaman {{page}} / jumlah {{total}}',
|
||||
previous: 'Sebelumnya',
|
||||
next: 'Seterusnya',
|
||||
page: TEXT_PAGE_INDICATOR,
|
||||
previous: TEXT_PREV_PAGE,
|
||||
next: TEXT_NEXT_PAGE,
|
||||
},
|
||||
walletRecords: {
|
||||
amount: 'Jumlah',
|
||||
@@ -203,12 +276,12 @@ export default {
|
||||
empty: 'Belum ada rekod dompet',
|
||||
loadFailed: 'Gagal memuatkan rekod dompet. Sila cuba lagi kemudian.',
|
||||
loading: 'Memuatkan rekod dompet...',
|
||||
next: 'Seterusnya',
|
||||
page: 'Halaman {{page}} / jumlah {{total}}',
|
||||
previous: 'Sebelumnya',
|
||||
next: TEXT_NEXT_PAGE,
|
||||
page: TEXT_PAGE_INDICATOR,
|
||||
previous: TEXT_PREV_PAGE,
|
||||
remark: 'Catatan',
|
||||
time: 'Masa',
|
||||
type: 'Rekod Dompet',
|
||||
time: TEXT_TIME,
|
||||
type: TEXT_WALLET_RECORDS,
|
||||
},
|
||||
},
|
||||
withdrawTopup: {
|
||||
@@ -240,8 +313,8 @@ export default {
|
||||
dialog: {
|
||||
close: 'Tutup notifikasi',
|
||||
confirm: 'OK',
|
||||
no: 'Tidak',
|
||||
yes: 'Ya',
|
||||
no: TEXT_NO,
|
||||
yes: TEXT_YES,
|
||||
},
|
||||
modal: {
|
||||
close: 'Tutup modal',
|
||||
@@ -259,7 +332,7 @@ export default {
|
||||
inviteLinkCopyFailed:
|
||||
'Gagal menyalin pautan jemputan. Sila salin secara manual.',
|
||||
insufficientBalance: 'Baki tidak mencukupi. Sila laraskan taruhan.',
|
||||
betLimitExceeded: 'Melebihi had taruhan tunggal',
|
||||
betLimitExceeded: TEXT_BET_LIMIT_EXCEEDED,
|
||||
betUnavailable: 'Taruhan tidak tersedia untuk pusingan ini',
|
||||
betPlaced: 'Taruhan berjaya dihantar',
|
||||
noRecentSuccessfulBet:
|
||||
@@ -287,7 +360,7 @@ export default {
|
||||
common: {
|
||||
arrowIconAlt: 'Anak panah',
|
||||
actions: {
|
||||
submitting: 'Menghantar...',
|
||||
submitting: TEXT_SUBMITTING,
|
||||
},
|
||||
passwordVisibility: {
|
||||
hide: 'Sembunyikan kata laluan',
|
||||
@@ -296,16 +369,16 @@ export default {
|
||||
},
|
||||
login: {
|
||||
actions: {
|
||||
submit: 'Log Masuk',
|
||||
submit: TEXT_LOGIN,
|
||||
},
|
||||
fields: {
|
||||
username: {
|
||||
label: 'Nombor Telefon:',
|
||||
placeholder: 'Masukkan nombor telefon',
|
||||
label: TEXT_MOBILE_LABEL,
|
||||
placeholder: TEXT_MOBILE_PLACEHOLDER,
|
||||
},
|
||||
password: {
|
||||
label: 'Kata Laluan:',
|
||||
placeholder: 'Masukkan kata laluan',
|
||||
label: TEXT_PASSWORD_LABEL,
|
||||
placeholder: TEXT_PASSWORD_PLACEHOLDER,
|
||||
},
|
||||
},
|
||||
footer: {
|
||||
@@ -319,20 +392,20 @@ export default {
|
||||
},
|
||||
register: {
|
||||
actions: {
|
||||
submit: 'Daftar',
|
||||
submit: TEXT_REGISTER,
|
||||
},
|
||||
fields: {
|
||||
mobile: {
|
||||
label: 'Nombor Telefon:',
|
||||
placeholder: 'Masukkan nombor telefon',
|
||||
label: TEXT_MOBILE_LABEL,
|
||||
placeholder: TEXT_MOBILE_PLACEHOLDER,
|
||||
},
|
||||
captcha: {
|
||||
label: 'Kod:',
|
||||
placeholder: 'Masukkan kod pengesahan',
|
||||
},
|
||||
password: {
|
||||
label: 'Kata Laluan:',
|
||||
placeholder: 'Masukkan kata laluan',
|
||||
label: TEXT_PASSWORD_LABEL,
|
||||
placeholder: TEXT_PASSWORD_PLACEHOLDER,
|
||||
},
|
||||
confirmPassword: {
|
||||
label: 'Sahkan Kata Laluan:',
|
||||
@@ -357,7 +430,7 @@ export default {
|
||||
submitFailed: 'Gagal menghantar kod. Sila cuba lagi kemudian.',
|
||||
},
|
||||
send: 'Dapatkan kod',
|
||||
sending: 'Menghantar...',
|
||||
sending: TEXT_SUBMITTING,
|
||||
success: 'Kod pengesahan telah dihantar.',
|
||||
},
|
||||
},
|
||||
@@ -394,27 +467,27 @@ export default {
|
||||
header: {
|
||||
systemTime: 'Masa Sistem',
|
||||
rules: 'Peraturan',
|
||||
message: 'Mesej',
|
||||
message: TEXT_SITE_MESSAGES,
|
||||
bgm: 'BGM',
|
||||
id: 'ID',
|
||||
fullscreen: 'Skrin',
|
||||
login: 'Log Masuk',
|
||||
register: 'Daftar',
|
||||
login: TEXT_LOGIN,
|
||||
register: TEXT_REGISTER,
|
||||
},
|
||||
control: {
|
||||
trend: 'Trend',
|
||||
map: 'Peta',
|
||||
selected: 'Dipilih',
|
||||
totalBet: 'Jumlah Taruhan',
|
||||
confirm: 'Sahkan',
|
||||
confirm: TEXT_CONFIRM,
|
||||
selectNumbers: 'Pilih Nombor',
|
||||
insufficientBalance: 'Baki Tidak Mencukupi',
|
||||
betLimitExceeded: 'Melebihi Had',
|
||||
submitting: 'Menghantar...',
|
||||
submitting: TEXT_SUBMITTING,
|
||||
actions: {
|
||||
clear: 'Kosongkan',
|
||||
repeat: 'Ulang',
|
||||
'auto-spin': 'Putaran Auto',
|
||||
'auto-spin': TEXT_AUTO_HOSTING,
|
||||
},
|
||||
},
|
||||
status: {
|
||||
@@ -428,7 +501,7 @@ export default {
|
||||
description: '(Menerima Taruhan)',
|
||||
},
|
||||
locked: {
|
||||
label: 'Dikunci',
|
||||
label: TEXT_LOCKED,
|
||||
description: '(Taruhan Ditutup)',
|
||||
},
|
||||
revealing: {
|
||||
@@ -450,7 +523,7 @@ export default {
|
||||
},
|
||||
animal: {
|
||||
insufficientBalanceRecharge: 'Baki tidak mencukupi, sila tambah nilai',
|
||||
betLimitExceeded: 'Melebihi had taruhan tunggal',
|
||||
betLimitExceeded: TEXT_BET_LIMIT_EXCEEDED,
|
||||
loading: 'Memuatkan',
|
||||
selectionLimitReached: 'Melebihi pilihan aksara yang dibenarkan',
|
||||
tapToEnter: 'Ketik Untuk Masuk',
|
||||
@@ -465,29 +538,29 @@ export default {
|
||||
orderNo: 'No. Pesanan',
|
||||
roundId: 'ID Pusingan',
|
||||
numbers: 'Nombor Pertaruhan',
|
||||
createdAt: 'Masa',
|
||||
createdAt: TEXT_TIME,
|
||||
settledAt: 'Masa Selesai',
|
||||
totalPoolAmount: 'Jumlah Pertaruhan',
|
||||
winningResult: 'Keputusan Menang',
|
||||
payout: 'Jumlah Menang',
|
||||
empty: 'Belum ada sejarah',
|
||||
end: 'Tiada lagi rekod',
|
||||
loading: 'Memuatkan...',
|
||||
settled: 'Selesai',
|
||||
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: 'Memuatkan...',
|
||||
loading: TEXT_LOADING,
|
||||
retry: 'Cuba lagi',
|
||||
},
|
||||
topup: {
|
||||
title: 'Konfigurasi Tambah Nilai',
|
||||
platformCoinLabel: 'Syiling Platform',
|
||||
currencyLabel: 'Jenis Mata Wang',
|
||||
channelLabel: 'Saluran Pembayaran',
|
||||
currencyLabel: TEXT_CURRENCY_TYPE,
|
||||
channelLabel: TEXT_PAYMENT_CHANNEL,
|
||||
rateHint:
|
||||
'Kadar pertukaran hanya untuk rujukan. Jumlah akhir tertakluk kepada kadar semasa tambah nilai.',
|
||||
tier: {
|
||||
@@ -529,13 +602,13 @@ export default {
|
||||
feeNotice:
|
||||
'Transaksi antara RM10 dan RM99.99 akan dikenakan yuran pengeluaran minimum RM 1.',
|
||||
cancel: 'Batal',
|
||||
confirm: 'Sahkan',
|
||||
confirm: TEXT_CONFIRM,
|
||||
submitSuccess: 'Permohonan pengeluaran telah dihantar',
|
||||
withdrawal: 'Pengeluaran',
|
||||
fields: {
|
||||
diamondAmount: 'Jumlah Berlian Pengeluaran',
|
||||
currencyType: 'Jenis Mata Wang',
|
||||
paymentChannel: 'Saluran Pembayaran',
|
||||
currencyType: TEXT_CURRENCY_TYPE,
|
||||
paymentChannel: TEXT_PAYMENT_CHANNEL,
|
||||
bankCode: 'Kod Bank',
|
||||
cardHolderName: 'Nama Pemegang Kad',
|
||||
bankAccountNumber: 'Nombor Akaun Bank',
|
||||
|
||||
@@ -1,3 +1,76 @@
|
||||
/* 以下为多语言中重复出现的文案,统一声明一次后在下方各 key 复用,避免同一文案多处声明。 */
|
||||
/** @description 登录的统一文案。 */
|
||||
const TEXT_LOGIN = '登录'
|
||||
|
||||
/** @description 注册的统一文案。 */
|
||||
const TEXT_REGISTER = '注册'
|
||||
|
||||
/** @description “是”的统一文案。 */
|
||||
const TEXT_YES = '是'
|
||||
|
||||
/** @description “否”的统一文案。 */
|
||||
const TEXT_NO = '否'
|
||||
|
||||
/** @description “查看”的统一文案。 */
|
||||
const TEXT_VIEW = '查看'
|
||||
|
||||
/** @description 自动托管的统一文案。 */
|
||||
const TEXT_AUTO_HOSTING = '自动托管'
|
||||
|
||||
/** @description 钱包流水的统一文案。 */
|
||||
const TEXT_WALLET_RECORDS = '钱包流水'
|
||||
|
||||
/** @description 站内消息的统一文案。 */
|
||||
const TEXT_SITE_MESSAGES = '站内消息'
|
||||
|
||||
/** @description 分页“第x页/共x条”的统一文案。 */
|
||||
const TEXT_PAGE_INDICATOR = '第 {{page}} 页 / 共 {{total}} 条'
|
||||
|
||||
/** @description 上一页的统一文案。 */
|
||||
const TEXT_PREV_PAGE = '上一页'
|
||||
|
||||
/** @description 下一页的统一文案。 */
|
||||
const TEXT_NEXT_PAGE = '下一页'
|
||||
|
||||
/** @description “时间”的统一文案。 */
|
||||
const TEXT_TIME = '时间'
|
||||
|
||||
/** @description 超过单次投注限额的统一文案。 */
|
||||
const TEXT_BET_LIMIT_EXCEEDED = '超过单次投注限额'
|
||||
|
||||
/** @description “提交中...”的统一文案。 */
|
||||
const TEXT_SUBMITTING = '提交中...'
|
||||
|
||||
/** @description 手机号字段标签的统一文案。 */
|
||||
const TEXT_MOBILE_LABEL = '手机号:'
|
||||
|
||||
/** @description 手机号输入占位的统一文案。 */
|
||||
const TEXT_MOBILE_PLACEHOLDER = '请输入手机号'
|
||||
|
||||
/** @description 密码字段标签的统一文案。 */
|
||||
const TEXT_PASSWORD_LABEL = '密码:'
|
||||
|
||||
/** @description 密码输入占位的统一文案。 */
|
||||
const TEXT_PASSWORD_PLACEHOLDER = '请输入密码'
|
||||
|
||||
/** @description “确认”按钮的统一文案。 */
|
||||
const TEXT_CONFIRM = '确认'
|
||||
|
||||
/** @description “加载中...”的统一文案。 */
|
||||
const TEXT_LOADING = '加载中...'
|
||||
|
||||
/** @description 货币类型的统一文案。 */
|
||||
const TEXT_CURRENCY_TYPE = '货币类型'
|
||||
|
||||
/** @description 支付渠道的统一文案。 */
|
||||
const TEXT_PAYMENT_CHANNEL = '支付渠道'
|
||||
|
||||
/** @description “已封盘”的统一文案。 */
|
||||
const TEXT_LOCKED = '已封盘'
|
||||
|
||||
/** @description “已结算”的统一文案。 */
|
||||
const TEXT_SETTLED = '已结算'
|
||||
|
||||
export default {
|
||||
nav: {
|
||||
home: '首页',
|
||||
@@ -86,8 +159,8 @@ export default {
|
||||
},
|
||||
phases: {
|
||||
betting: '下注中',
|
||||
locked: '已封盘',
|
||||
settled: '已结算',
|
||||
locked: TEXT_LOCKED,
|
||||
settled: TEXT_SETTLED,
|
||||
},
|
||||
roundBettingStart: {
|
||||
title: '{{roundId}}期',
|
||||
@@ -97,8 +170,8 @@ export default {
|
||||
unifiedBetHint: '统一下注额',
|
||||
totalBet: '总下注',
|
||||
canBet: '可下注',
|
||||
yes: '是',
|
||||
no: '否',
|
||||
yes: TEXT_YES,
|
||||
no: TEXT_NO,
|
||||
quickBet: '快速选中 08',
|
||||
clearPending: '清空未确认',
|
||||
autoModeDemo: '自动托管演示',
|
||||
@@ -106,16 +179,16 @@ export default {
|
||||
},
|
||||
modals: {
|
||||
login: {
|
||||
title: '登录',
|
||||
title: TEXT_LOGIN,
|
||||
},
|
||||
register: {
|
||||
title: '注册',
|
||||
title: TEXT_REGISTER,
|
||||
},
|
||||
notice: {
|
||||
title: '活动公告',
|
||||
content:
|
||||
'这里后续将接入真实的活动公告内容、图文素材和滚动阅读区域。当前版本先用多语言结构完成桌面端公告弹窗能力。',
|
||||
check: '查看',
|
||||
check: TEXT_VIEW,
|
||||
},
|
||||
entryNotice: {
|
||||
title: '网站公告',
|
||||
@@ -139,7 +212,7 @@ export default {
|
||||
topup: '充值',
|
||||
},
|
||||
autoSetting: {
|
||||
title: '自动托管',
|
||||
title: TEXT_AUTO_HOSTING,
|
||||
startAutoSpin: '开始自动托管',
|
||||
rows: {
|
||||
stopIfBalanceLowerThan: '余额低于时停止',
|
||||
@@ -152,8 +225,8 @@ export default {
|
||||
tabs: {
|
||||
profile: '个人信息',
|
||||
financeRecords: '充值/提现记录',
|
||||
walletRecords: '钱包流水',
|
||||
message: '站内消息',
|
||||
walletRecords: TEXT_WALLET_RECORDS,
|
||||
message: TEXT_SITE_MESSAGES,
|
||||
},
|
||||
profile: {
|
||||
name: '用户名',
|
||||
@@ -165,7 +238,7 @@ export default {
|
||||
signature: '我的个性签名和灵魂一样独特,后续这里会接真实资料字段。',
|
||||
},
|
||||
message: {
|
||||
title: '站内消息',
|
||||
title: TEXT_SITE_MESSAGES,
|
||||
back: '返回',
|
||||
loading: '消息加载中...',
|
||||
loadFailed: '消息加载失败,请稍后重试',
|
||||
@@ -173,7 +246,7 @@ export default {
|
||||
read: '已读',
|
||||
unread: '未读',
|
||||
eventBonus: '[充值活动] 10 月 1 日至 10 月 7 日期间可获得返利奖励……',
|
||||
check: '查看',
|
||||
check: TEXT_VIEW,
|
||||
deleteRecords: '删除记录',
|
||||
},
|
||||
financeRecords: {
|
||||
@@ -185,9 +258,9 @@ export default {
|
||||
loading: '记录加载中...',
|
||||
loadFailed: '记录加载失败,请稍后重试',
|
||||
empty: '暂无记录',
|
||||
page: '第 {{page}} 页 / 共 {{total}} 条',
|
||||
previous: '上一页',
|
||||
next: '下一页',
|
||||
page: TEXT_PAGE_INDICATOR,
|
||||
previous: TEXT_PREV_PAGE,
|
||||
next: TEXT_NEXT_PAGE,
|
||||
},
|
||||
walletRecords: {
|
||||
amount: '变动金额',
|
||||
@@ -196,12 +269,12 @@ export default {
|
||||
empty: '暂无钱包流水',
|
||||
loadFailed: '钱包流水加载失败,请稍后重试',
|
||||
loading: '钱包流水加载中...',
|
||||
next: '下一页',
|
||||
page: '第 {{page}} 页 / 共 {{total}} 条',
|
||||
previous: '上一页',
|
||||
next: TEXT_NEXT_PAGE,
|
||||
page: TEXT_PAGE_INDICATOR,
|
||||
previous: TEXT_PREV_PAGE,
|
||||
remark: '备注',
|
||||
time: '时间',
|
||||
type: '钱包流水',
|
||||
time: TEXT_TIME,
|
||||
type: TEXT_WALLET_RECORDS,
|
||||
},
|
||||
},
|
||||
withdrawTopup: {
|
||||
@@ -210,7 +283,7 @@ export default {
|
||||
},
|
||||
},
|
||||
autoSpin: {
|
||||
eyebrow: '自动托管',
|
||||
eyebrow: TEXT_AUTO_HOSTING,
|
||||
title: '自动托管运行中',
|
||||
description: '托管态会覆盖主盘面,但目标格子和进度信息仍然保留可见。',
|
||||
runningRounds: '游戏托管中,已经进行 {{count}} 局',
|
||||
@@ -232,8 +305,8 @@ export default {
|
||||
dialog: {
|
||||
close: '关闭提示',
|
||||
confirm: '知道了',
|
||||
no: '否',
|
||||
yes: '是',
|
||||
no: TEXT_NO,
|
||||
yes: TEXT_YES,
|
||||
},
|
||||
modal: {
|
||||
close: '关闭弹窗',
|
||||
@@ -249,7 +322,7 @@ export default {
|
||||
inviteLinkCopied: '邀请链接已复制',
|
||||
inviteLinkCopyFailed: '邀请链接复制失败,请手动复制',
|
||||
insufficientBalance: '余额不足,请调整下注金额',
|
||||
betLimitExceeded: '超过单次投注限额',
|
||||
betLimitExceeded: TEXT_BET_LIMIT_EXCEEDED,
|
||||
betUnavailable: '当前期不可下注',
|
||||
betPlaced: '下注成功',
|
||||
noRecentSuccessfulBet: '暂无上一局成功下注记录',
|
||||
@@ -270,7 +343,7 @@ export default {
|
||||
common: {
|
||||
arrowIconAlt: '箭头',
|
||||
actions: {
|
||||
submitting: '提交中...',
|
||||
submitting: TEXT_SUBMITTING,
|
||||
},
|
||||
passwordVisibility: {
|
||||
hide: '隐藏密码',
|
||||
@@ -279,16 +352,16 @@ export default {
|
||||
},
|
||||
login: {
|
||||
actions: {
|
||||
submit: '登录',
|
||||
submit: TEXT_LOGIN,
|
||||
},
|
||||
fields: {
|
||||
username: {
|
||||
label: '手机号:',
|
||||
placeholder: '请输入手机号',
|
||||
label: TEXT_MOBILE_LABEL,
|
||||
placeholder: TEXT_MOBILE_PLACEHOLDER,
|
||||
},
|
||||
password: {
|
||||
label: '密码:',
|
||||
placeholder: '请输入密码',
|
||||
label: TEXT_PASSWORD_LABEL,
|
||||
placeholder: TEXT_PASSWORD_PLACEHOLDER,
|
||||
},
|
||||
},
|
||||
footer: {
|
||||
@@ -302,20 +375,20 @@ export default {
|
||||
},
|
||||
register: {
|
||||
actions: {
|
||||
submit: '注册',
|
||||
submit: TEXT_REGISTER,
|
||||
},
|
||||
fields: {
|
||||
mobile: {
|
||||
label: '手机号:',
|
||||
placeholder: '请输入手机号',
|
||||
label: TEXT_MOBILE_LABEL,
|
||||
placeholder: TEXT_MOBILE_PLACEHOLDER,
|
||||
},
|
||||
captcha: {
|
||||
label: '验证码:',
|
||||
placeholder: '请输入验证码',
|
||||
},
|
||||
password: {
|
||||
label: '密码:',
|
||||
placeholder: '请输入密码',
|
||||
label: TEXT_PASSWORD_LABEL,
|
||||
placeholder: TEXT_PASSWORD_PLACEHOLDER,
|
||||
},
|
||||
confirmPassword: {
|
||||
label: '确认密码:',
|
||||
@@ -349,7 +422,7 @@ export default {
|
||||
required: '请输入验证码',
|
||||
},
|
||||
username: {
|
||||
required: '请输入手机号',
|
||||
required: TEXT_MOBILE_PLACEHOLDER,
|
||||
invalidPhone: '请输入正确的手机号',
|
||||
},
|
||||
password: {
|
||||
@@ -379,23 +452,23 @@ export default {
|
||||
bgm: '音乐',
|
||||
id: '编号',
|
||||
fullscreen: '全屏',
|
||||
login: '登录',
|
||||
register: '注册',
|
||||
login: TEXT_LOGIN,
|
||||
register: TEXT_REGISTER,
|
||||
},
|
||||
control: {
|
||||
trend: '走势',
|
||||
map: '地图',
|
||||
selected: '已选',
|
||||
totalBet: '总下注',
|
||||
confirm: '确认',
|
||||
confirm: TEXT_CONFIRM,
|
||||
selectNumbers: '请选择号码',
|
||||
insufficientBalance: '余额不足',
|
||||
betLimitExceeded: '超过限额',
|
||||
submitting: '提交中...',
|
||||
submitting: TEXT_SUBMITTING,
|
||||
actions: {
|
||||
clear: '清空',
|
||||
repeat: '重复',
|
||||
'auto-spin': '自动托管',
|
||||
'auto-spin': TEXT_AUTO_HOSTING,
|
||||
},
|
||||
},
|
||||
status: {
|
||||
@@ -409,7 +482,7 @@ export default {
|
||||
description: '(接受下注)',
|
||||
},
|
||||
locked: {
|
||||
label: '已封盘',
|
||||
label: TEXT_LOCKED,
|
||||
description: '(停止下注)',
|
||||
},
|
||||
revealing: {
|
||||
@@ -431,7 +504,7 @@ export default {
|
||||
},
|
||||
animal: {
|
||||
insufficientBalanceRecharge: '余额不足,请充值',
|
||||
betLimitExceeded: '超过单次投注限额',
|
||||
betLimitExceeded: TEXT_BET_LIMIT_EXCEEDED,
|
||||
loading: '加载中',
|
||||
selectionLimitReached: '超过可选择字花',
|
||||
tapToEnter: '点击进入',
|
||||
@@ -446,29 +519,29 @@ export default {
|
||||
orderNo: '订单号',
|
||||
roundId: '期号',
|
||||
numbers: '下注号码',
|
||||
createdAt: '时间',
|
||||
createdAt: TEXT_TIME,
|
||||
settledAt: '结算时间',
|
||||
totalPoolAmount: '下注金额',
|
||||
winningResult: '中奖字花',
|
||||
payout: '中奖金额',
|
||||
empty: '暂无历史记录',
|
||||
end: '没有更多记录了',
|
||||
loading: '加载中...',
|
||||
settled: '已结算',
|
||||
loading: TEXT_LOADING,
|
||||
settled: TEXT_SETTLED,
|
||||
},
|
||||
periodHistory: {
|
||||
title: '开奖结果历史',
|
||||
close: '关闭开奖结果历史',
|
||||
empty: '暂无开奖结果',
|
||||
failed: '开奖结果加载失败',
|
||||
loading: '加载中...',
|
||||
loading: TEXT_LOADING,
|
||||
retry: '重试',
|
||||
},
|
||||
topup: {
|
||||
title: '充值配置',
|
||||
platformCoinLabel: '平台币',
|
||||
currencyLabel: '货币类型',
|
||||
channelLabel: '支付渠道',
|
||||
currencyLabel: TEXT_CURRENCY_TYPE,
|
||||
channelLabel: TEXT_PAYMENT_CHANNEL,
|
||||
rateHint: '汇率为参考价格,实际以充值时为准。',
|
||||
tier: {
|
||||
bonus: '赠送',
|
||||
@@ -506,13 +579,13 @@ export default {
|
||||
notice: '注意',
|
||||
feeNotice: 'RM10 - RM99.99 之间的交易将收取最低RM 1的提现手续费',
|
||||
cancel: '取消',
|
||||
confirm: '确认',
|
||||
confirm: TEXT_CONFIRM,
|
||||
submitSuccess: '提现申请已提交',
|
||||
withdrawal: '提现',
|
||||
fields: {
|
||||
diamondAmount: '提现钻石数量',
|
||||
currencyType: '货币类型',
|
||||
paymentChannel: '支付渠道',
|
||||
currencyType: TEXT_CURRENCY_TYPE,
|
||||
paymentChannel: TEXT_PAYMENT_CHANNEL,
|
||||
bankCode: '银行代码',
|
||||
cardHolderName: '持卡人姓名',
|
||||
bankAccountNumber: '银行账号',
|
||||
|
||||
Reference in New Issue
Block a user