Crop Logo (1:1)

MBAT Logo

{{ t.portalTitle }}

{{ t.portalSubtitle }}

{{ ev.name }}
{{ loginData.folder }} • {{ tempTeamData?.id }}
{{ tempTeamData?.teamName }}
{{ t.otpSent }}
{{ emailMasked }}
{{ team.teamName }}
{{ loginData.folder }} {{ team.id }}
{{ alert.message }}
{{ lang === 'TH' ? 'ไม่มีประกาศแจ้งเตือนเพิ่มเติม' : 'No new updates' }}

กำลังเตรียมข้อมูลระบบ...

โซนประกวด:

{{ lang === 'TH' ? 'หน้าแรก / ภาพรวมระบบ' : 'Home / Overview' }}

{{ lang === 'TH' ? 'ยินดีต้อนรับเข้าสู่ระบบจัดการข้อมูลทีม กรุณาตรวจสอบสถานะและข้อมูลที่ขาดหายด้านล่าง' : 'Welcome to the Team Portal. Please check your status and missing information below.' }}

{{ lang === 'TH' ? 'ตรวจสอบข้อมูลทั่วไป (INFO)' : 'General Info Check' }}

สมบูรณ์ ขาดข้อมูล

ข้อมูลทั่วไปครบถ้วนเรียบร้อย

  • {{ item.text }}
{{ item }}

{{ lang === 'TH' ? 'ตรวจสอบรายการประกวด (COMP)' : 'Entries Check' }}

สมบูรณ์ ขาดข้อมูล

ข้อมูลการประกวดครบถ้วนเรียบร้อย

{{ item }}
{{ t.security }}
{{ t.reqSetup }}{{ t.reqSetupDesc }}
{{ t.teamProfile }}
{{ t.contactInfo }}
{{ t.subTeams }}

{{ t.subTeamsDesc }}

0{{i}}
{{ t.history }}
{{ t.teamLogo }}

{{ t.logoGuide }}

  • {{ t.logoGuide1 }}
  • {{ t.logoGuide2 }}
  • {{ t.logoGuide3 }}
  • ระบบจะให้ตัดกรอบ (Crop) อัตราส่วน 1:1 ก่อนอัปโหลด
{{ t.gallery }}
{{ t.galleryGuide }}
PIC-{{n}}
{{ t.payStatus }} โซน {{ zoneObj.name }} {{ detectedCurrency }}

รอตรวจสอบสลิป ชำระเงินเรียบร้อย ไม่มีค่าใช้จ่าย ยังไม่ชำระเงิน

ยอดชำระโซนนี้: {{ getZoneTotalFee(zoneObj.name).toLocaleString() }}
ประวัติสลิปที่อัปโหลด
{{ uploadStatus[zoneObj.name] }}
{{ t.supportedFiles }}
ใบเสร็จรับเงิน (OFFICIAL RECEIPT) โซน {{ zoneObj.name }}
รอเอกสารใบเสร็จจากทีมงาน
Receipt_{{ rIdx + 1 }}.pdf
เปิดดู
ใบสมัคร (APPLICATION FORM)
{{ t.compDocs }}
{{ lang === 'TH' ? 'กรุณาตรวจสอบและอัปเดตข้อมูลรายชื่อในแบบฟอร์มให้เสร็จสมบูรณ์ ภายใน 1 วัน ก่อนวันประกวด' : 'Please finalize and update the participant list 1 day prior to the competition day.' }}
โซน {{ zoneObj.name }}
เปิดแบบฟอร์มรายชื่อ (Google Sheets)
{{ t.phPendingLink }}

รองรับ PDF เท่านั้น (Max 5MB)

{{ new Date().getFullYear() }} Entries {{ t.totalEntries }} {{ team.participants ? team.participants.length : 0 }}

{{ t.noEntries }}

โปสเตอร์การแสดง
Entry #{{ idx + 1 }}
Fee Amount
{{ getFee(part).toLocaleString() }} {{ detectedCurrency }}

{{ t.announcer }}

{{ t.announcerDesc }}

{{ lang === 'TH' ? 'กำลังตรวจสอบและเตรียมข้อมูลสคริปต์...' : 'Preparing Script Data...' }}

{{ lang === 'TH' ? 'ไม่มีรายการประกวด กรุณาไปเพิ่มรายการที่แท็บ "รายละเอียดการประกวด"' : 'No entries found. Please add entries first.' }}
{{ t.booking }}

{{ t.loadingSchedule }}

{{ t.bookingClosed }}

{{ t.waitAdminAnnouncement }}

{{ t.notEligible }}

{{ t.notEligibleDesc }}

{{ t.allowedOnly }}

{{ lang === 'TH' ? cfg.eventName : (cfg.eventNameEn || cfg.eventName) }} ({{ lang === 'TH' ? cfg.location : (cfg.locationEn || cfg.location) }})
{{ c }}
{{ t.bookingTerms }}
  • {{ lang === 'TH' ? 'ระบบการจองเป็นแบบ เลือกก่อนมีสิทธิ์ก่อน (First-come, first-served)' : 'Booking is First-come, first-served.' }}
  • {{ lang === 'TH' ? 'สงวนสิทธิ์ 1 ทีม (แยกทีมตามประเภทการประกวด) จองได้ 1 ครั้ง ต่อ 1 กลุ่มงาน' : 'Only one reservation per team (separate teams according to competition category) is allowed per group.' }}
  • {{ lang === 'TH' ? 'สงวนสิทธิ์ 1 ทีม จองได้ 1 ครั้ง ต่อ 1 วัน เท่านั้น' : 'Only one reservation per team per day is allowed.' }}
  • {{ lang === 'TH' ? 'กรณีที่ทีมไม่มาซ้อมตามตาราง ให้ปล่อยสนามว่างไว้ ทีมอื่นไม่สามารถสวมสิทธิ์แทนได้' : 'No-shows keep the slot empty for fairness. No substitutions allowed.' }}
  • {{ lang === 'TH' ? 'โปรดเตรียมความพร้อมก่อนเวลา 30 นาที (เวลาซ้อมรวมการจัดเตรียมอุปกรณ์แล้ว)' : 'Please prepare 30 mins early. Slot duration includes setup time.' }}
  • {{ lang === 'TH' ? 'ต้องฝึกซ้อมตามประเภทที่ลงทะเบียนไว้ ในกรณีที่ได้รับสิทธิ์ลงมากกว่า 1 ประเภท ต้องซ้อมตามช่วงเวลาและประเภทที่ระบุไว้ในตารางเท่านั้น' : 'Teams must practice according to their registered categories. In cases where a team is eligible for more than one category, they must strictly adhere to the specific time slots and categories designated in the schedule.' }}
  • {{ lang === 'TH' ? 'กรุณาบริหารจัดการเวลาฝึกซ้อมด้วยตนเอง และออกจากสนามทันทีเมื่อหมดเวลา เพื่อรักษาสิทธิ์ของทีมอื่น โดยจะไม่มีเจ้าหน้าที่คอยแจ้งเตือนในพื้นที่' : 'Teams are responsible for managing their own rehearsal time. Please vacate the field immediately once your session ends to respect the schedules of other teams. There will be no staff on-site to monitor the time.' }}
{{ lang === 'TH' ? config.eventName : (config.eventNameEn || config.eventName) }} - {{ lang === 'TH' ? config.location : (config.locationEn || config.location) }} Map
{{ t.acceptedCats }} {{ c }}{{ t.someGroups }}
{{ t.remark }} {{ config.remarks }}

{{ t.bookedList }}

{{ b.bookedCategory || 'ไม่ระบุประเภท' }}

{{ formatDateToThai(b.date) }} | {{ t.timeLabel }} {{ b.timeSlot }}

{{ t.editTimeMode }}
{{ t.editingSlotFor }} {{ editingBooking.bookedCategory }} ({{ t.originalTime }}: {{ editingBooking.timeSlot }})

{{ t.bookMoreSlots }}

{{ formatDateToThai(dayData.date) }}
{{ mSlot.time }}
{{ sub.time }}
{{ t.btnBookSlot }}
{{ t.booked }}
{{ t.paused }}
{{ t.originalTime }}
{{ t.yourTeam }}
{{ sub.booking.bookedCategory.split(' (Entry')[0] }}
{{ t.bookAvailable }}
{{ t.booked }}
{{ t.paused }}

{{ t.yourQueue }}
{{ mSlot.booking.bookedCategory.split(' (Entry')[0] }}
{{ t.originalTime }}

{{ lang === 'TH' ? '(ยังสามารถกดจองได้จากตารางด้านบน)' : '(You can still book from the grid above)' }}

{{ t.allBooked }}