feat(i18n): 管理端与玩家端三语支持(中/英/马来语)
- 管理后台 adminT 文案库、结算与代理端页面、表单校验 - 玩家端 vue-i18n 补全首页/公告/串关与 ms 文案 - Element Plus ms 语言包与共享 locale 工具
This commit is contained in:
239
apps/admin/src/i18n/admin-pages-ms.ts
Normal file
239
apps/admin/src/i18n/admin-pages-ms.ts
Normal file
@@ -0,0 +1,239 @@
|
||||
/** 管理后台列表 / 弹窗 — Bahasa Melayu */
|
||||
export const adminPagesMs: Record<string, string> = {
|
||||
'common.detail': 'Butiran',
|
||||
'common.create': 'Cipta',
|
||||
'common.save': 'Simpan',
|
||||
'common.close': 'Tutup',
|
||||
'common.import': 'Import',
|
||||
'common.publish': 'Terbitkan',
|
||||
'common.topup': 'Tambah baki',
|
||||
'common.adjust_credit': 'Laraskan kredit',
|
||||
'common.freeze': 'Bekukan',
|
||||
'common.unfreeze': 'Nyahbeku',
|
||||
'common.settle': 'Selesaikan',
|
||||
'common.close_betting': 'Tutup pertaruhan',
|
||||
'common.never_login': 'Belum pernah log masuk',
|
||||
'common.optional': 'Pilihan',
|
||||
'common.to': 'Hingga',
|
||||
'common.module': 'Modul',
|
||||
'common.col_id': 'ID',
|
||||
'common.times': 'kali',
|
||||
'common.bets_count_unit': 'pertaruhan',
|
||||
|
||||
'user.create_btn': '+ Pemain baharu',
|
||||
'user.filter.username_ph': 'Nama pengguna',
|
||||
'user.filter.agent': 'Ejen',
|
||||
'user.filter.agent_ph': 'Semua',
|
||||
'user.col.username': 'Nama pengguna',
|
||||
'user.col.agent': 'Ejen',
|
||||
'user.col.balance': 'Tersedia / Dibekukan',
|
||||
'user.col.bets': 'Pertaruhan',
|
||||
'user.col.stake_payout': 'Stake / Bayaran',
|
||||
'user.col.last_login': 'Log masuk terakhir',
|
||||
'user.col.created': 'Daftar',
|
||||
'user.status.ACTIVE': 'Aktif',
|
||||
'user.status.SUSPENDED': 'Digantung',
|
||||
'user.dialog.create': 'Pemain baharu',
|
||||
'user.dialog.edit': 'Edit pemain',
|
||||
'user.dialog.deposit': 'Tambah baki pemain',
|
||||
'user.dialog.detail': 'Butiran pemain',
|
||||
'user.field.password': 'Kata laluan',
|
||||
'user.field.confirm_password': 'Sahkan kata laluan',
|
||||
'user.field.initial_balance': 'Baki permulaan',
|
||||
'user.field.deposit_remark': 'Nota tambah baki',
|
||||
'user.field.amount': 'Jumlah',
|
||||
'user.field.remark': 'Nota',
|
||||
'user.field.account_status': 'Status akaun',
|
||||
'user.field.available': 'Baki tersedia',
|
||||
'user.field.frozen_balance': 'Baki dibekukan',
|
||||
'user.field.bets_summary': 'Pertaruhan / stake',
|
||||
'user.field.total_payout': 'Jumlah bayaran',
|
||||
'user.field.login_fail': 'Log masuk gagal',
|
||||
'user.field.phone': 'Telefon',
|
||||
'user.field.email': 'E-mel',
|
||||
'user.ph.username_unique': 'Nama log masuk unik',
|
||||
'user.ph.no_agent': 'Tiada (terus platform)',
|
||||
'user.hint.no_agent': 'Biarkan kosong untuk pemain diurus platform',
|
||||
'user.hint.initial_balance': 'Auto tambah baki semasa cipta; 0 = tiada bonus',
|
||||
'user.hint.deposit_remark': 'Ditulis ke lejar jika baki permulaan > 0',
|
||||
'user.hint.freeze_in_list': 'Beku/nyahbeku dari lajur tindakan senarai',
|
||||
'user.hint.agent_change': 'Kosong = terus platform; perubahan dikira semula kredit ejen',
|
||||
'user.btn.create': 'Cipta',
|
||||
'user.btn.save_profile': 'Simpan',
|
||||
'user.btn.confirm_deposit': 'Sahkan tambah baki',
|
||||
'user.deposit_remark_default': 'Tambah baki admin',
|
||||
|
||||
'agent.create_btn': '+ Ejen peringkat 1 baharu',
|
||||
'agent.filter.username_ph': 'Nama pengguna',
|
||||
'agent.col.level': 'Peringkat',
|
||||
'agent.col.credit': 'Had / Digunakan / Tersedia',
|
||||
'agent.col.direct_players': 'Pemain terus',
|
||||
'agent.col.cashback': 'Kadar rebat',
|
||||
'agent.col.phone': 'Telefon',
|
||||
'agent.col.created': 'Dicipta',
|
||||
'agent.dialog.create': 'Ejen peringkat 1 baharu',
|
||||
'agent.dialog.edit': 'Edit ejen',
|
||||
'agent.dialog.credit': 'Laraskan had kredit',
|
||||
'agent.field.agent_id': 'ID ejen',
|
||||
'agent.dialog.detail': 'Butiran ejen',
|
||||
'agent.field.credit_limit': 'Had kredit',
|
||||
'agent.field.cashback_rate': 'Kadar rebat',
|
||||
'agent.field.adjust_amount': 'Pelarasan',
|
||||
'agent.field.used_credit': 'Kredit digunakan',
|
||||
'agent.field.available_credit': 'Kredit tersedia',
|
||||
'agent.field.player_liability': 'Liabiliti pemain',
|
||||
'agent.field.sub_agent_exposure': 'Pendedahan sub-ejen',
|
||||
'agent.hint.credit_limit': 'Had maksimum tambah baki untuk pemain terus',
|
||||
'agent.hint.cashback_example': 'cth. 0.01 = 1%',
|
||||
'agent.hint.credit_adjust': 'Positif menambah, negatif mengurangkan',
|
||||
'agent.hint.credit_remark': 'Pilihan, ditulis ke lejar kredit',
|
||||
'agent.section.credit_log': 'Perubahan kredit terkini',
|
||||
'agent.credit.increase': 'Tambah',
|
||||
'agent.credit.decrease': 'Kurang',
|
||||
'agent.col.credit_type': 'Jenis',
|
||||
'agent.col.credit_change': 'Perubahan',
|
||||
'agent.col.credit_after': 'Selepas',
|
||||
'agent.col.no_records': 'Tiada rekod',
|
||||
'agent.btn.confirm_adjust': 'Sahkan',
|
||||
|
||||
'match.create_btn': '+ Perlawanan baharu',
|
||||
'match.filter.keyword_ph': 'Nama perlawanan / kod pasukan',
|
||||
'match.col.matchup': 'Perlawanan',
|
||||
'match.col.kickoff': 'Masa mula',
|
||||
'match.dialog.create': 'Perlawanan baharu',
|
||||
'match.dialog.edit': 'Edit perlawanan',
|
||||
'match.dialog.import': 'Import perlawanan',
|
||||
'match.field.league_en': 'Liga (EN)',
|
||||
'match.field.league_zh': 'Liga (ZH)',
|
||||
'match.field.kickoff': 'Masa mula',
|
||||
'match.field.home_en': 'Tuan rumah (EN)',
|
||||
'match.field.home_zh': 'Tuan rumah (ZH)',
|
||||
'match.field.away_en': 'Pelawat (EN)',
|
||||
'match.field.away_zh': 'Pelawat (ZH)',
|
||||
'match.field.featured': 'Pilihan utama',
|
||||
'match.hint.create_draft': 'Disimpan sebagai draf; klik Terbitkan dalam senarai untuk buka pasaran.',
|
||||
'match.hint.edit_published': 'Diterbitkan: edit masa mula, pilihan utama, nama paparan; tertutup/selesai dikunci.',
|
||||
|
||||
'bet.filter.keyword_ph': 'No. pertaruhan / nama pengguna',
|
||||
'bet.filter.date_from': 'Tarikh pertaruhan dari',
|
||||
'bet.filter.date_start_ph': 'Mula',
|
||||
'bet.filter.date_end_ph': 'Tamat',
|
||||
'bet.col.serial': 'No.',
|
||||
'bet.col.bet_no': 'No. pertaruhan',
|
||||
'bet.col.player': 'Pemain',
|
||||
'bet.col.agent': 'Ejen',
|
||||
'bet.col.selection': 'Pilihan',
|
||||
'bet.col.stake': 'Stake',
|
||||
'bet.col.odds': 'Odds',
|
||||
'bet.col.payout': 'Bayaran',
|
||||
'bet.col.placed_at': 'Masa pertaruhan',
|
||||
'bet.dialog.detail': 'Butiran pertaruhan',
|
||||
'bet.field.total_odds': 'Jumlah odds',
|
||||
'bet.field.currency': 'Mata wang',
|
||||
'bet.field.potential_win': 'Menang berpotensi',
|
||||
'bet.field.actual_payout': 'Bayaran sebenar',
|
||||
'bet.field.bet_status': 'Status pertaruhan',
|
||||
'bet.field.settlement_status': 'Penyelesaian',
|
||||
'bet.field.settled_at': 'Diselesaikan pada',
|
||||
'bet.field.request_id': 'ID permintaan',
|
||||
'bet.selections_title': 'Pilihan ({n})',
|
||||
'bet.col.market': 'Pasaran',
|
||||
'bet.col.period': 'Tempoh',
|
||||
'bet.col.line': 'Garisan',
|
||||
'bet.col.result': 'Keputusan',
|
||||
|
||||
'audit.module_ph': 'cth. USERS, AGENTS',
|
||||
'audit.col.action': 'Tindakan',
|
||||
'audit.col.module': 'Modul',
|
||||
'audit.col.target_id': 'ID sasaran',
|
||||
'audit.col.time': 'Masa',
|
||||
|
||||
'cashback.start_date': 'Tarikh mula',
|
||||
'cashback.end_date': 'Tarikh tamat',
|
||||
'cashback.preview_btn': 'Pratonton',
|
||||
'cashback.preview_title': 'Pratonton rebat',
|
||||
'cashback.stat.players': 'Pemain',
|
||||
'cashback.stat.total': 'Jumlah rebat',
|
||||
'cashback.confirm_issue': 'Sahkan bayaran',
|
||||
|
||||
'user.field.player_id': 'ID pemain',
|
||||
'user.field.bet_count': 'Bilangan pertaruhan',
|
||||
'user.field.total_stake': 'Jumlah stake',
|
||||
'user.field.registered_at': 'Daftar',
|
||||
'user.ph.remark_initial': 'Nota lejar apabila baki permulaan > 0',
|
||||
'user.bets_edit_value': '{n} pertaruhan / {stake}',
|
||||
'user.login_fail_value': '{n} kali',
|
||||
|
||||
'match.import_hint': 'Tampal JSON dengan array matches. Import sebagai draf; terbitkan dari senarai.',
|
||||
'match.import_start': 'Import',
|
||||
'match.import_json_ph': '{"matches":[...]}',
|
||||
'match.delete_confirm_title': 'Padam perlawanan',
|
||||
'match.delete_confirm_body': 'Padam "{title}"? Hanya draf tanpa pertaruhan.',
|
||||
'match.ph.league_en': 'FIFA World Cup 2026',
|
||||
'match.ph.league_zh': 'Piala Dunia 2026',
|
||||
'match.ph.kickoff': '2026-06-11T19:00:00Z',
|
||||
'match.ph.home_en': 'Mexico',
|
||||
'match.ph.home_zh': 'Mexico',
|
||||
'match.ph.away_en': 'South Africa',
|
||||
'match.ph.away_zh': 'Afrika Selatan',
|
||||
|
||||
'err.username_required': 'Sila isi nama pengguna',
|
||||
'err.password_min': 'Kata laluan sekurang-kurangnya 8 aksara',
|
||||
'err.password_mismatch': 'Kata laluan tidak sepadan',
|
||||
'err.credit_negative': 'Had kredit tidak boleh negatif',
|
||||
'err.kickoff_required': 'Sila isi masa mula',
|
||||
'err.teams_required': 'Isi nama pasukan tuan rumah dan pelawat (ZH atau EN)',
|
||||
'err.league_required': 'Sila isi nama liga',
|
||||
|
||||
'settlement.ht_score': 'Skor separuh masa',
|
||||
'settlement.ft_score': 'Skor penuh masa',
|
||||
'settlement.record_score': 'Simpan skor',
|
||||
'settlement.preview_btn': 'Pratonton penyelesaian',
|
||||
'settlement.preview_title': 'Pratonton penyelesaian',
|
||||
'settlement.single_count': 'Pertaruhan tunggal',
|
||||
'settlement.est_payout': 'Anggaran bayaran',
|
||||
'settlement.refund_amount': 'Jumlah bayaran balik',
|
||||
'settlement.confirm_btn': 'Sahkan penyelesaian',
|
||||
'msg.score_recorded': 'Skor disimpan',
|
||||
'msg.settlement_confirmed': 'Penyelesaian disahkan',
|
||||
|
||||
'agent_portal.create_player_section': 'Cipta pemain',
|
||||
'agent_portal.deposit_section': 'Tambah baki',
|
||||
'agent_portal.create_player_btn': '+ Pemain baharu',
|
||||
'agent_portal.create_tier2_btn': '+ Sub-ejen baharu',
|
||||
'agent_portal.username_ph': 'Masukkan nama pengguna',
|
||||
'agent_portal.agent_username_ph': 'Nama pengguna ejen',
|
||||
'agent_portal.player_id_ph': 'ID pemain',
|
||||
'agent_portal.withdraw_btn': 'Keluarkan {amount}',
|
||||
'msg.agent_sub_created': 'Sub-ejen dicipta',
|
||||
'msg.withdraw_ok': 'Pengeluaran berjaya',
|
||||
|
||||
'msg.form_invalid': 'Sila semak borang',
|
||||
'msg.player_created': 'Pemain dicipta',
|
||||
'msg.agent_created': 'Ejen dicipta',
|
||||
'msg.create_failed': 'Gagal mencipta',
|
||||
'msg.saved': 'Disimpan',
|
||||
'msg.save_failed': 'Gagal menyimpan',
|
||||
'msg.deleted': 'Dipadam',
|
||||
'msg.delete_failed': 'Gagal memadam',
|
||||
'msg.match_created_draft': 'Perlawanan dicipta (draf)',
|
||||
'msg.published': 'Diterbitkan dengan pasaran',
|
||||
'msg.closed': 'Pertaruhan ditutup',
|
||||
'msg.invalid_json': 'JSON tidak sah',
|
||||
'msg.import_failed': 'Import gagal',
|
||||
'msg.import_done': 'Import: {imported} ok, {skipped} dilangkau, {failed} gagal / {total} jumlah',
|
||||
'msg.topup_ok': 'Tambah baki berjaya',
|
||||
'msg.topup_failed': 'Tambah baki gagal',
|
||||
'msg.amount_gt_zero': 'Jumlah mesti lebih daripada 0',
|
||||
'msg.credit_zero': 'Pelarasan tidak boleh 0',
|
||||
'msg.credit_adjusted': 'Kredit dikemas kini',
|
||||
'msg.credit_adjust_failed': 'Pelarasan gagal',
|
||||
'msg.outright_no_edit': 'Outright tidak boleh diedit di sini',
|
||||
'msg.load_matches_failed': 'Gagal memuatkan perlawanan',
|
||||
'msg.cashback_issued': 'Rebat telah dikeluarkan',
|
||||
'msg.freeze_confirm_title': '{action} akaun',
|
||||
'msg.freeze_confirm_body': '{action} pemain "{name}"?{extra}',
|
||||
'msg.freeze_extra': ' Mereka tidak akan dapat log masuk.',
|
||||
'msg.freeze_done': '{action} selesai',
|
||||
'msg.freeze_failed': '{action} gagal',
|
||||
};
|
||||
Reference in New Issue
Block a user