{{ lang === 'zh' ? '无效桌号' : (lang === 'en' ? 'Invalid Table' : 'Meja Tidak Sah') }}

{{ lang === 'zh' ? '您访问的桌号不存在或系统当前处于维护模式。请扫描正确的桌位二维码。' : (lang === 'en' ? 'The table you are accessing does not exist or system is in maintenance mode.' : 'Meja ini tidak wujud atau sistem dalam mod penyelenggaraan.') }}

Security Status

{{ settings.test_mode_enabled === '1' ? 'System in Test Mode' : 'Table Restriction Active' }}

{{ settings.restaurant_name || t('restaurantName') }}

{{ t('table') }}: {{ tableNumber }}

Store Notice

{{ settings.restaurant_bio }}

{{ getCategoryName(cat) }}
{{ t('unavailable') }}

{{ getProductName(product) }}

{{ getProductDesc(product) || t('delicious') }}

RM {{ product.price }}
{{ totalCount }}

{{ t('totalPrice') }}

RM {{ totalPrice }}

{{ translations.zh.restaurantClosed }}

{{ translations.zh.closedMessage }}

{{ translations.ms.restaurantClosed }}

{{ translations.ms.closedMessage }}

{{ translations.en.restaurantClosed }}

{{ translations.en.closedMessage }}

{{ translations.zh.pleaseComeBack }}
{{ translations.ms.pleaseComeBack }}
{{ translations.en.pleaseComeBack }}

{{ lang === 'zh' ? '还没到下单时间' : (lang === 'en' ? 'Not Ordering Time' : 'Belum Masa Pesanan') }}

{{ lang === 'zh' ? '抱歉,当前不在扫码点餐允许的时间段内。' : (lang === 'en' ? 'Sorry, QR ordering is currently not allowed.' : 'Maaf, pesanan QR tidak dibenarkan pada masa ini.') }}

{{ lang === 'zh' ? '允许下单时段' : (lang === 'en' ? 'Ordering Hours' : 'Masa Pesanan') }}

{{ settings.qr_ordering_start_time }} - {{ settings.qr_ordering_end_time }}

{{ t('selectPayment') }}

{{ getProductName(item) }}

{{ item.displayOptions }}

RM {{ item.price }}

{{ item.quantity }}
Subtotal RM {{ subtotal.toFixed(2) }}
Service Charge ({{ settings.service_charge_rate }}%) RM {{ serviceCharge.toFixed(2) }}
Govt Tax ({{ settings.govt_tax_rate }}%) RM {{ govtTax.toFixed(2) }}
Rounding RM {{ rounding }}
Total Amount RM {{ grandTotal }}

{{ currentProduct?.name }}

{{ item.name }}
+ RM {{ item.price }}

{{ t('orderHistory') }}

{{ t('noHistory') }}

#{{ order.daily_sequence || order.id }} • {{ formatTime(order.created_at) }} {{ t(order.status) }}
  • {{ item.name_ms || item.name }} x{{ item.quantity }}

    {{ item.displayOptions }}

    RM {{ (item.price * item.quantity).toFixed(2) }}
Subtotal RM {{ getOrderBreakdown(order).subtotal }}
Total Amount {{ t('total') }}
RM {{ parseFloat(order.total_price).toFixed(2) }}

{{ t('orderSuccess') }}

{{ t('merchantReceived') }}

{{ alertTitle }}

{{ alertMessage }}

{{ t('membership') }}

{{ t('welcomeToMembership') }}

{{ t('loginOrRegister') }}

{{ t('or') }}

{{ membershipError }}

{{ currentMember ? t('welcomeBack') : t('completeYourProfile') }}

{{ currentMember.name }}

{{ currentMember.phone }}

{{ t('points') }}: {{ currentMember.points }}

{{ membershipError }}

{{ t('Success') }}

{{ t('Your membership has been created successfully.') }}

{{ t('Welcome, {name}!').replace('{name}', currentMember?.name) }}

Complete Your Profile

Welcome!

Please complete your profile to use all membership features

{{ phoneError }}

Phone number is available

{{ profileError }}

{{ t('memberProfile') }}

{{ currentMember?.name || t('member') }}

{{ t('welcomeBack') }}

{{ t('name') }}

{{ currentMember?.name || t('notSet') }}

{{ t('phoneNumber') }}

{{ currentMember?.phone || t('notSet') }}

{{ t('email') }}

{{ currentMember?.email || t('notSet') }}

{{ t('points') }}

{{ currentMember?.points || 0 }}