diff --git a/docutranslate/static/i18nData.json b/docutranslate/static/i18nData.json
index d0f6714..30521b3 100644
--- a/docutranslate/static/i18nData.json
+++ b/docutranslate/static/i18nData.json
@@ -344,5 +344,178 @@
"configImportSuccess": "Configuration imported successfully!",
"configImportError": "Failed to parse config file, please check the file format.",
"providerLabel": "Provider"
+ },
+ "vi": {
+ "pageTitle": "DocuTranslate - Dịch tài liệu tương tác",
+ "tutorialBtn": "Hướng dẫn",
+ "projectContributeBtn": "Hợp tác dự án",
+ "workflowTitle": "Chọn quy trình làm việc",
+ "workflowOptionMarkdown": "Chuyển sang Markdown rồi dịch (.pdf/.md/.png, v.v.)",
+ "workflowOptionTxt": "Dịch văn bản thuần (.txt)",
+ "workflowOptionEpub": "Dịch EPUB (.epub)",
+ "workflowOptionDocx": "Dịch DOCX (.docx)",
+ "workflowOptionXlsx": "Dịch XLSX (.xlsx/.csv)",
+ "workflowOptionSrt": "Dịch phụ đề SRT (.srt)",
+ "workflowOptionAss": "Dịch phụ đề ASS (.ass)",
+ "workflowOptionJson": "Dịch JSON (.json)",
+ "workflowOptionHtml": "Dịch HTML (.html)",
+ "workflowOptionPptx": "Thuyết trình PPTX (.pptx)",
+ "autoWorkflowLabel": "Tự động chọn quy trình",
+ "txtSettingsTitleText": "Tùy chọn dịch TXT",
+ "insertModeLabel": "Chế độ chèn",
+ "insertModeReplace": "Thay thế bản gốc (Replace)",
+ "insertModeAppend": "Thêm vào sau bản gốc (Append)",
+ "insertModePrepend": "Thêm vào trước bản gốc (Prepend)",
+ "insertModeHelpTxt": "Chọn cách chèn văn bản đã dịch.",
+ "separatorLabel": "Dấu phân cách",
+ "separatorPlaceholderSimple": "Ví dụ: \\n---\\n",
+ "separatorHelp": "Ký tự dùng để phân cách văn bản gốc và văn bản dịch trong chế độ Append hoặc Prepend. \\n đại diện cho xuống dòng.",
+ "segmentModeLabel": "Chế độ phân đoạn",
+ "segmentModeLine": "Theo dòng (Mỗi dòng là một đoạn)",
+ "segmentModeParagraph": "Theo đoạn văn (Gộp các dòng không trống liên tiếp)",
+ "segmentModeNone": "Không phân đoạn (Toàn bộ văn bản là một đoạn)",
+ "segmentModeHelp": "Chọn cách phân chia văn bản để dịch.",
+ "docxSettingsTitleText": "Tùy chọn dịch DOCX",
+ "insertModeHelpDocx": "Chọn cách chèn văn bản đã dịch.",
+ "xlsxSettingsTitleText": "Tùy chọn dịch XLSX",
+ "insertModeHelpXlsx": "Chọn cách chèn văn bản đã dịch vào các ô.",
+ "xlsxTranslateRegionsLabel": "Vùng dịch (Tùy chọn)",
+ "xlsxTranslateRegionsPlaceholder": "Mỗi dòng một vùng, ví dụ: Sheet1!A1:B10 (áp dụng cho tất cả các sheet nếu bỏ qua tên sheet).",
+ "srtSettingsTitleText": "Tùy chọn dịch SRT",
+ "insertModeHelpSrt": "Chọn cách chèn văn bản đã dịch.",
+ "epubSettingsTitleText": "Tùy chọn dịch EPUB",
+ "insertModeHelpEpub": "Chọn cách chèn văn bản đã dịch.",
+ "htmlSettingsTitleText": "Tùy chọn dịch HTML",
+ "insertModeHelpHtml": "Chọn cách chèn văn bản đã dịch.",
+ "assSettingsTitleText": "Tùy chọn dịch ASS",
+ "insertModeHelpAss": "Chọn cách chèn văn bản đã dịch.",
+ "separatorPlaceholderAss": "Ví dụ: \\N (ký tự xuống dòng)",
+ "separatorHelpAss": "Ký tự dùng để phân cách văn bản gốc và văn bản dịch trong chế độ Append hoặc Prepend. \\N là ký tự xuống dòng cho định dạng ASS.",
+ "pptxSettingsTitleText": "Tùy chọn dịch PPTX",
+ "insertModeHelpPptx": "Chọn cách chèn văn bản đã dịch vào hộp văn bản.",
+ "jsonSettingsTitleText": "Cấu hình đường dẫn JSON",
+ "jsonPathLabel": "Đường dẫn JSON cần dịch",
+ "jsonPathPlaceholder": "Mỗi dòng một đường dẫn, ví dụ:\n$.name\n$.*",
+ "jsonPathHelp": "Sử dụng cú pháp jsonpath-ng. Mỗi dòng đại diện cho một đường dẫn JSON. Tất cả các chuỗi trong các đối tượng khớp sẽ được dịch.",
+ "parsingSettingsTitleText": "Cấu hình phân tích",
+ "parsingEngineLabel": "Công cụ phân tích",
+ "parsingEngineHelp": "Nếu tệp tải lên đã ở định dạng .md, mục này có thể bỏ qua.",
+ "mineruTokenPlaceholder": "Bắt buộc khi sử dụng công cụ Mineru",
+ "modelVersionLabel": "Phiên bản mô hình Mineru",
+ "modelVersionVlm": "VLM",
+ "modelVersionPipline": "Pipeline",
+ "modelVersionHelp": "Mineru VLM là mô hình thử nghiệm nội bộ mới hơn.",
+ "mineruDeployBaseUrlLabel": "URL dịch vụ (Base URL)",
+ "mineruDeployBaseUrlPlaceholder": "Ví dụ: http://127.0.0.1:8000",
+ "mineruDeployBackendLabel": "Loại Backend",
+ "mineruDeployLangListLabel": "Danh sách ngôn ngữ (Chế độ Pipeline)",
+ "mineruDeployServerUrlLabel": "URL máy chủ",
+ "mineruDeployServerUrlPlaceholder": "Ví dụ: http://127.0.0.1:30000",
+ "mineruDeployParseMethodLabel": "Phương pháp phân tích",
+ "mineruDeployTableEnableLabel": "Nhận dạng bảng",
+ "mineruDeployStartPageLabel": "Trang bắt đầu",
+ "mineruDeployEndPageLabel": "Trang kết thúc",
+ "mineruDeployFormulaEnableLabel": "Bật phân tích công thức",
+ "formulaOcrLabel": "Nhận dạng công thức",
+ "codeOcrLabel": "Nhận dạng mã (Code)",
+ "aiSettingsTitleText": "Mô hình dịch",
+ "skipTranslationLabel": "Bỏ qua dịch thuật",
+ "platformLabel": "Chọn nền tảng",
+ "platformCustom": "API tùy chỉnh",
+ "baseUrlLabel": "Địa chỉ API (Base URL)",
+ "baseUrlPlaceholder": "Địa chỉ tương thích OpenAI",
+ "apiKeyPlaceholder": "Vui lòng nhập API Key của bạn",
+ "modelIdLabel": "Model ID",
+ "modelIdPlaceholder": "Ví dụ: gpt-4o, glm-4",
+ "systemProxyLabel": "Bật proxy hệ thống",
+ "forceJson": "Bắt buộc xuất JSON",
+ "forceJsonTooltip": "Bắt buộc mô hình xuất định dạng JSON khi được yêu cầu. Có thể làm giảm chất lượng dịch; khuyên dùng nên tắt đối với các mô hình tuân thủ hướng dẫn tốt.",
+ "translationSettingsTitleText": "Cấu hình dịch thuật",
+ "targetLanguageLabel": "Ngôn ngữ đích",
+ "targetLanguageCustom": "Khác (Tùy chỉnh)",
+ "customLangPlaceholder": "Vui lòng nhập ngôn ngữ đích, ví dụ: Vietnamese",
+ "thinkingModeLabel": "Chế độ tư duy (Thinking Mode)",
+ "thinkingModeTooltip": "Thiết lập xem mô hình suy luận hỗn hợp có thực hiện tư duy hay không. Hiện được hỗ trợ bởi dòng glm4.5 của Zhipu, dòng seed1.6 của Volcengine, SiliconFlow, dòng Gemini của Google và 302AI (một phần). Khuyên dùng tùy chọn 'Tắt'.",
+ "thinkingModeEnable": "Bật",
+ "thinkingModeDisable": "Tắt (Khuyên dùng)",
+ "thinkingModeDefault": "Mặc định",
+ "customPromptLabel": "Prompt tùy chỉnh",
+ "customPromptPlaceholder": "Tùy chọn, ví dụ: \"Không dịch tên người, giữ nguyên ngôn ngữ gốc\"",
+ "chunkSizeLabel": "Kích thước phân khối (Chunk Size)",
+ "resetBtn": "Đặt lại",
+ "concurrentLabel": "Số lượng đồng thời",
+ "retryLabel": "Thử lại",
+ "rpmLabel": "Số yêu cầu mỗi phút (RPM)",
+ "tpmLabel": "Số token mỗi phút (TPM - Ước tính)",
+ "unlimitedPlaceholder": "Để trống nếu không giới hạn",
+ "glossaryGenTitle": "Thuật ngữ",
+ "glossaryLabel": "Bảng thuật ngữ (Tùy chọn)",
+ "glossaryHelp": "Chọn một hoặc nhiều tệp CSV. Các tệp phải chứa tiêu đề 'src' và 'dst', đại diện cho thuật ngữ nguồn và đích.",
+ "viewGlossaryBtn": "Xem bảng thuật ngữ",
+ "clearGlossaryBtn": "Xóa",
+ "glossaryGenEnableLabel": "Tự động tạo bảng thuật ngữ",
+ "glossaryCustomPromptLabel": "Prompt tùy chỉnh",
+ "glossaryCustomPromptPlaceholder": "Gợi ý tạo bảng thuật ngữ",
+ "glossaryGenConfigLabel": "Cấu hình tạo thuật ngữ",
+ "glossaryGenConfigSame": "Giống cấu hình dịch",
+ "glossaryGenConfigCustom": "Tùy chỉnh",
+ "importConfigBtn": "Nhập cấu hình",
+ "exportConfigBtn": "Xuất cấu hình",
+ "taskListTitle": "Danh sách tác vụ",
+ "newTaskBtn": "Tác vụ mới",
+ "noTaskPlaceholder": "Chưa có tác vụ nào. Nhấn \"Tác vụ mới\" để bắt đầu!",
+ "taskCardIdLabel": "ID Tác vụ",
+ "taskCardIdPlaceholder": "Đang chờ gửi...",
+ "taskCardFileDrop": "Nhấp hoặc kéo tệp vào đây",
+ "taskCardFileSelected": "Đã chọn tệp",
+ "taskCardFilenameLabel": "Tên tệp: ",
+ "taskCardLogLabel": "Nhật ký (Logs)",
+ "copyLogsTooltip": "Sao chép nhật ký",
+ "taskCardStatusWaiting": "Đang chờ tải tệp lên...",
+ "taskCardPreviewBtn": "Xem trước",
+ "taskCardDownloadBtn": "Tải xuống",
+ "taskCardAttachmentBtn": "Tệp đính kèm",
+ "taskCardStartBtn": "Bắt đầu dịch",
+ "downloadMdEmbedded": "Markdown (Nhúng ảnh)",
+ "downloadMdZip": "Markdown nén (Zip)",
+ "previewBilingualBtn": "Song ngữ",
+ "previewTranslatedOnlyBtn": "Chỉ bản dịch",
+ "syncScrollTooltip": "Cuộn đồng bộ",
+ "previewOriginal": "Bản gốc",
+ "previewTranslated": "Bản dịch",
+ "closeBtn": "Đóng",
+ "tutorialModalTitle": "Hướng dẫn sử dụng",
+ "tutorialModalBody": "
Video hướng dẫn có sẵn trên Bilibili bằng cách tìm kiếm docutranslate.
Chào mừng bạn đến với DocuTranslate! Vui lòng làm theo các bước sau để dịch tài liệu của bạn:
Ở đầu bảng cấu hình bên trái, trước tiên hãy chọn quy trình xử lý phù hợp nhất với loại tệp của bạn.
.txt..epub..docx..xlsx hoặc .csv..pptx..srt..ass..json..html.Sau khi chọn quy trình, các tùy chọn cấu hình liên quan sẽ xuất hiện bên dưới. Vui lòng hoàn tất cài đặt theo thứ tự (tất cả cấu hình được tự động lưu trong trình duyệt của bạn):
A. Tùy chọn riêng theo quy trình (Xuất hiện dựa trên lựa chọn ở Bước 1):
minerU, bạn cần nhập token vào đây.\\\\N thường dùng cho định dạng ASS, <br /> cho định dạng EPUB để xuống dòng).$.* (dịch tất cả chuỗi), $..description (dịch tất cả giá trị có khóa là description).B. Tùy chọn chung (Áp dụng cho mọi quy trình):
Trong danh sách tác vụ bên phải, nhấp hoặc kéo tài liệu của bạn vào khu vực tải lên.
Sau khi chọn tệp thành công, nhấp nút Bắt đầu dịch ở góc dưới bên phải thẻ tác vụ. Hệ thống sẽ bắt đầu xử lý và bạn có thể xem tiến độ thời gian thực trong khu vực nhật ký.
Sau khi dịch xong, các nút thao tác sẽ xuất hiện trên thẻ tác vụ: