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: 'Bahasa Melayu', idID: 'Bahasa 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: 'Dikunci', revealing: 'Cabutan', settled: 'Selesai', }, actions: { unifiedBetHint: 'Taruhan seragam', totalBet: 'Jumlah taruhan', canBet: 'Boleh taruhan', yes: 'Ya', no: 'Tidak', quickBet: 'Taruhan cepat 08', clearPending: 'Kosongkan belum sah', autoModeDemo: 'Demo mod auto', stopAuto: 'Henti auto', }, modal: { eyebrow: 'Pengumuman', acknowledge: 'Faham', later: 'Nanti', line1: 'Ini akan disambungkan kepada kandungan pengumuman sebenar, kotak pengesahan, dan aliran penyimpanan status.', line2: 'Buat masa ini, ia mengesahkan struktur modal yang dikongsi.', }, modals: { login: { title: 'Log Masuk', }, register: { title: 'Daftar', }, 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', }, protocol: { title: 'Perjanjian Pengguna', content: 'Selamat datang ke lobi permainan 36-Character Flower.\n\nSebelum memasuki laman ini, sila baca dan sahkan perkara berikut:\n1. Anda telah mencapai umur sah yang ditetapkan di kawasan anda.\n2. Anda memahami bahawa kandungan semasa hanya untuk digunakan dalam akaun dan laman ini, dan tidak boleh disalin, diedarkan semula, atau digunakan untuk tujuan yang menyalahi undang-undang.\n3. Anda bersetuju untuk mematuhi peraturan laman berkaitan akaun, tambah nilai, pengeluaran, kawalan risiko, dan permainan.\n4. Dengan meneruskan ke lobi permainan, anda mengakui dan menerima terma perkhidmatan serta peraturan pemprosesan data yang berkaitan.\n\nSila tandakan persetujuan untuk meneruskan.', agreeLabel: 'Saya telah membaca dan bersetuju dengan Perjanjian Pengguna', confirm: 'Setuju dan Masuk', }, rules: { title: 'Peraturan Permainan', content: '1. Permainan Asas\n1) Selepas setiap pusingan bermula, pemain boleh memilih satu atau beberapa nombor pada papan untuk membuat taruhan.\n2) Selepas taruhan ditutup, sistem memasuki fasa cabutan dan menyelesaikan ganjaran berdasarkan keputusan pusingan.\n3) Tahap cip yang berbeza mewakili jumlah taruhan yang berbeza, tertakluk kepada had meja dan konfigurasi semasa.\n\n2. Nota Taruhan\n1) Taruhan hanya boleh dihantar semasa fasa taruhan.\n2) Sebelum mengesahkan, sila semak nombor yang dipilih, jumlah cip, dan jumlah taruhan keseluruhan.\n3) Jika baki tidak mencukupi, pusingan tidak lagi sah, atau taruhan telah ditutup, permintaan akan ditolak.\n\n3. Cabutan dan Penyelesaian\n1) Keputusan cabutan akhir yang dipaparkan sistem ialah keputusan yang sah.\n2) Peraturan kena, odds, bayaran, dan prestasi streak diselesaikan secara masa nyata mengikut konfigurasi bilik semasa.\n3) Jika berlaku gangguan rangkaian, sila rujuk data rasmi selepas penyegerakan semula.\n\n4. Nota Tambahan\n1) Sila urus masa permainan anda dengan bertanggungjawab.\n2) Sebarang tingkah laku tidak normal untuk mengganggu sistem, mengeksploitasi ganjaran, atau memintas kawalan risiko adalah dilarang sama sekali.\n3) Platform berhak menyemak pesanan, bayaran, dan status akaun dalam keadaan khas.', confirm: 'Saya Faham', }, procedures: { title: 'Tambah Nilai / Pengeluaran', contentPlaceholder: 'Pilih tindakan yang ingin anda teruskan', withdraw: 'Keluarkan', topup: 'Tambah Nilai', }, autoSetting: { title: 'Putaran Auto', 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', message: 'Mesej', }, profile: { name: 'Nama', tel: 'Telefon', registeredAt: 'Tarikh daftar', signature: 'Tandatangan saya unik seperti personaliti saya. Bahagian ini akan memaparkan ringkasan profil sebenar kemudian.', }, message: { eventBonus: '[Acara Bonus Tambah Nilai] Dari 1 Oktober hingga 7 Oktober 2026, tuntut ganjaran rebat anda...', check: 'Semak', deleteRecords: 'Padam rekod', }, }, 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.', 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: { modal: { close: 'Tutup modal', defaultAriaLabel: 'Modal', }, toast: { lobbyInitFailed: 'Gagal memuatkan lobi permainan', loginRequired: 'Sila log masuk sebelum memasuki permainan', loginSuccess: 'Log masuk berjaya', registerSuccess: 'Pendaftaran berjaya', insufficientBalance: 'Baki tidak mencukupi. Sila laraskan taruhan.', 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.', }, }, auth: { common: { arrowIconAlt: 'Anak panah', actions: { submitting: 'Menghantar...', }, }, login: { actions: { submit: 'Log Masuk', }, fields: { username: { label: 'Akaun / Telefon:', placeholder: 'Masukkan akaun atau nombor telefon', }, password: { label: 'Kata Laluan:', placeholder: 'Masukkan kata laluan', }, }, 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: 'Daftar', }, fields: { username: { label: 'Akaun / Telefon:', placeholder: 'Masukkan akaun atau nombor telefon', }, password: { label: 'Kata Laluan:', placeholder: 'Masukkan kata laluan', }, 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.', }, }, validation: { 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: 'Mesej', bgm: 'BGM', id: 'ID', fullscreen: 'Skrin Penuh', login: 'Log Masuk', register: 'Daftar', }, control: { trend: 'Trend', map: 'Peta', selected: 'Dipilih', totalBet: 'Jumlah Taruhan', confirm: 'Sahkan', selectNumbers: 'Pilih Nombor', insufficientBalance: 'Baki Tidak Mencukupi', submitting: 'Menghantar...', actions: { clear: 'Kosongkan', repeat: 'Ulang', 'auto-spin': 'Putaran Auto', }, }, status: { odds: 'Peluang', streak: 'Streak', limit: 'Had', roundId: 'Pusingan', phase: { betting: { label: 'Buka', description: '(Menerima Taruhan)', }, locked: { label: 'Dikunci', description: '(Taruhan Ditutup)', }, revealing: { label: 'Cabutan', description: '(Mendedahkan Hasil)', }, settled: { label: 'Selesai', description: '(Pusingan Tamat)', }, waiting: { label: 'Menunggu', description: '(Menunggu Pusingan Seterusnya)', }, }, }, title: { announcement: 'Pengumuman', }, animal: { loading: 'Memuatkan', tapToEnter: 'Ketik Untuk Masuk', getStart: 'Mula', }, history: { title: 'Sejarah', orderNo: 'No. Pesanan', roundId: 'ID Pusingan', numbers: 'Nombor Pertaruhan', settledAt: 'Masa Selesai', totalPoolAmount: 'Jumlah Pertaruhan', winningResult: 'Keputusan Menang', payout: 'Jumlah Menang', empty: 'Belum ada sejarah', end: 'Tiada lagi rekod', loading: 'Memuatkan...', settled: 'Selesai', }, topup: { placeholder: 'Kandungan tambah nilai sedang dibina', }, mobile: { placeholder: 'Halaman mudah alih sedang dibina', }, withdraw: { availableBalance: 'Baki tersedia: {{amount}}', currencySelection: 'Pilihan mata wang', selectCurrency: 'Pilih mata wang', exchangeRateNotice: 'Kadar pertukaran dan jumlah akhir tertakluk kepada penyelesaian masa nyata platform.', wallet: 'Dompet', bank: 'Bank', minimumRm10: 'Minimum RM 10', processingTime: 'Masa pemprosesan', fundsArrivalTime: 'Dijangka tiba dalam 1-15 minit', feeNotice: 'Sila pastikan maklumat penerima adalah tepat. Ia tidak boleh diubah selepas dihantar.', cancel: 'Batal', confirm: 'Sahkan', withdrawal: 'Pengeluaran', fields: { diamondWithdrawalAmount: 'Jumlah Berlian Dikeluarkan', currencyType: 'Jenis Mata Wang', paymentChannel: 'Saluran Pembayaran', bankCode: 'Kod Bank', cardHolderName: 'Nama Pemegang Kad', bankAccountNumber: 'Nombor Akaun Bank', receiverEmail: 'E-mel Penerima', receiverPhone: 'Telefon Penerima', }, placeholders: { cardHolderName: 'Masukkan nama pemegang kad', bankAccountNumber: 'Masukkan nombor akaun bank', receiverEmail: 'Masukkan e-mel penerima', receiverPhone: 'Masukkan nombor telefon penerima', }, errors: { cardHolderNameRequired: 'Sila masukkan nama pemegang kad.', bankAccountRequired: 'Sila masukkan nombor akaun bank.', }, preview: { title: 'Pratonton Pertukaran', diamondAmount: 'Jumlah Berlian', rateMyr: 'Kadar MYR', rateMyrValue: '{{diamonds}} berlian = 1 MYR', convertibleMyr: 'Boleh Tukar MYR', usdtMyrRate: 'Kadar USDT / MYR', usdtMyrRateValue: '1 USDT = {{rate}} MYR', rateVnd: 'Kadar VND', rateVndValue: '1 berlian = {{diamonds}} VND', convertibleVnd: 'Boleh Tukar VND', convertibleUsdt: 'Boleh Tukar USDT', fixedExchangeDiamondAmount: 'Jumlah Berlian Tukaran Tetap', }, }, }, } as const