- Google Calendar 연동 예약 현황 페이지 (ko/en/ja/zh 4개 언어) - Apps Script 프록시로 예약 일정만 노출 (이벤트 상세 비공개) - localStorage 캐싱 + 인접 월 프리페치로 로딩 최적화 - 전체 36개 HTML 파일 인라인 헤더에 Schedule 네비게이션 링크 추가 - 스케줄 페이지 i18n.js 누락 수정 (언어 스위처 동작 복구) - i18n JSON에 schedule 관련 번역 키 추가 - sitemap.xml에 schedule URL 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
165 lines
8.6 KiB
HTML
165 lines
8.6 KiB
HTML
<!DOCTYPE html><html lang="en"><head>
|
|
<!-- Google Tag Manager -->
|
|
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
})(window,document,'script','dataLayer','GTM-PPTNN6WD');</script>
|
|
<!-- End Google Tag Manager -->
|
|
<!-- Google tag (gtag.js) -->
|
|
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-R0PBYHVQBS"></script>
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag(){dataLayer.push(arguments);}
|
|
gtag('js', new Date());
|
|
gtag('config', 'G-R0PBYHVQBS');
|
|
</script>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Availability - Mingle Studio</title>
|
|
|
|
<!-- 파비콘 -->
|
|
<link rel="icon" type="image/x-icon" href="/images/logo/mingle-logo.ico">
|
|
<link rel="shortcut icon" href="/images/logo/mingle-logo.ico">
|
|
<link rel="icon" type="image/webp" href="/images/logo/mingle-logo.webp">
|
|
|
|
<!-- Canonical URL -->
|
|
<link rel="canonical" href="https://minglestudio.co.kr/en/schedule">
|
|
|
|
<!-- Theme Color -->
|
|
<meta name="theme-color" content="#ff8800">
|
|
|
|
<!-- SEO 메타 태그 -->
|
|
<meta name="description" content="Mingle Studio Availability - Check available dates for motion capture studio booking">
|
|
<meta name="keywords" content="motion capture studio, booking, schedule, Mingle Studio, Incheon">
|
|
<meta name="author" content="Mingle Studio">
|
|
|
|
<!-- Open Graph -->
|
|
<meta property="og:title" content="Availability - Mingle Studio">
|
|
<meta property="og:description" content="Check available dates for Mingle Studio motion capture studio booking">
|
|
<meta property="og:url" content="https://minglestudio.co.kr/en/schedule">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:image" content="https://minglestudio.co.kr/images/logo/mingle-OG.png">
|
|
<meta property="og:image:width" content="1200">
|
|
<meta property="og:image:height" content="630">
|
|
<meta property="og:locale" content="en_US">
|
|
<meta property="og:site_name" content="Mingle Studio">
|
|
|
|
<!-- Twitter Card -->
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="Availability - Mingle Studio">
|
|
<meta name="twitter:description" content="Check available dates for Mingle Studio motion capture studio booking">
|
|
<meta name="twitter:image" content="https://minglestudio.co.kr/images/logo/mingle-OG.png">
|
|
|
|
<!-- 폰트 -->
|
|
<link href="https://hangeul.pstatic.net/hangeul_static/css/nanum-square.css" rel="stylesheet">
|
|
|
|
<!-- 아이콘 폰트 -->
|
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="stylesheet">
|
|
|
|
<link rel="stylesheet" href="/css/common.css?v=20260313">
|
|
<link rel="stylesheet" href="/css/schedule.css">
|
|
|
|
<link rel="alternate" hreflang="ko" href="https://minglestudio.co.kr/schedule">
|
|
<link rel="alternate" hreflang="en" href="https://minglestudio.co.kr/en/schedule">
|
|
<link rel="alternate" hreflang="ja" href="https://minglestudio.co.kr/ja/schedule">
|
|
<link rel="alternate" hreflang="zh" href="https://minglestudio.co.kr/zh/schedule">
|
|
<link rel="alternate" hreflang="x-default" href="https://minglestudio.co.kr/schedule">
|
|
</head>
|
|
<body>
|
|
<!-- Google Tag Manager (noscript) -->
|
|
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PPTNN6WD"
|
|
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
|
<!-- End Google Tag Manager (noscript) -->
|
|
<a href="#main-content" class="skip-to-content" data-i18n="common.skipToContent">Skip to content</a>
|
|
|
|
<div id="header-placeholder"></div>
|
|
|
|
<main id="main-content">
|
|
<!-- Page Header -->
|
|
<section class="page-header">
|
|
<div class="container">
|
|
<h1 class="page-title" data-i18n="schedule.title">Availability</h1>
|
|
<p class="page-description" data-i18n="schedule.desc">Check available dates for studio booking</p>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Calendar Section -->
|
|
<section class="section">
|
|
<div class="container">
|
|
<div class="schedule-wrapper">
|
|
<div class="calendar-card">
|
|
<div class="calendar-nav">
|
|
<button class="cal-nav-btn" id="prevMonth" aria-label="Previous month">
|
|
<i class="fa-solid fa-chevron-left"></i>
|
|
</button>
|
|
<h2 class="cal-title" id="calTitle"></h2>
|
|
<button class="cal-nav-btn" id="nextMonth" aria-label="Next month">
|
|
<i class="fa-solid fa-chevron-right"></i>
|
|
</button>
|
|
</div>
|
|
<div class="cal-header">
|
|
<span data-i18n="schedule.sun">Sun</span>
|
|
<span data-i18n="schedule.mon">Mon</span>
|
|
<span data-i18n="schedule.tue">Tue</span>
|
|
<span data-i18n="schedule.wed">Wed</span>
|
|
<span data-i18n="schedule.thu">Thu</span>
|
|
<span data-i18n="schedule.fri">Fri</span>
|
|
<span data-i18n="schedule.sat">Sat</span>
|
|
</div>
|
|
<div class="cal-body" id="calBody"></div>
|
|
</div>
|
|
|
|
<div class="calendar-legend">
|
|
<div class="legend-item">
|
|
<span class="legend-dot available"></span>
|
|
<span data-i18n="schedule.available">Available</span>
|
|
</div>
|
|
<div class="legend-item">
|
|
<span class="legend-dot booked"></span>
|
|
<span data-i18n="schedule.booked">Fully Booked</span>
|
|
</div>
|
|
<div class="legend-item">
|
|
<span class="legend-dot past"></span>
|
|
<span data-i18n="schedule.past">Past Date</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="schedule-info-card">
|
|
<div class="info-icon">
|
|
<i class="fa-solid fa-calendar-check"></i>
|
|
</div>
|
|
<h3 data-i18n="schedule.infoTitle">Booking Info</h3>
|
|
<p data-i18n="schedule.infoDesc">Reservations can be made via email or the contact page.<br>We recommend booking at least 2 weeks in advance.</p>
|
|
<div class="schedule-actions">
|
|
<a href="/en/contact" class="btn btn-primary" data-i18n="schedule.contactBtn"><i class="fa-solid fa-envelope"></i> Contact Us</a>
|
|
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-secondary" data-i18n="schedule.naverBtn"><i class="fa-solid fa-calendar"></i> Naver Booking</a>
|
|
</div>
|
|
<div class="schedule-details">
|
|
<div class="detail-item">
|
|
<span class="detail-label" data-i18n="schedule.detailHours">Hours</span>
|
|
<span class="detail-value" data-i18n="schedule.detailHoursVal">24H · Year-round</span>
|
|
</div>
|
|
<div class="detail-item">
|
|
<span class="detail-label" data-i18n="schedule.detailMin">Minimum</span>
|
|
<span class="detail-value" data-i18n="schedule.detailMinVal">From 2 hours</span>
|
|
</div>
|
|
<div class="detail-item">
|
|
<span class="detail-label" data-i18n="schedule.detailAdvance">Advance</span>
|
|
<span class="detail-value" data-i18n="schedule.detailAdvanceVal">2 weeks recommended</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
|
|
<div id="footer-placeholder"></div>
|
|
|
|
<script src="/js/i18n.js"></script>
|
|
<script src="/js/common.js?v=20260313"></script>
|
|
<script src="/js/schedule.js"></script>
|
|
</body>
|
|
</html>
|