PageSourceSearch

https://stayinjeju.co.kr/i18n-data.js

js stayinjeju.co.kr collected 2026-10-06 03:43:24 UTC 36,171 bytes, 535 lines download raw bytes

1/* ======================================================
2   i18n-data.js (AUTO-GENERATED from stay-pension.zip)
3   - Supports: ko / en
4   - Works with:
5     - data-i18n="key"        => innerText (or placeholder for inputs)
6     - data-i18n-placeholder  => placeholder
7     - data-i18n-title        => title
8   - Provides:
9     window.I18N.t(key, fallback)
10     window.I18N.setLang(lang)
11     window.applyTranslations(lang)
12====================================================== */
13
14(function () {
15  "use strict";
16
17  const DICTS = {
18    ko: {
19    "booking.calendar.title": "예약 가능 날짜",
20    "booking.legend.avail": "예약 가능",
21    "booking.legend.booked": "예약 완료",
22    "booking.legend.selected": "선택한 일정",
23    "booking.note": "날짜와 인원을 선택하고 예약하기를 누르면 결제가 가능합니다. 결제 후 MY PAGE에서 예약확인을 해주세요.",
24    "booking.payment.bank": "계좌 이체 (15% 할인)",
25    "booking.payment.card": "카드 결제 (15% 할인)",
26    "booking.payment.hint": "현재: 기준 금액이 표시됩니다.",
27    "booking.payment.title": "결제 방법",
28    "booking.reserve.jeoji": "저지맨션 예약하기",
29    "booking.total.hint": "날짜를 선택하면 총 금액이 표시됩니다.",
30    "calendar.discount.bank": "계좌이체 할인",
31    "calendar.discount.card": "카드 결제",
32    "calendar.discount.default": "기본",
33    "calendar.nav.next": "다음 달",
34    "calendar.nav.prev": "이전 달",
35    "calendar.total.format": "총 {n}박 · {amount}",
36    "calendar.total.hint": "날짜를 선택하면 총 금액이 표시됩니다.",
37    "calendar.total.min1": "최소 1박 이상 선택해 주세요.",
38    "calendar.total.noSeason": "시즌 정보 없음",
39    "calendar.weekdays": "일,월,화,수,목,금,토",
40    "cancel.notes": "비행기·선박 결항 등 기상 악화로 인한 이동수단 취소 가 발생한 경우, 해당 사실을 증빙하는 서류를 제출하면 전액 환불됩니다. 결제 당일에 취소하더라도, 예약 확정 후에는 동일한 환불 규정이 적용됩니다. 예약 전 여행 일정을 충분히 확인해 주세요. 주기적으로 소독과 방역을 진행하고 있으나 주변환경의 특성상 벌레가 유입될수 있습니다. 이로 인한 환불은 불가합니다. 예약을 확정하는 것은 위의 모든 내용을 읽고 동의하셨음을 의미합니다.",
41    "cancel.row.d10": "체크인 10일 전까지 (until 10 days before check-in)",
42    "cancel.row.d3": "체크인 3일 전 ~ 당일 (3 days prior to check-in)",
43    "cancel.row.d4": "체크인 4일 전까지 (until 4 days before check-in)",
44    "cancel.row.d5": "체크인 5일 전까지 (until 5 days before check-in)",
45    "cancel.row.d6": "체크인 6일 전까지 (until 6 days before check-in)",
46    "cancel.row.d7": "체크인 7일 전까지 (until 7 days before check-in)",
47    "cancel.row.d8": "체크인 8일 전까지 (until 8 days before check-in)",
48    "cancel.row.d9": "체크인 9일 전까지 (until 9 days before check-in)",
49    "cancel.row.nrf": "non-changeable / non-refundable",
50    "cancel.row.r100": "100% refunded",
51    "cancel.row.r40": "40% refunded",
52    "cancel.row.r50": "50% refunded",
53    "cancel.row.r60": "60% refunded",
54    "cancel.row.r70": "70% refunded",
55    "cancel.row.r80": "80% refunded",
56    "cancel.row.r90": "90% refunded",
57    "cancel.th.date": "날짜 (체크인 기준)",
58    "cancel.th.rate": "Refund rate · 환불 비율",
59    "cancel.title": "Cancellation policy · 취소 및 환불 규정",
60    "checkout.closeTitle": "창 닫기",
61    "checkout.help": "실제 결제는 아직 연결하지 않았습니다. 나중에 Toss / Stripe 등의 결제 모듈과 연동하면, 이 버튼에서 바로 결제가 진행됩니다.",
62    "checkout.label.checkin": "체크인",
63    "checkout.label.checkout": "체크아웃",
64    "checkout.label.guests": "인원",
65    "checkout.label.room": "숙소",
66    "checkout.label.total": "예상 결제 금액",
67    "checkout.payBtn": "결제하기 (임시)",
68    "checkout.subtitle": "결제 전 예약 정보를 다시 한 번 확인해주세요.",
69    "checkout.title": "예약 내용 확인",
70    "footer.copy.geum": "ⓒ JEJU STAY · 금등첨화 (Draft)",
71    "footer.copy.jeoji": "ⓒ JEJU STAY · 저지맨션 (Draft)",
72    "footer.story": "ⓒ JEJU STAY · 금등첨화 & 저지맨션 · STORY / JOURNAL",
73    "gallery.tab.all": "전체",
74    "gallery.tab.bath": "Bathroom",
75    "gallery.tab.detail": "디테일 / 소품",
76    "gallery.tab.exterior": "Exterior (외관)",
77    "gallery.tab.interior": "Interior (실내)",
78    "gallery.tab.night": "Night View",
79    "gallery.toggle.back": "뒤로",
80    "gallery.toggle.open": "전체 사진 / 카테고리별로 보기",
81    "geum.booking.calendarTitle": "예약 가능 날짜",
82    "geum.booking.legend.avail": "예약 가능",
83    "geum.booking.legend.booked": "예약 완료",
84    "geum.booking.legend.selected": "선택한 일정",
85    "geum.booking.reserveBtn": "금등첨화 예약하기",
86    "geum.booking.totalHint": "날짜를 선택하면 총 금액이 표시됩니다.",
87    "geum.cancel.note.1": "비행기·선박 결항 등 기상 악화로 인한 이동수단 취소 가 발생한 경우, 해당 사실을 증빙하는 서류를 제출하면 전액 환불됩니다. (체크인 당일에 한함)",
88    "geum.cancel.note.2": "결제 당일에 취소하더라도, 예약 확정 후에는 동일한 환불 규정이 적용됩니다. 예약 전 여행 일정을 충분히 확인해 주세요.",
89    "geum.cancel.note.3": "주기적으로 소독과 방역을 진행하고 있으나 주변환경의 특성상 벌레가 유입될수 있습니다. 이로 인한 환불은 불가합니다.",
90    "geum.cancel.note.4": "예약을 확정하는 것은 위의 모든 내용을 읽고 동의하셨음을 의미합니다.",
91    "geum.cancel.rate.100": "100% refunded",
92    "geum.cancel.rate.40": "40% refunded",
93    "geum.cancel.rate.50": "50% refunded",
94    "geum.cancel.rate.60": "60% refunded",
95    "geum.cancel.rate.70": "70% refunded",
96    "geum.cancel.rate.80": "80% refunded",
97    "geum.cancel.rate.90": "90% refunded",
98    "geum.cancel.rate.none": "non-changeable / non-refundable",
99    "geum.cancel.row.10d": "체크인 10일 전까지 (until 10 days before check-in)",
100    "geum.cancel.row.3d": "체크인 3일 전 ~ 당일 (3 days prior to check-in)",
101    "geum.cancel.row.4d": "체크인 4일 전까지 (until 4 days before check-in)",
102    "geum.cancel.row.5d": "체크인 5일 전까지 (until 5 days before check-in)",
103    "geum.cancel.row.6d": "체크인 6일 전까지 (until 6 days before check-in)",
104    "geum.cancel.row.7d": "체크인 7일 전까지 (until 7 days before check-in)",
105    "geum.cancel.row.8d": "체크인 8일 전까지 (until 8 days before check-in)",
106    "geum.cancel.row.9d": "체크인 9일 전까지 (until 9 days before check-in)",
107    "geum.cancel.th.date": "날짜 (체크인 기준)",
108    "geum.cancel.th.rate": "Refund rate · 환불 비율",
109    "geum.cancel.title": "Cancellation policy · 취소 및 환불 규정",
110    "geum.gallery.tab.all": "Total",
111    "geum.gallery.tab.bath": "Bathroom",
112    "geum.gallery.tab.detail": "Detail / Decor",
113    "geum.gallery.tab.exterior": "Exterior",
114    "geum.gallery.tab.interior": "Interior",
115    "geum.gallery.tab.night": "Night View",
116    "geum.gallery.toggle.open": "전체 사진 / 카테고리별로 보기",
117    "geum.guest.adults": "Adults",
118    "geum.guest.buttonPrefix": "Guests ·",
119    "geum.guest.children": "Children",
120    "geum.guest.childrenDesc": "24 months ~ 12 years",
121    "geum.guest.done": "Done",
122    "geum.guest.infants": "Infants",
123    "geum.guest.infantsDesc": "24 months below",
124    "geum.guest.title": "Guests",
125    "geum.location.title": "위치 및 정보",
126    "geum.pageTitle": "금등첨화 · Better than good",
127    "geum.pay.bank": "계좌 이체 (15% 할인)",
128    "geum.pay.card": "카드 결제 (15% 할인)",
129    "geum.pay.discountLine": "현재: 카드 결제 기준 금액이 표시됩니다.",
130    "geum.pay.title": "결제 방법",
131    "geum.section.gallery": "Photo Gallery",
132    "geum.section.info": "이용 안내",
133    "geum.section.layout": "구성",
134    "geum.section.meal": "조식 & 편의 시설",
135    "geum.section.overview": "공간 소개",
136    "geum.subtitle": "제주 한경면 · 4~8 인 전용 · 욕조 · 테라스",
137    "geum.text.info": "체크인 16:00 / 체크아웃 11:00 · 인원추가를 하셔야 침구추가가 되기 때문에 유아라도 침구가 필요하실 경우 인원추가 해주세요 (침구추가가 필요 없을시에는 추가하지 마ì‹
137œê³  아이가 있다고 미리 말씀해 주시면 참고하겠습니다.· 예약 인원 외 방문객 출입 및 파티, 과음·소음 유발 행위는 자제 부탁드립니다. · 실내 전 구역 금연이며, 위반 시 별도 청소비가 청구될 수 있습니다. · 상업 촬영, 제품·브랜드 촬영, 프로모션 촬영 등은 사전 협의 없이 진행이 불가합니다. · 주변이 조용한 주거·농가 지역이므로 야간 실외 소음에 특히 유의해 주세요.",
138    "geum.text.layout": "기준 4인 / 최대 8인 · 침실 2 (킹사이즈 침대) · 욕실 2 · 넓은 거실 + 다이닝 공간 · 실내 자쿠지 · 실내 온수 수영장 (사시 사철 운영) · 중정을 둘러싼 잔디 정원과 마당, 야외 좌석 테라스 · 바비큐 이용 가능한 야외 공간 · 주방 / 조리도구 / 식기 / 커피·티 세트 / 기본 조미료",
139    "geum.text.meal": "숙박일 상관없이 1회 조식이 제공됩니다. (체크인 다음 날 아침 8:30 ~ 9:00 사이 - 전복죽 - 알러지가 있을경우 미리 알려주세요)· 3박 이상 예약시 2박 후 중간 청소 (수건 정리 및 쓰레기 정리) 해드립니다. · 실내 수영장은 사시 사철 미온수가 제공됩니다. · 객실에는 기본 어메니티(타월, 샴푸, 바디워시 등)가 준비되어 있습니다. · 야외 바비큐 이용 시 숯/그릴 세팅 비용이 별도로 발생할 수 있으며, 우천·강풍 시 이용이 제한될 수 있습니다. · 무료 주차, 와이파이 이용이 가능하며, 정원과 테라스를 자유롭게 이용하실 수 있습니다.",
140    "geum.text.overview": "금등첨화는 둥근 중정과 하얀 벽돌 외벽, 야자수와 정원으로 둘러싸인 단독 하우스 스테이입니다. 넓은 창과 폴딩도어를 통해 정원과 실내 수영장이 한눈에 들어오며, 낮에는 햇살이 가득 들어오는 밝은 거실에서 책을 읽거나 음악을 들으며 여유로운 시간을 보낼 수 있습니다. 저녁에는 조명과 물소리, 정원의 나무들이 어우러져 조용하고 아늑한 분위기를 만들어 줍니다. 실내 온수 수영장과 자쿠지, 바비큐가 가능한 테라스까지 하루 동안 우리 일행만 사용하는 프라이빗 하우스를 온전히 경험하실 수 있습니다.",
141    "geum.title": "금등첨화 · Better than good",
142    "guest.adults": "Adults",
143    "guest.children": "Children",
144    "guest.children.desc": "24 months ~ 12 years",
145    "guest.done": "Done",
146    "guest.infants": "Infants",
147    "guest.infants.desc": "24 months below",
148    "guest.label": "Guests",
149    "guest.summary.ko.adult": "성인",
150    "guest.summary.ko.child": "아동",
151    "guest.summary.ko.infant": "유아",
152    "guest.title": "Guests",
153    "header.brand": "GEUMDEUNG · JEOJI",
154    "header.geum": "금등첨화",
155    "header.home": "HOME",
156    "header.jeoji": "저지맨션",
157    "header.login": "LOGIN",
158    "header.logout": "LOGOUT",
159    "header.mypage": "MY PAGE",
160    "header.story": "STORY",
161    "index.footer": "ⓒ JEJU STAY · 금등첨화 & 저지맨션 · Direct booking page (Draft)",
162    "index.geum.desc": "한경면 마을 한가운데, 거실, 주방이 자연스럽게 이어지는 구조의 저지맨션. 머무는 동안 집처럼 편안하게 쉬어갈 수 있도록 구성했습니다.",
163    "index.geum.location": "제주 한경면 · 4~8 인 스테이",
164    "index.geum.meta": "기준인원 4인 · 최대인원 8인 · 자쿠지 · 풀빌라 · 바베큐 · 파이어피트 · 정원",
165    "index.geum.title": "금등첨화 · Better than good",
166    "index.hero.desc": "이 공간에서 흐르는 시간. 서쪽 바다와 한경면, 그리고 저지만의 공기를 천천히 느껴보는 시간.",
167    "index.hero.tag": "JEJU · PRIVATE PENSION",
168    "index.hero.title": "금등첨화 · 저지맨션 제주에서 머무는 법",
169    "index.jeoji.desc": "낮에는 햇살이 가득 들어오고, 저녁에는 조용히 불을 낮추어 책과 음악에 집중할 수 있는 공간. 프랑스에서 건너온 소품과 제주의 공기가 어울어지는 스테이입니다.",
170    "index.jeoji.location": "제주 저지리 · 유럽풍 2인 스테이",
171    "index.jeoji.meta": "최대 2인 · 침실 · 주방",
172    "index.jeoji.title": "저지맨션 · Jeoji mansion",
173    "index.more": "자세히 보기 →",
174    "index.pageTitle": "금등첨화 · 저지맨션 | Stay",
175    "index.stayListTitle": "우리의 스테이",
176    "jeoji.info.amenity.body": "숙박일 상관없이 1회 조식이 제공됩니다. (체크인 다음 날 아침 8:30 ~ 9:00 사이 - 전복죽 - 알러지가 있을경우 미리 알려주ì
176„¸ìš”) · 주방에는 기본 조리도구, 전기포트, 냉장고 등이 구비되어 있어 간단한 요리가 가능합니다. · Wi-Fi, TV, 냉·난방 설비가 준비되어 있습니다. · 전용 주차 공간을 (전기차 충전) 이용하실 수 있습니다. · 보다 자세한 구성은 예약 확정 후 안내 문자를 통해 다시 한 번 안내드립니다.",
177    "jeoji.info.amenity.title": "조식 & 편의 시설",
178    "jeoji.info.guide.body": "체크인 16:00 / 체크아웃 11:00 · 최대 인원 초과 입실 불가 · 예약자 외 방문객 출입 및 파티, 과음, 소음 유발 행위는 자제 요청 · 실내 전 구역 금연 (위반 시 별도의 클리닝 비용 부과 가능) · 장기 숙박, 촬영·이벤트 등은 사전 문의 후 진행 가능 · 상업 촬영, 상품 촬영, 드론 촬영 등은 반드시 사전 협의 필요 · 시설 및 비품 훼손 시 실제 수리 비용이 청구될 수 있습니다.",
179    "jeoji.info.guide.title": "이용 안내",
180    "jeoji.info.intro.body": "저지리 마을 한가운데에 자리한 2층 단독 스테이 입니다. 거실 공간에는 파리 에펠탑이 그려진 벽지가 있어, 소파에 앉아 잠시 머무는 것만으로도 마치 파리의 한 장면 속에 들어온 듯한 분위기를 느낄 수 있어요. 낮에는 부드러운 빛이 공간을 채우고, 저녁에는 조명과 함께 더욱 아늑한 분위기가 완성됩니다.둘만의 조용한 여행, 혹은 친구·가족 단위의 작은 모임에 어울리는 집 같은 스테이를 떠올리며 준비한 공간입니다. 요리하고, 쉬고, 담소를 나누기 좋은 구조로 구성되어 있어 제주의 일상 같은 하루를 보내실 수 있어요.",
181    "jeoji.info.intro.title": "공간 소개",
182    "jeoji.info.rooms.body": "기본 최대 2인 · 침실 1 (킹 사이즈 베드) · 화장실 1 (샤워) 욕실 1 (욕조) · 주방 / 식탁 / 거실 · 작은 발고니",
183    "jeoji.info.rooms.title": "구성",
184    "jeoji.pageTitle": "저지맨션 · Jeoji mansion",
185    "jeoji.section.gallery": "Photo Gallery",
186    "jeoji.subtitle": "제주 저지리 · 2 인 · 연못 · 유럽풍 거실",
187    "jeoji.title": "저지맨션 · Jeoji mansion",
188    "location.title": "위치 및 정보",
189    "login.email": "Login with Email",
190    "login.form.confirmPasswordLabel": "Confirm Password",
191    "login.form.confirmPasswordPlaceholder": "비밀번호 확인",
192    "login.form.emailLabel": "Email",
193    "login.form.emailPlaceholder": "[email protected]",
194    "login.form.hasAccount": "이미 계정이 있나요?",
195    "login.form.loginBtn": "로그인",
196    "login.form.marketingConsent": "마케팅 소식·프로모션 이메일 수신에 동의합니다.",
197    "login.form.noAccount": "아직 계정이 없나요?",
198    "login.form.passwordLabel": "Password",
199    "login.form.passwordPlaceholder": "비밀번호",
200    "login.form.signupBtn": "회원가입",
201    "login.form.signupPasswordPlaceholder": "6자 이상 비밀번호",
202    "login.form.switchToLogin": "이메일 로그인",
203    "login.form.switchToSignup": "회원가입",
204    "login.google": "Google 계정으로 로그인",
205    "login.modal.loginSubtitle": "예약 관리를 위해 이메일과 비밀번호로 로그인하세요.",
206    "login.modal.loginTitle": "Login with Email",
207    "login.modal.subtitle.login": "예약 관리를 위해 이메일과 비밀번호로 로그인하세요.",
208    "login.modal.subtitle.signup": "예약 관리를 위해 이메일과 비밀번호로 회원가입하세요.",
209    "login.modal.title.login": "이메일로 로그인",
210    "login.modal.title.signup": "회원가입",
211    "login.or": "or",
212    "login.pageTitle": "LOGIN · JEJU STAY",
213    "login.signup": "Sign up",
214    "login.subtitle": "원하시는 로그인 방식을 선택해 주세요.",
215    "login.title": "LOGIN",
216    "mypage.footer": "ⓒ JEJU STAY · 금등첨화 & 저지맨션 · MY PAGE",
217    "mypage.hero.desc": "로그인한 회원 전용 페이지입니다. 예약 내역 확인, 변경 및 취소를 여기에서 관리할 수 있습니다.",
218    "mypage.hero.title": "MY PAGE",
219    "mypage.pageTitle": "MY PAGE · JEJU STAY",
220    "mypage.reservations.loading": "예약 내역을 불러오는 중입니다…",
221    "mypage.reservations.title": "예약 내역",
222    "mypage.sidebar.emailLoading": "(이메일 불러오는 중…)",
223    "mypage.sidebar.hint": "추후에는 프로필 수정, 마케팅 동의 변경 등도 이 영역에서 설정할 수 있도록 확장할 수 있어요.",
224    "mypage.sidebar.title": "내 정보",
225    "stay.geum.label": "금등첨화",
226    "stay.jeoji.label": "저지맨션",
227    "story.cat.geum": "금등첨화 스토리",
228    "story.cat.jeoji": "저지맨션 스토리",
229    "story.cat.notice": "공지 · 블로그",
230    "story.cat.review": "리뷰 · Reviews",
231    "story.cat.travel": "여행기",
232    "story.hero.desc": "금등첨화와 저지맨션의 이야기, 그리고 제주의 여행기를 모았습니다.",
233    "story.hero.title": "STORY · JOURNAL",
234    "story.reviews.sub": "인스타그램 스토리/DM으로 남겨주신 후기들 중 일부입니다.",
235    "story.reviews.title": "Guest Reviews · 투숙객 후기",
236    "storyDetail.backLink": "← STORY · JOURNAL로 돌아가기",
237    "storyDetail.footer": "ⓒ JEJU STAY · 금등첨화 & 저지맨션 · STORY / JOURNAL",
238    "storyDetail.loading": "로딩 중…",
239    "storyDetail.pageTitle": "STORY · JOURNAL | JEJU STAY"
240  },
241    en: {
242    "booking.calendar.title": "Available dates",
243    "booking.legend.avail": "Available",
244    "booking.legend.booked": "Booked",
245    "booking.legend.selected": "Selected",
246    "booking.note": "Select dates and guests, then click Reserve to proceed to payment. After payment, please check your reservation in MY PAGE.",
247    "booking.payment.bank": "Bank transfer (15% discount)",
248    "booking.payment.card": "Card payment (15% discount)",
249    "booking.payment.hint": "Currently showing the regular price.",
250    "booking.payment.title": "Payment method",
251    "booking.reserve.jeoji": "Reserve Jeoji Mansion",
252    "booking.total.hint": "Select dates to see the total amount.",
253    "calendar.discount.bank": "Bank transfer discount",
254    "calendar.discount.card": "Card payment",
255    "calendar.discount.default": "Default",
256    "calendar.nav.next": "Next month",
257    "calendar.nav.prev": "Previous month",
258    "calendar.total.format": "{n} night(s) · {amount}",
259    "calendar.total.hint": "Select dates to see the total amount.",
260    "calendar.total.min1": "Please select at least 1 night.",
261    "calendar.total.noSeason": "No season info",
262    "calendar.weekdays": "Sun,Mon,Tue,Wed,Thu,Fri,Sat",
263    "cancel.notes": "If your transportation is canceled due to severe weather (flight/ferry, etc.), you may receive a full refund by submitting proof documents (check-in day only). The property is regularly disinfected, but insects may enter due to the local environment; refunds are not available for this reason. Confirming a reservation means you have read and agreed to all of the above.",
264    "cancel.row.d10": "until 10 days before check-in",
265    "cancel.row.d3": "3 days prior to check-in",
266    "cancel.row.d4": "until 4 days before check-in",
267    "cancel.row.d5": "until 5 days before check-in",
268    "cancel.row.d6": "until 6 days before check-in",
269    "cancel.row.d7": "until 7 days before check-in",
270    "cancel.row.d8": "until 8 days before check-in",
271    "cancel.row.d9": "until 9 days before check-in",
272    "cancel.row.nrf": "non-changeable / non-refundable",
273    "cancel.row.r100": "100% refunded",
274    "cancel.row.r40": "40% refunded",
275    "cancel.row.r50": "50% refunded",
276    "cancel.row.r60": "60% refunded",
277    "cancel.row.r70": "70% refunded",
278    "cancel.row.r80": "80% refunded",
279    "cancel.row.r90": "90% refunded",
280    "cancel.th.date": "Date (based on check-in)",
281    "cancel.th.rate": "Refund rate",
282    "cancel.title": "Cancellation policy",
283    "checkout.closeTitle": "Close",
284    "checkout.help": "Payment is not connected yet. Later, when you integrate a payment module such as Toss or Stripe, this button will proceed to payment.",
285    "checkout.label.checkin": "Check-in",
286    "checkout.label.checkout": "Check-out",
287    "checkout.label.guests": "Guests",
288    "checkout.label.room": "Stay",
289    "checkout.label.total": "Estimated total",
290    "checkout.payBtn": "Pay now (temporary)",
291    "checkout.subtitle": "Please double-check your reservation details before payment.",
292    "checkout.title": "Review your reservation",
293    "footer.copy.geum": "Draft",
294    "footer.copy.jeoji": "Draft",
295    "footer.story": "ⓒ JEJU STAY",
296    "gallery.tab.all": "All",
297    "gallery.tab.bath": "Bathroom",
298    "gallery.tab.detail": "Details / decor",
299    "gallery.tab.exterior": "Exterior",
300    "gallery.tab.interior": "Interior",
301    "gallery.tab.night": "Night View",
302    "gallery.toggle.back": "Back",
303    "gallery.toggle.open": "View all photos / by category",
304    "geum.booking.calendarTitle": "Available dates",
305    "geum.booking.legend.avail": "Available",
306    "geum.booking.legend.booked": "Booked",
307    "geum.booking.legend.selected": "Selected",
308    "geum.booking.reserveBtn": "Reserve Geumdeungcheomhwa",
309    "geum.booking.totalHint": "Select dates to see the total amount.",
310    "geum.cancel.note.1": "If your flight/ferry is canceled due to severe weather, submit proof documents to receive a full refund (check-in day only).",
311    "geum.cancel.note.2": "Even if you cancel on the payment day, once the booking is confirmed the same refund policy applies. Please confirm your travel schedule before booking.",
312    "geum.cancel.note.3": "We regularly disinfect, but insects may enter due to the local environment. Refunds are not available for this reason.",
313    "geum.cancel.note.4": "Confirming a reservation means you have read and agreed to all of the above.",
314    "geum.cancel.rate.100": "100% refunded",
315    "geum.cancel.rate.40": "40% refunded",
316    "geum.cancel.rate.50": "50% refunded",
317    "geum.cancel.rate.60": "60% refunded",
318    "geum.cancel.rate.70": "70% refunded",
319    "geum.cancel.rate.80": "80% refunded",
320    "geum.cancel.rate.90": "90% refunded",
321    "geum.cancel.rate.none": "non-changeable / non-refundable",
322    "geum.cancel.row.10d": "until 10 days before check-in",
323    "geum.cancel.row.3d": "3 days prior to check-in",
324    "geum.cancel.row.4d": "until 4 days before check-in",
325    "geum.cancel.row.5d": "until 5 days before check-in",
326    "geum.cancel.row.6d": "until 6 days before check-in",
327    "geum.cancel.row.7d": "until 7 days before check-in",
328    "geum.cancel.row.8d": "until 8 days before check-in",
329    "geum.cancel.row.9d": "until 9 days before check-in",
330    "geum.cancel.th.date": "Date (based on check-in)",
331    "geum.cancel.th.rate": "Refund rate",
332    "geum.cancel.title": "Cancellation policy",
333    "geum.gallery.tab.all": "Total",
334    "geum.gallery.tab.bath": "Bathroom",
335    "geum.gallery.tab.detail": "Detail / Decor",
336    "geum.gallery.tab.exterior": "Exterior",
337    "geum.gallery.tab.interior": "Interior",
338    "geum.gallery.tab.night": "Night View",
339    "geum.gallery.toggle.open": "View all photos / by category",
340    "geum.guest.adults": "Adults",
341    "geum.guest.buttonPrefix": "Guests ·",
342    "geum.guest.children": "Children",
343    "geum.guest.childrenDesc": "24 months ~ 12 years",
344    "geum.guest.done": "Done",
345    "geum.guest.infants": "Infants",
346    "geum.guest.infantsDesc": "24 months below",
347    "geum.guest.title": "Guests",
348    "geum.location.title": "Location & info",
349    "geum.pageTitle": "Geumdeungcheomhwa · Better than good",
350    "geum.pay.bank": "Bank transfer (5% discount)",
351    "geum.pay.card": "Card payment (Regular price)",
352    "geum.pay.discountLine": "Currently showing the card-payment price.",
353    "geum.pay.title": "Payment method",
354    "geum.section.gallery": "Photo Gallery",
355    "geum.section.info": "Guest guide",
356    "geum.section.layout": "Amenities",
357    "geum.section.meal": "Breakfast & amenities",
358    "geum.section.overview": "About the space",
359    "geum.subtitle": "Hangyeong, Jeju · Private for 4–8 · Bathtub · Terrace",
360    "geum.text.info": "Check-in 4:00 PM / Check-out 11:00 AM · Extra bedding is provided only when additional guests are added—please include infants if bedding is needed (if not, just inform us in advance) · No visitors beyond the booked guests · No parties, excessive drinking, or noise disturbances · Smoking is strictly prohibited indoors (cleaning fee may apply) · Commercial filming, product/brand shoots, or promotional photography require prior approval · Located in a quiet residential and farming area—please keep outdoor noise to a minimum at night.",
361    "geum.text.layout": "Base 4 guests / Max 8 · 2 bedrooms (King size bed) · 2 bathrooms · Spacious living + dining · Outdoor terrace seating · BBQ-friendly outdoor area · Kitchen / cookware / tableware / coffee & tea set / basic seasonings",
362    "geum.text.meal": "Complimentary breakfast is provided on the first morning of your stay (abalone porridge).Please inform us in advance if you have any allergies.· Items may vary by season/operation. · Free parking and Wi‑Fi available. Enjoy the garden and terrace freely.",
363    "geum.text.overview": "Geumdeungcheomhwa is a private house stay surrounded by a circular courtyard, white brick exterior walls, and lush landscaping with palm trees and a garden. Large windows and folding doors open seamlessly to reveal views of the garden and the indoor swimming pool, creating a strong connection between indoor and outdoor spaces. During the day, you can relax in the bright living room filled with natural sunlight—perfect for reading a book or enjoying music at a leisurely pace. In the evening, soft lighting, the gentle sound of water, and the surrounding greenery come together to create a calm and intimate atmosphere. With an indoor jacuzzi, a heated indoor swimming pool, and a terrace equipped for barbecues, the entire private house is exclusively yours to enjoy throughout your stay, offering a truly secluded and immersive retreat.",
364    "geum.title": "Geumdeungcheomhwa · Better than good",
365    "guest.adults": "Adults",
366    "guest.children": "Children",
367    "guest.children.desc": "24 months ~ 12 years",
368    "guest.done": "Done",
369    "guest.infants": "Infants",
370    "guest.infants.desc": "24 months below",
371    "guest.label": "Guests",
372    "guest.summary.ko.adult": "Adult",
373    "guest.summary.ko.child": "Child",
374    "guest.summary.ko.infant": "Infant",
375    "guest.title": "Guests",
376    "header.brand": "GEUMDEUNG · JEOJI",
377    "header.geum": "Geumdeungcheomhwa",
378    "header.home": "HOME",
379    "header.jeoji": "Jeoji Mansion",
380    "header.login": "LOGIN",
381    "header.logout": "LOGOUT",
382    "header.mypage": "MY PAGE",
383    "header.story": "STORY",
384    "index.footer": "Draft",
385    "index.geum.desc": "In the heart of Hangyeong village, Jeoji Mansion connects the garden, living room, and kitchen seamlessly. Designed to feel as comfortable as home during your stay.",
386    "index.geum.location": "Hangyeong, Jeju · Stay for 4–8",
387    "index.geum.meta": "Base 4 · Max 8 · Jacuzzi · Pool villa · BBQ · Fire pit · Garden",
388    "index.geum.title": "Better than good",
389    "index.hero.desc": "Time flows differently in this space. Take your time to feel the west coast sea, Hangyeong, and the air of Jeoji.",
390    "index.hero.tag": "JEJU · PRIVATE PENSION",
391    "index.hero.title": "Geumdeungcheomhwa · Jeoji Mansion — Your way to stay in Jeju",
392    "index.jeoji.desc": "Sun-filled by day and calm at night—an ideal space for books and music. French decor meets Jeju’s atmosphere in this stay.",
393    "index.jeoji.location": "Jeoji-ri, Jeju · 2 Guests · Pond · European-style Living Room",
394    "index.jeoji.meta": "Up to 2 · Bedroom · Kitchen",
395    "index.jeoji.title": "Jeoji mansion",
396    "index.more": "View details →",
397    "index.pageTitle": "Geumdeungcheomhwa · Jeoji Mansion | Stay",
398    "index.stayListTitle": "Our stays",
399    "jeoji.info.amenity.body": "Complimentary breakfast is provided on the first morning of your stay (abalone porridge).Please inform us in advance if you have any allergies. · Free parking and Wi‑Fi available. · More detailed contents will be re-announced via message after booking confirmation.",
400    "jeoji.info.amenity.title": "Breakfast & amenities",
401    "jeoji.info.guide.body": "Check-in 16:00 / Check-out 11:00 · No entry beyond maximum occupancy · No visitors, parties, or excessive noise · Filming/drone use requires prior agreement · Damage to facilities/items may be charged at actual repair cost.",
402    "jeoji.info.guide.title": "Guest guide",
403    "jeoji.info.intro.body": "This is a private two-story stay located in the heart of Jeoji-ri village. The living room features wallpaper illustrated with the Eiffelr, creating an atmosphere that makes you feel as though you’ve stepped into a scene from Paris just by sitting on the sofa for a while. During the day, soft natural light fills the space, while in the evening, the lighting adds to a warm and cozy ambiance. Designed as a home-like stay that suits both a quiet getaway for two and small trips with friends or family, the space is thoughtfully arranged for cooking, relaxing, and sharing conversations—allowing you to enjoy a day in Jeju that feels comfortably like everyday life.",
404    "jeoji.info.intro.title": "About the space",
405    "jeoji.info.rooms.body": "Up to 2 guests · 1 bedroom (king-size bed) · 1 toilet (shower) + 1 bathroom (bathtub) · Kitchen / dining table / living room · Small balcony",
406    "jeoji.info.rooms.title": "Layout",
407    "jeoji.pageTitle": "Jeoji Mansion",
408    "jeoji.section.gallery": "Photo Gallery",
409    "jeoji.subtitle": "Jeoji-ri, Jeju · 2 Guests · Pond · European-style Living Room",
410    "jeoji.title": "Jeoji Mansion",
411    "location.title": "Location & info",
412    "login.email": "Login with Email",
413    "login.form.confirmPasswordLabel": "Confirm Password",
414    "login.form.confirmPasswordPlaceholder": "Confirm password",
415    "login.form.emailLabel": "Email",
416    "login.form.emailPlaceholder": "[email protected]",
417    "login.form.hasAccount": "Already have an account?",
418    "login.form.loginBtn": "Log in",
419    "login.form.marketingConsent": "I agree to receive marketing & promotional emails.",
420    "login.form.noAccount": "Don't have an account yet?",
421    "login.form.passwordLabel": "Password",
422    "login.form.passwordPlaceholder": "Password",
423    "login.form.signupBtn": "Sign up",
424    "login.form.signupPasswordPlaceholder": "Password (6+ characters)",
425    "login.form.switchToLogin": "Email login",
426    "login.form.switchToSignup": "Sign up",
427    "login.google": "Sign in with Google",
428    "login.modal.loginSubtitle": "Log in with email and password to manage reservations.",
429    "login.modal.loginTitle": "Login with Email",
430    "login.modal.subtitle.login": "Log in with your email and password to manage your reservations.",
431    "login.modal.subtitle.signup": "Sign up with email and password for reservation management.",
432    "login.modal.title.login": "Login with Email",
433    "login.modal.title.signup": "Create an account",
434    "login.or": "or",
435    "login.pageTitle": "LOGIN · JEJU STAY",
436    "login.signup": "Sign up",
437    "login.subtitle": "Choose your preferred login method.",
438    "login.title": "LOGIN",
439    "mypage.footer": "ⓒ JEJU STAY",
440    "mypage.hero.desc": "Members-only page. Manage reservations, changes, and cancellations here.",
441    "mypage.hero.title": "MY PAGE",
442    "mypage.pageTitle": "MY PAGE · JEJU STAY",
443    "mypage.reservations.loading": "Loading reservations…",
444    "mypage.reservations.title": "Reservations",
445    "mypage.sidebar.emailLoading": "(Loading email…)",
446    "mypage.sidebar.hint": "Later, this area can be expanded for profile edits and marketing consent settings.",
447    "mypage.sidebar.title": "My info",
448    "stay.geum.label": "Geumdeungcheomhwa",
449    "stay.jeoji.label": "Jeoji Mansion",
450    "story.cat.geum": "Geumdeungcheomhwa",
451    "story.cat.jeoji": "Jeoji Mansion",
452    "story.cat.notice": "Notice · Blog",
453    "story.cat.review": "Reviews",
454    "story.cat.travel": "Travel",
455    "story.hero.desc": "Stories of Geumdeungcheomhwa and Jeoji Mansion, plus travel notes in Jeju.",
456    "story.hero.title": "STORY · JOURNAL",
457    "story.reviews.sub": "A selection of reviews you left via Instagram stories/DMs.",
458    "story.reviews.title": "Guest Reviews",
459    "storyDetail.backLink": "← STORY",
460    "storyDetail.footer": "ⓒ JEJU STAY",
461    "storyDetail.loading": "Loading…",
462    "storyDetail.pageTitle": "STORY · JOURNAL | JEJU STAY"
463  }
464  };
465
466  function getLang() {
467    return localStorage.getItem("siteLang") || "ko";
468  }
469
470  function setLang(lang) {
471    const next = (lang === "en" || lang === "ko") ? lang : "ko";
472    localStorage.setItem("siteLang", next);
473    applyTranslations(next);
474    return next;
475  }
476
477  function t(key, fallback = "") {
478    const lang = getLang();
479    const dict = DICTS[lang] || DICTS.ko;
480    return (dict && key in dict) ? dict[key] : (fallback || key);
481  }
482
483  function applyTranslations(lang = getLang()) {
484    const dict = DICTS[lang] || DICTS.ko;
485
486    // 1) data-i18n (text / placeholder for inputs)
487    document.querySelectorAll("[data-i18n]").forEach((el) => {
488      const key = el.getAttribute("data-i18n");
489      const val = (dict && key in dict) ? dict[key] : key;
490
491      if (!val) return;
492
493      const tag = (el.tagName || "").toLowerCase();
494      if (tag === "input" || tag === "textarea") {
495        el.setAttribute("placeholder", val);
496      } else {
497        el.textContent = val;
498      }
499    });
500
501    // 2) data-i18n-placeholder
502    document.querySelectorAll("[data-i18n-placeholder]").forEach((el) => {
503      const key = el.getAttribute("data-i18n-placeholder");
504      const val = (dict && key in dict) ? dict[key] : key;
505      if (val) el.setAttribute("placeholder", val);
506    });
507
508    // 3) data-i18n-title
509    document.querySelectorAll("[data-i18n-title]").forEach((el) => {
510      const key = el.getAttribute("data-i18n-title");
511      const val = (dict && key in dict) ? dict[key] : key;
512      if (val) el.setAttribute("title", val);
513    });
514
515    // 4) document title (if <title data-i18n="...">)
516    const titleEl = document.querySelector("title[data-i18n]");
517    if (titleEl) {
518      const key = titleEl.getAttribute("data-i18n");
519      const val = (dict && key in dict) ? dict[key] : titleEl.textContent;
520      if (val) document.title = val;
521    }
522  }
523
524  window.I18N = {
525    dicts: DICTS,
526    getLang,
527    setLang,
528    t,
529    applyTranslations,
530  };
531
532  // site-init.js에서 요구하는 전역 함수명도 제공
533  window.applyTranslations = applyTranslations;
534
535})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.