Add: 예약 현황(Schedule) 페이지 + 전체 네비게이션 Schedule 탭 추가
- 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>
This commit is contained in:
parent
1b6a9a875f
commit
3fc2cae788
@ -98,6 +98,7 @@
|
||||
<li><a href="/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -71,6 +71,7 @@
|
||||
<li><a href="/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
<li><a href="/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
<li><a href="/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
</ul>
|
||||
|
||||
@ -98,6 +98,7 @@
|
||||
<li><a href="/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -433,6 +434,7 @@
|
||||
<p data-i18n="contact.cta.desc">간편한 온라인 예약 또는 자주 묻는 질문을 확인해보세요</p>
|
||||
<div class="cta-buttons">
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-primary btn-lg" data-i18n="contact.cta.btnNaver">네이버 예약</a>
|
||||
<a href="/schedule" class="btn btn-outline btn-lg" data-i18n="contact.cta.btnSchedule"><i class="fa-regular fa-calendar-check"></i> 예약 현황</a>
|
||||
<a href="qna.html" class="btn btn-outline btn-lg" data-i18n="contact.cta.btnFaq">FAQ 보기</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
544
css/schedule.css
Normal file
544
css/schedule.css
Normal file
@ -0,0 +1,544 @@
|
||||
/* ========================================
|
||||
예약 현황 페이지 전용 스타일
|
||||
======================================== */
|
||||
|
||||
/* 스케줄 래퍼 */
|
||||
.schedule-wrapper {
|
||||
max-width: 720px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
/* 캘린더 카드 */
|
||||
.calendar-card {
|
||||
background: var(--bg-white);
|
||||
border-radius: var(--border-radius-lg);
|
||||
box-shadow: var(--shadow-md);
|
||||
overflow: hidden;
|
||||
margin-bottom: var(--spacing-2xl);
|
||||
}
|
||||
|
||||
/* 캘린더 네비게이션 */
|
||||
.calendar-nav {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: var(--spacing-xl) var(--spacing-2xl);
|
||||
background: var(--gradient-main);
|
||||
}
|
||||
|
||||
.cal-nav-btn {
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
border: 2px solid rgba(255, 255, 255, 0.4);
|
||||
background: rgba(255, 255, 255, 0.15);
|
||||
border-radius: 50%;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: var(--font-sm);
|
||||
color: white;
|
||||
transition: var(--transition);
|
||||
backdrop-filter: blur(4px);
|
||||
}
|
||||
|
||||
.cal-nav-btn:hover {
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
border-color: rgba(255, 255, 255, 0.7);
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
.cal-title {
|
||||
font-size: var(--font-2xl);
|
||||
font-weight: var(--font-weight-bold);
|
||||
color: white;
|
||||
text-align: center;
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
|
||||
/* 캘린더 그리드 */
|
||||
.cal-header {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(7, 1fr);
|
||||
background: var(--bg-gray);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.cal-header span {
|
||||
padding: var(--spacing-md) var(--spacing-sm);
|
||||
text-align: center;
|
||||
font-size: var(--font-sm);
|
||||
font-weight: var(--font-weight-semibold);
|
||||
color: var(--text-secondary);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
.cal-body {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(7, 1fr);
|
||||
}
|
||||
|
||||
/* 날짜 셀 */
|
||||
.cal-cell {
|
||||
aspect-ratio: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-right: 1px solid var(--border-light);
|
||||
border-bottom: 1px solid var(--border-light);
|
||||
position: relative;
|
||||
cursor: default;
|
||||
transition: background var(--duration-fast) var(--ease-default);
|
||||
}
|
||||
|
||||
.cal-cell:nth-child(7n) {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.cal-cell .day-num {
|
||||
font-size: var(--font-base);
|
||||
font-weight: var(--font-weight-medium);
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: 50%;
|
||||
transition: all var(--duration-fast) var(--ease-default);
|
||||
}
|
||||
|
||||
/* 빈 셀 */
|
||||
.cal-cell.empty {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* 지난 날짜 */
|
||||
.cal-cell.past .day-num {
|
||||
color: var(--text-light);
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
/* 오늘 */
|
||||
.cal-cell.today .day-num {
|
||||
background: var(--primary-color);
|
||||
color: var(--text-white);
|
||||
font-weight: var(--font-weight-bold);
|
||||
box-shadow: 0 2px 8px rgba(255, 136, 0, 0.4);
|
||||
}
|
||||
|
||||
/* 예약 가능 */
|
||||
.cal-cell.available .day-num {
|
||||
color: var(--text-primary);
|
||||
font-weight: var(--font-weight-medium);
|
||||
}
|
||||
|
||||
.cal-cell.available:hover {
|
||||
background: rgba(16, 185, 129, 0.06);
|
||||
}
|
||||
|
||||
.cal-cell.available:hover .day-num {
|
||||
background: rgba(16, 185, 129, 0.12);
|
||||
color: var(--color-success);
|
||||
}
|
||||
|
||||
/* 예약 가능 표시 점 */
|
||||
.cal-cell.available::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 6px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
border-radius: 50%;
|
||||
background: var(--color-success);
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
/* 예약 마감 */
|
||||
.cal-cell.booked .day-num {
|
||||
color: var(--text-light);
|
||||
text-decoration: line-through;
|
||||
text-decoration-color: var(--color-danger);
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.cal-cell.booked::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 6px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
border-radius: 50%;
|
||||
background: var(--color-danger);
|
||||
}
|
||||
|
||||
/* 범례 */
|
||||
.calendar-legend {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: var(--spacing-2xl);
|
||||
margin-bottom: var(--spacing-2xl);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.legend-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
font-size: var(--font-sm);
|
||||
color: var(--text-secondary);
|
||||
font-weight: var(--font-weight-medium);
|
||||
}
|
||||
|
||||
.legend-dot {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.legend-dot.available {
|
||||
background: var(--color-success);
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.legend-dot.booked {
|
||||
background: var(--color-danger);
|
||||
}
|
||||
|
||||
.legend-dot.past {
|
||||
background: var(--text-light);
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
/* 안내 카드 */
|
||||
.schedule-info-card {
|
||||
background: var(--bg-white);
|
||||
border-radius: var(--border-radius-lg);
|
||||
box-shadow: var(--shadow-md);
|
||||
padding: var(--spacing-2xl);
|
||||
text-align: center;
|
||||
border-top: 3px solid var(--primary-color);
|
||||
}
|
||||
|
||||
.schedule-info-card .info-icon {
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: linear-gradient(135deg, #fff4e6, #ffe8cc);
|
||||
color: var(--primary-color);
|
||||
border-radius: 50%;
|
||||
font-size: 1.4rem;
|
||||
margin-bottom: var(--spacing-lg);
|
||||
}
|
||||
|
||||
.schedule-info-card h3 {
|
||||
font-size: var(--font-xl);
|
||||
font-weight: var(--font-weight-bold);
|
||||
color: var(--text-primary);
|
||||
margin-bottom: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.schedule-info-card p {
|
||||
color: var(--text-secondary);
|
||||
font-size: var(--font-sm);
|
||||
margin-bottom: var(--spacing-xl);
|
||||
line-height: var(--line-height-relaxed);
|
||||
}
|
||||
|
||||
.schedule-actions {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: var(--spacing-md);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.schedule-actions .btn-primary {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.schedule-actions .btn-secondary {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
/* 운영 정보 */
|
||||
.schedule-details {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: var(--spacing-lg);
|
||||
margin-top: var(--spacing-2xl);
|
||||
padding-top: var(--spacing-xl);
|
||||
border-top: 1px solid var(--border-light);
|
||||
}
|
||||
|
||||
.detail-item {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.detail-item .detail-label {
|
||||
display: block;
|
||||
font-size: var(--font-xs);
|
||||
color: var(--text-light);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
margin-bottom: var(--spacing-xs);
|
||||
font-weight: var(--font-weight-semibold);
|
||||
}
|
||||
|
||||
.detail-item .detail-value {
|
||||
display: block;
|
||||
font-size: var(--font-sm);
|
||||
color: var(--text-primary);
|
||||
font-weight: var(--font-weight-bold);
|
||||
}
|
||||
|
||||
/* 로딩 상태 - 그리드 위에 펄스 효과 */
|
||||
.cal-body.loading {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.cal-body.loading::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
animation: pulse 1.2s ease-in-out infinite;
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0%, 100% { opacity: 0.3; }
|
||||
50% { opacity: 0.6; }
|
||||
}
|
||||
|
||||
/* ========================================
|
||||
반응형 디자인
|
||||
======================================== */
|
||||
@media (max-width: 768px) {
|
||||
.schedule-wrapper {
|
||||
margin: 0 var(--spacing-sm);
|
||||
}
|
||||
|
||||
.calendar-nav {
|
||||
padding: var(--spacing-lg) var(--spacing-xl);
|
||||
}
|
||||
|
||||
.cal-title {
|
||||
font-size: var(--font-xl);
|
||||
}
|
||||
|
||||
.cal-header span {
|
||||
padding: var(--spacing-sm);
|
||||
font-size: var(--font-xs);
|
||||
}
|
||||
|
||||
.cal-cell .day-num {
|
||||
font-size: var(--font-sm);
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.cal-cell.booked::after,
|
||||
.cal-cell.available::after {
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
bottom: 3px;
|
||||
}
|
||||
|
||||
.calendar-legend {
|
||||
gap: var(--spacing-lg);
|
||||
}
|
||||
|
||||
.legend-item {
|
||||
font-size: var(--font-xs);
|
||||
}
|
||||
|
||||
.schedule-details {
|
||||
grid-template-columns: 1fr;
|
||||
gap: var(--spacing-md);
|
||||
}
|
||||
|
||||
.schedule-info-card {
|
||||
padding: var(--spacing-xl);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.cal-nav-btn {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
font-size: var(--font-xs);
|
||||
}
|
||||
|
||||
.calendar-nav {
|
||||
padding: var(--spacing-md) var(--spacing-lg);
|
||||
}
|
||||
|
||||
.cal-title {
|
||||
font-size: var(--font-lg);
|
||||
}
|
||||
|
||||
.cal-cell .day-num {
|
||||
font-size: var(--font-xs);
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
}
|
||||
|
||||
.cal-cell.booked::after,
|
||||
.cal-cell.available::after {
|
||||
width: 3px;
|
||||
height: 3px;
|
||||
bottom: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
/* ========================================
|
||||
다크모드
|
||||
======================================== */
|
||||
[data-theme="dark"] .calendar-card {
|
||||
background: rgba(255, 255, 255, 0.04);
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .calendar-nav {
|
||||
background: linear-gradient(135deg, #cc6d00, #b35500);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-header {
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
border-bottom-color: var(--glass-border);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-header span {
|
||||
color: var(--dark-text-secondary);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-cell {
|
||||
border-color: var(--glass-border);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-cell.past .day-num {
|
||||
color: var(--dark-text-disabled);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-cell.today .day-num {
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
box-shadow: 0 2px 8px rgba(255, 136, 0, 0.5);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-cell.available .day-num {
|
||||
color: var(--dark-text-primary);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-cell.available:hover {
|
||||
background: rgba(52, 211, 153, 0.08);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-cell.available:hover .day-num {
|
||||
background: rgba(52, 211, 153, 0.15);
|
||||
color: #34d399;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-cell.available::after {
|
||||
background: #34d399;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-cell.booked .day-num {
|
||||
color: var(--dark-text-disabled);
|
||||
text-decoration-color: #f87171;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-cell.booked::after {
|
||||
background: #f87171;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-nav-btn {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
border-color: rgba(255, 255, 255, 0.3);
|
||||
color: white;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-nav-btn:hover {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
border-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .legend-item {
|
||||
color: var(--dark-text-secondary);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .legend-dot.available {
|
||||
background: #34d399;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .legend-dot.booked {
|
||||
background: #f87171;
|
||||
}
|
||||
|
||||
[data-theme="dark"] .legend-dot.past {
|
||||
background: var(--dark-text-disabled);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .schedule-info-card {
|
||||
background: rgba(255, 255, 255, 0.04);
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
||||
border-top-color: var(--primary-color);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .schedule-info-card .info-icon {
|
||||
background: rgba(255, 136, 0, 0.15);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .schedule-info-card h3 {
|
||||
color: var(--dark-text-primary);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .schedule-info-card p {
|
||||
color: var(--dark-text-secondary);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .detail-item .detail-label {
|
||||
color: var(--dark-text-tertiary);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .detail-item .detail-value {
|
||||
color: var(--dark-text-primary);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .schedule-details {
|
||||
border-top-color: var(--glass-border);
|
||||
}
|
||||
|
||||
[data-theme="dark"] .cal-body.loading::after {
|
||||
background: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
/* ========================================
|
||||
접근성
|
||||
======================================== */
|
||||
.cal-nav-btn:focus-visible {
|
||||
outline: 2px solid white;
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.cal-loading i {
|
||||
animation: none;
|
||||
}
|
||||
|
||||
.cal-nav-btn:hover {
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/en/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/en/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/en/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/en/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/en/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -77,6 +77,7 @@
|
||||
<li><a href="/en/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/en/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/en/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/en/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/en/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/en/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/en/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/en/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/en/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/en/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -438,6 +439,7 @@
|
||||
<p data-i18n="contact.cta.desc">Make an easy online reservation or check our frequently asked questions</p>
|
||||
<div class="cta-buttons">
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-primary btn-lg" data-i18n="contact.cta.btnNaver">Book via Naver</a>
|
||||
<a href="/en/schedule" class="btn btn-outline btn-lg" data-i18n="contact.cta.btnSchedule"><i class="fa-regular fa-calendar-check"></i> Availability</a>
|
||||
<a href="qna.html" class="btn btn-outline btn-lg" data-i18n="contact.cta.btnFaq">View FAQ</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/en/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/en/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/en/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/en/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/en/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -296,6 +296,7 @@
|
||||
<li><a href="/en/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/en/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/en/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/en/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/en/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -972,6 +973,7 @@
|
||||
<p class="cta-description reveal" data-reveal="up" data-delay="200" data-i18n="index.cta.desc">Experience new creative possibilities at our professional motion capture studio</p>
|
||||
<div class="cta-buttons reveal" data-reveal="up" data-delay="300">
|
||||
<a href="/en/contact" class="btn btn-primary btn-lg" data-i18n="index.cta.btnReserve">Book Now</a>
|
||||
<a href="/en/schedule" class="btn btn-outline btn-lg" data-i18n="index.cta.btnSchedule"><i class="fa-regular fa-calendar-check"></i> Check Availability</a>
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-outline btn-lg" data-i18n="index.cta.btnNaver">Naver Booking</a>
|
||||
</div>
|
||||
|
||||
|
||||
@ -163,6 +163,7 @@
|
||||
<li><a href="/en/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/en/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/en/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/en/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/en/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -77,6 +77,7 @@
|
||||
<li><a href="/en/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/en/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/en/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/en/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/en/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/en/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/en/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/en/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/en/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/en/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
164
en/schedule.html
Normal file
164
en/schedule.html
Normal file
@ -0,0 +1,164 @@
|
||||
<!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>
|
||||
@ -105,6 +105,7 @@
|
||||
<li><a href="/en/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/en/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/en/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/en/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/en/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -813,6 +814,9 @@ as a follow-up service (separate consultation)</p>
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-secondary">
|
||||
<span><i class="fa-solid fa-calendar" aria-hidden="true"></i></span> <span data-i18n="services.guide.btnNaver">Book via Naver</span>
|
||||
</a>
|
||||
<a href="/schedule" class="btn btn-secondary">
|
||||
<span><i class="fa-regular fa-calendar-check" aria-hidden="true"></i></span> <span data-i18n="services.guide.btnSchedule">Check Availability</span>
|
||||
</a>
|
||||
</div>
|
||||
<p class="booking-note" data-i18n="services.guide.naverNote">※ You can check real-time availability and book via Naver Place</p>
|
||||
|
||||
|
||||
@ -98,6 +98,7 @@
|
||||
<li><a href="/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
85
google-apps-script/calendar-proxy.gs
Normal file
85
google-apps-script/calendar-proxy.gs
Normal file
@ -0,0 +1,85 @@
|
||||
/**
|
||||
* Mingle Studio - Google Calendar Proxy
|
||||
*
|
||||
* Google Apps Script로 배포하여 사용
|
||||
* 캘린더 일정을 조회하고, "//"가 포함되지 않은 일정이 있는 날을 "마감"으로 반환
|
||||
*
|
||||
* 설정 방법:
|
||||
* 1. script.google.com 에서 새 프로젝트 생성
|
||||
* 2. 이 코드 붙여넣기
|
||||
* 3. CALENDAR_ID를 실제 캘린더 ID로 변경
|
||||
* 4. 배포 → 웹 앱 → "모든 사용자"가 액세스 가능하도록 설정
|
||||
* 5. 배포 URL을 js/schedule.js의 APPS_SCRIPT_URL에 입력
|
||||
*/
|
||||
|
||||
// ★ 여기에 실제 캘린더 ID 입력
|
||||
var CALENDAR_ID = 'minglestudio.mocap@gmail.com';
|
||||
|
||||
function doGet(e) {
|
||||
var headers = {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
'Access-Control-Allow-Methods': 'GET',
|
||||
'Content-Type': 'application/json'
|
||||
};
|
||||
|
||||
try {
|
||||
var params = e.parameter;
|
||||
var year = parseInt(params.year) || new Date().getFullYear();
|
||||
var month = parseInt(params.month) || (new Date().getMonth() + 1);
|
||||
|
||||
// 해당 월의 시작/끝
|
||||
var startDate = new Date(year, month - 1, 1);
|
||||
var endDate = new Date(year, month, 0, 23, 59, 59);
|
||||
|
||||
var calendar = CalendarApp.getCalendarById(CALENDAR_ID);
|
||||
if (!calendar) {
|
||||
return ContentService.createTextOutput(JSON.stringify({
|
||||
error: 'Calendar not found'
|
||||
})).setMimeType(ContentService.MimeType.JSON);
|
||||
}
|
||||
|
||||
var events = calendar.getEvents(startDate, endDate);
|
||||
var bookedDates = {};
|
||||
|
||||
for (var i = 0; i < events.length; i++) {
|
||||
var title = events[i].getTitle();
|
||||
|
||||
// "//"가 포함된 일정은 무시 (내부 메모)
|
||||
if (title.indexOf('//') !== -1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 실제 예약 일정 → 해당 날짜를 마감 처리
|
||||
var eventStart = events[i].getStartTime();
|
||||
var eventEnd = events[i].getEndTime();
|
||||
|
||||
// 종일 이벤트는 endTime이 마지막날+1일 00:00이므로 하루 빼기
|
||||
if (events[i].isAllDayEvent()) {
|
||||
eventEnd = new Date(eventEnd.getTime() - 1);
|
||||
}
|
||||
|
||||
// 여러 날에 걸친 일정 처리
|
||||
var current = new Date(eventStart.getFullYear(), eventStart.getMonth(), eventStart.getDate());
|
||||
var endDay = new Date(eventEnd.getFullYear(), eventEnd.getMonth(), eventEnd.getDate());
|
||||
while (current <= endDay) {
|
||||
var dateKey = Utilities.formatDate(current, Session.getScriptTimeZone(), 'yyyy-MM-dd');
|
||||
bookedDates[dateKey] = true;
|
||||
current.setDate(current.getDate() + 1);
|
||||
}
|
||||
}
|
||||
|
||||
var result = {
|
||||
year: year,
|
||||
month: month,
|
||||
bookedDates: Object.keys(bookedDates).sort()
|
||||
};
|
||||
|
||||
return ContentService.createTextOutput(JSON.stringify(result))
|
||||
.setMimeType(ContentService.MimeType.JSON);
|
||||
|
||||
} catch (error) {
|
||||
return ContentService.createTextOutput(JSON.stringify({
|
||||
error: error.message
|
||||
})).setMimeType(ContentService.MimeType.JSON);
|
||||
}
|
||||
}
|
||||
28
i18n/en.json
28
i18n/en.json
@ -6,6 +6,7 @@
|
||||
"services": "Services",
|
||||
"portfolio": "Portfolio",
|
||||
"gallery": "Gallery",
|
||||
"schedule": "Schedule",
|
||||
"contact": "Contact",
|
||||
"qna": "Q&A"
|
||||
},
|
||||
@ -143,6 +144,7 @@
|
||||
"title": "Your Ideas,<br>Brought to Life Through Motion",
|
||||
"desc": "Experience new creative possibilities at our professional motion capture studio",
|
||||
"btnReserve": "Book Now",
|
||||
"btnSchedule": "Check Availability",
|
||||
"btnNaver": "Naver Booking",
|
||||
"infoReservation": "Reservations",
|
||||
"infoBusiness": "Business",
|
||||
@ -462,6 +464,7 @@
|
||||
"step4Desc": "Booking finalized",
|
||||
"btnEmail": "Send Email Inquiry",
|
||||
"btnNaver": "Book via Naver",
|
||||
"btnSchedule": "Check Availability",
|
||||
"naverNote": "※ You can check real-time availability and book via Naver Place"
|
||||
},
|
||||
"policy": {
|
||||
@ -686,6 +689,7 @@
|
||||
"title": "Reservations & Inquiries",
|
||||
"desc": "Make an easy online reservation or check our frequently asked questions",
|
||||
"btnNaver": "Book via Naver",
|
||||
"btnSchedule": "Availability",
|
||||
"btnFaq": "View FAQ"
|
||||
},
|
||||
"js": {
|
||||
@ -786,5 +790,29 @@
|
||||
"linkGallery": "Studio Gallery",
|
||||
"linkQna": "FAQ",
|
||||
"linkContact": "Contact & Location"
|
||||
},
|
||||
"schedule": {
|
||||
"title": "Availability",
|
||||
"desc": "Check available dates for studio booking",
|
||||
"sun": "Sun",
|
||||
"mon": "Mon",
|
||||
"tue": "Tue",
|
||||
"wed": "Wed",
|
||||
"thu": "Thu",
|
||||
"fri": "Fri",
|
||||
"sat": "Sat",
|
||||
"available": "Available",
|
||||
"booked": "Fully Booked",
|
||||
"past": "Past Date",
|
||||
"infoTitle": "Booking Info",
|
||||
"infoDesc": "Reservations can be made via email or the contact page.<br>We recommend booking at least 2 weeks in advance.",
|
||||
"contactBtn": "Contact Us",
|
||||
"naverBtn": "Naver Booking",
|
||||
"detailHours": "Hours",
|
||||
"detailHoursVal": "24H · Year-round",
|
||||
"detailMin": "Minimum",
|
||||
"detailMinVal": "From 2 hours",
|
||||
"detailAdvance": "Advance",
|
||||
"detailAdvanceVal": "2 weeks recommended"
|
||||
}
|
||||
}
|
||||
|
||||
28
i18n/ja.json
28
i18n/ja.json
@ -6,6 +6,7 @@
|
||||
"services": "Services",
|
||||
"portfolio": "Portfolio",
|
||||
"gallery": "Gallery",
|
||||
"schedule": "Schedule",
|
||||
"contact": "Contact",
|
||||
"qna": "Q&A"
|
||||
},
|
||||
@ -143,6 +144,7 @@
|
||||
"title": "あなたのアイデアを、<br>動きで形にします",
|
||||
"desc": "プロのモーションキャプチャースタジオで、クリエイティブの新たな可能性を体験してください",
|
||||
"btnReserve": "ご予約・お問い合わせ",
|
||||
"btnSchedule": "予約状況を確認",
|
||||
"btnNaver": "Naver予約",
|
||||
"infoReservation": "ご予約",
|
||||
"infoBusiness": "ビジネス",
|
||||
@ -462,6 +464,7 @@
|
||||
"step4Desc": "最終予約完了",
|
||||
"btnEmail": "メールでお問い合わせ",
|
||||
"btnNaver": "Naver予約へ",
|
||||
"btnSchedule": "予約状況を確認",
|
||||
"naverNote": "※ Naverプレイスでリアルタイムのスケジュール確認および予約が可能です"
|
||||
},
|
||||
"policy": {
|
||||
@ -686,6 +689,7 @@
|
||||
"title": "ご予約・お問い合わせ",
|
||||
"desc": "簡単なオンライン予約またはよくある質問をご確認ください",
|
||||
"btnNaver": "Naver予約",
|
||||
"btnSchedule": "予約状況",
|
||||
"btnFaq": "FAQを見る"
|
||||
},
|
||||
"js": {
|
||||
@ -786,5 +790,29 @@
|
||||
"linkGallery": "スタジオギャラリー",
|
||||
"linkQna": "よくある質問",
|
||||
"linkContact": "連絡先・所在地"
|
||||
},
|
||||
"schedule": {
|
||||
"title": "予約状況",
|
||||
"desc": "スタジオの予約可能日程をご確認ください",
|
||||
"sun": "日",
|
||||
"mon": "月",
|
||||
"tue": "火",
|
||||
"wed": "水",
|
||||
"thu": "木",
|
||||
"fri": "金",
|
||||
"sat": "土",
|
||||
"available": "予約可能",
|
||||
"booked": "予約済み",
|
||||
"past": "過去の日付",
|
||||
"infoTitle": "ご予約案内",
|
||||
"infoDesc": "ご予約はメールまたはお問い合わせページから承ります。<br>2週間前までのご予約をお勧めいたします。",
|
||||
"contactBtn": "予約お問い合わせ",
|
||||
"naverBtn": "Naver予約",
|
||||
"detailHours": "営業時間",
|
||||
"detailHoursVal": "24時間 · 年中無休",
|
||||
"detailMin": "最低利用",
|
||||
"detailMinVal": "2時間から",
|
||||
"detailAdvance": "事前予約",
|
||||
"detailAdvanceVal": "2週間前推奨"
|
||||
}
|
||||
}
|
||||
28
i18n/ko.json
28
i18n/ko.json
@ -6,6 +6,7 @@
|
||||
"services": "Services",
|
||||
"portfolio": "Portfolio",
|
||||
"gallery": "Gallery",
|
||||
"schedule": "Schedule",
|
||||
"contact": "Contact",
|
||||
"qna": "Q&A"
|
||||
},
|
||||
@ -143,6 +144,7 @@
|
||||
"title": "당신의 아이디어,<br>움직임으로 만들어 드립니다",
|
||||
"desc": "전문 모션캡쳐 스튜디오에서 크리에이티브의 새로운 가능성을 경험하세요",
|
||||
"btnReserve": "예약 문의하기",
|
||||
"btnSchedule": "예약 현황 보기",
|
||||
"btnNaver": "네이버 예약",
|
||||
"infoReservation": "예약 문의",
|
||||
"infoBusiness": "비즈니스",
|
||||
@ -462,6 +464,7 @@
|
||||
"step4Desc": "최종 예약 완료",
|
||||
"btnEmail": "이메일 문의하기",
|
||||
"btnNaver": "네이버 예약 바로가기",
|
||||
"btnSchedule": "예약 현황 확인",
|
||||
"naverNote": "※ 네이버 플레이스를 통해 실시간 일정 확인 및 예약이 가능합니다"
|
||||
},
|
||||
"policy": {
|
||||
@ -686,6 +689,7 @@
|
||||
"title": "예약 및 문의",
|
||||
"desc": "간편한 온라인 예약 또는 자주 묻는 질문을 확인해보세요",
|
||||
"btnNaver": "네이버 예약",
|
||||
"btnSchedule": "예약 현황",
|
||||
"btnFaq": "FAQ 보기"
|
||||
},
|
||||
"js": {
|
||||
@ -786,5 +790,29 @@
|
||||
"linkGallery": "스튜디오 갤러리",
|
||||
"linkQna": "자주하는 질문",
|
||||
"linkContact": "연락처 및 위치"
|
||||
},
|
||||
"schedule": {
|
||||
"title": "예약 현황",
|
||||
"desc": "스튜디오 예약 가능 일정을 확인하세요",
|
||||
"sun": "일",
|
||||
"mon": "월",
|
||||
"tue": "화",
|
||||
"wed": "수",
|
||||
"thu": "목",
|
||||
"fri": "금",
|
||||
"sat": "토",
|
||||
"available": "예약 가능",
|
||||
"booked": "예약 마감",
|
||||
"past": "지난 날짜",
|
||||
"infoTitle": "예약 안내",
|
||||
"infoDesc": "예약은 이메일 또는 문의 페이지를 통해 접수하실 수 있습니다.<br>최소 2주 전 예약을 권장드립니다.",
|
||||
"contactBtn": "예약 문의하기",
|
||||
"naverBtn": "네이버 예약",
|
||||
"detailHours": "운영시간",
|
||||
"detailHoursVal": "24시간 · 연중무휴",
|
||||
"detailMin": "최소 이용",
|
||||
"detailMinVal": "2시간부터",
|
||||
"detailAdvance": "사전 예약",
|
||||
"detailAdvanceVal": "2주 전 권장"
|
||||
}
|
||||
}
|
||||
|
||||
28
i18n/zh.json
28
i18n/zh.json
@ -6,6 +6,7 @@
|
||||
"services": "Services",
|
||||
"portfolio": "Portfolio",
|
||||
"gallery": "Gallery",
|
||||
"schedule": "Schedule",
|
||||
"contact": "Contact",
|
||||
"qna": "Q&A"
|
||||
},
|
||||
@ -143,6 +144,7 @@
|
||||
"title": "您的创意,<br>用动作来呈现",
|
||||
"desc": "在专业动作捕捉工作室体验创意的全新可能",
|
||||
"btnReserve": "预约咨询",
|
||||
"btnSchedule": "查看预约状态",
|
||||
"btnNaver": "Naver预约",
|
||||
"infoReservation": "预约咨询",
|
||||
"infoBusiness": "商务合作",
|
||||
@ -462,6 +464,7 @@
|
||||
"step4Desc": "最终完成预约",
|
||||
"btnEmail": "发送邮件咨询",
|
||||
"btnNaver": "前往Naver预约",
|
||||
"btnSchedule": "查看预约状态",
|
||||
"naverNote": "※ 可通过Naver Place实时查看日程并预约"
|
||||
},
|
||||
"policy": {
|
||||
@ -686,6 +689,7 @@
|
||||
"title": "预约与咨询",
|
||||
"desc": "便捷的在线预约或查看常见问题",
|
||||
"btnNaver": "Naver预约",
|
||||
"btnSchedule": "预约状态",
|
||||
"btnFaq": "查看FAQ"
|
||||
},
|
||||
"js": {
|
||||
@ -786,5 +790,29 @@
|
||||
"linkGallery": "工作室画廊",
|
||||
"linkQna": "常见问题",
|
||||
"linkContact": "联系方式与位置"
|
||||
},
|
||||
"schedule": {
|
||||
"title": "预约状态",
|
||||
"desc": "查看工作室可预约日程",
|
||||
"sun": "日",
|
||||
"mon": "一",
|
||||
"tue": "二",
|
||||
"wed": "三",
|
||||
"thu": "四",
|
||||
"fri": "五",
|
||||
"sat": "六",
|
||||
"available": "可预约",
|
||||
"booked": "已满",
|
||||
"past": "过去日期",
|
||||
"infoTitle": "预约指南",
|
||||
"infoDesc": "可通过邮件或咨询页面进行预约。<br>建议至少提前2周预约。",
|
||||
"contactBtn": "预约咨询",
|
||||
"naverBtn": "Naver预约",
|
||||
"detailHours": "营业时间",
|
||||
"detailHoursVal": "24小时 · 全年无休",
|
||||
"detailMin": "最低使用",
|
||||
"detailMinVal": "2小时起",
|
||||
"detailAdvance": "提前预约",
|
||||
"detailAdvanceVal": "建议提前2周"
|
||||
}
|
||||
}
|
||||
|
||||
@ -292,6 +292,7 @@
|
||||
<li><a href="/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -980,6 +981,7 @@
|
||||
</p>
|
||||
<div class="cta-buttons reveal" data-reveal="up" data-delay="300">
|
||||
<a href="/contact" class="btn btn-primary btn-lg" data-i18n="index.cta.btnReserve">예약 문의하기</a>
|
||||
<a href="/schedule" class="btn btn-outline btn-lg" data-i18n="index.cta.btnSchedule"><i class="fa-regular fa-calendar-check"></i> 예약 현황 보기</a>
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-outline btn-lg" data-i18n="index.cta.btnNaver">네이버 예약</a>
|
||||
</div>
|
||||
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/ja/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/ja/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/ja/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/ja/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/ja/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -77,6 +77,7 @@
|
||||
<li><a href="/ja/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/ja/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/ja/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/ja/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/ja/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/ja/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/ja/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/ja/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/ja/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/ja/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -438,6 +439,7 @@
|
||||
<p data-i18n="contact.cta.desc">簡単なオンライン予約またはよくある質問をご確認ください</p>
|
||||
<div class="cta-buttons">
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-primary btn-lg" data-i18n="contact.cta.btnNaver">Naver予約</a>
|
||||
<a href="/ja/schedule" class="btn btn-outline btn-lg" data-i18n="contact.cta.btnSchedule"><i class="fa-regular fa-calendar-check"></i> 予約状況</a>
|
||||
<a href="qna.html" class="btn btn-outline btn-lg" data-i18n="contact.cta.btnFaq">FAQを見る</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/ja/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/ja/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/ja/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/ja/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/ja/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -296,6 +296,7 @@
|
||||
<li><a href="/ja/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/ja/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/ja/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/ja/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/ja/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -972,6 +973,7 @@
|
||||
<p class="cta-description reveal" data-reveal="up" data-delay="200" data-i18n="index.cta.desc">プロのモーションキャプチャースタジオで、クリエイティブの新たな可能性を体験してください</p>
|
||||
<div class="cta-buttons reveal" data-reveal="up" data-delay="300">
|
||||
<a href="/ja/contact" class="btn btn-primary btn-lg" data-i18n="index.cta.btnReserve">ご予約・お問い合わせ</a>
|
||||
<a href="/ja/schedule" class="btn btn-outline btn-lg" data-i18n="index.cta.btnSchedule"><i class="fa-regular fa-calendar-check"></i> 予約状況を確認</a>
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-outline btn-lg" data-i18n="index.cta.btnNaver">Naver予約</a>
|
||||
</div>
|
||||
|
||||
|
||||
@ -163,6 +163,7 @@
|
||||
<li><a href="/ja/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/ja/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/ja/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/ja/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/ja/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -77,6 +77,7 @@
|
||||
<li><a href="/ja/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/ja/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/ja/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/ja/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/ja/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/ja/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/ja/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/ja/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/ja/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/ja/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
164
ja/schedule.html
Normal file
164
ja/schedule.html
Normal file
@ -0,0 +1,164 @@
|
||||
<!DOCTYPE html><html lang="ja"><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>予約状況 - 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/ja/schedule">
|
||||
|
||||
<!-- Theme Color -->
|
||||
<meta name="theme-color" content="#ff8800">
|
||||
|
||||
<!-- SEO メタタグ -->
|
||||
<meta name="description" content="Mingle Studio 予約状況 - モーションキャプチャスタジオの予約可能日程をご確認ください">
|
||||
<meta name="keywords" content="モーションキャプチャスタジオ, 予約, スケジュール, Mingle Studio, 仁川">
|
||||
<meta name="author" content="Mingle Studio">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:title" content="予約状況 - Mingle Studio">
|
||||
<meta property="og:description" content="Mingle Studioモーションキャプチャスタジオの予約可能日程をご確認ください">
|
||||
<meta property="og:url" content="https://minglestudio.co.kr/ja/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="ja_JP">
|
||||
<meta property="og:site_name" content="Mingle Studio">
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="予約状況 - Mingle Studio">
|
||||
<meta name="twitter:description" content="Mingle Studioモーションキャプチャスタジオの予約可能日程をご確認ください">
|
||||
<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">本文へ移動</a>
|
||||
|
||||
<div id="header-placeholder"></div>
|
||||
|
||||
<main id="main-content">
|
||||
<!-- ページヘッダー -->
|
||||
<section class="page-header">
|
||||
<div class="container">
|
||||
<h1 class="page-title" data-i18n="schedule.title">予約状況</h1>
|
||||
<p class="page-description" data-i18n="schedule.desc">スタジオの予約可能日程をご確認ください</p>
|
||||
</div>
|
||||
</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="前月">
|
||||
<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="翌月">
|
||||
<i class="fa-solid fa-chevron-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="cal-header">
|
||||
<span data-i18n="schedule.sun">日</span>
|
||||
<span data-i18n="schedule.mon">月</span>
|
||||
<span data-i18n="schedule.tue">火</span>
|
||||
<span data-i18n="schedule.wed">水</span>
|
||||
<span data-i18n="schedule.thu">木</span>
|
||||
<span data-i18n="schedule.fri">金</span>
|
||||
<span data-i18n="schedule.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">予約可能</span>
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<span class="legend-dot booked"></span>
|
||||
<span data-i18n="schedule.booked">予約済み</span>
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<span class="legend-dot past"></span>
|
||||
<span data-i18n="schedule.past">過去の日付</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">ご予約案内</h3>
|
||||
<p data-i18n="schedule.infoDesc">ご予約はメールまたはお問い合わせページから承ります。<br>2週間前までのご予約をお勧めいたします。</p>
|
||||
<div class="schedule-actions">
|
||||
<a href="/ja/contact" class="btn btn-primary" data-i18n="schedule.contactBtn"><i class="fa-solid fa-envelope"></i> 予約お問い合わせ</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予約</a>
|
||||
</div>
|
||||
<div class="schedule-details">
|
||||
<div class="detail-item">
|
||||
<span class="detail-label" data-i18n="schedule.detailHours">営業時間</span>
|
||||
<span class="detail-value" data-i18n="schedule.detailHoursVal">24時間 · 年中無休</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<span class="detail-label" data-i18n="schedule.detailMin">最低利用</span>
|
||||
<span class="detail-value" data-i18n="schedule.detailMinVal">2時間から</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<span class="detail-label" data-i18n="schedule.detailAdvance">事前予約</span>
|
||||
<span class="detail-value" data-i18n="schedule.detailAdvanceVal">2週間前推奨</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>
|
||||
@ -105,6 +105,7 @@
|
||||
<li><a href="/ja/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/ja/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/ja/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/ja/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/ja/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -813,6 +814,9 @@ Mingle Studioまたは依頼者帰属を選択可能です</p>
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-secondary">
|
||||
<span><i class="fa-solid fa-calendar" aria-hidden="true"></i></span> <span data-i18n="services.guide.btnNaver">Naver予約へ</span>
|
||||
</a>
|
||||
<a href="/schedule" class="btn btn-secondary">
|
||||
<span><i class="fa-regular fa-calendar-check" aria-hidden="true"></i></span> <span data-i18n="services.guide.btnSchedule">予約状況を確認</span>
|
||||
</a>
|
||||
</div>
|
||||
<p class="booking-note" data-i18n="services.guide.naverNote">※ Naverプレイスでリアルタイムのスケジュール確認および予約が可能です</p>
|
||||
|
||||
|
||||
179
js/schedule.js
Normal file
179
js/schedule.js
Normal file
@ -0,0 +1,179 @@
|
||||
/**
|
||||
* 밍글 스튜디오 - 예약 현황 캘린더
|
||||
* Google Apps Script 프록시를 통해 캘린더 데이터를 가져와 표시
|
||||
*/
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
var APPS_SCRIPT_URL = 'https://script.google.com/macros/s/AKfycbwoaoSmEskbJod4gR5NjLnpWSkhIDUYaGBYk0y1Q865TzaJ4gctSrTOWXxRnVa7J9AASA/exec';
|
||||
var CACHE_TTL = 30 * 60 * 1000; // 30분
|
||||
|
||||
var currentYear, currentMonth;
|
||||
var calTitle = document.getElementById('calTitle');
|
||||
var calBody = document.getElementById('calBody');
|
||||
var prevBtn = document.getElementById('prevMonth');
|
||||
var nextBtn = document.getElementById('nextMonth');
|
||||
|
||||
function init() {
|
||||
var now = new Date();
|
||||
currentYear = now.getFullYear();
|
||||
currentMonth = now.getMonth() + 1;
|
||||
|
||||
prevBtn.addEventListener('click', function() { changeMonth(-1); });
|
||||
nextBtn.addEventListener('click', function() { changeMonth(1); });
|
||||
|
||||
renderCalendar();
|
||||
}
|
||||
|
||||
function changeMonth(delta) {
|
||||
currentMonth += delta;
|
||||
if (currentMonth > 12) { currentMonth = 1; currentYear++; }
|
||||
else if (currentMonth < 1) { currentMonth = 12; currentYear--; }
|
||||
renderCalendar();
|
||||
}
|
||||
|
||||
function renderCalendar() {
|
||||
updateTitle();
|
||||
|
||||
var cached = getCache(currentYear, currentMonth);
|
||||
if (cached !== null) {
|
||||
buildGrid(cached);
|
||||
} else {
|
||||
// 즉시 빈 그리드 렌더링 (체감 속도 향상)
|
||||
buildGrid([]);
|
||||
calBody.classList.add('loading');
|
||||
fetchBookedDates(currentYear, currentMonth, function(dates) {
|
||||
setCache(currentYear, currentMonth, dates);
|
||||
buildGrid(dates);
|
||||
calBody.classList.remove('loading');
|
||||
prefetchAdjacent();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function prefetchAdjacent() {
|
||||
var nextM = currentMonth + 1, nextY = currentYear;
|
||||
if (nextM > 12) { nextM = 1; nextY++; }
|
||||
if (getCache(nextY, nextM) === null) {
|
||||
fetchBookedDates(nextY, nextM, function(dates) {
|
||||
setCache(nextY, nextM, dates);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// --- localStorage 캐싱 ---
|
||||
function cacheKey(y, m) { return 'mingle_cal_' + y + '_' + m; }
|
||||
|
||||
function getCache(y, m) {
|
||||
try {
|
||||
var raw = localStorage.getItem(cacheKey(y, m));
|
||||
if (!raw) return null;
|
||||
var obj = JSON.parse(raw);
|
||||
if (Date.now() - obj.ts > CACHE_TTL) {
|
||||
localStorage.removeItem(cacheKey(y, m));
|
||||
return null;
|
||||
}
|
||||
return obj.dates;
|
||||
} catch (e) { return null; }
|
||||
}
|
||||
|
||||
function setCache(y, m, dates) {
|
||||
try {
|
||||
localStorage.setItem(cacheKey(y, m), JSON.stringify({ dates: dates, ts: Date.now() }));
|
||||
} catch (e) { /* quota exceeded 등 무시 */ }
|
||||
}
|
||||
|
||||
// --- 제목 업데이트 ---
|
||||
function updateTitle() {
|
||||
var lang = (window.i18n && window.i18n.currentLang) || 'ko';
|
||||
var monthNames = {
|
||||
ko: ['1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월'],
|
||||
en: ['January','February','March','April','May','June','July','August','September','October','November','December'],
|
||||
ja: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
|
||||
zh: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
|
||||
};
|
||||
var names = monthNames[lang] || monthNames.ko;
|
||||
if (lang === 'en') {
|
||||
calTitle.textContent = names[currentMonth - 1] + ' ' + currentYear;
|
||||
} else if (lang === 'ja' || lang === 'zh') {
|
||||
calTitle.textContent = currentYear + '年 ' + names[currentMonth - 1];
|
||||
} else {
|
||||
calTitle.textContent = currentYear + '년 ' + names[currentMonth - 1];
|
||||
}
|
||||
}
|
||||
|
||||
// --- API 호출 ---
|
||||
function fetchBookedDates(year, month, callback) {
|
||||
if (!APPS_SCRIPT_URL) { callback([]); return; }
|
||||
|
||||
var url = APPS_SCRIPT_URL + '?year=' + year + '&month=' + month;
|
||||
fetch(url)
|
||||
.then(function(res) { return res.json(); })
|
||||
.then(function(data) { callback(data.bookedDates || []); })
|
||||
.catch(function() { callback([]); });
|
||||
}
|
||||
|
||||
// --- 그리드 렌더링 ---
|
||||
function buildGrid(bookedDates) {
|
||||
calBody.innerHTML = '';
|
||||
|
||||
var firstDay = new Date(currentYear, currentMonth - 1, 1).getDay();
|
||||
var daysInMonth = new Date(currentYear, currentMonth, 0).getDate();
|
||||
var today = new Date();
|
||||
var todayStr = today.getFullYear() + '-' +
|
||||
String(today.getMonth() + 1).padStart(2, '0') + '-' +
|
||||
String(today.getDate()).padStart(2, '0');
|
||||
|
||||
var bookedSet = {};
|
||||
for (var b = 0; b < bookedDates.length; b++) {
|
||||
bookedSet[bookedDates[b]] = true;
|
||||
}
|
||||
|
||||
var fragment = document.createDocumentFragment();
|
||||
|
||||
for (var e = 0; e < firstDay; e++) {
|
||||
var emptyCell = document.createElement('div');
|
||||
emptyCell.className = 'cal-cell empty';
|
||||
fragment.appendChild(emptyCell);
|
||||
}
|
||||
|
||||
for (var d = 1; d <= daysInMonth; d++) {
|
||||
var dateStr = currentYear + '-' +
|
||||
String(currentMonth).padStart(2, '0') + '-' +
|
||||
String(d).padStart(2, '0');
|
||||
|
||||
var cell = document.createElement('div');
|
||||
cell.className = 'cal-cell';
|
||||
|
||||
var dayNum = document.createElement('span');
|
||||
dayNum.className = 'day-num';
|
||||
dayNum.textContent = d;
|
||||
|
||||
var cellDate = new Date(currentYear, currentMonth - 1, d);
|
||||
var isPast = cellDate < new Date(today.getFullYear(), today.getMonth(), today.getDate());
|
||||
|
||||
if (dateStr === todayStr) {
|
||||
cell.classList.add('today');
|
||||
} else if (isPast) {
|
||||
cell.classList.add('past');
|
||||
} else if (bookedSet[dateStr]) {
|
||||
cell.classList.add('booked');
|
||||
} else {
|
||||
cell.classList.add('available');
|
||||
}
|
||||
|
||||
cell.appendChild(dayNum);
|
||||
fragment.appendChild(cell);
|
||||
}
|
||||
|
||||
calBody.appendChild(fragment);
|
||||
}
|
||||
|
||||
document.addEventListener('langChanged', function() { updateTitle(); });
|
||||
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', init);
|
||||
} else {
|
||||
init();
|
||||
}
|
||||
})();
|
||||
@ -157,6 +157,7 @@
|
||||
<li><a href="/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -71,6 +71,7 @@
|
||||
<li><a href="/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
1
qna.html
1
qna.html
@ -98,6 +98,7 @@
|
||||
<li><a href="/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
172
schedule.html
Normal file
172
schedule.html
Normal file
@ -0,0 +1,172 @@
|
||||
<!DOCTYPE html><html lang="ko"><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>예약 현황 - 밍글 스튜디오</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/schedule">
|
||||
|
||||
<!-- Theme Color -->
|
||||
<meta name="theme-color" content="#ff8800">
|
||||
|
||||
<!-- SEO 메타 태그 -->
|
||||
<meta name="description" content="밍글 스튜디오 예약 현황 - 모션캡처 스튜디오 예약 가능 일정을 확인하세요">
|
||||
<meta name="keywords" content="모션캡쳐 스튜디오, 예약, 일정, 밍글 스튜디오, 인천">
|
||||
<meta name="author" content="밍글 스튜디오">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:title" content="예약 현황 - 밍글 스튜디오">
|
||||
<meta property="og:description" content="밍글 스튜디오 모션캡처 스튜디오 예약 가능 일정을 확인하세요">
|
||||
<meta property="og:url" content="https://minglestudio.co.kr/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="ko_KR">
|
||||
<meta property="og:site_name" content="밍글 스튜디오">
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="예약 현황 - 밍글 스튜디오">
|
||||
<meta name="twitter:description" content="밍글 스튜디오 모션캡처 스튜디오 예약 가능 일정을 확인하세요">
|
||||
<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">본문 바로가기</a>
|
||||
|
||||
<div id="header-placeholder"></div>
|
||||
|
||||
<main id="main-content">
|
||||
<!-- 페이지 헤더 -->
|
||||
<section class="page-header">
|
||||
<div class="container">
|
||||
<h1 class="page-title" data-i18n="schedule.title">예약 현황</h1>
|
||||
<p class="page-description" data-i18n="schedule.desc">스튜디오 예약 가능 일정을 확인하세요</p>
|
||||
</div>
|
||||
</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="이전 달">
|
||||
<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="다음 달">
|
||||
<i class="fa-solid fa-chevron-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- 캘린더 그리드 -->
|
||||
<div class="cal-header">
|
||||
<span data-i18n="schedule.sun">일</span>
|
||||
<span data-i18n="schedule.mon">월</span>
|
||||
<span data-i18n="schedule.tue">화</span>
|
||||
<span data-i18n="schedule.wed">수</span>
|
||||
<span data-i18n="schedule.thu">목</span>
|
||||
<span data-i18n="schedule.fri">금</span>
|
||||
<span data-i18n="schedule.sat">토</span>
|
||||
</div>
|
||||
<div class="cal-body" id="calBody">
|
||||
<!-- JS가 날짜 셀을 렌더링 -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 범례 -->
|
||||
<div class="calendar-legend">
|
||||
<div class="legend-item">
|
||||
<span class="legend-dot available"></span>
|
||||
<span data-i18n="schedule.available">예약 가능</span>
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<span class="legend-dot booked"></span>
|
||||
<span data-i18n="schedule.booked">예약 마감</span>
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<span class="legend-dot past"></span>
|
||||
<span data-i18n="schedule.past">지난 날짜</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">예약 안내</h3>
|
||||
<p data-i18n="schedule.infoDesc">예약은 이메일 또는 문의 페이지를 통해 접수하실 수 있습니다.<br>최소 2주 전 예약을 권장드립니다.</p>
|
||||
<div class="schedule-actions">
|
||||
<a href="/contact" class="btn btn-primary" data-i18n="schedule.contactBtn"><i class="fa-solid fa-envelope"></i> 예약 문의하기</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> 네이버 예약</a>
|
||||
</div>
|
||||
<div class="schedule-details">
|
||||
<div class="detail-item">
|
||||
<span class="detail-label" data-i18n="schedule.detailHours">운영시간</span>
|
||||
<span class="detail-value" data-i18n="schedule.detailHoursVal">24시간 · 연중무휴</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<span class="detail-label" data-i18n="schedule.detailMin">최소 이용</span>
|
||||
<span class="detail-value" data-i18n="schedule.detailMinVal">2시간부터</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<span class="detail-label" data-i18n="schedule.detailAdvance">사전 예약</span>
|
||||
<span class="detail-value" data-i18n="schedule.detailAdvanceVal">2주 전 권장</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>
|
||||
@ -99,6 +99,7 @@
|
||||
<li><a href="/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -806,6 +807,9 @@
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-secondary">
|
||||
<span><i class="fa-solid fa-calendar" aria-hidden="true"></i></span> <span data-i18n="services.guide.btnNaver">네이버 예약 바로가기</span>
|
||||
</a>
|
||||
<a href="/schedule" class="btn btn-secondary">
|
||||
<span><i class="fa-regular fa-calendar-check" aria-hidden="true"></i></span> <span data-i18n="services.guide.btnSchedule">예약 현황 확인</span>
|
||||
</a>
|
||||
</div>
|
||||
<p class="booking-note" data-i18n="services.guide.naverNote">※ 네이버 플레이스를 통해 실시간 일정 확인 및 예약이 가능합니다</p>
|
||||
|
||||
|
||||
20
sitemap.xml
20
sitemap.xml
@ -38,6 +38,11 @@
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://minglestudio.co.kr/schedule</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
|
||||
<!-- English -->
|
||||
<url>
|
||||
@ -75,6 +80,11 @@
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://minglestudio.co.kr/en/schedule</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<!-- 日本語 -->
|
||||
<url>
|
||||
@ -112,6 +122,11 @@
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://minglestudio.co.kr/ja/schedule</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
<!-- 中文 -->
|
||||
<url>
|
||||
@ -149,5 +164,10 @@
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://minglestudio.co.kr/zh/schedule</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.6</priority>
|
||||
</url>
|
||||
|
||||
</urlset>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/zh/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/zh/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/zh/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/zh/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/zh/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -77,6 +77,7 @@
|
||||
<li><a href="/zh/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/zh/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/zh/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/zh/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/zh/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/zh/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/zh/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/zh/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/zh/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/zh/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -438,6 +439,7 @@
|
||||
<p data-i18n="contact.cta.desc">便捷的在线预约或查看常见问题</p>
|
||||
<div class="cta-buttons">
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-primary btn-lg" data-i18n="contact.cta.btnNaver">Naver预约</a>
|
||||
<a href="/zh/schedule" class="btn btn-outline btn-lg" data-i18n="contact.cta.btnSchedule"><i class="fa-regular fa-calendar-check"></i> 预约状态</a>
|
||||
<a href="qna.html" class="btn btn-outline btn-lg" data-i18n="contact.cta.btnFaq">查看FAQ</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/zh/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/zh/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/zh/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/zh/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/zh/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -296,6 +296,7 @@
|
||||
<li><a href="/zh/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/zh/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/zh/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/zh/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/zh/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -972,6 +973,7 @@
|
||||
<p class="cta-description reveal" data-reveal="up" data-delay="200" data-i18n="index.cta.desc">在专业动作捕捉工作室体验创意的全新可能</p>
|
||||
<div class="cta-buttons reveal" data-reveal="up" data-delay="300">
|
||||
<a href="/zh/contact" class="btn btn-primary btn-lg" data-i18n="index.cta.btnReserve">预约咨询</a>
|
||||
<a href="/zh/schedule" class="btn btn-outline btn-lg" data-i18n="index.cta.btnSchedule"><i class="fa-regular fa-calendar-check"></i> 查看预约状态</a>
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-outline btn-lg" data-i18n="index.cta.btnNaver">Naver预约</a>
|
||||
</div>
|
||||
|
||||
|
||||
@ -163,6 +163,7 @@
|
||||
<li><a href="/zh/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/zh/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/zh/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/zh/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/zh/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -77,6 +77,7 @@
|
||||
<li><a href="/zh/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/zh/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/zh/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/zh/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/zh/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
@ -104,6 +104,7 @@
|
||||
<li><a href="/zh/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/zh/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/zh/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/zh/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/zh/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
|
||||
164
zh/schedule.html
Normal file
164
zh/schedule.html
Normal file
@ -0,0 +1,164 @@
|
||||
<!DOCTYPE html><html lang="zh"><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>预约状态 - 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/zh/schedule">
|
||||
|
||||
<!-- Theme Color -->
|
||||
<meta name="theme-color" content="#ff8800">
|
||||
|
||||
<!-- SEO 元标签 -->
|
||||
<meta name="description" content="Mingle Studio 预约状态 - 查看动作捕捉工作室可预约日程">
|
||||
<meta name="keywords" content="动作捕捉工作室, 预约, 日程, Mingle Studio, 仁川">
|
||||
<meta name="author" content="Mingle Studio">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:title" content="预约状态 - Mingle Studio">
|
||||
<meta property="og:description" content="查看Mingle Studio动作捕捉工作室可预约日程">
|
||||
<meta property="og:url" content="https://minglestudio.co.kr/zh/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="zh_CN">
|
||||
<meta property="og:site_name" content="Mingle Studio">
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="预约状态 - Mingle Studio">
|
||||
<meta name="twitter:description" content="查看Mingle Studio动作捕捉工作室可预约日程">
|
||||
<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">跳至正文</a>
|
||||
|
||||
<div id="header-placeholder"></div>
|
||||
|
||||
<main id="main-content">
|
||||
<!-- 页面标题 -->
|
||||
<section class="page-header">
|
||||
<div class="container">
|
||||
<h1 class="page-title" data-i18n="schedule.title">预约状态</h1>
|
||||
<p class="page-description" data-i18n="schedule.desc">查看工作室可预约日程</p>
|
||||
</div>
|
||||
</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="上个月">
|
||||
<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="下个月">
|
||||
<i class="fa-solid fa-chevron-right"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="cal-header">
|
||||
<span data-i18n="schedule.sun">日</span>
|
||||
<span data-i18n="schedule.mon">一</span>
|
||||
<span data-i18n="schedule.tue">二</span>
|
||||
<span data-i18n="schedule.wed">三</span>
|
||||
<span data-i18n="schedule.thu">四</span>
|
||||
<span data-i18n="schedule.fri">五</span>
|
||||
<span data-i18n="schedule.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">可预约</span>
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<span class="legend-dot booked"></span>
|
||||
<span data-i18n="schedule.booked">已满</span>
|
||||
</div>
|
||||
<div class="legend-item">
|
||||
<span class="legend-dot past"></span>
|
||||
<span data-i18n="schedule.past">过去日期</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">预约指南</h3>
|
||||
<p data-i18n="schedule.infoDesc">可通过邮件或咨询页面进行预约。<br>建议至少提前2周预约。</p>
|
||||
<div class="schedule-actions">
|
||||
<a href="/zh/contact" class="btn btn-primary" data-i18n="schedule.contactBtn"><i class="fa-solid fa-envelope"></i> 预约咨询</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预约</a>
|
||||
</div>
|
||||
<div class="schedule-details">
|
||||
<div class="detail-item">
|
||||
<span class="detail-label" data-i18n="schedule.detailHours">营业时间</span>
|
||||
<span class="detail-value" data-i18n="schedule.detailHoursVal">24小时 · 全年无休</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<span class="detail-label" data-i18n="schedule.detailMin">最低使用</span>
|
||||
<span class="detail-value" data-i18n="schedule.detailMinVal">2小时起</span>
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<span class="detail-label" data-i18n="schedule.detailAdvance">提前预约</span>
|
||||
<span class="detail-value" data-i18n="schedule.detailAdvanceVal">建议提前2周</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>
|
||||
@ -105,6 +105,7 @@
|
||||
<li><a href="/zh/services" class="nav-link" data-i18n="header.nav.services">Services</a></li>
|
||||
<li><a href="/zh/portfolio" class="nav-link" data-i18n="header.nav.portfolio">Portfolio</a></li>
|
||||
<li><a href="/zh/gallery" class="nav-link" data-i18n="header.nav.gallery">Gallery</a></li>
|
||||
<li><a href="/schedule" class="nav-link" data-i18n="header.nav.schedule">Schedule</a></li>
|
||||
|
||||
<li><a href="/zh/contact" class="nav-link" data-i18n="header.nav.contact">Contact</a></li>
|
||||
<li><a href="/zh/qna" class="nav-link" data-i18n="header.nav.qna">Q&A</a></li>
|
||||
@ -813,6 +814,9 @@
|
||||
<a href="https://m.booking.naver.com/booking/10/bizes/1468174/items/6949481" target="_blank" class="btn btn-secondary">
|
||||
<span><i class="fa-solid fa-calendar" aria-hidden="true"></i></span> <span data-i18n="services.guide.btnNaver">前往Naver预约</span>
|
||||
</a>
|
||||
<a href="/schedule" class="btn btn-secondary">
|
||||
<span><i class="fa-regular fa-calendar-check" aria-hidden="true"></i></span> <span data-i18n="services.guide.btnSchedule">查看预约状态</span>
|
||||
</a>
|
||||
</div>
|
||||
<p class="booking-note" data-i18n="services.guide.naverNote">※ 可通过Naver Place实时查看日程并预约</p>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user