diff --git a/invokeai/frontend/web/public/locales/vi.json b/invokeai/frontend/web/public/locales/vi.json
index 9c85cec12d1..1f929ad5e95 100644
--- a/invokeai/frontend/web/public/locales/vi.json
+++ b/invokeai/frontend/web/public/locales/vi.json
@@ -220,7 +220,11 @@
"tab": "Tab",
"loadingModel": "Đang Tải Model",
"generating": "Đang Tạo Sinh",
- "warnings": "Cảnh Báo"
+ "warnings": "Cảnh Báo",
+ "count": "Đếm",
+ "step": "Bước",
+ "values": "Giá Trị",
+ "start": "Bắt Đầu"
},
"prompt": {
"addPromptTrigger": "Thêm Prompt Trigger",
@@ -965,7 +969,11 @@
"outputFieldTypeParseError": "Không thể phân tích loại dữ liệu đầu ra của {{node}}.{{field}} ({{message}})",
"modelAccessError": "Không thể tìm thấy model {{key}}, chuyển về mặc định",
"internalDesc": "Trình kích hoạt này được dùng bên trong bởi Invoke. Nó có thể phá hỏng thay đổi trong khi cập nhật ứng dụng và có thể bị xoá bất cứ lúc nào.",
- "specialDesc": "Trình kích hoạt này có một số xử lý đặc biệt trong ứng dụng. Ví dụ, Node Hàng Loạt được dùng để xếp vào nhiều đồ thị từ một workflow."
+ "specialDesc": "Trình kích hoạt này có một số xử lý đặc biệt trong ứng dụng. Ví dụ, Node Hàng Loạt được dùng để xếp vào nhiều đồ thị từ một workflow.",
+ "addItem": "Thêm Mục",
+ "generateValues": "Cho Ra Giá Trị",
+ "floatRangeGenerator": "Phạm Vị Tạo Ra Số Thực",
+ "integerRangeGenerator": "Phạm Vị Tạo Ra Số Nguyên"
},
"popovers": {
"paramCFGRescaleMultiplier": {
@@ -1458,8 +1466,8 @@
"recallMetadata": "Gợi Lại Metadata",
"clipSkip": "CLIP Skip",
"general": "Cài Đặt Chung",
- "boxBlur": "Box Blur",
- "gaussianBlur": "Gaussian Blur",
+ "boxBlur": "Làm Mờ Dạng Box",
+ "gaussianBlur": "Làm Mờ Dạng Gaussian",
"staged": "Staged (Tăng khử nhiễu có hệ thống)",
"scaledHeight": "Tỉ Lệ Dài",
"cancel": {
@@ -1859,7 +1867,25 @@
},
"advanced": "Nâng Cao",
"processingLayerWith": "Đang xử lý layer với bộ lọc {{type}}.",
- "forMoreControl": "Để kiểm soát tốt hơn, bấm vào mục Nâng Cao bên dưới."
+ "forMoreControl": "Để kiểm soát tốt hơn, bấm vào mục Nâng Cao bên dưới.",
+ "img_blur": {
+ "description": "Làm mờ layer được chọn.",
+ "blur_type": "Dạng Làm Mờ",
+ "blur_radius": "Radius",
+ "gaussian_type": "Gaussian",
+ "label": "Làm Mờ Ảnh",
+ "box_type": "Box"
+ },
+ "img_noise": {
+ "salt_and_pepper_type": "Salt and Pepper",
+ "noise_amount": "Lượng Nhiễu",
+ "label": "Độ Nhiễu Ảnh",
+ "description": "Tăng độ nhiễu vào layer được chọn.",
+ "noise_type": "Dạng Nhiễu",
+ "gaussian_type": "Gaussian",
+ "noise_color": "Màu Nhiễu",
+ "size": "Cỡ Nhiễu"
+ }
},
"transform": {
"fitModeCover": "Che Phủ",
@@ -2067,7 +2093,8 @@
"problemCopyingImage": "Không Thể Sao Chép Ảnh",
"problemDownloadingImage": "Không Thể Tải Xuống Ảnh",
"problemCopyingLayer": "Không Thể Sao Chép Layer",
- "problemSavingLayer": "Không Thể Lưu Layer"
+ "problemSavingLayer": "Không Thể Lưu Layer",
+ "outOfMemoryErrorDescLocal": "Làm theo hướng dẫn VRAM Thấp của chúng tôi để hạn chế OOM (Tràn bộ nhớ)."
},
"ui": {
"tabs": {
@@ -2153,7 +2180,8 @@
"toGetStartedLocal": "Để bắt đầu, hãy chắc chắn đã tải xuống hoặc thêm vào model cần để chạy Invoke. Sau đó, nhập lệnh vào hộp và nhấp chuột vào Kích Hoạt để tạo ra bức ảnh đầu tiên. Chọn một mẫu trình bày cho lệnh để cải thiện kết quả. Bạn có thể chọn để lưu ảnh trực tiếp vào Thư Viện hoặc chỉnh sửa chúng ở Canvas.",
"gettingStartedSeries": "Cần thêm hướng dẫn? Xem thử Bắt Đầu Làm Quen để biết thêm mẹo khai thác toàn bộ tiềm năng của Invoke Studio.",
"toGetStarted": "Để bắt đầu, hãy nhập lệnh vào hộp và nhấp chuột vào Kích Hoạt để tạo ra bức ảnh đầu tiên. Chọn một mẫu trình bày cho lệnh để cải thiện kết quả. Bạn có thể chọn để lưu ảnh trực tiếp vào Thư Viện hoặc chỉnh sửa chúng ở Canvas.",
- "noModelsInstalled": "Hình như bạn không có model nào được tải cả"
+ "noModelsInstalled": "Dường như bạn chưa tải model nào cả! Bạn có thể tải xuống các model khởi đầu hoặc nhập vào thêm model.",
+ "lowVRAMMode": "Cho hiệu suất tốt nhất, hãy làm theo hướng dẫn VRAM Thấp của chúng tôi."
},
"whatsNew": {
"whatsNewInInvoke": "Có Gì Mới Ở Invoke",