import { useState, useEffect } from 'react';

export type Language = 'vi' | 'en' | 'zh';

const translations: Record<string, Record<Language, string>> = {
  // Common
  appName: { vi: 'Travel Planner', en: 'Travel Planner', zh: '旅行规划' },
  login: { vi: 'Đăng nhập', en: 'Log In', zh: '登录' },
  signup: { vi: 'Đăng ký', en: 'Sign Up', zh: '注册' },
  logout: { vi: 'Đăng xuất', en: 'Log Out', zh: '登出' },
  cancel: { vi: 'Hủy', en: 'Cancel', zh: '取消' },
  confirm: { vi: 'Xác nhận', en: 'Confirm', zh: '确认' },
  save: { vi: 'Lưu', en: 'Save', zh: '保存' },
  saving: { vi: 'Đang lưu...', en: 'Saving...', zh: '保存中...' },
  loading: { vi: 'Đang tải...', en: 'Loading...', zh: '加载中...' },
  success: { vi: 'Thành công', en: 'Success', zh: '成功' },
  error: { vi: 'Lỗi', en: 'Error', zh: '错误' },
  info: { vi: 'Thông tin', en: 'Info', zh: '信息' },
  delete: { vi: 'Xóa', en: 'Delete', zh: '删除' },
  edit: { vi: 'Chỉnh sửa', en: 'Edit', zh: '编辑' },
  yes: { vi: 'Có', en: 'Yes', zh: '是' },
  no: { vi: 'Không', en: 'No', zh: '否' },
  close: { vi: 'Đóng', en: 'Close', zh: '关闭' },
  ok: { vi: 'Đồng ý', en: 'OK', zh: '确定' },

  // Landing Page
  welcomeBack: { vi: 'Chào mừng bạn quay trở lại!', en: 'Welcome back!', zh: '欢迎回来！' },
  emailLabel: { vi: 'Email', en: 'Email', zh: '邮箱' },
  passwordLabel: { vi: 'Mật khẩu', en: 'Password', zh: '密码' },
  forgotPassword: { vi: 'Quên mật khẩu?', en: 'Forgot password?', zh: '忘记密码？' },
  orLabel: { vi: 'Hoặc', en: 'Or', zh: '或' },
  noAccount: { vi: 'Chưa có tài khoản?', en: "Don't have an account?", zh: '还没有账号？' },
  createAccountNow: { vi: 'Tạo tài khoản ngay', en: 'Create one now', zh: '立即注册' },
  quickCamera: { vi: 'Chụp ảnh nhanh', en: 'Quick Camera', zh: '快速相机' },
  momentsTitle: { vi: 'Khoảnh khắc cộng đồng', en: 'Community Moments', zh: '社区精彩瞬间' },
  trustedMembers: { vi: 'Thành viên uy tín', en: 'Trusted Members', zh: '信用会员' },
  exploreToursBtn: { vi: 'Khám phá các hành trình du lịch', en: 'Explore Travel Itineraries', zh: '探索旅行行程' },
  exploreTourMap: { vi: 'Khám phá Bản đồ Tour', en: 'Explore Tour Map', zh: '探索旅游地图' },

  // Explore Map
  systemBtn: { vi: 'Hệ thống', en: 'System', zh: '系统管理' },
  createTourBtn: { vi: 'Tạo Tour', en: 'Create Tour', zh: '创建行程' },
  chooseLocationMap: { vi: 'Chọn vị trí trên bản đồ', en: 'Choose location on map', zh: '在地图上选择位置' },
  clickMapSelectCoords: { vi: 'Click lên bản đồ để chọn tọa độ', en: 'Click on map to select coordinates', zh: '在地图上点击以选择坐标' },
  coordsLabel: { vi: 'Tọa độ', en: 'Coordinates', zh: '坐标' },
  businessRestaurant: { vi: 'Nhà hàng', en: 'Restaurant', zh: '餐厅' },
  businessHotel: { vi: 'Khách sạn', en: 'Hotel', zh: '酒店' },
  businessHomestay: { vi: 'Homestay', en: 'Homestay', zh: 'Homestay' },
  noCoordsSelected: { vi: 'Chưa chọn vị trí', en: 'No location selected', zh: '未选择位置' },
  searchPlaceholder: { vi: 'Tìm kiếm địa điểm...', en: 'Search places...', zh: '搜索地点...' },

  // Itinerary Timeline
  legLabel: { vi: 'Chặng', en: 'Leg', zh: '航段' },
  legSequence: { vi: 'Chi tiết Chặng', en: 'Leg Details', zh: '航段详情' },
  startDate: { vi: 'Bắt đầu', en: 'Start Date', zh: '开始日期' },
  endDate: { vi: 'Kết thúc', en: 'End Date', zh: '结束日期' },
  addLocation: { vi: 'Thêm địa điểm', en: 'Add Location', zh: '添加地点' },
  dwellTime: { vi: 'Thời gian dừng', en: 'Dwell Time', zh: '停留时间' },
  expenseLabel: { vi: 'Chi phí', en: 'Expense', zh: '费用' },
  paidByLabel: { vi: 'Người chi trả', en: 'Paid By', zh: '付款人' },
  optimizeBtn: { vi: 'Tối ưu', en: 'Optimize', zh: '优化' },
  startPoint: { vi: 'Điểm bắt đầu', en: 'Start Point', zh: '起点' },
  endPoint: { vi: 'Điểm kết thúc', en: 'End Point', zh: '终点' },
  pinStartHelper: { vi: 'Nhấn để ghim điểm bắt đầu cho Tour...', en: 'Click to pin starting point...', zh: '点击锁定行程起点...' },
  pinEndHelper: { vi: 'Nhấn để ghim điểm kết thúc cho Tour...', en: 'Click to pin ending point...', zh: '点击锁定行程终点...' },
  noLegs: { vi: 'Chưa có chặng nào trong lộ trình.', en: 'No legs in the itinerary yet.', zh: '行程中暂无航段。' },
  declareLegsBtn: { vi: 'Khai báo số chặng', en: 'Declare Leg Count', zh: '申报航段数' },
  addSingleLeg: { vi: 'Thêm chặng lẻ vào cuối', en: 'Add leg to end', zh: '末尾添加单个航段' },
  exportPDF: { vi: 'Xuất PDF', en: 'Export PDF', zh: '导出 PDF' },

  // Tour Detail / Organizer Rating
  rateOrganizer: { vi: 'Đánh giá ban tổ chức', en: 'Rate Organizer', zh: '评估组织者' },
  honesty: { vi: 'Trung thực', en: 'Honesty', zh: '诚实度' },
  transparency: { vi: 'Minh bạch', en: 'Transparency', zh: '透明度' },
  enthusiasm: { vi: 'Nhiệt tình', en: 'Enthusiasm', zh: '热情度' },
  cheerfulness: { vi: 'Vui vẻ', en: 'Cheerfulness', zh: '愉快度' },
  seriousness: { vi: 'Nhiêm túc', en: 'Seriousness', zh: '认真度' },
  planning: { vi: 'Có kế hoạch', en: 'Planning Skills', zh: '计划性' },
  survival: { vi: 'Kỹ năng sinh tồn', en: 'Survival Skills', zh: '生存技能' },
  rateTitle: { vi: 'Đánh giá Người tạo Tour', en: 'Rate Tour Creator', zh: '评价行程发起人' },
  rateCommentPlaceholder: { vi: 'Nhập ý kiến đánh giá khác...', en: 'Enter other comments...', zh: '输入其他评价...' },
  emergencyShare: { vi: 'Chia sẻ khẩn cấp', en: 'Emergency Share', zh: '紧急分享' },
  emergencyShareTooltip: { vi: 'Bật chia sẻ để người thân có thể định vị bạn khi khẩn cấp', en: 'Enable sharing so family can locate you in emergencies', zh: '开启分享以便家人在紧急情况下定位您' },
  copyShareLink: { vi: 'Sao chép liên kết chia sẻ', en: 'Copy share link', zh: '复制分享链接' },

  // User Management / Moderation
  tabUsers: { vi: 'Người dùng', en: 'Users', zh: '用户管理' },
  tabPhotos: { vi: 'Ảnh công khai', en: 'Public Photos', zh: '公开照片' },
  tabTrash: { vi: 'Ảnh rác', en: 'Trash Photos', zh: '垃圾照片' },
  tabFilters: { vi: 'Bộ lọc', en: 'Filters', zh: '过滤器' },
  filterNsfwToggle: { vi: 'Lọc hình ảnh khiêu dâm', en: 'Block NSFW Images', zh: '过滤淫秽图片' },
  filterFaceBlurToggle: { vi: 'Làm mờ khuôn mặt', en: 'Automatic Face Blur', zh: '自动模糊人脸' },
  wordFiltersTitle: { vi: 'Từ khóa cấm & Thay thế', en: 'Banned Words & Replacements', zh: '禁用词及替换词' },
  addWordBtn: { vi: 'Thêm từ khóa', en: 'Add Word', zh: '添加词汇' },
  wordLabel: { vi: 'Từ cấm', en: 'Banned Word', zh: '敏感词' },
  replacementLabel: { vi: 'Từ thay thế', en: 'Replacement', zh: '替换词' },
  commentSectionTitle: { vi: 'Bình luận cộng đồng', en: 'Community Comments', zh: '社区评论' },

  // Dashboard / General Settings
  myItineraries: { vi: 'Hành trình của tôi', en: 'My Itineraries', zh: '我的行程' },
  chatMenu: { vi: 'Trò chuyện', en: 'Chat', zh: '聊天' },
  friendsMenu: { vi: 'Danh sách bạn bè', en: 'Friends List', zh: '好友列表' },
  muteNotifications: { vi: 'Tắt thông báo đẩy', en: 'Mute Notifications', zh: '关闭推送通知' },
  unmuteNotifications: { vi: 'Bật thông báo đẩy', en: 'Unmute Notifications', zh: '开启推送通知' },
  enterSecretKey: { vi: 'Nhập Admin Secret Key để mở khóa', en: 'Enter Admin Secret Key to unlock', zh: '输入管理员密钥解锁' },
  invalidSecretKey: { vi: 'Mã Secret Key không hợp lệ', en: 'Invalid Secret Key', zh: '密钥无效' },
  languageSelect: { vi: 'Ngôn ngữ', en: 'Language', zh: '语言' },
  themeSelect: { vi: 'Giao diện', en: 'Theme', zh: '主题' },
  themeLight: { vi: 'Sáng', en: 'Light', zh: '浅色' },
  themeDark: { vi: 'Tối', en: 'Dark', zh: '深色' },
  themeSystem: { vi: 'Hệ thống', en: 'System', zh: '跟随系统' },

  // Emergency Share Journey Page
  emergencyContacts: { vi: 'Liên hệ khẩn cấp', en: 'Emergency Contacts', zh: '紧急联系人' },
  tourOwner: { vi: 'Người tạo Tour (Owner)', en: 'Tour Owner', zh: '发起人' },
  tourManager: { vi: 'Người quản lý (Manager)', en: 'Tour Manager', zh: '管理员' },
  phoneNumber: { vi: 'Số điện thoại', en: 'Phone Number', zh: '电话号码' },
  emergencyJourney: { vi: 'Hành trình Cứu hộ Khẩn cấp', en: 'Emergency Rescue Journey', zh: '紧急救援行程' },
  noPhone: { vi: 'Không có số điện thoại', en: 'No phone number', zh: '暂无电话' },
  noStops: { vi: 'Chưa có điểm dừng nào', en: 'No stops declared', zh: '暂无停留点' },
  viewMap: { vi: 'Bản đồ', en: 'Map', zh: '地图' },
  viewTimeline: { vi: 'Lịch trình', en: 'Itinerary', zh: '行程表' },
  sharedJourneyTitle: { vi: 'Hành trình chia sẻ khẩn cấp', en: 'Emergency Shared Journey', zh: '紧急分享行程' },
  linkExpired: { vi: 'Liên kết không tồn tại hoặc đã bị vô hiệu hóa.', en: 'Link does not exist or has been disabled.', zh: '链接不存在或已被禁用。' },

  // Landing Page Buttons Short
  shortExplore: { vi: 'Khám phá', en: 'Explore', zh: '探索' },
  shortCamera: { vi: 'Chụp ảnh', en: 'Camera', zh: '拍照' },
  reportBusinessBtn: { vi: 'Báo cáo sai phạm', en: 'Report Violation', zh: '举报' },
  blacklistTitle: { vi: 'Widget Blacklist', en: 'Blacklist Widget', zh: '黑名单' },
  reportModalTitle: { vi: 'Báo cáo cơ sở không đàng hoàng', en: 'Report Dishonest Business', zh: '举报不良商家' },
  businessName: { vi: 'Tên cơ sở/người dùng', en: 'Name', zh: '名称' },
  businessPhone: { vi: 'Số điện thoại', en: 'Phone Number', zh: '电话号码' },
  businessEmail: { vi: 'Email liên hệ', en: 'Email Address', zh: '电子邮箱' },
  businessAddress: { vi: 'Địa chỉ', en: 'Address', zh: '地址' },
  businessType: { vi: 'Loại hình', en: 'Type', zh: '类型' },
  typeUser: { vi: 'Người dùng', en: 'User', zh: '用户' },
  typeRestaurant: { vi: 'Nhà hàng', en: 'Restaurant', zh: '餐厅' },
  typeHotel: { vi: 'Khách sạn', en: 'Hotel', zh: '酒店' },
  typeHomestay: { vi: 'Homestay', en: 'Homestay', zh: '民俗' },
  reportReason: { vi: 'Lý do báo cáo', en: 'Reason for report', zh: '举报原因' },
  submitReport: { vi: 'Gửi báo cáo', en: 'Submit Report', zh: '提交举报' },
  reportSuccess: { vi: 'Gửi báo cáo thành công. Ban quản trị sẽ kiểm duyệt thông tin.', en: 'Report submitted successfully. The admin will review it.', zh: '提交成功。管理员将审核' },
  emptyBlacklist: { vi: 'Chưa có cơ sở nào trong danh sách đen.', en: 'No businesses in blacklist yet.', zh: '黑名单中暂无商家。' },
  tabReports: { vi: 'Blacklist', en: 'Blacklist', zh: '黑名单' },

  // Modal titles and messages
  areYouSure: { vi: 'Bạn có chắc chắn không?', en: 'Are you sure?', zh: '你确定吗？' },
  processing: { vi: 'Đang xử lý...', en: 'Processing...', zh: '处理中...' },
  checkingImages: { vi: 'Đang kiểm tra và lọc hình ảnh của bạn...', en: 'Checking and filtering your images...', zh: '正在检查和过滤您的图片...' },
  uploadFailed: { vi: 'Tải ảnh thất bại.', en: 'Image upload failed.', zh: '图片上传失败。' },
  uploadSuccess: { vi: 'Đã tải lên thành công.', en: 'Upload successful.', zh: '上传成功。' },
  imageBlocked: { vi: 'Ảnh chứa nội dung không phù hợp và bị chặn.', en: 'Image contains inappropriate content and was blocked.', zh: '图片包含不当内容并已被屏蔽。' },
  selectImage: { vi: 'Nhấn để chọn ảnh', en: 'Click to select images', zh: '点击选择图片' },
  uploadPhotos: { vi: 'Tải ảnh lên', en: 'Upload Photos', zh: '上传照片' },
  selectedFiles: { vi: 'Đã chọn', en: 'Selected', zh: '已选择' },

  // Photo modals
  imageModeration: { vi: 'Ảnh bị từ chối', en: 'Image Rejected', zh: '图片被拒' },
  imageModerationBlocked: { vi: 'ảnh chứa nội dung không phù hợp và bị chặn.', en: 'image contains inappropriate content and was blocked.', zh: '图片包含不当内容并已被屏蔽。' },
  imageCheck: { vi: 'Lỗi ảnh', en: 'Image Error', zh: '图片错误' },
  imageLoadFailed: { vi: 'Không thể đọc nội dung ảnh: ', en: 'Cannot read image content: ', zh: '无法读取图片内容：' },
  pleaseTryAgain: { vi: 'Vui lòng kiểm tra lại file.', en: 'Please check the file.', zh: '请检查文件。' },
  fileCheckingError: { vi: 'Lỗi trong quá trình kiểm duyệt ảnh.', en: 'Error during image review.', zh: '图片审核过程中出错。' },
  
  // Create Tour Modal
  createTourModalTitle: { vi: 'Tạo Tour mới', en: 'Create New Tour', zh: '创建新行程' },
  creatingTour: { vi: 'Đang tạo...', en: 'Creating...', zh: '创建中...' },
  confirmCreateTour: { vi: 'Xác nhận tạo Tour', en: 'Confirm Tour Creation', zh: '确认创建行程' },
  enterTourName: { vi: 'Nhập tên tour...', en: 'Enter tour name...', zh: '输入行程名称...' },
  tourNameRequired: { vi: 'Tên tour không được để trống', en: 'Tour name cannot be empty', zh: '行程名称不能为空' },

  // Add Location Modal
  confirmStartPoint: { vi: 'Xác nhận Điểm xuất phát', en: 'Confirm Starting Point', zh: '确认起点' },
  confirmEndPoint: { vi: 'Xác nhận Điểm kết thúc', en: 'Confirm Ending Point', zh: '确认终点' },
  location: { vi: 'Vị trí', en: 'Location', zh: '位置' },

  // Expense Manager
  expenseReportTitle: { vi: 'BÁO CÁO CHI PHÍ TOUR', en: 'TOUR EXPENSE REPORT', zh: '行程费用报告' },
  expenseSplitTable: { vi: 'Bảng phân chia chi phí', en: 'Expense Split Table', zh: '费用分割表' },
  member: { vi: 'Thành viên', en: 'Member', zh: '成员' },
  shouldPay: { vi: 'Cần trả', en: 'Should Pay', zh: '应付' },
  paid: { vi: 'Đã trả', en: 'Paid', zh: '已付' },
  balance: { vi: 'Số dư', en: 'Balance', zh: '余额' },

  // Members Management
  mergeMembers: { vi: 'Hợp nhất thành viên', en: 'Merge Members', zh: '合并成员' },
  mergeSuccess: { vi: 'Hợp nhất thành công.', en: 'Merge successful.', zh: '合并成功。' },
  mergeFailed: { vi: 'Hợp nhất thất bại.', en: 'Merge failed.', zh: '合并失败。' },

  // Dashboard / User interactions
  disconnect: { vi: 'Hủy kết nối', en: 'Disconnect', zh: '断开连接' },
  notificationsMuted: { vi: 'Đã tắt thông báo', en: 'Notifications muted', zh: '通知已关闭' },
  searchContent: { vi: 'Tìm kiếm nội dung...', en: 'Search content...', zh: '搜索内容...' },

  // Notes Page
  noNotesYet: { vi: 'Chưa có ghi chú nào', en: 'No notes yet', zh: '还没有笔记' },
  createNewNote: { vi: 'Tạo ghi chú mới', en: 'Create New Note', zh: '创建新笔记' },
  noteTitle: { vi: 'Tiêu đề', en: 'Title', zh: '标题' },
  noteContent: { vi: 'Nội dung', en: 'Content', zh: '内容' },
  deleteNote: { vi: 'Xóa ghi chú', en: 'Delete Note', zh: '删除笔记' },
  deleteNoteConfirm: { vi: 'Bạn có chắc chắn muốn xóa ghi chú này?', en: 'Are you sure you want to delete this note?', zh: '确定要删除此笔记吗？' },

  // Signup Page
  createAccount: { vi: 'Tạo tài khoản mới', en: 'Create New Account', zh: '创建新账户' },
  verifyAccount: { vi: 'Xác thực tài khoản', en: 'Verify Account', zh: '验证账户' },
  confirmPassword: { vi: 'Xác nhận mật khẩu', en: 'Confirm Password', zh: '确认密码' },
  passwordMismatch: { vi: 'Mật khẩu không khớp', en: 'Passwords do not match', zh: '密码不匹配' },
  firstName: { vi: 'Tên', en: 'First Name', zh: '名字' },
  lastName: { vi: 'Họ', en: 'Last Name', zh: '姓氏' },

  // Tour Detail Page
  tourMembers: { vi: 'Thành viên', en: 'Members', zh: '成员' },
  expenses: { vi: 'Chi phí', en: 'Expenses', zh: '费用' },
  errorLoadingTour: { vi: 'Lỗi khi tải thông tin tour.', en: 'Error loading tour information.', zh: '加载行程信息出错。' },

  // Explore Map
  restaurant: { vi: 'Nhà hàng', en: 'Restaurant', zh: '餐厅' },
  hotel: { vi: 'Khách sạn', en: 'Hotel', zh: '酒店' },
  homestay: { vi: 'Homestay', en: 'Homestay', zh: '民宿' },

  // User Management Modal
  businessTypeLabel: { vi: 'Loại hình kinh doanh', en: 'Business Type', zh: '商家类型' },

  // Add Member Modal
  searchMember: { vi: 'Tìm kiếm thành viên...', en: 'Search members...', zh: '搜索成员...' },
  addMemberTitle: { vi: 'Thêm thành viên', en: 'Add Member', zh: '添加成员' },

  // Comment Modal
  comments: { vi: 'Bình luận', en: 'Comments', zh: '评论' },
  addComment: { vi: 'Thêm bình luận', en: 'Add comment', zh: '添加评论' },
  writeComment: { vi: 'Viết bình luận...', en: 'Write a comment...', zh: '写评论...' },
  noComments: { vi: 'Chưa có bình luận nào', en: 'No comments yet', zh: '还没有评论' },
  deleteComment: { vi: 'Xóa bình luận', en: 'Delete comment', zh: '删除评论' },
  editComment: { vi: 'Chỉnh sửa bình luận', en: 'Edit comment', zh: '编辑评论' },

  // General messages
  loading_msg: { vi: 'Đang tải...', en: 'Loading...', zh: '加载中...' },
  noData: { vi: 'Không có dữ liệu', en: 'No data', zh: '无数据' },
  retry: { vi: 'Thử lại', en: 'Retry', zh: '重试' },
  back: { vi: 'Quay lại', en: 'Back', zh: '返回' },
  next: { vi: 'Tiếp theo', en: 'Next', zh: '下一步' },
  previous: { vi: 'Trước đó', en: 'Previous', zh: '上一步' },
  done: { vi: 'Xong', en: 'Done', zh: '完成' },
  finish: { vi: 'Kết thúc', en: 'Finish', zh: '完成' },
  submit: { vi: 'Gửi', en: 'Submit', zh: '提交' },
  update: { vi: 'Cập nhật', en: 'Update', zh: '更新' },
  create: { vi: 'Tạo', en: 'Create', zh: '创建' },
  new: { vi: 'Mới', en: 'New', zh: '新建' },

  // Dashboard - Connections & Friends
  friendsList: { vi: 'Danh sách bạn bè', en: 'Friends List', zh: '好友列表' },
  familyGroup: { vi: 'Gia đình', en: 'Family', zh: '家庭' },
  friends: { vi: 'Bạn bè', en: 'Friends', zh: '朋友' },
  manageFriendsDesc: { vi: 'Bạn bè, gia đình, yêu cầu chờ duyệt', en: 'Friends, family, pending requests', zh: '朋友、家人、待决批准' },
  noConnections: { vi: 'Bạn chưa kết nối với ai. Hãy chuyển sang tìm kiếm để gửi lời mời.', en: 'You have no connections yet. Search to send invitations.', zh: '你还没有任何连接。搜索以发送邀请。' },
  searchMembers: { vi: 'Tìm kiếm theo Tên hoặc Email (nhập tối thiểu 2 ký tự)...', en: 'Search by Name or Email (min 2 characters)...', zh: '按名称或电子邮件搜索（最少2个字符）...' },
  searching: { vi: 'Đang tìm kiếm...', en: 'Searching...', zh: '搜索中...' },
  minCharsRequired: { vi: 'Vui lòng nhập tối thiểu 2 ký tự để tìm kiếm thành viên.', en: 'Please enter at least 2 characters to search.', zh: '请输入至少2个字符进行搜索。' },
  disconnectTitle: { vi: 'Hủy kết nối', en: 'Disconnect', zh: '断开连接' },
  disconnectConfirm: { vi: 'Bạn có chắc chắn muốn hủy kết nối với', en: 'Are you sure you want to disconnect with', zh: '你确定要与...断开连接吗' },
  disconnectSuccess: { vi: 'Đã hủy kết nối thành công.', en: 'Disconnected successfully.', zh: '断开连接成功。' },
  searchError: { vi: 'Lỗi tìm kiếm thành viên:', en: 'Error searching members:', zh: '搜索成员时出错：' },
  disconnectError: { vi: 'Lỗi hủy kết nối:', en: 'Error disconnecting:', zh: '断开连接出错：' },

  // Dashboard - Photo Gallery
  photoGallery: { vi: 'Thư viện ảnh', en: 'Photo Gallery', zh: '相册' },
  photoGalleryDesc: { vi: 'Kho ảnh gốc của bạn từ các tour', en: 'Your original photos from all tours', zh: '您来自所有行程的原始照片' },
  flagPhoto: { vi: 'Báo cáo ảnh', en: 'Report Photo', zh: '举报照片' },
  flagPhotoReason: { vi: 'Lý do báo cáo', en: 'Report Reason', zh: '举报原因' },
  flagPhotoSuccess: { vi: 'Đã báo cáo ảnh', en: 'Photo reported', zh: '已举报照片' },
  flagPhotoError: { vi: 'Lỗi báo cáo ảnh', en: 'Error reporting photo', zh: '举报照片出错' },
  inappropriate: { vi: 'Nội dung không phù hợp', en: 'Inappropriate content', zh: '不恰当的内容' },
  spam: { vi: 'Spam', en: 'Spam', zh: '垃圾邮件' },
  copyright: { vi: 'Vi phạm bản quyền', en: 'Copyright violation', zh: '侵犯版权' },
  other: { vi: 'Khác', en: 'Other', zh: '其他' },

  // Dashboard - Tours Management
  toursManagement: { vi: 'Quản lý hành trình', en: 'Manage Tours', zh: '管理行程' },
  toursManagementDesc: { vi: 'Xem và quản lý các chuyến đi', en: 'View and manage your travels', zh: '查看和管理您的旅行' },

  // Dashboard - Notifications
  notificationsEnabled: { vi: 'Đã bật thông báo', en: 'Notifications enabled', zh: '已启用通知' },
  notificationsDisabled: { vi: 'Đã tắt thông báo', en: 'Notifications disabled', zh: '已禁用通知' },
  emergencySharingEnabled: { vi: 'Đã bật chia sẻ hành trình cứu hộ.', en: 'Emergency sharing enabled.', zh: '已启用紧急分享。' },
  emergencySharingDisabled: { vi: 'Đã tắt chia sẻ.', en: 'Sharing disabled.', zh: '已禁用分享。' },

  // Dashboard - Connection Types
  changeConnectionType: { vi: 'Mối quan hệ đã được chuyển sang nhóm: ', en: 'Relationship changed to group: ', zh: '关系已更改为组：' },

  // Dashboard - Sections
  settingsSection: { vi: 'Cài đặt', en: 'Settings', zh: '设置' },
  manageRelations: { vi: 'Quản lý các mối quan hệ bạn bè, gia đình, duyệt các yêu cầu kết nối từ thành viên khác.', en: 'Manage friends, family relationships, and review connection requests from other members.', zh: '管理朋友和家人关系，审查来自其他成员的连接请求。' }
};

export const useTranslation = () => {
  const [lang, setLang] = useState<Language>(() => {
    return (localStorage.getItem('language') as Language) || 'vi';
  });

  const changeLanguage = (newLang: Language) => {
    localStorage.setItem('language', newLang);
    setLang(newLang);
    // Dispatch custom event to sync across components
    window.dispatchEvent(new Event('languageChange'));
  };

  useEffect(() => {
    const handleLangChange = () => {
      setLang((localStorage.getItem('language') as Language) || 'vi');
    };
    window.addEventListener('languageChange', handleLangChange);
    return () => window.removeEventListener('languageChange', handleLangChange);
  }, []);

  const t = (key: string): string => {
    if (!translations[key]) {
      return key;
    }
    return translations[key][lang];
  };

  return { t, lang, changeLanguage };
};
