- 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>
60 lines
3.7 KiB
HTML
60 lines
3.7 KiB
HTML
<!-- 공통 헤더 컴포넌트 -->
|
|
<nav class="navbar" aria-label="메인 내비게이션">
|
|
<div class="nav-container">
|
|
<div class="nav-logo">
|
|
<a href="/">
|
|
<img src="/images/logo/mingle-logo.webp" alt="밍글 스튜디오 로고">
|
|
<span data-i18n="header.studioName">밍글 스튜디오</span>
|
|
</a>
|
|
</div>
|
|
<ul id="nav-menu" class="nav-menu">
|
|
<li><a href="/about" class="nav-link" data-i18n="header.nav.about">About</a></li>
|
|
<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>
|
|
</ul>
|
|
<div class="nav-actions">
|
|
<div class="lang-switcher">
|
|
<button class="lang-btn" aria-label="언어 선택" data-i18n-aria="header.langSelect">
|
|
<span class="lang-current">KO</span>
|
|
<svg class="lang-chevron" viewBox="0 0 10 6" width="10" height="6" aria-hidden="true">
|
|
<path d="M1 1l4 4 4-4" stroke="currentColor" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
</button>
|
|
<ul class="lang-dropdown">
|
|
<li><button data-lang="ko">🇰🇷 한국어</button></li>
|
|
<li><button data-lang="en">🇺🇸 English</button></li>
|
|
<li><button data-lang="zh">🇨🇳 中文</button></li>
|
|
<li><button data-lang="ja">🇯🇵 日本語</button></li>
|
|
</ul>
|
|
</div>
|
|
<button class="theme-toggle" id="themeToggle" aria-label="다크 모드 전환" title="다크/라이트 모드 전환">
|
|
<div class="theme-toggle-thumb">
|
|
<svg class="theme-toggle-icon theme-toggle-icon--sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
<circle cx="12" cy="12" r="5"></circle>
|
|
<line x1="12" y1="1" x2="12" y2="3"></line>
|
|
<line x1="12" y1="21" x2="12" y2="23"></line>
|
|
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
|
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
|
<line x1="1" y1="12" x2="3" y2="12"></line>
|
|
<line x1="21" y1="12" x2="23" y2="12"></line>
|
|
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
|
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
|
</svg>
|
|
<svg class="theme-toggle-icon theme-toggle-icon--moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
|
</svg>
|
|
</div>
|
|
</button>
|
|
</div>
|
|
<button class="hamburger" aria-label="메뉴 열기" aria-expanded="false" aria-controls="nav-menu">
|
|
<span></span>
|
|
<span></span>
|
|
<span></span>
|
|
</button>
|
|
</div>
|
|
</nav> |