{
"appTitle": "Sistem Kehadiran",
"logout": "Keluar",
"login": "Masuk",
"username": "Nama Pengguna",
"password": "Kata Laluan",
"rememberMe": "Ingat Saya",
"loggingIn": "Sedang log masuk...",
"language": "Bahasa",
"failedConnection": "Gagal untuk berhubung dengan pelayan.",
"useMobileApp": "Sila gunakan aplikasi mudah alih untuk log masuk",
"invalidToken": "Token tidak sah diterima dari pelayan.",
"english": "English",
"malay": "Bahasa Melayu",
"setting": "Tetapan",
"appInformation": "Maklumat Aplikasi",
"version": "Versi",
"platform": "Platform",
"web": "Web",
"yourStatus": "Status Anda",
"clockedIn": "Sudah Masuk",
"clockedOut": "Sudah Keluar",
"clockIn": "Masuk Kerja",
"clockOut": "Keluar Kerja",
"clock_in": "Masuk Kerja",
"clock_out": "Keluar Kerja",
"scanToClock": "Imbas untuk {action} Kerja",
"in": "Masuk",
"out": "Keluar",
"cancel": "Batal",
"clockHistory": "Sejarah Kehadiran",
"viewMyClockHistory": "Lihat Sejarah Kehadiran Saya",
"changeMyPassword": "Tukar Kata Laluan Saya",
"updateYourPassword": "Tukar Kata Laluan Anda",
"myClockHistory": "Sejarah Kehadiran Saya",
"backToDashboard": "Kembali ke Papan Pemuka",
"noClockHistory": "Tiada rekod kehadiran.",
"clockHistoryEmptyState": "Tiada rekod kehadiran.",
"clockHistoryFetchFail": "Gagal untuk dapatkan sejarah kehadiran:",
"viewClockHistory": "Lihat Sejarah Kehadiran Saya",
"changePassword": "Tukar Kata Laluan Saya",
"successClockIn": "Berjaya masuk kerja.",
"successClockOut": "Berjaya keluar kerja.",
"qrFail": "QR tidak dapat dikesan. Sila cuba lagi.",
"geoFail": "Tidak dapat mengambil lokasi anda: {message}. Sila benarkan perkhidmatan lokasi.",
"successClock": "Berjaya daftar di {location}.",
"changePasswordTitle": "Tukar Kata Laluan",
"currentPassword": "Kata Laluan Semasa",
"newPassword": "Kata Laluan Baharu",
"confirmNewPassword": "Sahkan Kata Laluan Baharu",
"updating": "Mengemaskini...",
"tabPersonnel": "Personel",
"tabAttendance": "Kehadiran",
"tabWarning": "Amaran",
"warningSettings": "Tetapan Amaran",
"failedClockSummary": "Ringkasan Kegagalan Clock",
"failedCount": "Bilangan Gagal",
"viewDetails": "Lihat Butiran",
"fetchRecords": "Lihat Senarai",
"failedRecordsFor": "Rekod Gagal untuk ",
"eventType": "Jenis Peristiwa",
"tabQrCodes": "QR",
"uploadQrImage": "Muat Naik Imej QR",
"couldNotLoadWorkerInfo": "Tidak dapat memuatkan maklumat pekerja",
"couldNotVerifyStatus": "Tidak dapat mengesahkan status semasa dari pelayan",
"successfullyClocked": "Berjaya {action} di",
"site": "tapak",
"errorOccurred": "Ralat telah berlaku",
"unableToStartCamera": "Tidak dapat menghidupkan kamera.",
"tryAgain": "Cuba Lagi",
"qrDetectedGettingLocation": "QR dikesan. Mengambil lokasi...",
"geolocationNotSupported": "Geolokasi tidak disokong oleh pelayar anda.",
"unableToRetrieveLocation": "Tidak dapat mengambil lokasi anda. Sila semak kebenaran lokasi. (Butiran: {message})",
"qrNotDetectedTryAgain": "QR tidak dapat dikesan. Sila cuba lagi.",
"updatePassword": "Kemaskini Kata Laluan",
"passwordsNoMatch": "Kata laluan baharu tidak sepadan.",
"passwordTooShort": "Kata laluan baharu mesti sekurang-kurangnya 6 aksara.",
"passwordUpdated": "Kata laluan berjaya dikemaskini!",
"passwordUpdateError": "Ralat semasa mengemaskini kata laluan.",
"invalidCurrentPassword": "Kata laluan semasa yang anda masukkan tidak betul.",
"attendanceLogFor": "Log Kehadiran untuk",
"addManualClockOut": "Tambah Clock-Out Secara Manual",
"manualClockOutInstruction": "Gunakan borang ini jika pekerja lupa untuk clock-out. Acara terakhir mesti clock-in.",
"clockOutTime": "Masa Clock-Out",
"reason": "Sebab (cth: \"Lupa clock-out\")",
"enterBriefNote": "Tulis nota(jika perlu)",
"addRecord": "Tambah Rekod",
"startDate": "Dari",
"endDate": "Hingga",
"filterRecords": "Tapis Rekod",
"event": "Acara",
"timestamp": "Cap Masa",
"locationName": "Nama Lokasi",
"coordinates": "Koordinat",
"notes": "Nota",
"noRecordsFound": "Belum ada rekod untuk tempod ini.",
"showOnMap": "Papar di peta",
"nA": "Tiada",
"pleaseSelectTimestamp": "Sila pilih cap masa untuk clock-out.",
"pleaseProvideReason": "Sila berikan sebab/nota untuk kemasukan manual.",
"manualClockOutSuccess": "Clock-out manual berjaya direkod!",
"manualClockOutError": "Ralat berlaku: {message}",
"selectWorkers": "1. Pilih Pekerja",
"searchWorkerPlaceholder": "Cari pekerja...",
"selectAll": "Pilih Semua",
"addWorkersByTag": "Tambah semua pekerja berdasarkan tag",
"chooseTag": "-- Pilih tag --",
"addByTag": "Tambah melalui Tag",
"selectedForReport": "Dipilih untuk Laporan ({count})",
"allWorkersSelected": "Semua Pekerja ({count}) Dipilih",
"noWorkersSelected": "Tiada pekerja dipilih.",
"reportSettings": "2. Tetapan Laporan",
"monthlySalary": "Gaji Bulanan (RM)",
"salaryAppliedNote": "Diguna untuk semua pekerja yang dipilih.",
"salaryPlaceholder": "cth: 3000",
"otFactors": "Faktor OT",
"weekendFactor": "Faktor Hujung Minggu",
"holidayFactor": "Faktor Cuti Umum",
"selectPublicHolidays": "Pilih Cuti Umum",
"generateReport": "Jana Laporan Kehadiran & OT",
"overtimePaySummary": "Ringkasan Bayaran OT",
"exportOtSummary": "Eksport Ringkasan OT (CSV)",
"worker": "Pekerja",
"totalHoursWorked": "Jumlah Jam Bekerja",
"totalOtPay": "Jumlah Bayaran OT (RM)",
"rawAttendanceData": "Data Kehadiran Mentah",
"loadingReport": "Memuatkan Laporan...",
"tagLoadError": "Tidak dapat memuatkan pekerja untuk tag yang dipilih.",
"generateReportError": "Sila pilih pekerja, tetapkan tarikh, dan masukkan gaji.",
"reportGenerationError": "Ralat semasa menjana laporan.",
"exportAll": "Eksport Semua",
"export": "Eksport",
"addNewUser": "Tambah Pengguna Baru",
"fullName": "Nama Penuh",
"department": "Jabatan",
"position": "Jawatan",
"egJohnSmith": "cth. John Smith",
"egJsmith": "cth. 123456",
"eg123456": "cth. 123456",
"asManager": "Sebagai Pentadbir",
"adding": "Sedang menambah...",
"addUser": "Tambah Pengguna",
"addManager": "Tambah Pentadbir",
"manageTags": "Urus Tag",
"createNewTag": "Cipta Tag Baharu",
"egTeam": "cth. Pasukan",
"egSales": "cth. Jualan",
"egManager": "cth. Pentadbir",
"createTag": "Cipta Tag",
"tags": "Tag",
"workerRoster": "Deftar Pekerja",
"searchByNameOrUsername": "Cari mengikut nama atau nama pengguna",
"searchByNameOrDepartment": " Cari nama atau jabatan",
"filterByTag": "Tapis mengikut tag",
"clearFilter": "Padam tapisan",
"dateJoined": "Tarikh Sertai",
"actions": "Tindakan",
"editTags": "Sunting Tag",
"viewRecords": "Lihat Rekod",
"clearDevice": "Padam Peranti",
"delete": "Padam",
"loadingWorkers": "Memuatkan pekerja...",
"noWorkersFound": "Tiada pekerja dijumpai.",
"previous": "Sebelum",
"next": "Seterusnya",
"pageOf": "Halaman {current} daripada {total}",
"noTagsAvailable": "Tiada tag tersedia.",
"done": "Selesai",
"bulkEditTags": "Sunting Tag Secara Berkumpulan",
"clearSelection": "Padam Pilihan",
"forUser": "Untuk pengguna",
"savePassword": "Simpan Kata Laluan",
"saving": "Menyimpan...",
"failedToUpdateTags": "Gagal mengemas kini tag. Sila cuba lagi.",
"tagDeleted": "Tag berjaya dipadam.",
"failedToFetchWorkers": "Gagal memuatkan pekerja.",
"failedToLoadPageData": "Gagal memuatkan data halaman.",
"errorAddingUser": "Ralat semasa menambah pengguna.",
"failedToDeleteWorker": "Gagal memadam pekerja.",
"areYouSureDeleteWorker": "Adakah anda pasti mahu memadam akaun pekerja ini?",
"areYouSureDeleteTag": "Adakah anda pasti mahu memadam tag ini? Ia akan dikeluarkan daripada semua pekerja.",
"failedToDeleteTag": "Gagal memadam tag.",
"passwordsDoNotMatch": "Kata laluan tidak sepadan.",
"createQrCode": "Cipta QR Baharu",
"qrCodeName": "Nama QR",
"qrNamePlaceholder": "cth: 'Pintu Masuk Barat'",
"create": "Cipta",
"newCodeCreated": "Kod Baharu Telah Dicipta!",
"saveQrInstruction": "Simpan imej ini atau gunakan ID di bawah. Ini akan hilang selepas segar semula.",
"id": "ID",
"existingQrCodes": "Senarai Kod QR",
"name": "Nama",
"status": "Status",
"active": "Aktif",
"inactive": "Tidak Aktif",
"deactivate": "Tutup",
"activate": "Aktifkan",
"download": "Muat Turun",
"noQrCodesFound": "Tiada QR dijumpai. Sila cipta di atas!",
"deleteQrConfirm": "Adakah anda pasti ingin memadam QR ini? Tindakan ini tidak boleh diundur.",
"qrDownloadError": "Maaf, QR tidak dapat dimuat turun.",
"loading": "Memuatkan...",
"tabGeofencing": "Geofencing",
"createGeofence": "Lukis Zon Baharu",
"drawInstruction": "Guna alat polygon untuk lukis Kawasan di peta. Klik semula titik pertama untuk siap.",
"geofenceName": "Nama Geofence",
"geofenceNamePlaceholder": "cth., Zon Gudang Utama",
"saveGeofence": "Simpan Kawasan",
"existingGeofences": "Kawasan Disimpan",
"view": "Lihat",
"noGeofencesFound": "Tiada Geofences Dijumpai",
"startOver": "Mula Semula",
"workScheduleTitle": "Jadual Kerja",
"workScheduleDescription": "Klik pada tarikh untuk menukar statusnya. Hari yang didayakan berwarna hijau. Perubahan tidak akan disimpan sehingga anda mengklik 'Guna Perubahan'.",
"pendingChanges": "Perubahan Belum Selesai",
"noPendingChanges": "Klik pada kalendar untuk mendayakan atau menyahdayakan tarikh.",
"datesToEnable": "Dayakan tarikh ini:",
"datesToDisable": "Nyahdayakan tarikh ini:",
"applyChanges": "Guna Perubahan",
"discardChanges": "Buang Perubahan",
"statusClockedIn": "Anda Sudah Masuk Kerja",
"statusClockedOut": "Anda Sudah Keluar Kerja",
"scanToClockIn": "Imbas QR untuk Masuk Kerja",
"scanToClockOut": "Imbas QR untuk Keluar Kerja",
"error.default": "Ralat tidak dijangka telah berlaku. Sila cuba lagi.",
"error.clockingDisabled": "Fungsi masuk/keluar kerja dilumpuhkan untuk hari ini. Percubaan anda telah direkodkan.",
"error.noActiveGeofence": "Gagal masuk/keluar: Tiada kawasan kerja aktif yang ditetapkan pada pelayan.",
"error.outsideGeofence": "Gagal masuk/keluar: Anda berada di luar kawasan kerja yang ditetapkan sejauh {distance}m.",
"error.invalidQrCode": "Gagal masuk/keluar: QR yang diimbas tidak sah atau tidak lagi aktif.",
"error.alreadyClockedIn": "Tindakan gagal: Anda sudah masuk kerja.",
"error.alreadyClockedOut": "Tindakan gagal: Anda sudah keluar kerja.",
"error.criticalServer": "Ralat kritikal pada pelayan telah berlaku. Sila hubungi sokongan.",
"dangerZone": "Zon Bahaya",
"clearDeviceDescription": "Nyahpaut Akaun dengan Peranti.",
"settings": "Tetapan",
"employeeSettings": "Tetapan Pekerja",
"accountSettings": "Tetapan Akaun",
"workerStatus": "Status Akaun",
"activeAccount": "Benarkan Log Masuk",
"deleteDescription": "Pengguna akan dipadam.",
"saveChanges": "Simpan Perubahan",
"confirmDeleteWorker": "Adakah anda pasti mahu memadam pekerja ini?",
"managerPermissions": "Pentadbir",
"managerRoster": "Daftar Pentadbir",
"noManagersFound": "Tiada Pentadbir dijumpai",
"loadingManagers": "Memuatkan Pentadbir...",
"managerSettings": "Tetapan Pentadbir",
"managerStatus": "Status Pentadbir",
"confirmClearDevice": "Adakah anda pasti mahu mengosongkan peranti ini? Pekerja perlu log masuk semula.",
"view_all": "Lihat Semua",
"edit_workers": "Sunting Pekerja",
"manage_resources": "Urus Sumber",
"manager_permissions": "Kebenaran Pentadbir",
"confirmDelete": "Adakah anda pasti mahu memadam ini?",
"confirm": "Sahkan",
"can_view_workers": "Lihat Pekerja",
"can_edit_workers": "Urus Pekerja",
"can_view_alerts": "Lihat Amaran",
"can_view_geofences": "Lihat Geofences",
"can_manage_geofences": "Urus Geofences",
"can_view_qrcodes": "Lihat Kod QR",
"can_manage_qrcodes": "Urus Kod QR",
"can_view_reports": "Lihat Laporan",
"can_manage_killswitch": "Urus Jadual",
"can_manage_permissions": "Urus Kebenaran",
"can_edit_managers": "Sunting Pentadbir",
"can_delete_managers": "Padam Pentadbir",
"Worker added successfully": "Pekerja berjaya ditambah",
"Worker soft-deleted successfully.": "Pekerja berjaya dipadam",
"Worker device cleared successfully.": "Peranti pekerja berjaya dikosongkan",
"Manager settings saved successfully!": "Tetapan Pentadbir berjaya disimpan!",
"Manager added successfully!": "Pentadbir berjaya ditambah!",
"Manager Deleted successfully.": "Pentadbir berjaya dipadam.",
"QR code deleted successfully": "Kod QR berjaya dipadam",
"Failed to fetch records.": "Gagal mengambil rekod.",
"Failed to load details.": "Gagal memuatkan butiran.",
"Failed to fetch QR codes": "Gagal mengambil kod QR",
"Failed to generate QR code image": "Gagal menjana imej kod QR",
"Failed to create QR code": "Gagal mencipta kod QR",
"Failed to update QR code status": "Gagal mengemas kini status kod QR",
"Failed to delete QR code": "Gagal memadam kod QR",
"Failed to export records.": "Gagal mengeksport rekod.",
"Failed to fetch managers.": "Gagal mengambil senarai Pentadbir.",
"Failed to delete manager.": "Gagal memadam Pentadbir.",
"Saving settings...": "Menyimpan tetapan...",
"Exporting records...": "Mengeksport rekod...",
"scheduleUpdateFailed": "Gagal mengemas kini jadual. Sila cuba lagi.",
"confirmApplyChanges": "Adakah anda pasti mahu mengguna pakai perubahan jadual ini?",
"scheduleUpdateSuccess": "Jadual berjaya dikemas kini",
"fetchRecordsFailed": "Gagal mengambil rekod",
"loadDetailsFailed": "Gagal memuatkan butiran",
"fetchQRCodesFailed": "Gagal mengambil kod QR",
"generateQRCodeFailed": "Gagal menjana imej kod QR",
"createQRCodeFailed": "Gagal mencipta kod QR",
"updateQRStatusFailed": "Gagal mengemas kini status kod QR",
"qrCodeDeleted": "Kod QR berjaya dipadam",
"deleteQRCodeFailed": "Gagal memadam kod QR",
"workerAdded": "Pekerja berjaya ditambah",
"addUserError": "Ralat menambah pengguna",
"workerSoftDeleted": "Pekerja berjaya dipadam (soft delete)",
"deviceCleared": "Peranti pekerja berjaya dikosongkan",
"clearDeviceFailed": "Gagal mengosongkan peranti",
"savingSettings": "Menyimpan tetapan...",
"exportingRecords": "Mengeksport rekod...",
"exportRecordsFailed": "Gagal mengeksport rekod",
"fetchManagersFailed": "Gagal mengambil senarai Pentadbir",
"managerSettingsSaved": "Tetapan Pentadbir berjaya disimpan",
"saveSettingsFailed": "Gagal menyimpan tetapan",
"managerAdded": "Pentadbir berjaya ditambah",
"managerDeleted": "Pentadbir berjaya dipadam",
"deleteManagerFailed": "Gagal memadam Pentadbir",
"openCamera": "Buka Kamera",
"scanQRCode": "Imbas Kod QR",
"signOutOfAccount": "Log Keluar Akaun",
"darkMode": "Mod Gelap",
"enableDarkMode": "Aktifkan mod gelap",
"disableDarkMode": "Nyahaktifkan mod gelap",
"tamil": "Tamil",
"bengali": "Bengali",
"burmese": "Burmese",
"nepali": "Nepali",
"manualGuide": "Panduan Manual",
"viewUserManual": "Baca arahan dan Soalan Lazim",
"manual": {
"android": {
"heading": "Android",
"faqs": [
{
"id": "android-location",
"title": "Cara menghidupkan lokasi (Android)",
"steps": [
"Open Settings on your phone.",
"Go to Location (on some phones under Security & privacy).",
"Turn Use location ON.",
"Open App permissions → find Nilai Clock → set to Allow while using the app.",
"Enable Precise location if available.",
"Return to the app and try clock-in again."
],
"note": "Nama menu mungkin berbeza mengikut jenama."
},
{
"id": "android-camera",
"title": "Benarkan kebenaran kamera (Android)",
"steps": [
"Open Settings → Apps → Nilai Clock.",
"Tap Permissions → Camera → choose Allow or Allow while using the app.",
"Reopen the app and try scanning again."
]
},
{
"id": "clockin-troubleshoot",
"title": "Clock-in tidak berjaya? Semakan pantas",
"steps": [
"Turn Location ON and set app permission to Allow while using the app (enable Precise location if available).",
"Check network: Wi-Fi or data is on. Toggle Airplane mode off→on, then retry. Disable VPN if it interferes.",
"Ensure Automatic date & time and time zone are enabled in Android settings.",
"Force close and reopen the app. If needed, clear Attendance System cache (Settings → Apps → Nilai Clock → Storage → Clear cache)."
],
"note": "Jika masih gagal, ambil tangkapan skrin dan hubungi pengurus/HR."
}
]
},
"ios": {
"heading": "iOS",
"comingSoon": "Akan datang."
}
}
}