src/components/common/download/download-form.tsx
line 266
}
/** "AI upscale" switch plus a factor slider. `scale` is read off the dimensions, so a typed
/** "AI sharpen & enlarge" switch plus a factor slider. `scale` is read off the dimensions, so a typed
* size moves the slider too; `maxFactor` is the largest factor the size limits allow. With
* `available` false the On tab is disabled and the helper says why. */
src/components/common/lightbox/lightbox-download-modal.tsx
line 91
/**
* A confirm dialog for choosing the download file name, resolution, file-size budget and
* the AI disclaimer. Max file size defaults to "No limit", with a "Specific" KB budget
* the AI disclaimer. Max file size defaults to "No limit", with a "Set a limit" KB budget
* seeded at 500 (the common ad-platform cap); an emptied Specific budget DISABLES Download
* rather than silently exporting uncapped. The AI disclaimer is on by default and turning
line 140
/** Extra form section above the dimensions (a page picker). */
extraFields?: ReactNode;
/** Offers "AI upscale" (an image downloaded through the URL). */
/** Offers "AI sharpen & enlarge" (an image downloaded through the URL). */
allowUpscale?: boolean;
}) {
src/components/common/lightbox/lightbox.tsx
line 195
downloadDefaultSize?: { width: number; height: number };
downloadNaturalSize?: { width: number; height: number } | null;
/** Offers "AI upscale" in the download dialog. */
/** Offers "AI sharpen & enlarge" in the download dialog. */
allowUpscale?: boolean;
/** Opened from inside a dialog: on the `raised` tier, over that dialog's popup. */
src/features/artifact/utils/folder/folderDownloadBudget.ts
line 5
/**
* Valid when the mode is "No limit", or "Specific" with a positive number of
* kilobytes. A "Specific" look whose field was emptied must hold the download: the
* Valid when the mode is "No limit", or "Set a limit" with a positive number of
* kilobytes. A "Set a limit" look whose field was emptied must hold the download: the
* server drops a non-positive budget, so it would silently export unlimited.
*/
src/i18n/locales/vi.json
line 574
},
"download": {
"discDefaultText": "Văn bản mặc định",
"discDefaultText": "Chữ mặc định",
"discHide": "Ẩn",
"scopeAll": "Tất cả ảnh",
"scopeEach": "Cấu hình từng ảnh",
"scopeEach": "Chỉnh riêng từng ảnh",
"tooMany": "Chỉ chọn tối đa {max} tệp để tải xuống cùng lúc",
"preparing": "Đang chuẩn bị tải xuống…",
line 590
"shipsAsIs": "Loại tệp này được giữ nguyên.",
"selectFile": "Chọn một tệp.",
"aiDisclaimer": "Nhãn miễn trừ AI",
"aiDisclaimer": "Nhãn AI trên ảnh",
"brandDefaultImage": "Nhãn miễn trừ mặc định của thương hiệu bạn là hình ảnh. Hiện tại tải thư mục chỉ dùng văn bản.",
"disclaimerText": "Nội dung miễn trừ",
"resetOverride": "Đặt lại ảnh này về giao diện chung",
"cannotResize": "Loại tệp này không thể đổi kích thước hay gắn nhãn — tệp được đưa vào zip nguyên trạng.",
"limitsHint": "Giới hạn sẽ nén ở kích thước đã chọn — PNG vượt hạn mức sẽ được xuất thành .jpg.",
"limitsHint": "Ảnh vượt dung lượng sẽ được nén; PNG vẫn quá nặng sẽ được lưu thành JPG.",
"limitInvalid": "Giới hạn dung lượng phải ít nhất 1 KB — chuyển lại Không giới hạn để không giới hạn ảnh.",
"downloadCsv": "Tải CSV",
line 2928
"maxFileSize": "Dung lượng tối đa",
"noLimit": "Không giới hạn",
"specific": "Cụ thể",
"specific": "Đặt mức",
"maxKbLabel": "Dung lượng tối đa tùy chỉnh (kilobyte)",
"format": "Định dạng",
"upscale": {
"label": "Nâng cấp AI",
"label": "Làm nét & phóng to bằng AI",
"off": "Tắt",
"on": "Bật",
line 3111
"audioNote": "Tệp âm thanh gốc sẽ được tải xuống nguyên trạng.",
"videoNote": "Đổi kích thước, giới hạn dung lượng và nhãn miễn trừ AI chưa hỗ trợ cho video — tệp gốc sẽ được tải xuống nguyên trạng.",
"suggestedResolution": "Độ phân giải đề xuất",
"suggestedResolution": "Kích thước gợi ý",
"or": "hoặc",
"aiDisclaimer": "Nhãn miễn trừ AI",
"aiDisclaimer": "Nhãn AI trên ảnh",
"discTabs": {
"text": "Văn bản mặc định",
"text": "Chữ mặc định",
"hide": "Ẩn",
"image": "Tải ảnh lên"
"image": "Dùng ảnh riêng"
},
"uploadOverlay": "Tải ảnh miễn trừ lên",
line 3132
"fallbackName": "ảnh",
"upscalingToast": "Đang nâng cấp {name}… Tệp sẽ tự tải xuống khi sẵn sàng.",
"upscaleFailed": "Không thể nâng cấp ảnh này. Hãy thử lại hoặc tắt nâng cấp AI.",
"upscaleFailed": "Không thể nâng cấp ảnh này. Hãy thử lại hoặc tắt Làm nét & phóng to bằng AI.",
"upscaleDone": "Đã nâng cấp — đang tải xuống."
}