{
  "app": {
    "brand": "nanobot",
    "loading": {
      "connecting": "Đang kết nối tới nanobot…",
      "boot": "Đang tải nanobot…"
    },
    "error": {
      "title": "Không thể kết nối tới nanobot",
      "gatewayHint": "Hãy chắc chắn gateway đang chạy (`nanobot gateway`) và trang này được mở trên cùng máy."
    },
    "system": {
      "section": "Hệ thống",
      "restartHint": "Khởi động lại nanobot để áp dụng thay đổi runtime.",
      "restart": "Khởi động lại nanobot",
      "restarting": "Đang khởi động lại..."
    },
    "restart": {
      "completed": "Khởi động lại hoàn tất sau {{seconds}} giây."
    },
    "documentTitle": {
      "base": "nanobot",
      "chat": "{{title}} · nanobot"
    },
    "meta": {
      "description": "Giao diện web nanobot — trò chuyện với workspace nanobot của bạn."
    }
  },
  "sidebar": {
    "collapse": "Thu gọn thanh bên",
    "toggleTheme": "Chuyển giao diện",
    "newChat": "Cuộc trò chuyện mới",
    "recent": "Gần đây",
    "refreshSessions": "Làm mới phiên",
    "settings": "Cài đặt",
    "language": {
      "label": "Ngôn ngữ",
      "ariaLabel": "Đổi ngôn ngữ"
    }
  },
  "settings": {
    "backToChat": "Quay lại trò chuyện",
    "sidebar": {
      "title": "Cài đặt",
      "ariaLabel": "Các mục cài đặt"
    },
    "nav": {
      "general": "Chung",
      "byok": "BYOK"
    },
    "sections": {
      "interface": "Giao diện",
      "ai": "AI",
      "system": "Hệ thống"
    },
    "rows": {
      "theme": "Giao diện",
      "language": "Ngôn ngữ",
      "provider": "Nhà cung cấp",
      "model": "Mô hình",
      "restart": "Khởi động lại nanobot",
      "configPath": "Đường dẫn cấu hình"
    },
    "help": {
      "theme": "Chuyển giữa giao diện sáng và tối.",
      "language": "Chọn ngôn ngữ dùng trong WebUI.",
      "provider": "Chọn nhà cung cấp cho các yêu cầu mô hình mới.",
      "model": "Đặt tên mô hình mặc định mà nanobot sử dụng.",
      "configPath": "Tệp cấu hình gateway hiện đang dùng."
    },
    "values": {
      "light": "Sáng",
      "dark": "Tối",
      "notAvailable": "Không khả dụng"
    },
    "status": {
      "loading": "Đang tải cài đặt...",
      "loadError": "Không thể tải cài đặt",
      "unsaved": "Có thay đổi chưa lưu.",
      "savedRestart": "Đã lưu. Khởi động lại nanobot để áp dụng."
    },
    "actions": {
      "save": "Lưu",
      "saving": "Đang lưu",
      "edit": "Sửa",
      "cancel": "Hủy"
    },
    "byok": {
      "description": "Dùng key provider của riêng bạn. Nanobot đọc các giá trị này từ config hiện tại, và chỉ provider đã cấu hình mới có thể chọn trong Chung.",
      "configured": "Đã cấu hình",
      "notConfigured": "Chưa cấu hình",
      "configuredSection": "Đã cấu hình",
      "notConfiguredSection": "Chưa cấu hình",
      "showMore": "Hiển thị thêm {{count}}",
      "showLess": "Thu gọn",
      "apiKey": "API key",
      "apiBase": "API base",
      "apiKeyPlaceholder": "Nhập API key",
      "apiKeyConfiguredPlaceholder": "Để trống để giữ key hiện tại",
      "configuredKeyHint": "Key đã cấu hình",
      "apiBasePlaceholder": "Dùng mặc định của provider",
      "apiKeyRequired": "Cần API key để cấu hình provider này.",
      "showApiKey": "Hiển thị API key",
      "hideApiKey": "Ẩn API key",
      "noConfiguredProviders": "Chưa có provider đã cấu hình",
      "configureFirst": "Hãy cấu hình provider trong BYOK trước.",
      "openByok": "Mở BYOK",
      "tabs": {
        "ariaLabel": "Loại thông tin xác thực BYOK",
        "llm": "LLM",
        "webSearch": "Web Search"
      },
      "webSearch": {
        "provider": "Search provider",
        "providerHelp": "Chọn backend mà công cụ web search sẽ dùng.",
        "selectProvider": "Chọn provider",
        "credentials": "Thông tin xác thực",
        "noCredentialRequired": "Không cần key",
        "noCredentialHelp": "DuckDuckGo hoạt động mà không cần lưu API key.",
        "apiKeyHelp": "Được lưu trong config và chỉ hiện dạng che sau khi lưu.",
        "baseUrl": "Base URL",
        "baseUrlHelp": "SearXNG cần URL instance của bạn.",
        "baseUrlPlaceholder": "https://search.example.com",
        "apiKeyRequired": "Provider tìm kiếm này cần API key.",
        "baseUrlRequired": "SearXNG cần Base URL.",
        "missingCredential": "Thêm thông tin bắt buộc trước khi lưu.",
        "saveHint": "Thay đổi áp dụng cho các yêu cầu web search mới."
      }
    }
  },
  "chat": {
    "fallbackTitle": "Trò chuyện {{id}}",
    "loading": "Đang tải…",
    "noSessions": "Chưa có phiên nào.",
    "actions": "Tác vụ cho cuộc trò chuyện {{title}}",
    "delete": "Xóa",
    "newChat": "Cuộc trò chuyện mới"
  },
  "deleteConfirm": {
    "title": "Xóa cuộc trò chuyện này?",
    "description": "Không thể hoàn tác thao tác này.",
    "cancel": "Hủy",
    "confirm": "Xóa"
  },
  "connection": {
    "idle": "Rảnh",
    "connecting": "Đang kết nối…",
    "open": "Đã kết nối",
    "reconnecting": "Đang kết nối lại…",
    "closed": "Đã ngắt kết nối",
    "error": "Lỗi kết nối"
  },
  "thread": {
    "loadingConversation": "Đang tải cuộc trò chuyện…",
    "empty": {
      "description": "Hãy đặt câu hỏi, tiếp tục công việc cục bộ hoặc bắt đầu một luồng mới.",
      "greeting": "Tôi có thể giúp gì cho bạn?",
      "quickActions": {
        "plan": {
          "title": "Tạo kế hoạch dự án",
          "prompt": "Tạo một kế hoạch dự án ngắn gọn cho việc tôi nên xây dựng tiếp theo."
        },
        "analyze": {
          "title": "Phân tích dữ liệu này",
          "prompt": "Giúp tôi phân tích dữ liệu này và chỉ ra các mẫu quan trọng nhất."
        },
        "brainstorm": {
          "title": "Động não ý tưởng",
          "prompt": "Động não vài ý tưởng thực tế và các đánh đổi cho vấn đề này."
        },
        "code": {
          "title": "Viết mã",
          "prompt": "Giúp tôi viết mã cho nhiệm vụ này, bắt đầu từ thay đổi hữu ích nhỏ nhất."
        },
        "summarize": {
          "title": "Tóm tắt tài liệu này",
          "prompt": "Tóm tắt tài liệu này và liệt kê các ý chính."
        },
        "more": {
          "title": "Thêm",
          "prompt": "Cho tôi xem vài cách hữu ích mà bạn có thể giúp trong workspace này."
        }
      },
      "imageQuickActions": {
        "icon": {
          "title": "Thiết kế biểu tượng app",
          "prompt": "Tạo một biểu tượng ứng dụng 1:1 gọn gàng cho nanobot: robot thân thiện, phong cách vector đơn giản, bảng màu xanh trắng dịu, không có chữ."
        },
        "sticker": {
          "title": "Tạo sticker",
          "prompt": "Tạo một hình kiểu sticker dễ thương của trợ lý robot nhỏ, nền trông như trong suốt, biểu cảm và vui nhộn."
        },
        "poster": {
          "title": "Tạo poster",
          "prompt": "Tạo một ý tưởng poster chỉn chu cho trợ lý AI cá nhân, bố cục hiện đại, phân cấp thị giác rõ, phù hợp cho landing page."
        },
        "product": {
          "title": "Mockup sản phẩm",
          "prompt": "Tạo một hình mockup sản phẩm gọn gàng cho ứng dụng web AI hội thoại, giao diện tối giản, ánh sáng cao cấp, khung thiết bị chân thực."
        },
        "portrait": {
          "title": "Chân dung cách điệu",
          "prompt": "Tạo chân dung cách điệu của một người bạn đồng hành AI thân thiện, ánh sáng mềm, chi tiết nhưng dễ gần, phong cách minh họa hiện đại."
        },
        "edit": {
          "title": "Chỉnh sửa ảnh",
          "prompt": "Giúp tôi chỉnh sửa một ảnh. Trước tiên hãy yêu cầu tôi tải lên hoặc chỉ định ảnh, rồi tạo kết quả đã chỉnh sửa."
        }
      }
    },
    "header": {
      "toggleSidebar": "Bật/tắt thanh bên"
    },
    "composer": {
      "placeholderThread": "Nhập tin nhắn…",
      "placeholderHero": "Bạn đang nghĩ gì?",
      "placeholderOpening": "Đang mở cuộc trò chuyện mới…",
      "placeholderStreaming": "Mô hình đang trả lời…",
      "inputAria": "Ô nhập tin nhắn",
      "sendHint": "Enter để gửi · Shift+Enter để xuống dòng",
      "send": "Gửi tin nhắn",
      "stop": "Dừng phản hồi",
      "attachImage": "Đính kèm ảnh",
      "imageMode": {
        "label": "Tạo ảnh",
        "toggle": "Bật/tắt chế độ tạo ảnh",
        "placeholder": "Mô tả hoặc chỉnh sửa ảnh…",
        "aspectAria": "Tỷ lệ khung hình ảnh",
        "aspectLabel": "Tỷ lệ ảnh",
        "aspect": {
          "auto": "Tự động",
          "1_1": "Vuông 1:1",
          "3_4": "Dọc 3:4",
          "9_16": "Story 9:16",
          "4_3": "Ngang 4:3",
          "16_9": "Rộng 16:9"
        }
      },
      "encoding": "Đang xử lý…",
      "remove": "Xóa tệp đính kèm",
      "normalizedSizeHint": "{{orig}} → {{current}} (tự động)",
      "imageRejected": {
        "unsupported_type": "Loại tệp không được hỗ trợ",
        "too_many_images": "Tối đa {{max}} ảnh mỗi tin nhắn",
        "magic_mismatch": "Tệp này không phải là một ảnh thực",
        "decode_failed": "Không thể giải mã ảnh này",
        "too_large": "Ảnh quá lớn — hãy thử ảnh nhỏ hơn",
        "io": "Không thể đọc tệp này"
      },
      "slash": {
        "ariaLabel": "Lệnh slash",
        "label": "lệnh",
        "navigateHint": "↑↓ Chọn",
        "selectHint": "Enter/Tab Chèn",
        "closeHint": "Esc Đóng",
        "commands": {
          "new": {
            "title": "Cuộc trò chuyện mới",
            "description": "Dừng tác vụ hiện tại và bắt đầu một cuộc trò chuyện mới."
          },
          "stop": {
            "title": "Dừng tác vụ hiện tại",
            "description": "Hủy lượt agent đang chạy trong cuộc trò chuyện này."
          },
          "restart": {
            "title": "Khởi động lại nanobot",
            "description": "Khởi động lại tiến trình bot tại chỗ."
          },
          "status": {
            "title": "Hiển thị trạng thái",
            "description": "Hiển thị trạng thái runtime, provider và channel."
          },
          "history": {
            "title": "Hiển thị lịch sử",
            "description": "In N tin nhắn hội thoại đã lưu gần nhất."
          },
          "dream": {
            "title": "Chạy Dream",
            "description": "Kích hoạt thủ công quá trình hợp nhất bộ nhớ."
          },
          "dream_log": {
            "title": "Hiển thị nhật ký Dream",
            "description": "Hiển thị những gì lần hợp nhất Dream gần nhất đã thay đổi."
          },
          "dream_restore": {
            "title": "Khôi phục bộ nhớ",
            "description": "Đưa bộ nhớ về một snapshot Dream trước đó."
          },
          "help": {
            "title": "Hiển thị trợ giúp",
            "description": "Liệt kê các lệnh slash có sẵn."
          }
        }
      }
    },
    "scrollToBottom": "Cuộn xuống cuối"
  },
  "message": {
    "streaming": "đang truyền",
    "assistantTyping": "Trợ lý đang nhập",
    "toolSingle": "Đang dùng một công cụ",
    "toolMany": "Đã dùng {{count}} công cụ",
    "imageAttachment": "Tệp hình ảnh đính kèm"
  },
  "lightbox": {
    "title": "Xem trước ảnh",
    "open": "Xem ảnh",
    "prev": "Ảnh trước",
    "next": "Ảnh tiếp theo",
    "close": "Đóng xem trước"
  },
  "code": {
    "fallbackLanguage": "mã",
    "copyAria": "Sao chép mã",
    "copy": "Sao chép",
    "copied": "Đã sao chép"
  },
  "common": {
    "dismiss": "Đóng"
  },
  "errors": {
    "messageTooBig": {
      "title": "Tin nhắn quá lớn",
      "body": "Máy chủ đã từ chối tin nhắn trước vì vượt quá giới hạn kích thước. Hãy bớt ảnh hoặc chọn tệp nhỏ hơn rồi thử lại."
    }
  }
}
