Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions public/libs/nav-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,14 @@ async function loadPage(path) {

//번역
async function loadTranslations(lang) {
const namespaces = ["header", "index"];
const namespaces = [
"header",
"index",
"contents",
"map-page",
"aiSchedule",
"my-page",
];
const loaded = await Promise.all(
namespaces.map((ns) =>
fetch(`/locales/${lang}/${ns}.json`, { cache: "no-store" })
Expand Down Expand Up @@ -242,7 +249,7 @@ function updateLoginUI(isLoggedIn, displayName = "") {
loginBtn: !!loginBtn,
logoutBtn: !!logoutBtn,
isLoggedIn,
displayName
displayName,
});

if (!loginBtn) {
Expand Down
28 changes: 28 additions & 0 deletions public/locales/en/aiSchedule.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": {
"main": "AI Travel Recommendation"
},
"breadcrumb": {
"main": "AI Recommend"
},
"filter": {
"all": "All",
"drama": "Drama",
"movie": "Movie",
"kpop": "K-POP"
},
"label": {
"cost": "Estimated Cost",
"days": "Recommended Duration",
"distance": "Distance",
"transport": "Transportation"
},
"button": {
"recommend": "Get AI Recommendation",
"top": "Back to Top"
},
"footer": {
"copy": "© 2025 Codetour. All rights reserved."
}
}

26 changes: 26 additions & 0 deletions public/locales/en/contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"title": {
"main": "K-Spot - Korean Wave Travel Platform"
},
"recent": {
"title": "Recently Visited Places",
"clearAll": "Clear All"
},
"content": {
"title": "Destinations by Content",
"subtitle": "Find filming locations from your favorite dramas, movies, and shows"
},
"tab": {
"kpop": "K-Pop",
"kdrama": "K-Drama/Movie",
"kwebtoon": "K-Webtoon",
"kfood": "K-Food",
"kent": "K-Entertainment"
},
"footer": {
"copy": "© Kspot"
},
"modal": {
"close": "Close"
}
}
69 changes: 69 additions & 0 deletions public/locales/en/map-page.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"header": {
"title": "🇺🇸 K-Content Travel Map",
"subtitle": "Create your own special travel course with K-content"
},
"btn": {
"home": "Home",
"search": "Search",
"saveCourse": "💾 Save Course",
"showRoute": "🚗 Show Route",
"aiRecommend": "🤖 Get AI Recommendation",
"load": "Load",
"delete": "Delete",
"addToCourse": "+ Add to Course"
},
"section": {
"search": "🔍 Search",
"myCourse": "📍 My Travel Course",
"savedCourses": "💎 Saved Courses"
},
"tab": {
"place": "Search by Place",
"content": "Search by Content"
},
"placeholder": {
"placeSearch": "Search by place name or address..."
},
"option": {
"selectContent": "Select content...",
"selectUser": "Select user..."
},
"hint": {
"dragOrder": "You can change the order by dragging"
},
"user": {
"user1": "User 1",
"user2": "User 2",
"user3": "User 3"
},
"alert": {
"enterSearch": "Please enter a search term 😊",
"noResults": "No search results 😢",
"selectContent": "Please select content 😊",
"selectUser": "Please select a user 😊",
"noLocations": "No filming locations for this content 😢",
"deleteCourse": "Do you want to delete this course? 🗑️",
"courseDeleted": "✅ Course deleted!",
"addPlaces": "Please add places to your course 📍",
"courseNamePrompt": "Enter a name for your course ✨",
"courseNameDefault": "My K-Travel Course",
"courseSaved": "🎉 Saved successfully!\nCourse ID: ",
"saveFailed": "Failed to save 😢",
"noSavedCourses": "No saved courses 📭",
"courseLoaded": "✨ Loaded course \"{name}\"!",
"minTwoPlaces": "You need at least 2 places to view the route 🗺️",
"routeFailed": "Failed to load route 😢",
"added": "✨ {name} has been added to your course!"
},
"route": {
"totalDistance": "📏 Total Distance: ",
"estimatedTime": "⏱️ Estimated Time: ",
"info": "🚗 Route Info"
},
"text": {
"places": " places",
"km": " km",
"min": " min"
}
}
30 changes: 30 additions & 0 deletions public/locales/en/my-page.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"title": {
"mypage-main": "My Page"
},
"subtitle": {
"nickname": "KimTravel"
},
"card": {
"profile": {
"title": "Manage Personal Info",
"desc": "Change profile, email, password"
},
"preference": {
"title": "Set Travel Preferences",
"desc": "Set interest tags, trips, travel styles"
},
"favorite": {
"title": "Manage Favorite Content",
"desc": "View liked content, destinations, courses"
},
"course": {
"title": "My Travel Courses",
"desc": "Create and save travel courses"
},
"review": {
"title": "Manage Reviews",
"desc": "Manage written reviews and ratings"
}
}
}
27 changes: 27 additions & 0 deletions public/locales/ja/aiSchedule.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"title": {
"main": "AI旅行おすすめ"
},
"breadcrumb": {
"main": "AIおすすめ"
},
"filter": {
"all": "すべて",
"drama": "ドラマ",
"movie": "映画",
"kpop": "K-POP"
},
"label": {
"cost": "予想費用",
"days": "おすすめ日程",
"distance": "移動距離",
"transport": "交通手段"
},
"button": {
"recommend": "AIおすすめを受け取る",
"top": "トップへ戻る"
},
"footer": {
"copy": "© 2025 Codetour. All rights reserved."
}
}
26 changes: 26 additions & 0 deletions public/locales/ja/contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"title": {
"main": "K-Spot - 韓流コンテンツ旅行プラットフォーム"
},
"recent": {
"title": "最近訪れた場所",
"clearAll": "すべて削除"
},
"content": {
"title": "コンテンツ別旅行地",
"subtitle": "お気に入りのドラマや映画、バラエティの撮影地を探してみましょう"
},
"tab": {
"kpop": "K-Pop",
"kdrama": "K-ドラマ/映画",
"kwebtoon": "K-ウェブトゥーン",
"kfood": "K-フード",
"kent": "K-エンタメ"
},
"footer": {
"copy": "© Kspot"
},
"modal": {
"close": "閉じる"
}
}
69 changes: 69 additions & 0 deletions public/locales/ja/map-page.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"header": {
"title": "🇯🇵 Kコンテンツ旅行マップ",
"subtitle": "韓流コンテンツで特別な旅行コースを作りましょう"
},
"btn": {
"home": "ホームへ",
"search": "検索",
"saveCourse": "💾 コースを保存",
"showRoute": "🚗 経路を表示",
"aiRecommend": "🤖 AIおすすめを受け取る",
"load": "読み込み",
"delete": "削除",
"addToCourse": "+ コースに追加"
},
"section": {
"search": "🔍 検索",
"myCourse": "📍 マイ旅行コース",
"savedCourses": "💎 保存されたコース"
},
"tab": {
"place": "場所で検索",
"content": "コンテンツで検索"
},
"placeholder": {
"placeSearch": "場所名、住所を検索..."
},
"option": {
"selectContent": "コンテンツを選択...",
"selectUser": "ユーザーを選択..."
},
"hint": {
"dragOrder": "ドラッグして順番を変更できます"
},
"user": {
"user1": "ユーザー 1",
"user2": "ユーザー 2",
"user3": "ユーザー 3"
},
"alert": {
"enterSearch": "検索ワードを入力してください 😊",
"noResults": "検索結果がありません 😢",
"selectContent": "コンテンツを選択してください 😊",
"selectUser": "ユーザーを選択してください 😊",
"noLocations": "このコンテンツの撮影地はありません 😢",
"deleteCourse": "このコースを削除しますか? 🗑️",
"courseDeleted": "✅ コースを削除しました!",
"addPlaces": "コースに場所を追加してください 📍",
"courseNamePrompt": "コース名を入力してください ✨",
"courseNameDefault": "私のK旅行コース",
"courseSaved": "🎉 保存完了!\nコースID: ",
"saveFailed": "保存に失敗しました 😢",
"noSavedCourses": "保存されたコースがありません 📭",
"courseLoaded": "✨ 「{name}」コースを読み込みました!",
"minTwoPlaces": "経路を見るには少なくとも2つの場所が必要です 🗺️",
"routeFailed": "経路の取得に失敗しました 😢",
"added": "✨ {name} をコースに追加しました!"
},
"route": {
"totalDistance": "📏 総距離: ",
"estimatedTime": "⏱️ 所要時間: ",
"info": "🚗 経路情報"
},
"text": {
"places": "ヶ所",
"km": " km",
"min": " 分"
}
}
30 changes: 30 additions & 0 deletions public/locales/ja/my-page.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"title": {
"mypage-main": "マイページ"
},
"subtitle": {
"nickname": "キム旅行"
},
"card": {
"profile": {
"title": "個人情報管理",
"desc": "プロフィール、メール、パスワードの変更"
},
"preference": {
"title": "旅行の好み設定",
"desc": "興味タグ、旅行、旅行スタイルを設定"
},
"favorite": {
"title": "お気に入りコンテンツ管理",
"desc": "いいねしたコンテンツ、旅行先、コースを見る"
},
"course": {
"title": "私の旅行コース",
"desc": "旅行コースの作成と保存"
},
"review": {
"title": "レビュー管理",
"desc": "書いたレビューや評価を管理"
}
}
}
27 changes: 27 additions & 0 deletions public/locales/ko/aiSchedule.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"title": {
"main": "AI 일정 추천"
},
"breadcrumb": {
"main": "AI 추천"
},
"filter": {
"all": "모두",
"drama": "드라마",
"movie": "영화",
"kpop": "K-POP"
},
"label": {
"cost": "예상경비",
"days": "추천일정",
"distance": "이동거리",
"transport": "이동수단"
},
"button": {
"recommend": "AI 일정 추천받기",
"top": "맨 위로"
},
"footer": {
"copy": "© 2025 Codetour. All rights reserved."
}
}
26 changes: 26 additions & 0 deletions public/locales/ko/contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"title": {
"main": "K-Spot - 한류 콘텐츠 여행 플랫폼"
},
"recent": {
"title": "최근 방문한 장소",
"clearAll": "전체 삭제"
},
"content": {
"title": "콘텐츠별 여행지",
"subtitle": "좋아하는 드라마, 영화, 예능의 촬영지를 찾아보세요"
},
"tab": {
"kpop": "K-Pop",
"kdrama": "K-Drama/Movie",
"kwebtoon": "K-Webtoon",
"kfood": "K-Food",
"kent": "K-Ent"
},
"footer": {
"copy": "© Kspot"
},
"modal": {
"close": "닫기"
}
}
Loading