{ "title": "WPlace Auto-Image", "toggleOverlay": "Bật/tắt lớp phủ", "scanColors": "Quét màu", "uploadImage": "Tải lên hình ảnh", "resizeImage": "Xử lý/Chỉnh sửa hình ảnh", "selectPosition": "Chọn vị trí", "startPainting": "Bắt đầu vẽ", "stopPainting": "Dừng vẽ", "checkingColors": "🔍 Đang kiểm tra màu sắc có sẵn...", "noColorsFound": "❌ Hãy mở bảng màu trên trang web và thử lại!", "colorsFound": "✅ Tìm thấy {count} màu. Sẵn sàng để tải lên.", "loadingImage": "🖼️ Đang tải hình ảnh...", "imageLoaded": "✅ Đã tải hình ảnh với {count} pixel hợp lệ ⚠️ Xử lý hình ảnh trước qua \"Xử lý/Chỉnh sửa hình ảnh\" trước khi đặt!", "imageNeedsProcessing": "Hình ảnh cần xử lý ⚠️", "imageError": "❌ Lỗi khi tải hình ảnh", "selectPositionAlert": "Vẽ pixel đầu tiên tại vị trí bạn muốn tác phẩm nghệ thuật bắt đầu!", "waitingPosition": "👆 Đang chờ bạn vẽ pixel tham chiếu...", "positionSet": "✅ Đã đặt vị trí thành công!", "positionTimeout": "❌ Hết thời gian chọn vị trí", "startPaintingMsg": "🎨 Bắt đầu vẽ...", "paintingProgress": "🧱 Tiến trình: {painted}/{total} pixel...", "noCharges": "⌛ Không có điện tích. Đang chờ {time}...", "paintingStopped": "⏹️ Người dùng đã dừng vẽ", "paintingComplete": "✅ Hoàn thành vẽ! Đã vẽ {count} pixel.", "paintingError": "❌ Lỗi trong quá trình vẽ", "missingRequirements": "❌ Hãy tải lên hình ảnh và chọn vị trí trước", "progress": "Tiến trình", "pixels": "Pixel", "charges": "Năng lượng", "paintingOrder": "Thứ tự vẽ", "paintingOrderSequential": "Bình thường (Từ trên xuống)", "paintingOrderColorByColor": "Theo từng màu", "currentlyPaintingColor": "Đang vẽ: {colorName}", "colorProgress": "{painted} / {total} pixel {colorName}", "estimatedTime": "Thời gian ước tính", "initMessage": "Nhấp 'Tải lên hình ảnh' để bắt đầu", "waitingInit": "Đang chờ khởi tạo...", "initializingToken": "🔧 Đang khởi tạo bộ tạo token Turnstile...", "tokenReady": "✅ Bộ tạo token đã sẵn sàng - bạn có thể bắt đầu vẽ!", "tokenRetryLater": "⚠️ Bộ tạo token sẽ thử lại khi cần thiết", "resizeSuccess": "✅ Đã thay đổi kích thước hình ảnh thành {width}x{height}", "paintingPaused": "⏸️ Tạm dừng vẽ tại vị trí X: {x}, Y: {y}", "captchaNeeded": "❗ Tạo token thất bại. Vui lòng thử lại sau.", "saveData": "Lưu tiến trình", "loadData": "Tải tiến trình", "saveToFile": "Lưu vào tệp", "loadFromFile": "Tải từ tệp", "dataManager": "Dữ liệu", "autoSaved": "✅ Đã tự động lưu tiến trình", "dataLoaded": "✅ Đã tải tiến trình thành công", "fileSaved": "✅ Đã lưu vào tệp thành công", "fileLoaded": "✅ Đã tải từ tệp thành công", "noSavedData": "❌ Không tìm thấy tiến trình đã lưu", "savedDataFound": "✅ Tìm thấy tiến trình đã lưu! Tải để tiếp tục?", "savedDate": "Đã lưu vào: {date}", "clickLoadToContinue": "Nhấp 'Tải tiến trình' để tiếp tục.", "fileError": "❌ Lỗi khi xử lý tệp", "invalidFileFormat": "❌ Định dạng tệp không hợp lệ", "paintingSpeed": "Tốc độ vẽ", "pixelsPerSecond": "pixel/giây", "speedSetting": "Tốc độ: {speed} pixel/giây", "keepAspectRatio": "Giữ tỷ lệ khung hình", "settings": "Cài đặt", "botSettings": "Cài đặt Bot", "close": "Đóng", "language": "Ngôn ngữ", "themeSettings": "Cài đặt Giao diện", "themeSettingsDesc": "Chọn chủ đề màu sắc yêu thích cho giao diện.", "languageSelectDesc": "Chọn ngôn ngữ ưa thích. Thay đổi sẽ có hiệu lực ngay lập tức.", "autoCaptcha": "Tự động giải CAPTCHA", "autoCaptchaDesc": "Tự động cố gắng giải CAPTCHA bằng cách mô phỏng việc đặt pixel thủ công khi token hết hạn.", "applySettings": "Áp dụng cài đặt", "settingsSaved": "✅ Đã lưu cài đặt thành công!", "speedOn": "Bật", "speedOff": "Tắt", "cooldownSettings": "Cài đặt thời gian chờ", "waitCharges": "Chờ cho đến khi số lần sạc đạt", "captchaSolving": "🤖 Đang cố gắng giải CAPTCHA...", "captchaFailed": "❌ Giải CAPTCHA tự động thất bại. Vui lòng vẽ một pixel thủ công.", "automation": "Tự động hóa", "noChargesThreshold": "⌛ Đang chờ số lần sạc đạt {threshold}. Hiện tại {current}. Lần tiếp theo trong {time}...", "tokenCapturedSuccess": "Đã bắt token thành công! Bạn có thể khởi động bot ngay.", "notificationsNotSupported": "Thông báo không được hỗ trợ trong trình duyệt này.", "chargesReadyNotification": "WPlace — Điện tích sẵn sàng", "chargesReadyMessage": "Điện tích sẵn sàng: {current} / {max}. Ngưỡng: {threshold}.", "testNotificationTitle": "WPlace — Thử nghiệm", "testNotificationMessage": "Đây là thông báo thử nghiệm.", "showStats": "Hiển thị thống kê", "compactMode": "Chế độ gọn", "refreshCharges": "Làm mới điện tích", "closeStats": "Đóng thống kê", "zoomOut": "Thu nhỏ", "zoomIn": "Phóng to", "fitToView": "Vừa màn hình", "actualSize": "Kích thước thực (100%)", "panMode": "Di chuyển (kéo để di chuyển)", "clearIgnoredPixels": "Xóa tất cả pixel bị bỏ qua", "invertMask": "Đảo ngược mặt nạ", "waitingSetupComplete": "🔄 Đang chờ thiết lập ban đầu hoàn tất...", "waitingTokenGenerator": "🔄 Đang chờ bộ tạo token khởi tạo...", "uploadImageFirst": "Tải lên hình ảnh trước để bắt màu có sẵn", "pleaseWaitInitialSetup": "🔄 Vui lòng đợi thiết lập ban đầu hoàn tất trước khi tải tiến trình.", "pleaseWaitFileSetup": "🔄 Vui lòng đợi thiết lập ban đầu hoàn tất trước khi tải từ tệp.", "errorSavingProgress": "❌ Lỗi khi lưu tiến trình", "errorLoadingProgress": "❌ Lỗi khi tải tiến trình", "fileOperationsAvailable": "📂 Các thao tác tệp (Tải/Upload) đã có sẵn!", "tokenGeneratorReady": "🔑 Bộ tạo token đã sẵn sàng!", "paintingStats": "Thống kê vẽ", "enablePaintingSpeedLimit": "Bật giới hạn tốc độ vẽ (kiểm soát kích thước lô)", "enableNotifications": "Bật thông báo", "notifyOnChargesThreshold": "Thông báo khi điện tích đạt ngưỡng", "onlyWhenNotFocused": "Chỉ khi tab không được chọn", "repeatEvery": "Lặp lại mỗi", "minutesPl": "phút", "grantPermission": "Cấp quyền", "test": "Thử nghiệm", "showAllColorsIncluding": "Hiển thị tất cả màu (bao gồm không có sẵn)", "chromaWeight": "Trọng số độ bão hòa", "downloadPreview": "Tải xuống xem trước", "apply": "Áp dụng", "cancel": "Hủy", "fit": "Vừa khung", "hundred": "100%", "clear": "Xóa", "invert": "Đảo ngược", "reprocessingOverlay": "Đang xử lý lại lớp phủ...", "overlayUpdated": "Lớp phủ đã cập nhật!", "notificationsEnabled": "Đã bật thông báo.", "notificationsPermissionDenied": "Quyền thông báo bị từ chối.", "overlayEnabled": "Đã bật lớp phủ.", "overlayDisabled": "Đã tắt lớp phủ.", "tokenSourceSet": "Nguồn token được đặt thành: {source}", "batchModeSet": "Chế độ lô được đặt thành: {mode}", "randomRange": "Phạm vi ngẫu nhiên", "normalFixedSize": "Kích thước cố định bình thường", "advancedColorSettingsReset": "Đã đặt lại cài đặt màu nâng cao.", "shiftRowAltColumn": "Shift = Hàng • Alt = Cột", "hideTurnstileBtn": "Ẩn", "turnstileInstructions": "Cloudflare Turnstile — vui lòng hoàn thành kiểm tra nếu được hiển thị", "uploadImageFirstColors": "Vui lòng tải lên hình ảnh trước để bắt màu có sẵn", "availableColors": "Màu có sẵn ({count})", "colorTooltip": "ID: {id}\nRGB: {rgb}", "expandMode": "Chế độ mở rộng", "minimize": "Thu nhỏ", "restore": "Khôi phục", "hideStats": "Ẩn thống kê", "paintOptions": "Tùy chọn vẽ", "paintWhitePixels": "Vẽ điểm ảnh trắng", "paintWhitePixelsDescription": "Nếu được bật, các pixel trắng của mẫu sẽ được vẽ.", "paintTransparentPixels": "Vẽ điểm ảnh trong suốt", "paintTransparentPixelsDescription": "Nếu được bật, các pixel trong suốt của mẫu sẽ được vẽ", "paintUnavailablePixels": "Vẽ pixel không khả dụng", "paintUnavailablePixelsDescription": "Nếu được bật, màu mẫu không khả dụng sẽ được vẽ bằng màu khả dụng gần nhất", "paintingModeAuto": "Tự động", "paintingModeAssist": "Trợ giúp", "paintingModeAutoDesc": "Bot sẽ tự động vẽ pixel", "paintingModeAssistDesc": "Lớp phủ sẽ hướng dẫn việc đặt pixel thủ công của bạn", "colorsUpdated": "✅ Màu khả dụng tăng {oldCount} -> {newCount}, tìm thấy {diffCount} màu mới", "overlayTilesNotLoaded": "❌ Ô bản đồ cần thiết chưa được tải. Kiểm tra kết nối hoặc thử lại.", "paintingBatchFailed": "❌ Gửi lô thất bại sau nhiều lần thử. Dừng vẽ.", "paintingPixelCheckFailed": "❌ Không thể đọc pixel tại ({x}, {y}). Dừng vẽ.", "paintingFinalBatchFailed": "⚠️ Lô cuối cùng gồm {count} pixel thất bại sau nhiều lần thử.", "paintingStoppedByUser": "⏹️ Người dùng đã dừng vẽ", "fullChargeIn": "Sạc đầy trong", "batchSize": "Kích thước lô", "autoLoadProgress": "Tự động tải tiến trình đã lưu", "autoLoadProgressDesc": "Nếu bật, sẽ tự động tải tiến trình đã lưu sau khi bộ tạo token được khởi tạo khi tải trang." }