diff --git a/backend/lang/id.json b/backend/lang/id.json
new file mode 100644
index 000000000..bf86eb7e5
--- /dev/null
+++ b/backend/lang/id.json
@@ -0,0 +1,636 @@
+{
+ "Older First": "Terlama",
+ "Newer First": "Terbaru",
+ "Recently Updated First": "Baru Diperbarui",
+ "Recently Updated Last": "Lama Diperbarui",
+ "First Name A-Z": "Nama Depan A-Z",
+ "First Name Z-A": "Nama Depan Z-A",
+ "Last Name A-Z": "Nama Belakang A-Z",
+ "Last Name Z-A": "Nama Belakang Z-A",
+ "Status A-Z": "Status A-Z",
+ "Status Z-A": "Status Z-A",
+ "Closest start date": "Tanggal mulai terdekat",
+ "Furthest start date": "Tanggal mulai terjauh",
+ "Closest end date": "Tanggal selesai terdekat",
+ "Furthest end date": "Tanggal selesai terjauh",
+ "Newest first": "Terbaru",
+ "Oldest first": "Terlama",
+ "Recently Updated": "Baru Diperbarui",
+ "Least Recently Updated": "Lama Diperbarui",
+ "Oldest First": "Terlama",
+ "Newest First": "Terbaru",
+ "Buyer Name A-Z": "Nama Pembeli A-Z",
+ "Buyer Name Z-A": "Nama Pembeli Z-A",
+ "Amount Ascending": "Jumlah (Naik)",
+ "Amount Descending": "Jumlah (Turun)",
+ "Buyer Email A-Z": "Email Pembeli A-Z",
+ "Buyer Email Z-A": "Email Pembeli Z-A",
+ "Order # Ascending": "No. Pesanan (Naik)",
+ "Order # Descending": "No. Pesanan (Turun)",
+ "Code Name A-Z": "Nama Kode A-Z",
+ "Code Name Z-A": "Nama Kode Z-A",
+ "Usage Count Ascending": "Jumlah Penggunaan (Naik)",
+ "Usage Count Descending": "Jumlah Penggunaan (Turun)",
+ "Homepage order": "Urutan Beranda",
+ "Title A-Z": "Judul A-Z",
+ "Title Z-A": "Judul Z-A",
+ "Sale start date closest": "Awal penjualan terdekat",
+ "Sale start date furthest": "Awal penjualan terjauh",
+ "Sale end date closest": "Akhir penjualan terdekat",
+ "Sale end date furthest": "Akhir penjualan terjauh",
+ "Account registration is disabled": "Pendaftaran akun dinonaktifkan",
+ "The invitation has expired": "Undangan telah kedaluwarsa",
+ "The invitation is invalid": "Undangan tidak valid",
+ "Invitation valid, but user not found": "Undangan valid, tetapi pengguna tidak ditemukan",
+ "No user found for this invitation. The invitation may have been revoked.": "Tidak ada pengguna ditemukan untuk undangan ini. Undangan mungkin telah dicabut.",
+ "Logout Successful": "Berhasil Keluar",
+ "Your password has been reset. Please login with your new password.": "Kata sandi Anda telah diatur ulang. Silakan masuk dengan kata sandi baru Anda.",
+ "No account ID found in token": "ID akun tidak ditemukan dalam token",
+ "Event with ID :eventId is not live and user is not authenticated": "Acara dengan ID :eventId tidak aktif dan pengguna tidak terautentikasi",
+ "Sorry, we could not verify your session. Please restart your order.": "Maaf, kami tidak dapat memverifikasi sesi Anda. Silakan ulangi pesanan Anda.",
+ "The email confirmation link has expired. Please request a new one.": "Tautan konfirmasi email telah kedaluwarsa. Silakan minta yang baru.",
+ "The email confirmation link is invalid.": "Tautan konfirmasi email tidak valid.",
+ "No invitation found for this user.": "Tidak ada undangan ditemukan untuk pengguna ini.",
+ "User status is not Invited": "Status pengguna bukan Diundang",
+ "Email is required": "Email wajib diisi",
+ "Email must be a valid email address": "Email harus berupa alamat email yang valid",
+ "First name is required": "Nama depan wajib diisi",
+ "Last name is required": "Nama belakang wajib diisi",
+ "Ticket is required": "Tiket wajib diisi",
+ "Ticket price is required": "Harga tiket wajib diisi",
+ "Please enter a valid hex color code. In the format #000000 or #000.": "Silakan masukkan kode warna hex yang valid. Dalam format #000000 atau #000.",
+ "The maximum timeout is 2 hours.": "Batas waktu maksimum adalah 2 jam.",
+ "The address line 1 field is required": "Bidang baris alamat 1 wajib diisi",
+ "The city field is required": "Bidang kota wajib diisi",
+ "The zip or postal code field is required": "Bidang kode pos wajib diisi",
+ "The country field is required": "Bidang negara wajib diisi",
+ "The country field should be a 2 character ISO 3166 code": "Bidang negara harus berupa kode ISO 3166 2 karakter",
+ "Please select at least one ticket.": "Silakan pilih setidaknya satu tiket.",
+ "The sale end date must be after the sale start date.": "Tanggal akhir penjualan harus setelah tanggal mulai penjualan.",
+ "The sale end date must be a valid date.": "Tanggal akhir penjualan harus berupa tanggal yang valid.",
+ "The sale start date must be after the ticket sale start date.": "Tanggal mulai penjualan harus setelah tanggal mulai penjualan tiket.",
+ "Welcome to :app_name! Please confirm your email address": "Selamat datang di :app_name! Silakan konfirmasi alamat email Anda",
+ "đī¸ Your Ticket for :event": "đī¸ Tiket Anda untuk :event",
+ "Your order has been cancelled": "Pesanan Anda telah dibatalkan",
+ "Your order wasn\\'t successful": "Pesanan Anda tidak berhasil",
+ "You\\'ve received a refund": "Anda telah menerima pengembalian dana",
+ "Your Order is Confirmed!": "Pesanan Anda Dikonfirmasi!",
+ "We were unable to process your order": "Kami tidak dapat memproses pesanan Anda",
+ "New order for :amount for :event đ": "Pesanan baru sejumlah :amount untuk :event đ",
+ "New order for :event đ": "Pesanan baru untuk :event đ",
+ "Confirm email change": "Konfirmasi perubahan email",
+ "Password reset": "Atur ulang kata sandi",
+ "Your password has been reset": "Kata sandi Anda telah diatur ulang",
+ "You\\'ve been invited to join :appName": "Anda diundang untuk bergabung dengan :appName",
+ "Current account ID is not set": "ID akun saat ini tidak diatur",
+ "User not found in this account": "Pengguna tidak ditemukan di akun ini",
+ "User not found": "Pengguna tidak ditemukan",
+ "Username or Password are incorrect": "Nama pengguna atau Kata Sandi salah",
+ "Account not found": "Akun tidak ditemukan",
+ "Attempt to log in to a non-active account": "Percobaan masuk ke akun yang tidak aktif",
+ "User account is not active": "Akun pengguna tidak aktif",
+ "Invalid reset token": "Token atur ulang tidak valid",
+ "Reset token has expired": "Token atur ulang telah kedaluwarsa",
+ "Event daily statistics updated for event :event_id with total refunded amount of :amount": "Statistik harian acara diperbarui untuk acara :event_id dengan total jumlah pengembalian dana :amount",
+ "Event statistics updated for event :event_id with total refunded amount of :amount": "Statistik acara diperbarui untuk acara :event_id dengan total jumlah pengembalian dana :amount",
+ "This promo code is invalid": "Kode promo ini tidak valid",
+ "You haven\\'t selected any tickets": "Anda belum memilih tiket apa pun",
+ "The maximum number of tickets available for :tickets is :max": "Jumlah maksimum tiket yang tersedia untuk :tickets adalah :max",
+ "You must order at least :min tickets for :ticket": "Anda harus memesan setidaknya :min tiket untuk :ticket",
+ "The minimum amount is :price": "Jumlah minimum adalah :price",
+ "The ticket :ticket is sold out": "Tiket :ticket sudah habis terjual",
+ ":field must be specified": ":field harus ditentukan",
+ "Invalid price ID": "ID harga tidak valid",
+ "The maximum number of tickets available for :ticket is :max": "Jumlah maksimum tiket yang tersedia untuk :ticket adalah :max",
+ "Ticket with id :id not found": "Tiket dengan id :id tidak ditemukan",
+ "Failed to refund stripe charge": "Gagal mengembalikan dana biaya stripe",
+ "Payment was successful, but order has expired. Order: :id": "Pembayaran berhasil, tetapi pesanan telah kedaluwarsa. Pesanan: :id",
+ "Order is not awaiting payment. Order: :id": "Pesanan tidak menunggu pembayaran. Pesanan: :id",
+ "There was an error communicating with the payment provider. Please try again later.": "Terjadi kesalahan saat berkomunikasi dengan penyedia pembayaran. Silakan coba lagi nanti.",
+ "Stripe Connect account not found for the event organizer": "Akun Stripe Connect tidak ditemukan untuk penyelenggara acara",
+ "Cannot Refund: Stripe connect account not found and saas_mode_enabled is enabled": "Tidak Dapat Mengembalikan Dana: Akun Stripe connect tidak ditemukan dan saas_mode_enabled diaktifkan",
+ "Invalid calculation type": "Jenis perhitungan tidak valid",
+ "One or more tax IDs are invalid": "Satu atau lebih ID pajak tidak valid",
+ "Invalid ticket ids: :ids": "ID tiket tidak valid: :ids",
+ "Cannot delete ticket price with id :id because it has sales": "Tidak dapat menghapus harga tiket dengan id :id karena memiliki penjualan",
+ "Order has no order items": "Pesanan tidak memiliki item pesanan",
+ "There is already an account associated with this email. Please log in instead.": "Sudah ada akun yang terkait dengan email ini. Silakan masuk.",
+ "Stripe Connect Account creation is only available in Saas Mode.": "Pembuatan Akun Stripe Connect hanya tersedia di Mode Saas.",
+ "There are issues with creating or fetching the Stripe Connect Account. Please try again.": "Ada masalah saat membuat atau mengambil Akun Stripe Connect. Silakan coba lagi.",
+ "There are issues with creating the Stripe Connect Account Link. Please try again.": "Ada masalah saat membuat Tautan Akun Stripe Connect. Silakan coba lagi.",
+ "Cannot check in attendee as they are not active.": "Tidak dapat check-in peserta karena tidak aktif.",
+ "in": "masuk",
+ "out": "keluar",
+ "There are no tickets available. ' .\n 'If you would like to assign a ticket to this attendee,' .\n ' please adjust the ticket\\'s available quantity.": "Tidak ada tiket yang tersedia. ' .\n 'Jika Anda ingin menetapkan tiket ke peserta ini,' .\n ' harap sesuaikan kuantitas tiket yang tersedia.",
+ "The ticket price ID is invalid.": "ID harga tiket tidak valid.",
+ "Ticket ID is not valid": "ID Tiket tidak valid",
+ "There are no tickets available. If you would like to assign this ticket to this attendee, please adjust the ticket\\'s available quantity.": "Tidak ada tiket yang tersedia. Jika Anda ingin menetapkan tiket ini ke peserta ini, harap sesuaikan kuantitas tiket yang tersedia.",
+ "Attendee ID is not valid": "ID Peserta tidak valid",
+ "The invitation does not exist": "Undangan tidak ada",
+ "The invitation has already been accepted": "Undangan sudah diterima",
+ "Organizer :id not found": "Penyelenggara :id tidak ditemukan",
+ "Continue": "Lanjutkan",
+ "Event :id not found": "Acara :id tidak ditemukan",
+ "You cannot change the currency of an event that has completed orders": "Anda tidak dapat mengubah mata uang acara yang memiliki pesanan selesai",
+ "You must verify your account before you can update an event\\'s status.\n You can resend the confirmation by visiting your profile page.": "Anda harus memverifikasi akun Anda sebelum dapat memperbarui status acara.\n Anda dapat mengirim ulang konfirmasi dengan mengunjungi halaman profil Anda.",
+ "You cannot send messages until your account is verified.": "Anda tidak dapat mengirim pesan sampai akun Anda diverifikasi.",
+ "Order not found": "Pesanan tidak ditemukan",
+ "Order already cancelled": "Pesanan sudah dibatalkan",
+ "Failed to create attendee": "Gagal membuat peserta",
+ "This order is has already been processed": "Pesanan ini sudah diproses",
+ "This order has expired": "Pesanan ini telah kedaluwarsa",
+ "This order has already been processed": "Pesanan ini sudah diproses",
+ "There is an unexpected ticket price ID in the order": "Terdapat ID harga tiket yang tidak valid dalam pesanan",
+ "This event is not live.": "Acara ini tidak aktif.",
+ "Sorry, we could not verify your session. Please create a new order.": "Maaf, kami tidak dapat memverifikasi sesi Anda. Silakan buat pesanan baru.",
+ "There is no Stripe data associated with this order.": "Tidak ada data Stripe yang terkait dengan pesanan ini.",
+ "There is already a refund pending for this order.\n Please wait for the refund to be processed before requesting another one.": "Sudah ada pengembalian dana yang tertunda untuk pesanan ini.\n Harap tunggu pengembalian dana diproses sebelum meminta yang lain.",
+ "Promo code :code already exists": "Kode promo :code sudah ada",
+ "The code :code is already in use for this event": "Kode :code sudah digunakan untuk acara ini",
+ "You cannot delete this question as there as answers associated with it. You can hide the question instead.": "Anda tidak dapat menghapus pertanyaan ini karena ada jawaban yang terkait dengannya. Anda dapat menyembunyikan pertanyaan sebagai gantinya.",
+ "One or more of the ordered question IDs do not exist for the event.": "Satu atau lebih ID pertanyaan yang dipesan tidak ada untuk acara tersebut.",
+ "You cannot delete this ticket because it has orders associated with it. You can hide it instead.": "Anda tidak dapat menghapus tiket ini karena ada pesanan yang terkait dengannya. Anda dapat menyembunyikannya sebagai gantinya.",
+ "Ticket type cannot be changed as tickets have been registered for this type": "Jenis tiket tidak dapat diubah karena tiket telah terdaftar untuk jenis ini",
+ "The ordered ticket IDs must exactly match all tickets for the event without missing or extra IDs.": "ID tiket yang dipesan harus sama persis dengan semua tiket untuk acara tanpa ID yang hilang atau tambahan.",
+ "No email change pending": "Tidak ada perubahan email yang tertunda",
+ "The email :email already exists on this account": "Email :email sudah ada di akun ini",
+ "You are not authorized to perform this action.": "Anda tidak berwenang untuk melakukan tindakan ini.",
+ "Your account is not active.": "Akun Anda tidak aktif.",
+ "Payload has expired or is invalid.": "Payload telah kedaluwarsa atau tidak valid.",
+ "Payload could not be decrypted.": "Payload tidak dapat didekripsi.",
+ "Could not upload image to :disk. Check :disk is configured correctly": "Tidak dapat mengunggah gambar ke :disk. Periksa :disk dikonfigurasi dengan benar",
+ "Could not upload image": "Tidak dapat mengunggah gambar",
+ "Length must be a positive integer.": "Panjang harus berupa bilangan bulat positif.",
+ "Prefix length exceeds the total desired token length.": "Panjang awalan melebihi total panjang token yang diinginkan.",
+ "A valid email is required": "Email yang valid wajib diisi",
+ "The title field is required": "Bidang judul wajib diisi",
+ "The attribute name is required": "Nama atribut wajib diisi",
+ "The attribute value is required": "Nilai atribut wajib diisi",
+ "The attribute is_public fields is required": "Bidang atribut is_public wajib diisi",
+ "Required questions have not been answered. You may need to reload the page.": "Pertanyaan wajib belum dijawab. Anda mungkin perlu memuat ulang halaman.",
+ "This question is outdated. Please reload the page.": "Pertanyaan ini sudah usang. Silakan muat ulang halaman.",
+ "Please select an option": "Silakan pilih opsi",
+ "This field is required.": "Bidang ini wajib diisi.",
+ "This field must be less than 255 characters.": "Bidang ini harus kurang dari 255 karakter.",
+ "This field must be at least 2 characters.": "Bidang ini harus setidaknya 2 karakter.",
+ "Hello": "Halo",
+ "You have requested to reset your password for your account on :appName.": "Anda telah meminta untuk mengatur ulang kata sandi untuk akun Anda di :appName.",
+ "Please click the link below to reset your password.": "Silakan klik tautan di bawah ini untuk mengatur ulang kata sandi Anda.",
+ "Reset Password": "Atur Ulang Kata Sandi",
+ "If you did not request a password reset, please ignore this email or reply to let us know.": "Jika Anda tidak meminta pengaturan ulang kata sandi, harap abaikan email ini atau balas untuk memberi tahu kami.",
+ "Thank you": "Terima kasih",
+ "Your password has been reset for your account on :appName.": "Kata sandi Anda telah diatur ulang untuk akun Anda di :appName.",
+ "If you did not request a password reset, please immediately contact reset your password.": "Jika Anda tidak meminta pengaturan ulang kata sandi, harap segera hubungi kami untuk mengatur ulang kata sandi Anda.",
+ "You are receiving this communication because you are registered as an attendee for the following event:": "Anda menerima komunikasi ini karena Anda terdaftar sebagai peserta untuk acara berikut:",
+ "If you believe you have received this email in error,": "Jika Anda yakin menerima email ini karena kesalahan,",
+ "please contact the event organizer at": "silakan hubungi penyelenggara acara di",
+ "If you believe this is spam, please report it to": "Jika Anda yakin ini spam, silakan laporkan ke",
+ "You\\'re going to": "Anda akan pergi ke",
+ "Please find your ticket details below.": "Temukan detail tiket Anda di bawah ini.",
+ "View Ticket": "Lihat Tiket",
+ "If you have any questions or need assistance, please reply to this email or contact the event organizer": "Jika Anda memiliki pertanyaan atau butuh bantuan, silakan balas email ini atau hubungi penyelenggara acara",
+ "at": "di",
+ "Best regards,": "Salam hangat,",
+ "Your order for": "Pesanan Anda untuk",
+ "has been cancelled.": "telah dibatalkan.",
+ "Order #:": "No. Pesanan:",
+ "If you have any questions or need assistance, please respond to this email.": "Jika Anda memiliki pertanyaan atau butuh bantuan, silakan balas email ini.",
+ "Your recent order for": "Pesanan terbaru Anda untuk",
+ "was not successful.": "tidak berhasil.",
+ "View Event Homepage": "Lihat Beranda Acara",
+ "If you have any questions or need assistance, feel free to reach out to our support team": "Jika Anda memiliki pertanyaan atau butuh bantuan, jangan ragu untuk menghubungi tim dukungan kami",
+ "Best regards": "Salam hangat",
+ "You have received a refund of :refundAmount for the following event: :eventTitle.": "Anda telah menerima pengembalian dana sebesar :refundAmount untuk acara berikut: :eventTitle.",
+ "You\\'ve received a new order!": "Anda telah menerima pesanan baru!",
+ "Congratulations! You\\'ve received a new order for ": "Selamat! Anda telah menerima pesanan baru untuk ",
+ "Please find the details below.": "Temukan detailnya di bawah ini.",
+ "Order Amount:": "Jumlah Pesanan:",
+ "Order ID:": "ID Pesanan:",
+ "View Order": "Lihat Pesanan",
+ "Ticket": "Tiket",
+ "Price": "Harga",
+ "Total": "Total",
+ "Your recent order for :eventTitle was not successful. The order expired while you were completing the payment. We have issued a refund for the order.": "Pesanan terbaru Anda untuk :eventTitle tidak berhasil. Pesanan kedaluwarsa saat Anda menyelesaikan pembayaran. Kami telah menerbitkan pengembalian dana untuk pesanan tersebut.",
+ "We apologize for the inconvenience. If you have any questions or need assistance, feel free to reach us at": "Kami mohon maaf atas ketidaknyamanan ini. Jika Anda memiliki pertanyaan atau butuh bantuan, jangan ragu untuk menghubungi kami di",
+ "View Event Page": "Lihat Halaman Acara",
+ "Hi.Events": "Hi.Events",
+ "Your Order is Confirmed! ": "Pesanan Anda Dikonfirmasi! ",
+ "Congratulations! Your order for :eventTitle on :eventDate at :eventTime was successful. Please find your order details below.": "Selamat! Pesanan Anda untuk :eventTitle pada :eventDate pukul :eventTime berhasil. Temukan detail pesanan Anda di bawah ini.",
+ "Event Details": "Detail Acara",
+ "Event Name:": "Nama Acara:",
+ "Date & Time:": "Tanggal & Waktu:",
+ "Order Summary": "Ringkasan Pesanan",
+ "Order Number:": "Nomor Pesanan:",
+ "Total Amount:": "Jumlah Total:",
+ "View Order Summary & Tickets": "Lihat Ringkasan Pesanan & Tiket",
+ "If you have any questions or need assistance, feel free to reach out to our friendly support team at": "Jika Anda memiliki pertanyaan atau butuh bantuan, jangan ragu untuk menghubungi tim dukungan kami yang ramah di",
+ "What\\'s Next?": "Apa Selanjutnya?",
+ "Download Tickets:": "Unduh Tiket:",
+ "Please download your tickets from the order summary page.": "Silakan unduh tiket Anda dari halaman ringkasan pesanan.",
+ "Prepare for the Event:": "Bersiap untuk Acara:",
+ "Make sure to note the event date, time, and location.": "Pastikan untuk mencatat tanggal, waktu, dan lokasi acara.",
+ "Stay Updated:": "Tetap Terinformasi:",
+ "Keep an eye on your email for any updates from the event organizer.": "Pantau email Anda untuk pembaruan apa pun dari penyelenggara acara.",
+ "Hi :name": "Hai :name",
+ "Welcome to :appName! We\\'re excited to have you aboard!": "Selamat datang di :appName! Kami senang Anda bergabung!",
+ "To get started and activate your account, please click the link below to confirm your email address:": "Untuk memulai dan mengaktifkan akun Anda, silakan klik tautan di bawah ini untuk mengonfirmasi alamat email Anda:",
+ "Confirm Your Email": "Konfirmasi Email Anda",
+ "If you did not create an account with us, no further action is required. Your email address will not be used without confirmation.": "Jika Anda tidak membuat akun dengan kami, tidak ada tindakan lebih lanjut yang diperlukan. Alamat email Anda tidak akan digunakan tanpa konfirmasi.",
+ "Best Regards,": "Salam Hangat,",
+ "The :appName Team": "Tim :appName",
+ "You have requested to change your email address to :pendingEmail. Please click the link below to confirm this change.": "Anda telah meminta untuk mengubah alamat email Anda ke :pendingEmail. Silakan klik tautan di bawah ini untuk mengonfirmasi perubahan ini.",
+ "If you did not request this change, please immediately change your password.": "Jika Anda tidak meminta perubahan ini, harap segera ubah kata sandi Anda.",
+ "Thanks,": "Terima kasih,",
+ "You\\'ve been invited to join :appName.": "Anda telah diundang untuk bergabung dengan :appName.",
+ "To accept the invitation, please click the link below:": "Untuk menerima undangan, silakan klik tautan di bawah ini:",
+ "Accept Invitation": "Terima Undangan",
+ "All rights reserved.": "Hak cipta dilindungi undang-undang.",
+ "Congratulations đ": "Selamat đ",
+ "Sent Date Oldest": "Tanggal Kirim Terlama",
+ "Sent Date Newest": "Tanggal Kirim Terbaru",
+ "Subject A-Z": "Subjek A-Z",
+ "Subject Z-A": "Subjek Z-A",
+ "Name A-Z": "Nama A-Z",
+ "Name Z-A": "Nama Z-A",
+ "Updated oldest first": "Diperbarui terlama dulu",
+ "Updated newest first": "Diperbarui terbaru dulu",
+ "Most capacity used": "Kapasitas paling banyak digunakan",
+ "Least capacity used": "Kapasitas paling sedikit digunakan",
+ "Least capacity": "Kapasitas terkecil",
+ "Most capacity": "Kapasitas terbesar",
+ "Sorry, these tickets are sold out": "Maaf, tiket ini sudah habis terjual",
+ "The maximum number of tickets available is :max": "Jumlah maksimum tiket yang tersedia adalah :max",
+ "Ticket is hidden without promo code": "Tiket disembunyikan tanpa kode promo",
+ "Ticket is sold out": "Tiket habis terjual",
+ "Ticket is before sale start date": "Tiket sebelum tanggal mulai penjualan",
+ "Ticket is after sale end date": "Tiket setelah tanggal akhir penjualan",
+ "Ticket is hidden": "Tiket disembunyikan",
+ "Price is before sale start date": "Harga sebelum tanggal mulai penjualan",
+ "Price is after sale end date": "Harga setelah tanggal akhir penjualan",
+ "Price is sold out": "Harga habis terjual",
+ "Price is hidden": "Harga disembunyikan",
+ "Expires soonest": "Kedaluwarsa paling cepat",
+ "Expires latest": "Kedaluwarsa paling lambat",
+ "The expiration date must be after the activation date.": "Tanggal kedaluwarsa harus setelah tanggal aktivasi.",
+ "The activation date must be before the expiration date.": "Tanggal aktivasi harus sebelum tanggal kedaluwarsa.",
+ "Attendee :attendee_name is not allowed to check in using this check-in list": "Peserta :attendee_name tidak diperbolehkan check-in menggunakan daftar check-in ini",
+ "Invalid attendee code detected: :attendees ": "Kode peserta tidak valid terdeteksi: :attendees ",
+ "Check-in list not found": "Daftar check-in tidak ditemukan",
+ "Attendee :attendee_name is already checked in": "Peserta :attendee_name sudah check-in",
+ "Check-in list has expired": "Daftar check-in sudah kedaluwarsa",
+ "Check-in list is not active yes": "Daftar check-in belum aktif",
+ "This attendee is not checked in": "Peserta ini belum check-in",
+ "Attendee does not belong to this check-in list": "Peserta tidak termasuk dalam daftar check-in ini",
+ "Attendee :attendee_name\\'s ticket is cancelled": "Tiket peserta :attendee_name dibatalkan",
+ "Check-in list is not active yet": "Daftar check-in belum aktif",
+ "The number of attendees does not match the number of tickets in the order": "Jumlah peserta tidak sesuai dengan jumlah tiket dalam pesanan",
+ "Product is required": "Produk wajib diisi",
+ "Product price is required": "Harga produk wajib diisi",
+ "Please select at least one product.": "Silakan pilih setidaknya satu produk.",
+ "The sale start date must be after the product sale start date.": "Tanggal mulai penjualan harus setelah tanggal mulai penjualan produk.",
+ "You must select a product category.": "Anda harus memilih kategori produk.",
+ "Invalid direction. Must be either asc or desc": "Arah tidak valid. Harus asc atau desc",
+ "DomainObject must be a valid :interface.": "DomainObject harus berupa :interface yang valid.",
+ "Nested relationships must be an array of Relationship objects.": "Hubungan bersarang harus berupa array objek Relationship.",
+ "OrderAndDirections must be an array of OrderAndDirection objects.": "OrderAndDirections harus berupa array objek OrderAndDirection.",
+ "Attendee :attendee_name\\'s product is cancelled": "Produk peserta :attendee_name dibatalkan",
+ "Tickets": "Tiket",
+ "There are no tickets available for this event.": "Tidak ada tiket yang tersedia untuk acara ini.",
+ "You haven\\'t selected any products": "Anda belum memilih produk apa pun",
+ "The maximum number of products available for :products is :max": "Jumlah maksimum produk yang tersedia untuk :products adalah :max",
+ "You must order at least :min products for :product": "Anda harus memesan setidaknya :min produk untuk :product",
+ "The product :product is sold out": "Produk :product sudah habis terjual",
+ "The maximum number of products available for :product is :max": "Jumlah maksimum produk yang tersedia untuk :product adalah :max",
+ "Sorry, these products are sold out": "Maaf, produk ini sudah habis terjual",
+ "The maximum number of products available is :max": "Jumlah maksimum produk yang tersedia adalah :max",
+ "Product with id :id not found": "Produk dengan id :id tidak ditemukan",
+ "You cannot delete this product because it has orders associated with it. You can hide it instead.": "Anda tidak dapat menghapus produk ini karena ada pesanan yang terkait dengannya. Anda dapat menyembunyikannya sebagai gantinya.",
+ "Invalid product ids: :ids": "ID produk tidak valid: :ids",
+ "Product is hidden without promo code": "Produk disembunyikan tanpa kode promo",
+ "Product is sold out": "Produk habis terjual",
+ "Product is before sale start date": "Produk sebelum tanggal mulai penjualan",
+ "Product is after sale end date": "Produk setelah tanggal akhir penjualan",
+ "Product is hidden": "Produk disembunyikan",
+ "Cannot delete product price with id :id because it has sales": "Tidak dapat menghapus harga produk dengan id :id karena memiliki penjualan",
+ "You cannot delete this product category because it contains the following products: :products. These products are linked to existing orders. Please move the :product_name to another category before attempting to delete this one.": "Anda tidak dapat menghapus kategori produk ini karena berisi produk berikut: :products. Produk ini tertaut ke pesanan yang ada. Harap pindahkan :product_name ke kategori lain sebelum mencoba menghapus yang ini.",
+ "products": "produk",
+ "product": "produk",
+ "Product category :productCategoryId has been deleted.": "Kategori produk :productCategoryId telah dihapus.",
+ "You cannot delete the last product category. Please create another category before deleting this one.": "Anda tidak dapat menghapus kategori produk terakhir. Harap buat kategori lain sebelum menghapus yang ini.",
+ "The product category with ID :id was not found.": "Kategori produk dengan ID :id tidak ditemukan.",
+ "Expired": "Kedaluwarsa",
+ "Limit Reached": "Batas Tercapai",
+ "Deleted": "Dihapus",
+ "Active": "Aktif",
+ "This ticket is invalid": "Tiket ini tidak valid",
+ "There are no tickets available. ' .\n 'If you would like to assign a product to this attendee,' .\n ' please adjust the product\\'s available quantity.": "Tidak ada tiket yang tersedia. ' .\n 'Jika Anda ingin menetapkan produk ke peserta ini,' .\n ' harap sesuaikan kuantitas produk yang tersedia.",
+ "The product price ID is invalid.": "ID harga produk tidak valid.",
+ "Product ID is not valid": "ID Produk tidak valid",
+ "There are no products available. If you would like to assign this product to this attendee, please adjust the product\\'s available quantity.": "Tidak ada produk yang tersedia. Jika Anda ingin menetapkan produk ini ke peserta ini, harap sesuaikan kuantitas produk yang tersedia.",
+ "There is an unexpected product price ID in the order": "Terdapat ID harga produk yang tidak valid dalam pesanan",
+ "Product type cannot be changed as products have been registered for this type": "Jenis produk tidak dapat diubah karena produk telah terdaftar untuk jenis ini",
+ "The ordered category IDs must exactly match all categories for the event without missing or extra IDs.": "ID kategori yang dipesan harus sama persis dengan semua kategori untuk acara tanpa ID yang hilang atau tambahan.",
+ "The ordered product IDs must exactly match all products for the event without missing or extra IDs.": "ID produk yang dipesan harus sama persis dengan semua produk untuk acara tanpa ID yang hilang atau tambahan.",
+ "This product is outdated. Please reload the page.": "Produk ini sudah usang. Silakan muat ulang halaman.",
+ "Reserved": "Dipesan",
+ "Cancelled": "Dibatalkan",
+ "Completed": "Selesai",
+ "Awaiting offline payment": "Menunggu pembayaran offline",
+ "ID": "ID",
+ "First Name": "Nama Depan",
+ "Last Name": "Nama Belakang",
+ "Email": "Email",
+ "Status": "Status",
+ "Is Checked In": "Sudah Check-In",
+ "Checked In At": "Check-In Pada",
+ "Product ID": "ID Produk",
+ "Product Name": "Nama Produk",
+ "Event ID": "ID Acara",
+ "Public ID": "ID Publik",
+ "Short ID": "ID Pendek",
+ "Created Date": "Tanggal Dibuat",
+ "Last Updated Date": "Tanggal Terakhir Diperbarui",
+ "Notes": "Catatan",
+ "Total Before Additions": "Total Sebelum Tambahan",
+ "Total Gross": "Total Kotor",
+ "Total Tax": "Total Pajak",
+ "Total Fee": "Total Biaya",
+ "Total Refunded": "Total Dikembalikan",
+ "Payment Status": "Status Pembayaran",
+ "Refund Status": "Status Pengembalian Dana",
+ "Currency": "Mata Uang",
+ "Created At": "Dibuat Pada",
+ "Payment Gateway": "Payment Gateway",
+ "Is Partially Refunded": "Dikembalikan Sebagian",
+ "Is Fully Refunded": "Dikembalikan Sepenuhnya",
+ "Is Free Order": "Pesanan Gratis",
+ "Is Manually Created": "Dibuat Secara Manual",
+ "Billing Address": "Alamat Penagihan",
+ "Promo Code": "Kode Promo",
+ "Failed to handle incoming Stripe webhook": "Gagal menangani webhook Stripe yang masuk",
+ "Notes must be less than 2000 characters": "Catatan harus kurang dari 2000 karakter",
+ "Invalid payment provider selected.": "Penyedia pembayaran tidak valid dipilih.",
+ "Payment instructions are required when offline payments are enabled.": "Instruksi pembayaran diperlukan ketika pembayaran offline diaktifkan.",
+ "The invoice prefix may only contain letters, numbers, and hyphens.": "Awalan faktur hanya boleh berisi huruf, angka, dan tanda hubung.",
+ "The organization name is required when invoicing is enabled.": "Nama organisasi diperlukan ketika faktur diaktifkan.",
+ "The organization address is required when invoicing is enabled.": "Alamat organisasi diperlukan ketika faktur diaktifkan.",
+ "The invoice start number must be at least 1.": "Nomor mulai faktur harus setidaknya 1.",
+ "There is no default account configuration available": "Tidak ada konfigurasi akun default yang tersedia",
+ "Product price ID is not valid": "ID harga produk tidak valid",
+ "Invoice": "Faktur",
+ "Editing order with ID: :id": "Mengedit pesanan dengan ID: :id",
+ "Marking order as paid": "Menandai pesanan sebagai lunas",
+ "Received a :event Stripe event, which has no handler": "Menerima acara Stripe :event, yang tidak memiliki penangan",
+ "Order is not in the correct status to transition to offline payment": "Pesanan tidak dalam status yang benar untuk beralih ke pembayaran offline",
+ "Order reservation has expired": "Reservasi pesanan telah kedaluwarsa",
+ "Offline payments are not enabled for this event": "Pembayaran offline tidak diaktifkan untuk acara ini",
+ "There are no products available in this category": "Tidak ada produk yang tersedia dalam kategori ini",
+ "Webhook not found": "Webhook tidak ditemukan",
+ "Unable to check in as attendee :attendee_name\\'s order is awaiting payment": "Tidak dapat check-in karena pesanan peserta :attendee_name sedang menunggu pembayaran",
+ "Attendee :attendee_name\\'s order cannot be marked as paid. Please check your event settings": "Pesanan peserta :attendee_name tidak dapat ditandai sebagai lunas. Harap periksa pengaturan acara Anda",
+ "Invoice already exists": "Faktur sudah ada",
+ "Invoice not found": "Faktur tidak ditemukan",
+ "Order is not awaiting offline payment": "Pesanan tidak menunggu pembayaran offline",
+ "Refund already processed": "Pengembalian dana sudah diproses",
+ "Stripe refund successful": "Pengembalian dana Stripe berhasil",
+ "There are no tickets available for this event": "Tidak ada tiket yang tersedia untuk acara ini",
+ "Address line 1 is required": "Baris alamat 1 wajib diisi",
+ "City is required": "Kota wajib diisi",
+ "Zip or postal code is required": "Kode pos wajib diisi",
+ "Country is required": "Negara wajib diisi",
+ "If you did not request a password reset, please immediately reset your password.": "Jika Anda tidak meminta pengaturan ulang kata sandi, harap segera atur ulang kata sandi Anda.",
+ "âšī¸ Your order is pending payment. Tickets have been issued but will not be valid until payment is received.": "âšī¸ Pesanan Anda sedang menunggu pembayaran. Tiket telah diterbitkan tetapi tidak akan valid sampai pembayaran diterima.",
+ "âšī¸ This order is pending payment. Please mark the payment as received on the order management page once payment is received.": "âšī¸ Pesanan ini sedang menunggu pembayaran. Harap tandai pembayaran sebagai diterima di halaman manajemen pesanan setelah pembayaran diterima.",
+ "Order Status:": "Status Pesanan:",
+ "Your order is pending payment. Tickets have been issued but will not be valid until payment is received.": "Pesanan Anda sedang menunggu pembayaran. Tiket telah diterbitkan tetapi tidak akan valid sampai pembayaran diterima.",
+ "Payment Instructions": "Instruksi Pembayaran",
+ "Please follow the instructions below to complete your payment.": "Silakan ikuti instruksi di bawah ini untuk menyelesaikan pembayaran Anda.",
+ "Invoice Number": "Nomor Faktur",
+ "Date Issued": "Date Issued",
+ "Due Date": "Tanggal Terbit",
+ "Amount Due": "Jumlah Tagihan",
+ "Billed To": "Ditagihkan Kepada",
+ "DESCRIPTION": "DESKRIPSI",
+ "RATE": "HARGA SATUAN",
+ "QTY": "JML",
+ "AMOUNT": "JUMLAH",
+ "Subtotal": "Subtotal",
+ "Total Discount": "Total Diskon",
+ "Total Service Fee": "Total Biaya Layanan",
+ "Total Amount": "Jumlah Total",
+ "For any queries, please contact us at": "Untuk pertanyaan apa pun, silakan hubungi kami di",
+ "Tax Information": "Informasi Pajak",
+ "Sales Ascending": "Penjualan (Naik)",
+ "Sales Descending": "Penjualan (Turun)",
+ "Revenue Ascending": "Pendapatan (Naik)",
+ "Revenue Descending": "Pendapatan (Turun)",
+ "Social": "Sosial",
+ "Food & Drink": "Makanan & Minuman",
+ "Charity": "Amal",
+ "Music": "Musik",
+ "Art": "Seni",
+ "Comedy": "Komedi",
+ "Theater": "Teater",
+ "Business": "Bisnis",
+ "Tech": "Teknologi",
+ "Education": "Pendidikan",
+ "Workshop": "Workshop",
+ "Sports": "Olahraga",
+ "Festival": "Festival",
+ "Nightlife": "Hiburan Malam",
+ "Other": "Lainnya",
+ "Name": "Nama",
+ "Code": "Kode",
+ "Total Sales": "Total Penjualan",
+ "Total Sales Gross": "Total Penjualan Kotor",
+ "Updated At": "Diperbarui Pada",
+ "Question": "Pertanyaan",
+ "Answer": "Jawaban",
+ "Order ID": "ID Pesanan",
+ "Order Email": "Email Pesanan",
+ "Attendee Name": "Nama Peserta",
+ "Attendee Email": "Email Peserta",
+ "Product": "Produk",
+ "Order URL": "URL Pesanan",
+ "Attendee Answers": "Jawaban Peserta",
+ "Order Name": "Nama Pesanan",
+ "Order Answers": "Jawaban Pesanan",
+ "Product Answers": "Jawaban Produk",
+ "Payment Provider": "Penyedia Pembayaran",
+ "Invalid invite token": "Token undangan tidak valid",
+ "Affiliate not found": "Afiliasi tidak ditemukan",
+ "Organizer with ID :organizerId is not live and user is not authenticated": "Penyelenggara dengan ID :organizerId tidak aktif dan pengguna tidak terautentikasi",
+ "Message sent successfully": "Pesan berhasil dikirim",
+ "Your email has been successfully verified!": "Email Anda telah berhasil diverifikasi!",
+ "The image must be at least 600 pixels wide and 50 pixels tall, and no more than 4000 pixels wide and 4000 pixels tall.": "Gambar harus setidaknya 600 piksel lebar dan 50 piksel tinggi, dan tidak lebih dari 4000 piksel lebar dan 4000 piksel tinggi.",
+ "The image must be at least :minWidth x :minHeight pixels.": "Gambar harus setidaknya :minWidth x :minHeight piksel.",
+ "The entity ID is required when type is provided.": "ID entitas diperlukan ketika tipe disediakan.",
+ "The type is required when entity ID is provided.": "Tipe diperlukan ketika ID entitas disediakan.",
+ "Your confirmation code for :app_name is :code": "Kode konfirmasi Anda untuk :app_name adalah :code",
+ "New message from :name": "Pesan baru dari :name",
+ "An affiliate with this code already exists for this event": "Afiliasi dengan kode ini sudah ada untuk acara ini",
+ "New password must be different from the old password.": "Kata sandi baru harus berbeda dari kata sandi lama.",
+ "Due to issues with spam, you must contact us to enable your account for sending messages. ' .\n 'Please contact us at :email": "Karena masalah spam, Anda harus menghubungi kami untuk mengaktifkan pengiriman pesan di akun Anda. Silakan hubungi kami di :email",
+ "Sorry, is expired or not in a valid state.": "Maaf, sudah kedaluwarsa atau tidak dalam status yang valid.",
+ "Organizer not found": "Penyelenggara tidak ditemukan",
+ "You must verify your account before you can update an organizer\\'s status.\n You can resend the confirmation by visiting your profile page.": "Anda harus memverifikasi akun Anda sebelum dapat memperbarui status penyelenggara.\n Anda dapat mengirim ulang konfirmasi dengan mengunjungi halaman profil Anda.",
+ "Your email address has already been verified.": "Alamat email Anda sudah diverifikasi.",
+ "The verification code is invalid or has expired.": "Kode verifikasi tidak valid atau telah kedaluwarsa.",
+ "Job not found": "Pekerjaan tidak ditemukan",
+ "Export file not found": "File ekspor tidak ditemukan",
+ "Job completed successfully": "Pekerjaan selesai dengan sukses",
+ "Job is still in progress": "Pekerjaan masih berlangsung",
+ "Email Subject": "Subjek Email",
+ "Š :year :app_name. All rights reserved.": "Š :year :app_name. Hak cipta dilindungi undang-undang.",
+ "Need help?": "Butuh bantuan?",
+ "Contact Support": "Hubungi Dukungan",
+ "Additional Information": "Informasi Tambahan",
+ "If you have any questions or need assistance, please contact": "Jika Anda memiliki pertanyaan atau butuh bantuan, silakan hubungi",
+ "Hello :name": "Halo :name",
+ "You have received a new message from": "Anda telah menerima pesan baru dari",
+ "Reply to :name": "Balas ke :name",
+ "This message was sent via your organizer contact form.": "Pesan ini dikirim melalui formulir kontak penyelenggara Anda.",
+ "Your email confirmation code is:": "Kode konfirmasi email Anda adalah:",
+ "Ticket Name A-Z": "Nama Tiket A-Z",
+ "Ticket Name Z-A": "Nama Tiket Z-A",
+ "Liquid": "Liquid",
+ "Blade": "Blade",
+ "Order Confirmation": "Konfirmasi Pesanan",
+ "Attendee Ticket": "Tiket Peserta",
+ "Sent to the customer after placing an order": "Dikirim ke pelanggan setelah melakukan pemesanan",
+ "Sent to each attendee with their ticket": "Dikirim ke setiap peserta bersama tiket mereka",
+ "Abandoned": "Ditinggalkan",
+ "Check Ins": "Check-In",
+ "Unknown": "Tidak Diketahui",
+ "Opted In To Marketing": "Memilih Ikut Pemasaran",
+ "Unauthorized": "Tidak Sah",
+ "Configuration assigned successfully.": "Konfigurasi berhasil ditetapkan.",
+ "Impersonation started": "Simulasi pengguna dimulai",
+ "Not currently impersonating": "Saat ini tidak sedang melakukan simulasi",
+ "Impersonation ended": "Simulasi pengguna berakhir",
+ "No user role found in token": "Peran pengguna tidak ditemukan dalam token",
+ "You cannot modify email templates until your account is verified.": "Anda tidak dapat memodifikasi template email sampai akun Anda diverifikasi.",
+ "Due to issues with spam, you must connect a Stripe account before you can modify email templates.": "Karena masalah spam, Anda harus menghubungkan akun Stripe sebelum dapat memodifikasi template email.",
+ "Invalid template type": "Jenis template tidak valid",
+ "Superadmin user is viewing non-live event with ID :eventId": "Pengguna Superadmin sedang melihat acara non-live dengan ID :eventId",
+ "Invalid report type.": "Jenis laporan tidak valid.",
+ "Date range must be less than 370 days.": "Rentang tanggal harus kurang dari 370 hari.",
+ "Attendee updated successfully": "Peserta berhasil diperbarui",
+ "Order updated successfully": "Pesanan berhasil diperbarui",
+ "Ticket resent successfully": "Tiket berhasil dikirim ulang",
+ "Order confirmation resent successfully": "Konfirmasi pesanan berhasil dikirim ulang",
+ "If you have tickets associated with this email, we will send you an email with the details.": "Jika Anda memiliki tiket yang terkait dengan email ini, kami akan mengirimkan detailnya melalui email.",
+ "The footer text may not be greater than 500 characters.": "Teks footer tidak boleh lebih dari 500 karakter.",
+ "The layout type must be default or modern.": "Jenis tata letak harus default atau modern.",
+ "The mode must be light or dark.": "Mode harus terang atau gelap.",
+ "The background type must be COLOR or MIRROR_COVER_IMAGE.": "Jenis latar belakang harus COLOR atau MIRROR_COVER_IMAGE.",
+ "First name must be a string": "Nama depan harus berupa string",
+ "First name must not exceed 255 characters": "Nama depan tidak boleh lebih dari 255 karakter",
+ "Last name must be a string": "Nama belakang harus berupa string",
+ "Last name must not exceed 255 characters": "Nama belakang tidak boleh lebih dari 255 karakter",
+ "Email must not exceed 255 characters": "Email tidak boleh lebih dari 255 karakter",
+ "Validation failed after multiple attempts: :error": "Validasi gagal setelah beberapa percobaan: :error",
+ "Your Ticket Details Have Been Changed": "Detail Tiket Anda Telah Diubah",
+ "Your Order Details Have Been Changed": "Detail Pesanan Anda Telah Diubah",
+ "Response from :organizerName": "Tanggapan dari :organizerName",
+ "Your Tickets": "Tiket Anda",
+ "Invalid VAT number format": "Format nomor PPN tidak valid",
+ "The system default configuration cannot be deleted.": "Konfigurasi default sistem tidak dapat dihapus.",
+ "User does not belong to this account": "Pengguna tidak termasuk dalam akun ini",
+ "Impersonation not allowed": "Simulasi tidak diizinkan",
+ "Email template not found": "Template email tidak ditemukan",
+ "Unable to verify Stripe signature with any platform": "Tidak dapat memverifikasi tanda tangan Stripe dengan platform apa pun",
+ "Order :id not found for event :eventId": "Pesanan :id tidak ditemukan untuk acara :eventId",
+ "Order is not in a valid status to be abandoned": "Pesanan tidak dalam status yang valid untuk ditinggalkan",
+ "Order has already expired": "Pesanan telah kedaluwarsa",
+ "Attendee not found": "Peserta tidak ditemukan",
+ "Event not found": "Acara tidak ditemukan",
+ "Page must be a positive integer": "Halaman harus berupa bilangan bulat positif",
+ "Page not found": "Halaman tidak ditemukan",
+ "Invalid or expired link. Please request a new one.": "Tautan tidak valid atau kedaluwarsa. Silakan minta yang baru.",
+ "This link has expired. Please request a new one.": "Tautan ini telah kedaluwarsa. Silakan minta yang baru.",
+ "SUPERADMIN users cannot be created through the application": "Pengguna SUPERADMIN tidak dapat dibuat melalui aplikasi",
+ "Cannot associate a user with SUPERADMIN role to an account": "Tidak dapat mengasosiasikan pengguna dengan peran SUPERADMIN ke akun",
+ "View Order & Tickets": "Lihat Pesanan & Tiket",
+ "Summer Music Festival 2024": "Festival Musik Musim Panas 2024",
+ "3 Arena, North Wall Quay, Dublin 1, Ireland": "3 Arena, North Wall Quay, Dublin 1, Irlandia",
+ "Join us for an unforgettable evening of live music featuring top artists from around the world.": "Bergabunglah dengan kami untuk malam musik live yang tak terlupakan menampilkan artis top dari seluruh dunia.",
+ "Please transfer the total amount to the following bank account within 5 business days.": "Silakan transfer jumlah total ke rekening bank berikut dalam 5 hari kerja.",
+ "Thank you for your purchase! We look forward to seeing you at the event.": "Terima kasih atas pembelian Anda! Kami menantikan kehadiran Anda di acara tersebut.",
+ "Platform Fee": "Biaya Platform",
+ "Processing charge event": "Memproses acara biaya",
+ "Charge not in succeeded status, skipping": "Biaya tidak dalam status berhasil, melewatkan",
+ "Stripe payment not found for charge": "Pembayaran Stripe tidak ditemukan untuk biaya",
+ "Order not found for charge": "Pesanan tidak ditemukan untuk biaya",
+ "Extracting platform fee for order": "Mengekstrak biaya platform untuk pesanan",
+ "Retrieving balance transaction from Stripe": "Mengambil transaksi saldo dari Stripe",
+ "No balance transaction found for charge": "Tidak ada transaksi saldo ditemukan untuk biaya",
+ "Platform fee already stored for this transaction": "Biaya platform sudah disimpan untuk transaksi ini",
+ "Platform fee stored successfully": "Biaya platform berhasil disimpan",
+ "Failed to store platform fee": "Gagal menyimpan biaya platform",
+ "Ticket Reference": "Referensi Tiket",
+ "Order Reference": "Referensi Pesanan",
+ "The name of the event": "Nama acara",
+ "The event start date": "Tanggal mulai acara",
+ "The event start time": "Waktu mulai acara",
+ "The event end date": "Tanggal berakhir acara",
+ "The event end time": "Waktu berakhir acara",
+ "The full event address": "Alamat lengkap acara",
+ "The event venue name": "Nama lokasi acara",
+ "The venue address line 1": "Baris alamat lokasi 1",
+ "The venue address line 2": "Baris alamat lokasi 2",
+ "The venue city": "Kota lokasi",
+ "The venue state or region": "Negara bagian atau wilayah lokasi",
+ "The venue ZIP or postal code": "Kode pos lokasi",
+ "The venue country code": "Kode negara lokasi",
+ "The event description": "Deskripsi acara",
+ "The organizer\\'s name": "Nama penyelenggara",
+ "The organizer\\'s email": "Email penyelenggara",
+ "The support email address": "Alamat email dukungan",
+ "Instructions for offline payment": "Instruksi untuk pembayaran offline",
+ "Message shown after checkout": "Pesan yang ditampilkan setelah checkout",
+ "Link to view the order summary": "Tautan untuk melihat ringkasan pesanan",
+ "The order reference number": "Nomor referensi pesanan",
+ "The total order amount": "Jumlah total pesanan",
+ "The order date": "Tanggal pesanan",
+ "The first name of the person who placed the order": "Nama depan orang yang melakukan pemesanan",
+ "The last name of the person who placed the order": "Nama belakang orang yang melakukan pemesanan",
+ "The email of the person who placed the order": "Email orang yang melakukan pemesanan",
+ "The attendee\\'s full name": "Nama lengkap peserta",
+ "The attendee\\'s email": "Email peserta",
+ "The ticket type name": "Nama jenis tiket",
+ "The ticket price": "Harga tiket",
+ "Link to view/download the ticket": "Tautan untuk melihat/mengunduh tiket",
+ "Stripe secret key not configured for platform: :platform": "Kunci rahasia Stripe tidak dikonfigurasi untuk platform: :platform",
+ "VIES service returned HTTP :status": "Layanan VIES mengembalikan HTTP :status",
+ "VAT number is not valid according to VIES": "Nomor PPN tidak valid menurut VIES",
+ "Connection error: :error": "Kesalahan koneksi: :error",
+ "Validation error: :error": "Kesalahan validasi: :error",
+ "VIES service is temporarily busy. Validation will be retried.": "Layanan VIES sedang sibuk. Validasi akan dicoba lagi.",
+ "Member State service is temporarily unavailable. Validation will be retried.": "Layanan Negara Anggota sementara tidak tersedia. Validasi akan dicoba lagi.",
+ "VIES service timed out. Validation will be retried.": "Layanan VIES habis waktu. Validasi akan dicoba lagi.",
+ "VIES server is busy. Validation will be retried.": "Server VIES sibuk. Validasi akan dicoba lagi.",
+ "VIES service is unavailable. Validation will be retried.": "Layanan VIES tidak tersedia. Validasi akan dicoba lagi.",
+ "VIES service has reached maximum requests. Validation will be retried.": "Layanan VIES telah mencapai permintaan maksimum. Validasi akan dicoba lagi.",
+ "Invalid VAT number format.": "Format nomor PPN tidak valid.",
+ "Invalid requester information.": "Informasi peminta tidak valid.",
+ "VIES validation error: :code": "Kesalahan validasi VIES: :code",
+ "Please confirm your email address": "Silakan konfirmasi alamat email Anda",
+ "Email addresses do not match": "Alamat email tidak cocok",
+ "Please confirm the email address": "Silakan konfirmasi alamat email",
+ "Ticket Details Changed": "Detail Tiket Berubah",
+ "The details on your ticket for **:eventName** have been updated.": "Detail pada tiket Anda untuk **:eventName** telah diperbarui.",
+ "What Changed": "Apa yang Berubah",
+ "Security Information": "Informasi Keamanan",
+ "This change was made from IP address: :ipAddress": "Perubahan ini dibuat dari alamat IP: :ipAddress",
+ "If you did not make this change, please contact the event organizer immediately.": "Jika Anda tidak membuat perubahan ini, harap hubungi penyelenggara acara segera.",
+ "Event Organizer: :organizerName": "Penyelenggara Acara: :organizerName",
+ "Contact: :email": "Kontak: :email",
+ "Order Details Changed": "Detail Pesanan Berubah",
+ "The details on your order for **:eventName** have been updated.": "Detail pada pesanan Anda untuk **:eventName** telah diperbarui.",
+ "We found :count order(s) associated with :email.": "Kami menemukan :count pesanan yang terkait dengan :email.",
+ "Click the button below to view your tickets and order details.": "Klik tombol di bawah ini untuk melihat tiket dan detail pesanan Anda.",
+ "View My Tickets": "Lihat Tiket Saya",
+ "This link will expire in 24 hours.": "Tautan ini akan kedaluwarsa dalam 24 jam.",
+ "If you did not request this, please ignore this email.": "Jika Anda tidak meminta ini, silakan abaikan email ini."
+}
\ No newline at end of file
diff --git a/backend/lang/id/auth.php b/backend/lang/id/auth.php
new file mode 100644
index 000000000..5a32c7a57
--- /dev/null
+++ b/backend/lang/id/auth.php
@@ -0,0 +1,20 @@
+ 'Kredensial ini tidak cocok dengan catatan kami.',
+ 'password' => 'Password salah.',
+ 'throttle' => 'Terlalu banyak upaya login. Silakan coba lagi dalam :seconds detik.',
+
+];
diff --git a/backend/lang/id/pagination.php b/backend/lang/id/pagination.php
new file mode 100644
index 000000000..954627596
--- /dev/null
+++ b/backend/lang/id/pagination.php
@@ -0,0 +1,19 @@
+ '« Sebelumnya',
+ 'next' => 'Selanjutnya »',
+
+];
diff --git a/backend/lang/id/passwords.php b/backend/lang/id/passwords.php
new file mode 100644
index 000000000..eee8cad55
--- /dev/null
+++ b/backend/lang/id/passwords.php
@@ -0,0 +1,22 @@
+ 'Password Anda telah direset.',
+ 'sent' => 'Kami telah mengirimkan email berisi link reset password Anda.',
+ 'throttled' => 'Mohon tunggu sebelum mencoba lagi.',
+ 'token' => 'Token reset password ini tidak valid.',
+ 'user' => "Kami tidak bisa menemukan user dengan alamat email ini.",
+
+];
diff --git a/backend/lang/id/validation.php b/backend/lang/id/validation.php
new file mode 100644
index 000000000..bd5275403
--- /dev/null
+++ b/backend/lang/id/validation.php
@@ -0,0 +1,184 @@
+ 'Kolom :attribute harus disetujui.',
+ 'accepted_if' => 'Kolom :attribute harus disetujui ketika :other bernilai :value.',
+ 'active_url' => 'Kolom :attribute harus berupa URL yang valid.',
+ 'after' => 'Kolom :attribute harus berupa tanggal setelah :date.',
+ 'after_or_equal' => 'Kolom :attribute harus berupa tanggal setelah atau sama dengan :date.',
+ 'alpha' => 'Kolom :attribute hanya boleh berisi huruf.',
+ 'alpha_dash' => 'Kolom :attribute hanya boleh berisi huruf, angka, tanda hubung, dan garis bawah.',
+ 'alpha_num' => 'Kolom :attribute hanya boleh berisi huruf dan angka.',
+ 'array' => 'Kolom :attribute harus berupa array.',
+ 'ascii' => 'Kolom :attribute hanya boleh berisi karakter alfanumerik single-byte dan simbol.',
+ 'before' => 'Kolom :attribute harus berupa tanggal sebelum :date.',
+ 'before_or_equal' => 'Kolom :attribute harus berupa tanggal sebelum atau sama dengan :date.',
+ 'between' => [
+ 'array' => 'Kolom :attribute harus memiliki antara :min sampai :max item.',
+ 'file' => 'Kolom :attribute harus berukuran antara :min sampai :max kilobyte.',
+ 'numeric' => 'Kolom :attribute harus bernilai antara :min sampai :max.',
+ 'string' => 'Kolom :attribute harus memiliki panjang antara :min sampai :max karakter.',
+ ],
+ 'boolean' => 'Kolom :attribute harus bernilai true atau false.',
+ 'confirmed' => 'Konfirmasi :attribute tidak cocok.',
+ 'current_password' => 'Kata sandi salah.',
+ 'date' => 'Kolom :attribute harus berupa tanggal yang valid.',
+ 'date_equals' => 'Kolom :attribute harus berupa tanggal yang sama dengan :date.',
+ 'date_format' => 'Kolom :attribute harus sesuai dengan format :format.',
+ 'decimal' => 'Kolom :attribute harus memiliki :decimal angka desimal.',
+ 'declined' => 'Kolom :attribute harus ditolak.',
+ 'declined_if' => 'Kolom :attribute harus ditolak ketika :other bernilai :value.',
+ 'different' => 'Kolom :attribute dan :other harus berbeda.',
+ 'digits' => 'Kolom :attribute harus terdiri dari :digits digit.',
+ 'digits_between' => 'Kolom :attribute harus terdiri dari :min sampai :max digit.',
+ 'dimensions' => 'Kolom :attribute memiliki dimensi gambar yang tidak valid.',
+ 'distinct' => 'Kolom :attribute memiliki nilai duplikat.',
+ 'doesnt_end_with' => 'Kolom :attribute tidak boleh diakhiri dengan salah satu dari: :values.',
+ 'doesnt_start_with' => 'Kolom :attribute tidak boleh diawali dengan salah satu dari: :values.',
+ 'email' => 'Kolom :attribute harus berupa alamat email yang valid.',
+ 'ends_with' => 'Kolom :attribute harus diakhiri dengan salah satu dari: :values.',
+ 'enum' => ':attribute yang dipilih tidak valid.',
+ 'exists' => ':attribute yang dipilih tidak valid.',
+ 'file' => 'Kolom :attribute harus berupa file.',
+ 'filled' => 'Kolom :attribute harus memiliki nilai.',
+ 'gt' => [
+ 'array' => 'Kolom :attribute harus memiliki lebih dari :value item.',
+ 'file' => 'Kolom :attribute harus lebih besar dari :value kilobyte.',
+ 'numeric' => 'Kolom :attribute harus lebih besar dari :value.',
+ 'string' => 'Kolom :attribute harus lebih dari :value karakter.',
+ ],
+ 'gte' => [
+ 'array' => 'Kolom :attribute harus memiliki :value item atau lebih.',
+ 'file' => 'Kolom :attribute harus lebih besar dari atau sama dengan :value kilobyte.',
+ 'numeric' => 'Kolom :attribute harus lebih besar dari atau sama dengan :value.',
+ 'string' => 'Kolom :attribute harus lebih besar dari atau sama dengan :value karakter.',
+ ],
+ 'image' => 'Kolom :attribute harus berupa gambar.',
+ 'in' => ':attribute yang dipilih tidak valid.',
+ 'in_array' => 'Kolom :attribute tidak ada di dalam :other.',
+ 'integer' => 'Kolom :attribute harus berupa bilangan bulat.',
+ 'ip' => 'Kolom :attribute harus berupa alamat IP yang valid.',
+ 'ipv4' => 'Kolom :attribute harus berupa alamat IPv4 yang valid.',
+ 'ipv6' => 'Kolom :attribute harus berupa alamat IPv6 yang valid.',
+ 'json' => 'Kolom :attribute harus berupa string JSON yang valid.',
+ 'lowercase' => 'Kolom :attribute harus berupa huruf kecil.',
+ 'lt' => [
+ 'array' => 'Kolom :attribute harus memiliki kurang dari :value item.',
+ 'file' => 'Kolom :attribute harus kurang dari :value kilobyte.',
+ 'numeric' => 'Kolom :attribute harus kurang dari :value.',
+ 'string' => 'Kolom :attribute harus kurang dari :value karakter.',
+ ],
+ 'lte' => [
+ 'array' => 'Kolom :attribute tidak boleh memiliki lebih dari :value item.',
+ 'file' => 'Kolom :attribute harus kurang dari atau sama dengan :value kilobyte.',
+ 'numeric' => 'Kolom :attribute harus kurang dari atau sama dengan :value.',
+ 'string' => 'Kolom :attribute harus kurang dari atau sama dengan :value karakter.',
+ ],
+ 'mac_address' => 'Kolom :attribute harus berupa alamat MAC yang valid.',
+ 'max' => [
+ 'array' => 'Kolom :attribute tidak boleh memiliki lebih dari :max item.',
+ 'file' => 'Kolom :attribute tidak boleh lebih besar dari :max kilobyte.',
+ 'numeric' => 'Kolom :attribute tidak boleh lebih besar dari :max.',
+ 'string' => 'Kolom :attribute tidak boleh lebih dari :max karakter.',
+ ],
+ 'max_digits' => 'Kolom :attribute tidak boleh memiliki lebih dari :max digit.',
+ 'mimes' => 'Kolom :attribute harus berupa file bertipe: :values.',
+ 'mimetypes' => 'Kolom :attribute harus berupa file bertipe: :values.',
+ 'min' => [
+ 'array' => 'Kolom :attribute harus memiliki minimal :min item.',
+ 'file' => 'Kolom :attribute harus berukuran minimal :min kilobyte.',
+ 'numeric' => 'Kolom :attribute harus bernilai minimal :min.',
+ 'string' => 'Kolom :attribute harus memiliki minimal :min karakter.',
+ ],
+ 'min_digits' => 'Kolom :attribute harus memiliki minimal :min digit.',
+ 'missing' => 'Kolom :attribute harus kosong (missing).',
+ 'missing_if' => 'Kolom :attribute harus kosong ketika :other bernilai :value.',
+ 'missing_unless' => 'Kolom :attribute harus kosong kecuali :other bernilai :value.',
+ 'missing_with' => 'Kolom :attribute harus kosong ketika :values tersedia.',
+ 'missing_with_all' => 'Kolom :attribute harus kosong ketika :values tersedia.',
+ 'multiple_of' => 'Kolom :attribute harus berupa kelipatan dari :value.',
+ 'not_in' => ':attribute yang dipilih tidak valid.',
+ 'not_regex' => 'Format kolom :attribute tidak valid.',
+ 'numeric' => 'Kolom :attribute harus berupa angka.',
+ 'password' => [
+ 'letters' => 'Kolom :attribute harus mengandung setidaknya satu huruf.',
+ 'mixed' => 'Kolom :attribute harus mengandung setidaknya satu huruf besar dan satu huruf kecil.',
+ 'numbers' => 'Kolom :attribute harus mengandung setidaknya satu angka.',
+ 'symbols' => 'Kolom :attribute harus mengandung setidaknya satu simbol.',
+ 'uncompromised' => ':attribute yang diberikan telah muncul dalam kebocoran data. Silakan pilih :attribute yang berbeda.',
+ ],
+ 'present' => 'Kolom :attribute wajib ada.',
+ 'prohibited' => 'Kolom :attribute dilarang ada.',
+ 'prohibited_if' => 'Kolom :attribute dilarang ada ketika :other bernilai :value.',
+ 'prohibited_unless' => 'Kolom :attribute dilarang ada kecuali :other ada di dalam :values.',
+ 'prohibits' => 'Kolom :attribute melarang :other untuk ada.',
+ 'regex' => 'Format kolom :attribute tidak valid.',
+ 'required' => 'Kolom :attribute wajib diisi.',
+ 'required_array_keys' => 'Kolom :attribute harus berisi entri untuk: :values.',
+ 'required_if' => 'Kolom :attribute wajib diisi ketika :other bernilai :value.',
+ 'required_if_accepted' => 'Kolom :attribute wajib diisi ketika :other disetujui.',
+ 'required_unless' => 'Kolom :attribute wajib diisi kecuali :other ada di dalam :values.',
+ 'required_with' => 'Kolom :attribute wajib diisi ketika :values tersedia.',
+ 'required_with_all' => 'Kolom :attribute wajib diisi ketika :values tersedia.',
+ 'required_without' => 'Kolom :attribute wajib diisi ketika :values tidak tersedia.',
+ 'required_without_all' => 'Kolom :attribute wajib diisi ketika tidak ada satupun dari :values yang tersedia.',
+ 'same' => 'Kolom :attribute dan :other harus sama.',
+ 'size' => [
+ 'array' => 'Kolom :attribute harus berisi :size item.',
+ 'file' => 'Kolom :attribute harus berukuran :size kilobyte.',
+ 'numeric' => 'Kolom :attribute harus bernilai :size.',
+ 'string' => 'Kolom :attribute harus berukuran :size karakter.',
+ ],
+ 'starts_with' => 'Kolom :attribute harus diawali dengan salah satu dari: :values.',
+ 'string' => 'Kolom :attribute harus berupa string.',
+ 'timezone' => 'Kolom :attribute harus berupa zona waktu yang valid.',
+ 'unique' => ':attribute sudah digunakan.',
+ 'uploaded' => ':attribute gagal diunggah.',
+ 'uppercase' => 'Kolom :attribute harus berupa huruf kapital.',
+ 'url' => 'Kolom :attribute harus berupa URL yang valid.',
+ 'ulid' => 'Kolom :attribute harus berupa ULID yang valid.',
+ 'uuid' => 'Kolom :attribute harus berupa UUID yang valid.',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify custom validation messages for attributes using the
+ | convention "attribute.rule" to name the lines. This makes it quick to
+ | specify a specific custom language line for a given attribute rule.
+ |
+ */
+
+ 'custom' => [
+ 'attribute-name' => [
+ 'rule-name' => 'custom-message',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap our attribute placeholder
+ | with something more reader friendly such as "E-Mail Address" instead
+ | of "email". This simply helps us make our message more expressive.
+ |
+ */
+
+ 'attributes' => [],
+
+];
diff --git a/frontend/lingui.config.ts b/frontend/lingui.config.ts
index 96387461b..f166bea98 100644
--- a/frontend/lingui.config.ts
+++ b/frontend/lingui.config.ts
@@ -1,4 +1,4 @@
-import type {LinguiConfig} from "@lingui/conf";
+import type { LinguiConfig } from "@lingui/conf";
const config: LinguiConfig = {
locales: [
@@ -7,7 +7,7 @@ const config: LinguiConfig = {
"es", // Spanish
"fr", // French
"nl", // Dutch
- "hu", // Hungarian
+ "hu", // Hungarian
"pt-br", // Portuguese (Brazil)
"ru", // Russian
"de", // German
@@ -19,7 +19,7 @@ const config: LinguiConfig = {
// "pl", // Polish
// "ja", // Japanese
// "ko", // Korean
- // "id", // Indonesian
+ "id", // Indonesian
"zh-hk", // Cantonese Chinese (Hong Kong)
// "cs", // Czech
// "ga", // Irish
@@ -33,7 +33,7 @@ const config: LinguiConfig = {
sourceLocale: "en",
format: "po",
fallbackLocales: {
- default: "en",
+ default: "en",
}
};
diff --git a/frontend/src/locales.ts b/frontend/src/locales.ts
index df05aa838..9adc90f26 100644
--- a/frontend/src/locales.ts
+++ b/frontend/src/locales.ts
@@ -1,4 +1,4 @@
-import {i18n} from "@lingui/core";
+import { i18n } from "@lingui/core";
export type SupportedLocales =
"en"
@@ -13,9 +13,10 @@ export type SupportedLocales =
| "vi"
| "zh-hk"
| "tr"
- | "hu";
+ | "hu"
+ | "id";
-export const availableLocales = ["en", "de", "fr", "it", "nl", "pt", "es", "zh-cn", "zh-hk", "pt-br", "vi", "tr", "hu"];
+export const availableLocales = ["en", "de", "fr", "it", "nl", "pt", "es", "zh-cn", "zh-hk", "pt-br", "vi", "tr", "hu", "id"];
export const localeToFlagEmojiMap: Record = {
en: 'đŦđ§',
@@ -31,6 +32,7 @@ export const localeToFlagEmojiMap: Record = {
vi: 'đģđŗ',
tr: 'đšđˇ',
hu: 'đđē',
+ id: 'đŽđŠ',
};
export const localeToNameMap: Record = {
@@ -47,6 +49,7 @@ export const localeToNameMap: Record = {
vi: `Vietnamese`,
tr: `Turkish`,
hu: `Hungarian`,
+ id: `Indonesian`,
};
export const getLocaleName = (locale: SupportedLocales) => {