{
"app": {
"title": "Công cụ sáng tác tiểu thuyết TiniX Story 1.0",
"window_title": "Công cụ sáng tác tiểu thuyết TiniX Story 1.0 - Phiên bản chuyên nghiệp",
"subtitle": "_Hệ thống sáng tác tiểu thuyết thông minh cấp chuyên nghiệp v1.0 chính thức_",
"startup_log": "Công cụ sáng tác tiểu thuyết TiniX Story 1.0 chính thức khởi động",
"port_in_use": "Cổng {port} đã bị chiếm, sử dụng cổng {new_port}",
"backends_loaded": "Đã tải {count} backend",
"no_backends_warning": "⚠️ Không có backend nào được bật! Vui lòng thêm cấu hình API trong phần cài đặt",
"init_failed": "Khởi tạo thất bại: {error}",
"gradio_start": "Đang khởi động Gradio... (cổng: {port})",
"gradio_failed": "Khởi động Gradio thất bại: {error}"
},
"tabs": {
"rewrite": "📝 Viết lại tiểu thuyết",
"polish": "✨ Trau chuốt tiểu thuyết",
"create": "✍️ Sáng tác từ đầu",
"continue_tab": "📖 Viết tiếp dự án",
"export": "💾 Xuất & Chia sẻ",
"projects": "📂 Quản lý dự án",
"settings": "⚙️ Cài đặt hệ thống",
"about": "ℹ️ Giới thiệu"
},
"rewrite": {
"header": "### Tải lên tiểu thuyết → Chọn chế độ → Xử lý thông minh",
"mode_rewrite": "Chế độ viết lại",
"mode_continue": "Chế độ viết tiếp",
"mode_label": "Chế độ chức năng",
"rewrite_header": "#### 🔄 Chế độ viết lại: Tải lên tiểu thuyết → Chọn phong cách → Viết lại thông minh",
"upload_file": "📤 Tải lên tệp (txt/pdf/epub/md/docx)",
"split_method_label": "Phương thức phân đoạn",
"split_auto": "Phân đoạn tự động",
"split_by_words": "Phân đoạn theo số chữ",
"split_by_pattern": "Phân đoạn theo văn bản cố định",
"words_per_segment": "Số chữ mỗi đoạn",
"words_per_segment_info": "Phân đoạn đều theo số chữ",
"pattern_label": "Đánh dấu phân đoạn",
"pattern_placeholder": "Hỗ trợ biến: %章、%节、%回, hoặc văn bản tùy chỉnh như ---、*** v.v.",
"pattern_info": "Sử dụng %章 để khớp 'Chương X', %节 khớp 'Phần X', %回 khớp 'Hồi X'",
"keep_marker": "Giữ lại đánh dấu phân đoạn",
"keep_marker_info": "Có giữ lại văn bản đánh dấu trong phân đoạn không",
"parse_file_btn": "Phân tích tệp",
"preset_style": "Phong cách thiết lập sẵn",
"parse_status": "Trạng thái phân tích",
"start_rewrite": "Bắt đầu viết lại",
"stop_rewrite": "Dừng viết lại",
"live_preview": "Xem trước trực tiếp",
"full_rewritten": "Văn bản viết lại đầy đủ (có thể chỉnh sửa)",
"progress_stats": "Thống kê tiến độ",
"continue_header": "#### ✍️ Chế độ viết tiếp: Tải lên tiểu thuyết hiện có → AI viết tiếp thông minh",
"upload_existing": "📤 Tải lên tiểu thuyết hiện có (txt/pdf/epub/md/docx)",
"novel_title": "📖 Tên tiểu thuyết",
"novel_title_placeholder": "Nhập tên tiểu thuyết",
"target_words": "📊 Số chữ mục tiêu",
"char_setting": "👥 Thiết lập nhân vật",
"char_setting_placeholder": "Tên nhân vật chính, tính cách, bối cảnh v.v. (tùy chọn)",
"world_setting": "🌍 Thiết lập thế giới quan",
"world_setting_placeholder": "Bối cảnh thời đại, quy tắc thế giới v.v. (tùy chọn)",
"plot_idea": "📖 Ý tưởng cốt truyện chính",
"plot_idea_placeholder": "Xung đột cốt lõi, hướng phát triển, kết thúc v.v. (tùy chọn)",
"existing_content": "Nội dung hiện có (có thể chỉnh sửa)",
"continue_result": "Kết quả viết tiếp",
"continue_status": "Trạng thái viết tiếp",
"start_continue": "Bắt đầu viết tiếp"
},
"polish": {
"header": "### Tải lên tiểu thuyết → Chọn loại trau chuốt → Tối ưu thông minh",
"upload_file": "📤 Tải lên tệp (txt/pdf/epub/md/docx)",
"polish_type_label": "Loại trau chuốt",
"polish_general": "Trau chuốt toàn diện",
"polish_find_errors": "Tìm lỗi",
"polish_suggestions": "Gợi ý cải thiện",
"polish_direct": "Sửa trực tiếp",
"polish_remove_ai": "Loại bỏ phong cách AI",
"polish_enhance": "Tăng cường chi tiết",
"polish_dialogue": "Tối ưu đối thoại",
"polish_pacing": "Cải thiện nhịp điệu",
"custom_req": "Yêu cầu tùy chỉnh (tùy chọn)",
"custom_req_placeholder": "Ví dụ: Tăng cường mô tả tính cách nhân vật, thêm bầu không khí, tối ưu lưu loát đối thoại v.v.",
"parse_status": "Trạng thái phân tích",
"start_polish": "Bắt đầu trau chuốt",
"polish_suggest_btn": "Trau chuốt & Gợi ý",
"original_text": "Văn bản gốc (có thể chỉnh sửa)",
"polished_text": "Kết quả trau chuốt",
"suggestions_label": "Gợi ý cải thiện",
"polish_status": "Trạng thái trau chuốt"
},
"create": {
"header": "### Điền thiết lập → Tạo dàn ý → Sáng tác tự động (hỗ trợ viết tiếp, tạm dừng)",
"novel_title": "📖 Tên tiểu thuyết",
"novel_title_default": "Tiểu thuyết chưa đặt tên",
"genre_label": "📚 Thể loại tiểu thuyết",
"sub_genres_label": "🏷️ Chủ đề con / Hashtag",
"suggested_titles_list": "Danh sách gợi ý (Sửa tên tại đây)",
"suggested_titles_radio": "Chọn một tiêu đề",
"suggested_titles_help": "Bạn có thể tự do chỉnh sửa văn bản ở trên, các lựa chọn bên dưới sẽ tự động cập nhật.",
"sub_genres": [
"Hậu cung",
"1v1",
"NP",
"Nữ phẫn nam trang",
"Nam phẫn nữ trang",
"Xuyên không",
"Xuyên sách",
"Trọng sinh",
"Hệ thống",
"Bàn tay vàng",
"Không gian tùy thân",
"Linh tuyền",
"Đọc tâm thuật",
"Vô địch lưu",
"Cẩu đạo",
"Nhiệt huyết",
"Hài hước",
"Sảng văn",
"Ngọt sủng",
"Ngược luyến",
"Gương vỡ lại lành",
"Cưới trước yêu sau",
"Oan gia ngõ hẹp",
"Thanh mai trúc mã",
"Hào môn thế gia",
"Tổng tài",
"Minh tinh",
"Giới giải trí",
"Vườn trường",
"Học bá",
"Võng du",
"E-sports",
"Livestream",
"Mỹ thực",
"Nông trại",
"Điền văn",
"Nuôi con",
"Làm giàu",
"Cung đấu",
"Gia đấu",
"Quyền mưu",
"Nữ cường",
"Nam cường",
"Song khiết",
"Phế Sài",
"Thiên tài",
"Từ hôn",
"Linh khí khôi phục",
"Mạt thế",
"Cơ giáp",
"Tinh tế",
"ABO",
"Người sói",
"Ma cà rồng",
"Tây huyễn",
"Ma pháp",
"Kiếm ma",
"Pháp sư",
"Giả heo ăn hổ",
"Bi kịch",
"Chữa lành",
"Hắc ám",
"Gothic",
"Tâm lý",
"Tâm thần phân liệt",
"Đa nhân cách",
"Trinh thám",
"Phá án",
"Đạo mộ",
"Cương thi",
"Quy tắc quái đàm",
"Vô hạn lưu",
"Mau xuyên",
"Thực dân",
"Chế tạo",
"Lĩnh chúa",
"Trồng trọt",
"Câu cá",
"Nuôi thú",
"Pokemon",
"Anime",
"Harry Potter",
"Marvel",
"Biển sao",
"Truyền thuyết đô thị",
"Cổ đại",
"Dân quốc",
"Thập niên 70",
"Thập niên 80",
"Thập niên 90",
"Dị thế",
"Đại lục",
"Bộ lạc",
"Nguyên thủy",
"Tu tiên",
"Trả thù",
"Pháo hôi",
"Vai ác",
"Tiên tri",
"Phép thuật"
],
"genres": [
"Huyền huyễn tiên hiệp",
"Đô thị ngôn tình",
"Khoa học viễn tưởng",
"Võ hiệp",
"Trinh thám",
"Lịch sử",
"Quân sự",
"Game",
"Kinh dị",
"Xuyên không - Trọng sinh",
"Hệ thống",
"Đồng nhân",
"Mạt thế",
"Điền văn - Hài hước",
"Cổ đại ngôn tình",
"Kỳ ảo phương Tây",
"Nữ cường",
"Tổng tài",
"Thanh xuân vườn trường",
"Cung đấu",
"Gia đấu",
"Hồng hoang",
"Ngôn tình võng du",
"Đô thị dị năng",
"Linh dị - Bí ẩn",
"Đam mỹ",
"Bách hợp",
"Thám hiểm lăng mộ",
"Dị giới đại lục",
"Cổ đại làm ruộng",
"Không gian Tùy thân",
"ABO",
"Ma cà rồng",
"Cạnh kỹ - Thể thao",
"Đồng nhân Anime",
"Vô hạn lưu",
"Khác"
],
"char_setting": "👥 Thiết lập nhân vật",
"char_setting_placeholder": "Tên nhân vật chính, tính cách, bối cảnh v.v.",
"num_main_chars": "Số lượng nhân vật chính",
"num_sub_chars": "Số lượng nhân vật phụ",
"world_setting": "🌍 Thiết lập thế giới quan",
"world_setting_placeholder": "Bối cảnh thời đại, quy tắc thế giới, thiết lập đặc biệt v.v.",
"plot_idea": "📖 Ý tưởng cốt truyện chính",
"plot_idea_placeholder": "Xung đột cốt lõi, hướng phát triển, kết thúc v.v.",
"custom_prompt_label": "📝 Yêu cầu riêng (Tùy chọn)",
"custom_prompt_placeholder": "Nhập thêm yêu cầu riêng cho AI (Ví dụ: Thể loại đô thị dị năng)",
"suggest_title_btn": "✨ Gợi ý Tên truyện",
"suggest_btn": "✨ Gợi ý bằng AI",
"suggest_plot_btn": "✨ Gợi ý cốt truyện bằng AI",
"suggesting_status": "Đang suy nghĩ gợi ý...",
"chapter_count": "📊 Số chương (mặc định 20)",
"gen_outline_btn": "Tạo dàn ý",
"outline_display": "📋 Dàn ý (có thể chỉnh sửa thủ công)",
"context_header": "### 🔄 Cài đặt tăng cường ngữ cảnh (tùy chọn)",
"enable_context": "Bật tăng cường ngữ cảnh",
"enable_context_info": "Khi bật, sẽ sử dụng tóm tắt/toàn văn các chương trước làm ngữ cảnh cho chương mới",
"context_mode_label": "Chế độ ngữ cảnh",
"context_summary_mode": "Chế độ tóm tắt",
"context_full_mode": "Chế độ toàn văn",
"context_mode_info": "Chế độ tóm tắt: sử dụng tóm tắt các chương trước; Chế độ toàn văn: sử dụng toàn bộ nội dung các chương trước",
"context_chapters": "Số chương ngữ cảnh",
"context_chapters_info": "Sử dụng tóm tắt bao nhiêu chương trước làm ngữ cảnh",
"context_max_length": "Độ dài tối đa ngữ cảnh",
"context_max_length_info": "Số ký tự tối đa của ngữ cảnh",
"outline_format_help": "#### 📝 Hướng dẫn định dạng dàn ý\nVui lòng viết dàn ý theo định dạng sau (chọn một):\n\n**Định dạng 1** (khuyến nghị):\n- Chương 1: Mở đầu - Giới thiệu nhân vật chính và thế giới quan\n- Chương 2: Xung đột - Nhân vật chính gặp thử thách lớn đầu tiên\n\n**Định dạng 2**:\n- 1. Mở đầu - Giới thiệu nhân vật chính và thế giới quan\n- 2. Xung đột - Nhân vật chính gặp thử thách lớn đầu tiên\n\n**Lưu ý**: Tiêu đề và mô tả được phân tách bằng dấu gạch ngang `-`, mỗi dòng một chương",
"start_gen_btn": "Bắt đầu tạo / Viết tiếp",
"pause_gen_btn": "Tạm dừng tạo",
"cache_status": "💾 Trạng thái bộ nhớ đệm",
"cache_status_default": "Không có bộ nhớ đệm",
"cache_timestamp": "⏰ Thời gian bộ nhớ đệm",
"export_format_label": "📄 Định dạng xuất",
"export_format_word": "Word (.docx)",
"export_format_txt": "Văn bản (.txt)",
"export_format_md": "Markdown (.md)",
"export_format_html": "HTML (.html)",
"export_progress_btn": "📥 Xuất tiến độ hiện tại",
"download_file": "Tải xuống tệp",
"export_status": "Trạng thái xuất",
"novel_display": "📚 Nội dung tiểu thuyết (cập nhật trực tiếp)",
"gen_status": "Trạng thái tạo",
"gen_status_default": "Sẵn sàng"
},
"export": {
"header": "### Xuất sáng tác ra nhiều định dạng",
"paste_content": "Dán nội dung tiểu thuyết",
"paste_placeholder": "Sao chép toàn bộ văn bản tiểu thuyết từ trang sáng tác",
"novel_title": "Tên tiểu thuyết",
"novel_title_placeholder": "Dùng làm tên tệp",
"export_word": "Xuất ra Word (.docx)",
"export_txt": "Xuất ra văn bản thuần (.txt)",
"export_md": "Xuất ra Markdown (.md)",
"export_html": "Xuất ra trang web (.html)",
"download_file": "Tải xuống tệp",
"export_status": "Trạng thái xuất",
"recent_exports": "Các tệp xuất gần đây",
"refresh_files": "Làm mới danh sách tệp",
"empty_content": "Nội dung trống"
},
"continue_tab": {
"header": "### Chọn dự án → Xem tiến độ → Tiếp tục sáng tác",
"select_project": "📖 Chọn dự án để viết tiếp",
"load_btn": "📥 Tải dự án",
"project_info": "Thông tin dự án",
"no_project_loaded": "_Chưa chọn dự án nào. Vui lòng chọn dự án từ danh sách và bấm Tải dự án._",
"info_template": "**📖 {title}** | 📚 {genre}\n\n✅ Hoàn thành: **{completed}/{total} chương** ({percent}%)\n\n👤 Nhân vật: {char}\n\n🌍 Thế giới: {world}\n\n📖 Cốt truyện: {plot}",
"outline_label": "📋 Dàn ý dự án (✅ = đã xong, ⬜ = chưa viết)",
"novel_label": "📚 Nội dung đã viết",
"context_header": "### 🔄 Cài đặt ngữ cảnh",
"continue_gen_btn": "▶️ Tiếp tục tạo chương",
"pause_btn": "⏸️ Tạm dừng",
"gen_status": "Trạng thái",
"gen_status_default": "Sẵn sàng - Chọn dự án để tiếp tục viết",
"select_first": "❌ Vui lòng chọn và tải dự án trước",
"loaded_ok": "✅ Đã tải dự án '{title}' - {completed}/{total} chương hoàn thành",
"all_complete": "✅ Dự án '{title}' đã hoàn thành tất cả chương!",
"no_project_selected": "❌ Vui lòng chọn một dự án",
"project_not_found": "❌ Không tìm thấy dự án",
"load_failed": "❌ Tải dự án thất bại: {error}",
"no_outline": "❌ Dự án không có dàn ý. Vui lòng dùng tab Sáng tác từ đầu.",
"continue_starting": "▶️ Bắt đầu tiếp tục tạo từ chương {chapter}..."
},
"projects": {
"header": "### Quản lý tất cả dự án sáng tác",
"refresh_btn": "🔄 Làm mới danh sách dự án",
"projects_table": "Dự án của tôi",
"status_label": "Trạng thái",
"export_header": "### 📥 Xuất dự án",
"select_project": "📖 Chọn dự án để xuất",
"export_format": "📄 Định dạng xuất",
"export_btn": "📤 Chuẩn bị tệp tải xuống",
"download_file": "Tệp tải xuống",
"export_status": "Trạng thái",
"delete_header": "### 🗑️ Xóa dự án",
"delete_select_project": "Chọn dự án để xóa",
"delete_btn": "🗑️ Xóa dự án vĩnh viễn",
"delete_confirm": "⚠️ Bạn có chắc chắn muốn xóa dự án này? Thao tác này KHÔNG THỂ hoàn tác.",
"delete_success": "✅ Đã xóa dự án thành công",
"delete_failed": "❌ Xóa dự án thất bại: {error}",
"actions_header": "### ✍️ Thao tác với dự án",
"select_project_action": "📖 Chọn dự án",
"continue_btn": "✍️ Viết tiếp",
"rewrite_btn": "🔄 Viết lại",
"polish_btn": "✨ Trau chuốt",
"select_project_first": "❌ Vui lòng chọn một dự án",
"project_not_found": "❌ Không tìm thấy dự án",
"loaded_to_create": "✅ Đã tải dự án '{title}' sang tab Sáng tác",
"loaded_to_rewrite": "✅ Đã tải nội dung dự án '{title}' sang tab Viết lại",
"loaded_to_polish": "✅ Đã tải nội dung dự án '{title}' sang tab Trau chuốt",
"action_status": "Trạng thái",
"ai_illustration_header": "Tạo minh họa chương AI",
"gen_illustration_btn": "Tạo minh họa",
"illustration_label": "Minh họa chương",
"select_chapter": "Vui lòng chọn một chương",
"invalid_chapter": "Chương không hợp lệ",
"chapter_not_found": "Không tìm thấy chương"
},
"settings": {
"header": "### 🔧 Cấu hình API & Tham số viết",
"tab_backends": "🌐 Quản lý giao diện",
"tab_params": "📝 Tham số tạo",
"tab_cache": "💾 Quản lý bộ nhớ đệm",
"backends_header": "#### 📋 Cấu hình backend API",
"refresh_list": "🔄 Làm mới danh sách",
"test_all": "✅ Kiểm tra tất cả giao diện",
"backends_table": "Danh sách backend đã cấu hình",
"add_backend_header": "#### ➕ Thêm giao diện mới",
"provider_label": "Nhà cung cấp API",
"provider_info": "Chọn nhà cung cấp API để tự động điền cấu hình mặc định",
"backend_name": "Tên giao diện*",
"backend_name_placeholder": "Ví dụ: OpenAI của tôi",
"backend_type": "Loại giao diện*",
"base_url": "Base URL",
"base_url_placeholder": "Ví dụ: https://api.example.com/v1 (chỉ cần điền cho giao diện tương thích OpenAI)",
"model_name": "Tên mô hình*",
"model_name_placeholder": "Tự động điền sau khi chọn nhà cung cấp, có thể sửa",
"api_key": "API Key (Ollama có thể bỏ trống)*",
"api_key_placeholder": "Nhập API Key của bạn (sẽ không được lưu dạng văn bản thuần)",
"timeout": "Thời gian chờ (giây)",
"retry_count": "Số lần thử lại",
"enable_backend": "Bật giao diện này",
"add_btn": "➕ Thêm giao diện",
"operation_result": "Kết quả thao tác",
"test_manage_header": "#### 🔍 Kiểm tra & Quản lý",
"test_backend_name": "Tên giao diện cần kiểm tra",
"test_backend_placeholder": "Nhập tên giao diện để kiểm tra kết nối",
"test_btn": "🧪 Kiểm tra kết nối",
"test_result": "Kết quả kiểm tra",
"delete_backend_name": "Tên giao diện cần xóa",
"delete_backend_placeholder": "Nhập tên giao diện để xóa",
"delete_btn": "🗑️ Xóa giao diện",
"delete_result": "Kết quả xóa",
"params_header": "#### Điều chỉnh các tham số tạo tiểu thuyết",
"temperature_label": "Temperature (Độ sáng tạo)",
"temperature_info": "Càng cao càng sáng tạo, càng thấp càng bảo thủ",
"top_p_info": "Kiểm soát tính đa dạng của đầu ra",
"top_k_info": "Chọn từ K token có khả năng cao nhất",
"max_tokens_info": "Số token tối đa mỗi lần tạo",
"chapter_target_words": "Số chữ mục tiêu mỗi chương",
"writing_style": "Phong cách viết",
"writing_styles": [
"Mượt mà tự nhiên, cốt truyện chặt chẽ, nhân vật tinh tế",
"Văn phong đẹp, ý cảnh sâu xa",
"Nhịp nhanh, cốt truyện kịch tính",
"Mô tả tinh tế, cảm xúc phong phú",
"Hài hước thú vị, nhẹ nhàng vui vẻ"
],
"tone_label": "Giọng điệu",
"tones": [
"Trung lập",
"Nghiêm túc",
"Nhẹ nhàng",
"Hoài nghi",
"Ôn hòa",
"Đam mê"
],
"char_dev_label": "Xây dựng nhân vật",
"char_dev_options": [
"Chi tiết",
"Trung bình",
"Ngắn gọn"
],
"plot_complexity_label": "Độ phức tạp cốt truyện",
"plot_complexity_options": [
"Đơn giản",
"Trung bình",
"Phức tạp"
],
"save_params_btn": "💾 Lưu tham số tạo",
"save_status": "Trạng thái lưu",
"cache_header": "#### 📋 Quản lý bộ nhớ đệm tạo",
"cache_size": "Kích thước bộ nhớ đệm",
"refresh_cache": "🔄 Làm mới danh sách bộ nhớ đệm",
"get_cache_size": "📊 Lấy kích thước bộ nhớ đệm",
"cache_table": "Danh sách bộ nhớ đệm",
"clear_selected": "🗑️ Xóa bộ nhớ đệm đã chọn",
"clear_all": "🗑️ Xóa tất cả bộ nhớ đệm",
"cache_op_status": "Trạng thái thao tác",
"summary_cache_header": "#### 📋 Quản lý bộ nhớ đệm tóm tắt ngữ cảnh",
"summary_cache_size": "Kích thước bộ nhớ đệm tóm tắt",
"refresh_summary": "🔄 Làm mới danh sách tóm tắt",
"get_summary_size": "📊 Lấy kích thước tóm tắt",
"summary_cache_table": "Danh sách bộ nhớ đệm tóm tắt",
"clear_summary_cache": "🗑️ Xóa tất cả bộ nhớ đệm tóm tắt",
"tab_genre": "📚 Quản lý thể loại",
"genre_desc": "Thêm, sửa, xóa các thể loại truyện và viết mô tả/hướng dẫn chi tiết. AI sẽ dùng mô tả này làm Prompt hệ thống khi sáng tác/gợi ý truyện thuộc thể loại tương ứng.",
"genre_select": "Chọn thể loại cần sửa",
"genre_name": "Tên thể loại",
"genre_name_placeholder": "Huyền huyễn tiên hiệp, Khoa học viễn tưởng...",
"genre_description": "Mô tả / Hướng dẫn cách viết",
"genre_description_placeholder": "Nhập phong cách viết, văn phong, yếu tố đặc trưng của thể loại để AI học theo...",
"genre_add_btn": "➕ Thêm mới",
"genre_update_btn": "💾 Cập nhật",
"genre_delete_btn": "🗑️ Xóa",
"genre_op_status": "Trạng thái",
"genre_err_name_empty": "Vui lòng nhập tên thể loại!",
"genre_err_exists": "Tên thể loại đã tồn tại!",
"genre_add_success": "Thêm thể loại mới thành công!",
"genre_err_none_selected": "Vui lòng chọn một thể loại!",
"genre_update_success": "Cập nhật thể loại thành công!",
"genre_err_update": "Cập nhật lỗi hoặc trùng tên!",
"genre_delete_success": "Đã xóa thể loại!",
"genre_err_delete": "Xóa thất bại!",
"tab_sub_genre": "🏷️ Quản lý chủ đề con (Tag)",
"sub_genre_desc": "Thêm, sửa, xóa các chủ đề con (hashtags) và mô tả. AI sẽ gộp mô tả này khi sáng tác nếu bạn chọn tag này.",
"sub_genre_select": "Chọn chủ đề con cần sửa",
"sub_genre_name": "Tên chủ đề con",
"sub_genre_name_placeholder": "Hệ thống, Xuyên không, Sảng văn...",
"sub_genre_description": "Mô tả / Hướng dẫn cách viết",
"sub_genre_description_placeholder": "Nhập chi tiết về motif này, cách xây dựng nhân vật hoặc bối cảnh cho AI...",
"sub_genre_add_btn": "➕ Thêm mới",
"sub_genre_update_btn": "💾 Cập nhật",
"sub_genre_delete_btn": "🗑️ Xóa",
"sub_genre_op_status": "Trạng thái",
"sub_genre_err_name_empty": "Vui lòng nhập tên chủ đề con!",
"sub_genre_err_exists": "Tên chủ đề con đã tồn tại!",
"sub_genre_add_success": "Thêm chủ đề con mới thành công!",
"sub_genre_err_none_selected": "Vui lòng chọn một chủ đề con!",
"sub_genre_update_success": "Cập nhật chủ đề con thành công!",
"sub_genre_err_update": "Cập nhật lỗi hoặc trùng tên!",
"sub_genre_delete_success": "Đã xóa chủ đề con!",
"sub_genre_err_delete": "Xóa thất bại!"
},
"about": {
"content": "# Công cụ sáng tác tiểu thuyết TiniX Story v1.0 chính thức\n## Hệ thống sáng tác tiểu thuyết thông minh cấp chuyên nghiệp\n\n### 🌟 Tính năng chính\n- **Sáng tác thông minh**: Sáng tác tiểu thuyết dài kỳ từ đầu, hỗ trợ tùy chỉnh dàn ý\n- **Tiếp tục từ điểm dừng**: Hỗ trợ tạm dừng rồi viết tiếp, mỗi chương tự động lưu\n- **Viết lại thông minh**: Tải lên văn bản tiểu thuyết, viết lại chất lượng cao với 17 phong cách\n- **Viết tiếp thông minh**: Tải lên tiểu thuyết viết dở, AI tự động viết tiếp\n- **Trau chuốt tiểu thuyết**: Hỗ trợ 8 loại trau chuốt bao gồm toàn diện, tìm lỗi, gợi ý cải thiện, loại bỏ phong cách AI\n- **Phân tích tệp linh hoạt**: Hỗ trợ tùy chỉnh mẫu chương, nhận dạng nhiều định dạng tệp tiểu thuyết\n- **Xuất đa định dạng**: Word, TXT, Markdown, HTML - tải trực tiếp\n- **Quản lý dự án**: Quản lý nhiều dự án sáng tác, hỗ trợ viết tiếp từ điểm dừng\n- **Cấu hình linh hoạt**: Hỗ trợ nhiều API backend, Ollama key tùy chọn\n- **Tự động thử lại**: Khi tạo chương bị lỗi sẽ tự động thử lại\n- **Tự động tìm cổng**: Khi cổng mặc định bị chiếm sẽ tự động tìm cổng khả dụng\n\n### 🔧 Đặc điểm kỹ thuật\n- **Phục hồi lỗi**: Hệ thống xử lý lỗi và ghi log hoàn chỉnh\n- **Cơ chế bộ nhớ đệm**: Bộ nhớ đệm thông minh tránh gọi API trùng lặp\n- **Giới hạn tốc độ**: Thuật toán token bucket tích hợp chống giới hạn API\n- **Cân bằng tải**: Tự động luân chuyển nhiều backend\n- **Giám sát hiệu suất**: Thống kê và phân tích hiệu suất thời gian thực\n- **An toàn luồng**: Thiết kế an toàn đồng thời hoàn toàn\n\n### 📋 Yêu cầu hệ thống\n- Python 3.8+\n- Phụ thuộc: gradio, pandas, openai, python-docx\n- Tùy chọn: PyMuPDF (hỗ trợ PDF), ebooklib+beautifulsoup4 (hỗ trợ EPUB)\n\n### 📞 Hỗ trợ kỹ thuật\n- Xem tệp log: thư mục `logs/`\n- Vị trí lưu dự án: thư mục `projects/`\n- Vị trí tệp xuất: thư mục `exports/`\n- Vị trí bộ nhớ đệm: thư mục `cache/`\n- GitHub: [GitHub](https://github.com/yangqi1309134997-coder/ai-novel-generator)\n\n### ⚖️ Giấy phép\nMIT License"
},
"messages": {
"no_content_polish": "Không có nội dung để trau chuốt",
"no_content_rewrite": "Không có nội dung để viết lại",
"no_content_continue": "Không có nội dung để viết tiếp",
"no_title": "Vui lòng điền tên tiểu thuyết",
"no_file": "Không có tệp",
"polish_success": "Trau chuốt thành công",
"polish_complete": "Trau chuốt hoàn tất",
"polish_complete_saved": "Trau chuốt hoàn tất | Đã lưu vào quản lý dự án",
"polish_failed": "Trau chuốt thất bại: {error}",
"polish_invalid": "Trau chuốt trả về nội dung không hợp lệ (độ dài: {length} chữ)",
"polish_status_msg": "Trau chuốt trả về thông báo trạng thái thay vì nội dung thực: '{content}'",
"polish_segment_failed": "Đoạn {num} trau chuốt thất bại: {error}",
"polish_segment_invalid": "Đoạn {num} trau chuốt trả về nội dung không hợp lệ (độ dài: {length} chữ)",
"polish_segment_progress": "Trau chuốt đoạn {current}/{total}",
"polish_auto_split": "Văn bản quá dài ({length} chữ), bật xử lý phân đoạn tự động",
"polish_split_done": "Đã chia thành {count} đoạn, bắt đầu trau chuốt từng đoạn",
"polish_all_done": "Hoàn tất trau chuốt phân đoạn, tổng cộng {count} đoạn, tổng số chữ: {total}",
"polish_save_success": "Kết quả trau chuốt đã lưu vào dự án: {id}",
"polish_save_failed": "Lưu kết quả trau chuốt thất bại: {msg}",
"rewrite_success": "Viết lại thành công",
"rewrite_complete": "Viết lại hoàn tất",
"rewrite_paused": "Đã tạm dừng - Hoàn thành {done}/{total} đoạn",
"rewrite_progress": "Tiến độ {done}/{total} | Khoảng {words} chữ",
"rewrite_segment_failed": "Đoạn {num} viết lại thất bại: {error}",
"rewrite_invalid": "Đoạn {num} viết lại trả về nội dung không hợp lệ (độ dài: {length} chữ)",
"rewrite_status_msg": "Đoạn {num} viết lại trả về thông báo trạng thái thay vì nội dung: '{content}'",
"rewrite_segment_progress": "Viết lại đoạn {current}/{total}",
"rewrite_save_success": "Kết quả viết lại đã lưu vào dự án: {id}",
"rewrite_save_failed": "Lưu kết quả viết lại thất bại: {msg}",
"continue_success": "Viết tiếp thành công",
"continue_complete": "Viết tiếp hoàn tất",
"continue_complete_saved": "Viết tiếp hoàn tất | Đã lưu vào quản lý dự án",
"continue_failed": "Viết tiếp thất bại: {error}",
"continue_invalid": "Viết tiếp trả về nội dung không hợp lệ (độ dài: {length} chữ)",
"continue_status_msg": "Viết tiếp trả về thông báo trạng thái thay vì nội dung: '{content}'",
"continue_save_success": "Kết quả viết tiếp đã lưu vào dự án: {id}",
"continue_save_failed": "Lưu kết quả viết tiếp thất bại: {msg}",
"gen_success": "Tạo thành công",
"gen_outline_empty": "Lỗi: Dàn ý trống",
"gen_outline_failed": "Phân tích dàn ý thất bại: {msg}",
"gen_paused": "Đã tạm dừng - Hoàn thành {done}/{total} chương, dự án đã lưu",
"gen_chapter_progress": "Đang tạo chương {current}/{total}: {title}",
"gen_chapter_skip": "Hoàn thành {num}/{total} chương (phục hồi từ bộ nhớ đệm)",
"gen_chapter_retry": "Chương {num} tạo thất bại hoặc 0 chữ (thử lần {attempt}/{max}), đang thử lại...",
"gen_summarizing": "Đang tóm tắt các chương trước để lấy ngữ cảnh...",
"gen_constructing_prompt": "Đang xây dựng prompt cho Chương {num}...",
"gen_waiting_ai": "Đang chờ phản hồi từ AI cho Chương {num}...",
"gen_saving_db": "Đang lưu Chương {num} vào cơ sở dữ liệu...",
"gen_chapter_failed": "Tạo thất bại: Chương {num} tạo thất bại (đã thử lại {max} lần)",
"gen_complete": "Tạo hoàn tất | Tổng cộng {total} chương | Khoảng {words} chữ | Dự án đã lưu",
"gen_save_success": "Dự án đã lưu: {id}",
"gen_save_failed": "Lưu dự án thất bại: {msg}",
"cache_found": "Tìm thấy bộ nhớ đệm: {msg}",
"cache_chapter_restore": "Phục hồi chương {num} từ bộ nhớ đệm: {words} chữ",
"stop_requested": "Đã yêu cầu tạm dừng (sẽ dừng sau khi hoàn thành chương hiện tại)",
"user_stop_requested": "Người dùng yêu cầu dừng tạo",
"split_words_done": "Phân đoạn theo số chữ hoàn tất, tổng cộng {count} đoạn, mỗi đoạn khoảng {words} chữ",
"split_pattern_done": "Phân đoạn theo văn bản cố định hoàn tất, tổng cộng {count} đoạn",
"split_failed": "Phân đoạn thất bại: {error}",
"split_no_pattern": "Vui lòng nhập đánh dấu phân đoạn",
"export_complete": "Xuất hoàn tất",
"export_failed": "Xuất thất bại: {error}"
},
"templates": {
"default": "Viết lại bằng lối viết sinh động, tinh tế hơn, ngôn ngữ đẹp, giữ nguyên ý nghĩa và cốt truyện, nhưng thêm nhiều chi tiết miêu tả và nội tâm nhân vật.",
"xianxia": "Viết lại theo phong cách tiên hiệp cổ điển, ngôn ngữ cổ phong trang nhã, thêm miêu tả tiên thuật pháp bảo, linh khí ý cảnh, tâm cảnh tu luyện nhân vật, giữ nguyên cốt truyện.",
"romance": "Viết lại theo phong cách ngôn tình đô thị hiện đại, ngôn ngữ nhẹ nhàng ngọt ngào hoặc ngược tâm, thêm tương tác lãng mạn, miêu tả tâm lý tinh tế, chi tiết đời sống.",
"thriller": "Viết lại theo phong cách trinh thám kinh dị, ngôn ngữ tạo bầu không khí căng thẳng, thêm miêu tả kinh dị tâm lý, manh mối, dựng cảnh và yếu tố đảo ngược.",
"scifi": "Viết lại theo phong cách khoa học viễn tưởng cứng, ngôn ngữ chặt chẽ chuyên nghiệp, thêm giải thích nguyên lý khoa học, chi tiết kỹ thuật, xây dựng thế giới quan.",
"wuxia": "Viết lại theo phong cách võ hiệp Kim Dung - Cổ Long, ngôn ngữ hào sảng, thêm miêu tả võ công chiêu thức, ân oán giang hồ, tinh thần hiệp nghĩa.",
"palace": "Viết lại theo phong cách cung đình cổ, ngôn ngữ trang nhã hoa lệ, thêm lễ nghi cung đình, mưu kế quyền lực, quan hệ nhân vật phức tạp tinh tế.",
"military": "Viết lại theo phong cách quân sự hiện đại, ngôn ngữ cứng cỏi mạnh mẽ, thêm miêu tả chiến thuật, vũ khí trang bị, đời sống quân ngũ.",
"historical": "Viết lại theo phong cách diễn nghĩa lịch sử, ngôn ngữ cổ kính trang trọng, thêm bối cảnh lịch sử, não bộ thời đại, góc nhìn lịch sử vĩ đại.",
"supernatural": "Viết lại theo phong cách linh dị huyền ảo, ngôn ngữ bí ẩn kỳ lạ, thêm yếu tố siêu nhiên, hiện tượng kỳ bí, âm dương ngũ hành.",
"campus": "Viết lại theo phong cách thanh xuân học đường, ngôn ngữ tươi mới vui vẻ, thêm chi tiết đời sống học đường, rung động tuổi trẻ, ngộ về trưởng thành.",
"business": "Viết lại theo phong cách thương chiến, ngôn ngữ gọn gàng thực tế, thêm chiến lược kinh doanh, đấu trí nơi công sở, trí tuệ thương mại.",
"cyberpunk": "Viết lại theo phong cách cyberpunk, ngôn ngữ đầy cảm giác công nghệ, thêm yếu tố công nghệ cao, thực tế ảo, trí tuệ nhân tạo, sắc thái phản không tưởng.",
"fantasy": "Viết lại theo phong cách kỳ ảo phương Tây, ngôn ngữ sử thi hùng tráng, thêm hệ thống phép thuật, thiết lập chủng tộc, yếu tố thần thoại, bầu không khí trung cổ.",
"horror": "Viết lại theo phong cách kinh dị trinh thám, ngôn ngữ u ám đè nén, thêm bầu không khí kinh dị, gợi ý tâm lý, hiện tượng siêu nhiên.",
"humor": "Viết lại theo phong cách hài hước, ngôn ngữ dí dỏm sắc sảo, thêm yếu tố gây cười, miêu tả phóng đại, hiệu ứng hài kịch, nhẹ nhàng thú vị.",
"literary": "Viết lại theo phong cách văn nghệ thanh tân, ngôn ngữ đẹp thanh thoát, thêm cảm xúc tinh tế, ý cảnh sâu xa, chữ nghĩa thơ mộng, như thi như họa.",
"adventure": "Viết lại theo phong cách phiêu lưu nhiệt huyết, ngôn ngữ sôi động mãnh liệt, thêm yếu tố phiêu lưu, cảnh chiến đấu, tình bạn gắn bó, tràn đầy năng lượng tích cực.",
"name_default": "Phong cách - Mặc định",
"name_xianxia": "Phong cách - Tiên hiệp huyền ảo",
"name_romance": "Phong cách - Ngôn tình đô thị",
"name_thriller": "Phong cách - Trinh thám kinh dị",
"name_scifi": "Phong cách - Khoa học viễn tưởng",
"name_wuxia": "Phong cách - Võ hiệp giang hồ",
"name_palace": "Phong cách - Cung đấu cổ đại",
"name_military": "Phong cách - Quân sự hiện đại",
"name_historical": "Phong cách - Diễn nghĩa lịch sử",
"name_supernatural": "Phong cách - Linh dị huyền ảo",
"name_campus": "Phong cách - Thanh xuân học đường",
"name_business": "Phong cách - Thương chiến",
"name_cyberpunk": "Phong cách - Cyberpunk",
"name_fantasy": "Phong cách - Kỳ ảo phương Tây",
"name_horror": "Phong cách - Kinh dị trinh thám",
"name_humor": "Phong cách - Hài hước",
"name_literary": "Phong cách - Văn nghệ thanh tân",
"name_adventure": "Phong cách - Phiêu lưu nhiệt huyết"
},
"prompts": {
"outline_system": "Bạn là nhà hoạch định dàn ý tiểu thuyết chuyên nghiệp, giỏi xây dựng khung truyện hấp dẫn.",
"outline_user": "Hãy tạo dàn ý đầy đủ cho một tiểu thuyết thể loại {genre}, tiêu đề: «{title}».\n\nThiết lập nhân vật: {character_setting}\n\nThế giới quan: {world_setting}\n\nCốt truyện chính: {plot_idea}\n\nYêu cầu phong cách: {style_desc}\n\n{custom_prompt}Yêu cầu:\n1. Tổng cộng khoảng {total_chapters} chương\n2. Mỗi chương theo định dạng nghiêm ngặt: Chương X: Tiêu đề chương - Mô tả cốt truyện ngắn gọn (50-100 từ)\n3. Cốt truyện mạch lạc, có mở đầu - phát triển - cao trào - kết thúc, nhân vật phát triển hợp lý\n4. Chỉ xuất ra danh sách dàn ý, không có nội dung khác\n5. Dàn ý phải hấp dẫn, lôi cuốn, có yếu tố hồi hộp\n6. Phân bổ chương theo cấu trúc 3 hồi:\n - Hồi 1 (25% số chương): Giới thiệu, xây dựng thế giới, thiết lập xung đột\n - Hồi 2 (50% số chương): Phát triển, leo thang, bước ngoặt giữa truyện\n - Hồi 3 (25% số chương): Cao trào, giải quyết, kết thúc\n7. Mỗi chương phải có xung đột nhỏ hoặc tiến triển rõ ràng, không có chương 'chữ lót'",
"chapter_system": "Bạn là nhà văn tiểu thuyết dài kỳ xuất sắc, sáng tác những câu chuyện chạm đến trái tim. Hãy viết với phong cách tự nhiên của con người. Tránh các mẫu câu AI phổ biến như: bắt đầu đoạn bằng 'Tuy nhiên', 'Ngoài ra', 'Hơn nữa' liên tục; kết thúc chương quá gọn gàng hoặc giáo điều; sử dụng cụm từ 'một cách + tính từ' quá nhiều; liệt kê ba thứ liền nhau theo kiểu 'cảm thấy X, Y, và Z'. TUYỆT ĐỐI KHÔNG sử dụng ký tự tiếng Trung hoặc văn phong lạm dụng Hán Việt. Phải dùng 100% tiếng Việt thuần túy, mượt mà tự nhiên.",
"chapter_user": "Hãy viết Chương {chapter_num} của tiểu thuyết «{novel_title}».\n\nTiêu đề chương: {chapter_title}\nDàn ý chương này: {chapter_desc}\n\nThiết lập tổng thể:\nNhân vật: {character_setting}\nThế giới quan: {world_setting}\nCốt truyện chính: {plot_idea}\n\nYêu cầu phong cách: {style_desc}\n\nYêu cầu cụ thể:\n1. Nội dung khoảng {target_words} từ\n2. Cốt truyện tuân thủ nghiêm ngặt dàn ý chương, mạch lạc với toàn bộ sách\n3. Đối thoại tự nhiên mang cá tính riêng của từng nhân vật, miêu tả tâm lý tinh tế, miêu tả cảnh vật sinh động\n4. Kết thúc để lại yếu tố hồi hộp hoặc gợi mở cho chương tiếp\n5. Sử dụng kỹ thuật 'Show don't Tell': thể hiện cảm xúc qua hành động và chi tiết, không chỉ mô tả trực tiếp\n6. Cân bằng giữa hành động, đối thoại và miêu tả nội tâm\n7. Chỉ xuất ra nội dung chính, KHÔNG có tiêu đề chương, KHÔNG giải thích, KHÔNG có phần suy nghĩ/phân tích, KHÔNG có meta-talk.\n8. TUYỆT ĐỐI KHÔNG lặp lại bất kỳ đoạn văn hay lời dẫn nào đã xuất hiện ở phần trước.{continuity_prompt}{context_prompt}",
"continuity_prompt": "\n\n【Ôn lại trước đó】\n{previous_content}\n\n【Danh sách kiểm tra tính mạch lạc】\n✓ Đảm bảo hướng cốt truyện nhất quán với phần trước\n✓ Trạng thái và vị trí nhân vật tương ứng với phần trước\n✓ Các yếu tố hồi hộp đã có được hưởng ứng hoặc đẩy lên trong chương này\n✓ Phong cách đối thoại nhân vật giữ nhất quán\n✓ TUYỆT ĐỐI KHÔNG lặp lại nội dung đã có. Không bắt đầu bằng việc nhắc lại cảnh cũ.\n✓ Bắt đầu viết thẳng vào diễn biến mới từ điểm kết thúc của phần trước.\n✓ Yếu tố hồi hộp mới mở đường cho các chương sau\n✓ Kiểm tra tiến độ so với dàn ý tổng thể, đảm bảo không đi lệch hướng\n✓ Phát triển các tuyến truyện phụ song song với tuyến chính\n\nHãy tuân thủ nghiêm ngặt danh sách kiểm tra trên để đảm bảo nội dung mạch lạc và KHÔNG TRÙNG LẶP.",
"context_prompt": "\n\n{context_summary}\n\nHãy dựa vào tóm tắt trên để nắm bắt cốt truyện chính phần trước, đảm bảo chương này mạch lạc nhưng KHÔNG nhắc lại những gì đã tóm tắt.",
"rewrite_system": "Bạn là biên tập viên tiểu thuyết xuất sắc, giỏi cải thiện văn bản bằng lối viết sinh động và tinh tế.",
"rewrite_user": "Hãy viết lại văn bản gốc theo phong cách sau, giữ nguyên ý nghĩa và cốt truyện, nhưng thêm nhiều chi tiết:\n\nYêu cầu phong cách: {style}\n\nVăn bản gốc:\n{text}\n\n【Yêu cầu quan trọng】\n1. Phải xuất ra toàn bộ nội dung tiểu thuyết đã viết lại, số từ tương đương với bản gốc\n2. Tuyệt đối không chỉ xuất ra \"viết lại thành công\", \"trau chuốt thành công\", \"tạo thành công\" v.v.\n3. Phải xuất ra văn bản viết lại thực sự, bao gồm chi tiết miêu tả phong phú và triển khai cốt truyện\n4. Nếu bản gốc có 1000 từ, bản viết lại cũng nên có khoảng 1000 từ\n5. Không xuất ra bất kỳ văn bản giải thích hoặc thông báo xác nhận nào\n6. Tăng cường các giác quan: mùi, vị, xúc giác, không chỉ thị giác và thính giác\n7. Thêm chi tiết môi trường phản ánh tâm trạng nhân vật\n8. Sử dụng ẩn dụ và so sánh sáng tạo, tránh sáo rỗng\n\nHãy tuân thủ nghiêm ngặt các yêu cầu trên để xuất ra nội dung viết lại đầy đủ.",
"summary_system": "Bạn là biên tập nội dung chuyên nghiệp, giỏi chiết xuất nội dung cốt lõi của văn bản.",
"summary_user": "Hãy tạo một bản tóm tắt ngắn gọn cho văn bản sau, không quá {max_length} từ.\n\nVăn bản:\n{text}\n\nTóm tắt:",
"polish_system": "Bạn là biên tập văn học và chuyên gia trau chuốt chuyên nghiệp, giỏi nâng cao chất lượng văn bản.",
"polish_general": "Hãy trau chuốt toàn diện văn bản sau, nâng cao chất lượng văn phong, làm cho ngôn ngữ mượt mà hơn, sinh động hơn, có sức truyền cảm hơn.",
"polish_find_errors": "Hãy kiểm tra kỹ văn bản sau, tìm ra các lỗi (bao gồm lỗi chính tả, lỗi ngữ pháp, lỗi logic, dùng từ không phù hợp v.v.), và đề xuất sửa đổi.",
"polish_suggest": "Hãy đọc văn bản sau, đưa ra gợi ý cải thiện cụ thể, bao gồm hướng tối ưu về cốt truyện, nhân vật, đối thoại, miêu tả v.v.",
"polish_direct": "Hãy trực tiếp sửa đổi và tối ưu văn bản sau, nâng cao chất lượng văn phong, làm cho nó chuyên nghiệp và hoàn thiện hơn.",
"polish_remove_ai": "Hãy loại bỏ dấu vết AI trong văn bản sau, làm cho nó tự nhiên hơn, giống sáng tác của con người hơn, thêm chiều sâu cảm xúc.",
"polish_enhance": "Hãy tăng cường chi tiết cho văn bản sau, thêm miêu tả môi trường, miêu tả tâm lý, miêu tả giác quan v.v., làm cho nội dung phong phú lập thể hơn.",
"polish_dialogue": "Hãy tối ưu phần đối thoại trong văn bản sau, làm cho đối thoại tự nhiên hơn, phù hợp với tính cách nhân vật hơn, có cá tính hơn.",
"polish_pacing": "Hãy điều chỉnh nhịp điệu của văn bản sau, tối ưu tốc độ triển khai cốt truyện, làm cho câu chuyện hấp dẫn hơn.",
"polish_extra_req": "\n\nYêu cầu bổ sung: {custom_requirements}",
"polish_output_only": "\n\nVăn bản gốc:\n{text}\n\nChỉ xuất ra văn bản đã trau chuốt hoặc gợi ý, không có nội dung khác.",
"polish_suggest_system": "Bạn là biên tập văn học chuyên nghiệp, giỏi phân tích văn bản, tìm lỗi và trau chuốt tối ưu.",
"polish_suggest_user": "Hãy phân tích và tối ưu toàn diện văn bản sau:\n\n1. **Tìm lỗi**: Kiểm tra lỗi chính tả, lỗi ngữ pháp, lỗi logic, dùng từ không phù hợp v.v.\n2. **Đưa gợi ý**: Đưa ra gợi ý cải thiện cụ thể, bao gồm cốt truyện, nhân vật, đối thoại, miêu tả v.v.\n3. **Sửa trực tiếp**: Cung cấp phiên bản đã trau chuốt tối ưu\n\nVăn bản gốc:\n{text}\n\n{extra_req}\n\nHãy xuất ra theo định dạng sau:\n---\n【Lỗi phát hiện】\n(Liệt kê các lỗi phát hiện)\n\n【Gợi ý cải thiện】\n(Liệt kê gợi ý cải thiện)\n\n【Văn bản đã trau chuốt】\n(Văn bản đã sửa trực tiếp)\n---",
"suggest_system": "Bạn là chuyên gia thiết kế cốt truyện, phát triển nhân vật và xây dựng thế giới quan cho tiểu thuyết sáng tạo. Những ý tưởng bạn đưa ra phải vô cùng sáng tạo, hấp dẫn, chi tiết và có chiều sâu.",
"suggest_title_user": "Hãy đưa ra khoảng 10 gợi ý tên cho một tiểu thuyết.\n\nThể loại: {genre}\n\nYêu cầu:\n- Tên truyện phải thật súc tích, ấn tượng, gây tò mò, phản ánh đúng đặc trưng thể loại.\n- Đi kèm mỗi tên truyện là một câu mô tả ngắn gọn nội dung sơ bộ.\n- BẮT BUỘC chỉ trả về kết quả dưới định dạng JSON nguyên bản, không kèm bất kỳ ký tự markdown (```json), không giải thích hay hội thoại thừa.\n- Cấu trúc JSON bắt buộc: {\"suggestions\": [{\"title\": \"Tên 1\", \"description\": \"Mô tả 1\"}, {\"title\": \"Tên 2\", \"description\": \"Mô tả 2\"}]}",
"suggest_char_user": "Hãy đưa ra ý tưởng thiết lập chi tiết về các nhân vật cho một tiểu thuyết.\n\nTiêu đề dự kiến: {title}\nThể loại: {genre}\nSố lượng yêu cầu:\n- Nhân vật chính: {num_main_chars} người\n- Nhân vật phụ/phản diện: {num_sub_chars} người\n\nYêu cầu đối với mỗi nhân vật:\n1. Nêu rõ vai trò (Chính/Phụ/Phản diện)\n2. Tên, ngoại hình và đặc điểm tính cách nổi bật\n3. Trình độ, kỹ năng hoặc sức mạnh đặc biệt\n4. Bối cảnh xuất thân và động cơ cốt lõi\n\nHãy mô tả sâu sắc và có chiều sâu. Chỉ trả về nội dung ý tưởng, không giải thích dài dòng.",
"suggest_world_user": "Hãy đưa ra ý tưởng thiết lập thế giới quan (khoảng 150-200 từ) cho một tiểu thuyết.\n\nTiêu đề dự kiến: {title}\nThể loại: {genre}\n\nYêu cầu: Chỉ ra các quy luật độc đáo, sức mạnh, cấu trúc xã hội hoặc bối cảnh lịch sử. Chỉ trả về nội dung ý tưởng.",
"suggest_plot_user": "Hãy đưa ra ý tưởng cốt truyện chính (khoảng 200-250 từ) cho tiểu thuyết này để làm nền tảng phát triển.\n\nTiêu đề: {title}\nThể loại: {genre}\n\n(Nếu có) Thiết lập nhân vật: {character_setting}\n(Nếu có) Thế giới quan: {world_setting}\n\nYêu cầu:\n- Cốt truyện cần có điểm nhấn đầu truyện, bước ngoặt giữa truyện và xung đột cốt lõi rõ ràng\n- Xung đột bên ngoài (đối thủ, thế lực, nhiệm vụ) và xung đột nội tâm (mâu thuẫn, lựa chọn khó khăn)\n- Ít nhất 2-3 bước ngoặt bất ngờ nhưng hợp logic\n- Kết thúc để lại dư vị (happy ending hoặc open ending tùy thể loại)\n- Chỉ trả về nội dung ý tưởng.",
"continue_system": "Bạn là nhà văn tiểu thuyết dài kỳ xuất sắc, giỏi sáng tác câu chuyện hấp dẫn và kết nối cốt truyện tự nhiên. TUYỆT ĐỐI KHÔNG sử dụng ký tự tiếng Trung hoặc văn phong lạm dụng Hán Việt. Phải dùng 100% tiếng Việt thuần túy, tự nhiên.",
"continue_user": "Hãy viết tiếp chương tiếp theo của tiểu thuyết «{novel_title}».\n\n【Thiết lập hiện có】\nThiết lập nhân vật: {character_setting}\nThế giới quan: {world_setting}\nCốt truyện chính: {plot_idea}\n\n【Yêu cầu phong cách】\n{style_desc}\n\n【Ôn lại trước đó】(1500 từ gần nhất)\n{previous_content}\n\n【Yêu cầu viết tiếp】\n1. Viết tiếp chương mới tự nhiên dựa trên nội dung trước\n2. Giữ tính mạch lạc với phần trước, bao gồm tính cách nhân vật, phát triển cốt truyện, phong cách đối thoại v.v.\n3. Số từ khoảng {target_words}\n4. TUYỆT ĐỐI KHÔNG lặp lại nội dung đã có. Không bắt đầu bằng việc tóm tắt hoặc nhắc lại cảnh cuối cùng.\n5. Kết thúc để lại yếu tố hồi hộp hoặc gợi mở phù hợp\n6. Chỉ xuất ra nội dung viết tiếp, KHÔNG có tiêu đề chương, KHÔNG giải thích, KHÔNG có phần suy nghĩ/phân tích.",
"chapter_summary_system": "Bạn là biên tập nội dung chuyên nghiệp, giỏi chiết xuất cốt truyện cốt lõi và thông tin quan trọng của chương.",
"chapter_summary_user": "Hãy tạo tóm tắt ngắn gọn cho chương sau (100-200 từ).\n\nTiêu đề chương: {chapter_title}\n\nNội dung chương:\n{chapter_content}\n\nYêu cầu:\n1. Giữ lại cốt truyện chính và thông tin nhân vật\n2. Nêu bật xung đột cốt lõi và bước ngoặt của chương\n3. Ngôn ngữ ngắn gọn rõ ràng\n4. Chỉ xuất ra nội dung tóm tắt, không có giải thích khác",
"style_description": "Phong cách viết: {writing_style}\nGiọng điệu: {writing_tone}\nXây dựng nhân vật: {character_development}\nĐộ phức tạp cốt truyện: {plot_complexity}",
"context_header": "【Tóm tắt trước đó】\n",
"chapter_context_line": "Chương {chapter_num}: {summary}\n",
"found_errors_header": "Lỗi phát hiện",
"suggestions_header": "Gợi ý cải thiện",
"polished_text_header": "Văn bản đã trau chuốt",
"ai_no_format": "AI không xuất theo định dạng, vui lòng xem kết quả trau chuốt",
"image_cover_base": "Một bìa sách chuyên nghiệp chất lượng cao cho tiểu thuyết tiêu đề '{title}', thể loại '{genre}'. Ánh sáng điện ảnh, chi tiết, phong cách sử thi.",
"image_illustration_base": "Một minh họa đẹp cho chương truyện tiêu đề '{title}'. Mô tả cảnh: {summary}. Nghệ thuật kỹ thuật số, độ chi tiết cao.",
"reflection_system": "Bạn là một biên tập viên xuất sắc kiêm chuyên gia thẩm định văn học. Khả năng của bạn là phát hiện các lỗi logic, sự lan man, sai tính cách nhân vật và lỗi ngôn ngữ trong các bản thảo, sau đó trực tiếp viết lại chúng thành một phiên bản hoàn hảo tuyệt đối.",
"reflection_user": "Dưới đây là Dàn Ý yêu cầu và Bản Nháp của chương truyện.\n\n【Dàn ý & Yêu cầu chương】\n{chapter_req}\n\n【Bản nháp hiện tại】\n{draft_content}\n\nHãy ĐỌC KỸ bản nháp trên, đối chiếu với dàn ý để phát hiện những chỗ lan man, sai logic, hoặc văn phong chưa đạt.\nSau đó, HÃY VIẾT LẠI một phiên bản hoàn chỉnh, súc tích, mạch lạc hơn nhưng vẫn phải giữ độ dài tương đương (khoảng {target_words} chữ).\n\nTUYỆT ĐỐI tuân thủ các quy tắc sau:\n1. CHỈ xuất kết quả là nội dung chương truyện đã được tối ưu hóa. KHÔNG thêm bất kỳ nhận xét, phân tích, tiêu đề hoặc từ ngữ dư thừa nào khác.\n2. Bắt buộc sử dụng 100% TIẾNG VIỆT thuần túy. TUYỆT ĐỐI cấm các ký tự tiếng Trung hoặc văn phong rườm rà Hán Việt."
},
"generator": {
"title_empty": "Tên tiểu thuyết không được để trống",
"char_empty": "Thiết lập nhân vật không được để trống",
"world_empty": "Thiết lập thế giới quan không được để trống",
"plot_empty": "Cốt truyện chính không được để trống",
"outline_empty": "Dàn ý trống",
"outline_parse_failed": "Không thể phân tích chương nào từ dàn ý, vui lòng kiểm tra định dạng",
"outline_parse_success": "Phân tích thành công, tổng cộng {count} chương",
"outline_gen_success": "Tạo dàn ý thành công",
"gen_success": "Tạo thành công",
"suggest_success": "Gợi ý thành công",
"text_empty": "Văn bản trống",
"text_too_long_rewrite": "Văn bản quá dài (>20000 từ), vui lòng xử lý phân đoạn",
"text_too_long_polish": "Văn bản quá dài (>10000 từ), vui lòng xử lý phân đoạn",
"existing_text_empty": "Văn bản hiện có trống",
"chapter_content_empty": "Nội dung chương trống",
"api_empty_content": "API trả về nội dung trống, vui lòng kiểm tra cấu hình API",
"api_status_msg": "API trả về thông báo trạng thái, vui lòng kiểm tra cấu hình API",
"rewrite_success": "Viết lại thành công",
"rewrite_too_short": "Nội dung viết lại quá ngắn ({length} từ), có thể là vấn đề API",
"rewrite_failed_retries": "Viết lại thất bại: vẫn thất bại sau {max} lần thử",
"polish_success": "Trau chuốt thành công",
"polish_too_short": "Nội dung trau chuốt quá ngắn ({length} từ), có thể là vấn đề API",
"polish_failed_retries": "Trau chuốt thất bại: vẫn thất bại sau {max} lần thử",
"continue_success": "Viết tiếp thành công",
"continue_too_short": "Nội dung viết tiếp quá ngắn ({length} từ), có thể là vấn đề API",
"continue_failed_retries": "Viết tiếp thất bại: vẫn thất bại sau {max} lần thử",
"summary_success": "Thành công",
"summary_gen_success": "Tạo tóm tắt thành công",
"summary_gen_failed": "Tạo tóm tắt thất bại",
"summary_gen_error": "Lỗi tạo tóm tắt: {error}",
"cache_id_empty": "ID dự án không được để trống",
"cache_data_empty": "Dữ liệu bộ nhớ đệm không được để trống",
"cache_save_success": "Lưu bộ nhớ đệm thành công",
"cache_save_failed": "Lưu bộ nhớ đệm thất bại: {error}",
"cache_not_found": "Bộ nhớ đệm không tồn tại",
"cache_load_success": "Tải bộ nhớ đệm thành công",
"cache_load_failed": "Tải bộ nhớ đệm thất bại: {error}",
"cache_clear_success": "Xóa bộ nhớ đệm thành công",
"cache_clear_failed": "Xóa bộ nhớ đệm thất bại: {error}",
"summary_empty": "Nội dung tóm tắt không được để trống",
"summary_save_success": "Lưu tóm tắt thành công",
"summary_save_failed": "Lưu tóm tắt thất bại: {error}",
"summary_dir_not_found": "Thư mục tóm tắt không tồn tại",
"summary_load_done": "Đã tải {count} tóm tắt chương",
"summary_load_failed": "Tải tóm tắt thất bại: {error}",
"summary_clear_success": "Xóa tóm tắt thành công",
"summary_clear_failed": "Xóa tóm tắt thất bại: {error}",
"unknown_title": "Không rõ"
},
"exporter": {
"no_content": "Không có nội dung để xuất",
"no_chapters": "Không thể trích xuất chương từ văn bản",
"export_success": "Xuất thành công: {filename}",
"export_failed": "Xuất thất bại: {error}",
"missing_docx": "Lỗi: Thiếu thư viện python-docx, vui lòng chạy: pip install python-docx",
"missing_markdown": "Lỗi: Thiếu thư viện markdown, vui lòng chạy: pip install markdown",
"generated_at": "Tạo lúc: {datetime}",
"generated_date": "Ngày tạo: {date}",
"first_chapter": "Chương một",
"body_font": "Times New Roman",
"title_font": "Arial"
},
"config_api": {
"name_required": "Tên giao diện không được để trống",
"type_required": "Loại giao diện không được để trống",
"model_required": "Tên mô hình không được để trống",
"name_exists": "Giao diện '{name}' đã tồn tại",
"add_success": "Thêm giao diện '{name}' thành công",
"add_failed": "Thêm giao diện thất bại: {error}",
"update_success": "Cập nhật giao diện '{name}' thành công",
"update_not_found": "Không tìm thấy giao diện: {name}",
"update_failed": "Cập nhật giao diện thất bại: {error}",
"delete_success": "Đã xóa giao diện '{name}'",
"delete_not_found": "Không tìm thấy giao diện: {name}",
"delete_failed": "Xóa giao diện thất bại: {error}",
"toggle_success": "Giao diện '{name}' đã {status}",
"toggle_enabled": "bật",
"toggle_disabled": "tắt",
"toggle_not_found": "Không tìm thấy giao diện: {name}",
"toggle_failed": "Chuyển đổi trạng thái giao diện thất bại: {error}",
"test_success": "Kiểm tra giao diện '{name}' thành công",
"test_not_found": "Không tìm thấy giao diện: {name}",
"test_failed": "Kiểm tra giao diện '{name}' thất bại: {error}",
"test_prompt": "Vui lòng trả lời 'OK' để xác nhận kết nối API bình thường.",
"export_success": "Đã xuất cấu hình đến: {filepath}",
"export_failed": "Xuất cấu hình thất bại: {error}",
"default_success": "Đã đặt giao diện '{name}' làm mặc định\nCác yêu cầu sẽ ưu tiên thử giao diện này trước tiên",
"default_failed": "Đặt mặc định thất bại: {error}"
},
"project_manager": {
"create_success": "Tạo dự án '{title}' thành công",
"create_failed": "Tạo dự án thất bại: {error}",
"save_success": "Lưu dự án '{title}' thành công",
"save_failed": "Lưu dự án thất bại: {error}",
"load_success": "Tải dự án thành công",
"load_not_found": "Dự án không tồn tại: {id}",
"load_failed": "Tải dự án thất bại: {error}",
"delete_success": "Đã xóa dự án",
"delete_not_found": "Dự án không tồn tại: {id}",
"delete_failed": "Xóa dự án thất bại: {error}",
"export_success": "Xuất dự án thành công: {filepath}",
"export_failed": "Xuất dự án thất bại: {error}"
},
"ui": {
"col_project_name": "Tên dự án",
"col_type": "Loại",
"col_created_at": "Ngày tạo",
"col_updated_at": "Ngày cập nhật",
"col_chapters": "Số chương",
"col_completion": "Hoàn thành",
"col_current_chapter": "Chương hiện tại",
"col_total_chapters": "Tổng chương",
"col_status": "Trạng thái",
"col_cache_time": "Thời gian cache",
"col_size_kb": "Kích thước(KB)",
"col_project_id": "ID dự án",
"col_chapter_count": "Số chương",
"col_name": "Tên",
"col_backend_type": "Loại",
"col_model": "Mô hình",
"col_enabled": "Bật",
"col_timeout": "Thời gian chờ(s)",
"col_retry_times": "Số lần thử lại",
"col_test": "🧪 Thử nghiệm",
"col_default": "⭐ Mặc định",
"no_projects": "Chưa có dự án",
"no_cache": "Chưa có bộ nhớ đệm",
"no_summary_cache": "Chưa có bộ nhớ đệm tóm tắt",
"found_projects": "Tìm thấy {count} dự án",
"found_caches": "Tìm thấy {count} bộ nhớ đệm",
"found_summary_caches": "Tìm thấy {count} bộ nhớ đệm tóm tắt",
"cache_total_size_kb": "Tổng kích thước bộ nhớ đệm: {size} KB",
"cache_total_size_mb": "Tổng kích thước bộ nhớ đệm: {size} MB",
"summary_total_size_kb": "Tổng kích thước bộ nhớ đệm tóm tắt: {size} KB",
"summary_total_size_mb": "Tổng kích thước bộ nhớ đệm tóm tắt: {size} MB",
"get_cache_size_failed": "Lấy kích thước bộ nhớ đệm thất bại",
"get_summary_size_failed": "Lấy kích thước bộ nhớ đệm tóm tắt thất bại",
"cleared_caches": "✅ Đã xóa {cleared}/{total} bộ nhớ đệm",
"cleared_summary_caches": "✅ Đã xóa {cleared}/{total} bộ nhớ đệm tóm tắt",
"no_cache_to_clear": "❌ Không có bộ nhớ đệm để xóa",
"no_summary_to_clear": "❌ Không có bộ nhớ đệm tóm tắt để xóa",
"select_cache_to_clear": "❌ Vui lòng chọn bộ nhớ đệm cần xóa",
"cache_found_info": "Tìm thấy bộ nhớ đệm: Đã hoàn thành {current}/{total} chương",
"cache_timestamp_info": "Thời gian cache: {time}",
"cache_check_failed": "Kiểm tra thất bại",
"no_content_export": "❌ Không có nội dung để xuất",
"no_title_export": "❌ Vui lòng điền tên tiểu thuyết",
"unsupported_format": "❌ Định dạng không được hỗ trợ: {format}",
"export_success": "✅ Xuất thành công!",
"export_failed": "❌ Xuất thất bại: {error}",
"export_error": "❌ Lỗi xuất: {error}",
"select_project": "❌ Vui lòng chọn một dự án",
"project_not_exist": "❌ Dự án '{title}' không tồn tại",
"metadata_not_exist": "❌ File metadata dự án không tồn tại: {file}",
"no_exportable_content": "❌ Dự án không có nội dung để xuất, vui lòng tạo chương trước",
"file_not_exist": "❌ File xuất không tồn tại: {file}",
"export_no_filepath": "❌ Xuất thất bại: Không trả về đường dẫn file",
"fill_required_fields": "❌ Vui lòng điền đầy đủ các trường bắt buộc (tên, URL, mô hình)",
"api_key_required": "❌ Loại giao diện này phải điền API key",
"enter_backend_name": "❌ Vui lòng nhập tên giao diện",
"enter_delete_name": "❌ Vui lòng nhập tên giao diện cần xóa",
"refreshed_backends": "✅ Đã làm mới danh sách giao diện",
"backend_loaded_for_edit": "✅ Đã tải cấu hình '{name}' để chỉnh sửa",
"backend_test_header": "Kết quả kiểm tra kết nối backend:\n",
"backend_available": "✓ Khả dụng",
"backend_unavailable": "✗ Không khả dụng",
"save_success": "Lưu thành công",
"save_failed": "Lưu thất bại: {error}",
"no_file": "Không có tệp",
"perf_no_data": "Chưa có dữ liệu hiệu suất",
"perf_report_header": "=== Báo cáo giám sát hiệu suất ===\n",
"perf_stat_line": "{name}: TB={avg:.2f}ms, Max={max:.2f}ms, Min={min:.2f}ms, Số lần={count}\n",
"validation_api_key_empty": "API key không được để trống",
"validation_unknown_provider": "Nhà cung cấp API không xác định",
"validation_openai_key_format": "OpenAI API key phải bắt đầu bằng 'sk-'",
"validation_anthropic_key_format": "Anthropic API key phải bắt đầu bằng 'sk-ant-'",
"validation_google_key_format": "Google API key không đúng định dạng",
"validation_key_format_invalid": "API key không đúng định dạng",
"validation_key_passed": "Kiểm tra định dạng key thành công",
"validation_model_empty": "Tên mô hình không được để trống",
"validation_model_invalid": "Tên mô hình chỉ chứa chữ cái, số, dấu gạch dưới, dấu chấm, dấu gạch ngang, dấu gạch chéo và dấu hai chấm",
"validation_model_passed": "Kiểm tra tên mô hình thành công",
"outline_chapter_format": "\nChương {num}: {title} (Click để mở/thu gọn)
\n
\n\n{content}\n\n \n\n",
"outline_chapter_format_open": "\nChương {num}: {title} (Click để mở/thu gọn)
\n
\n\n{content}\n\n \n\n",
"segment_format": "\nĐoạn {num} (Click để mở/thu gọn)
\n
\n\n{content}\n\n \n\n",
"content_format": "\nNội dung (Click để mở/thu gọn)
\n
\n\n{content}\n\n \n\n",
"rewritten_segments_summary": "Toàn bộ các đoạn",
"view_all": "🔍 Xem tất cả",
"chapter": "Chương",
"segment": "Đoạn",
"select_chapter_to_view": "📑 Chọn chương hiển thị",
"select_segment_to_view": "📑 Chọn đoạn hiển thị"
},
"api_client": {
"no_backends": "Lỗi: Không có backend khả dụng, vui lòng kiểm tra cài đặt",
"invalid_messages": "Lỗi: messages phải là danh sách không rỗng",
"no_api_client": "Lỗi: Không có API client khả dụng",
"invalid_content": "API trả về nội dung không hợp lệ (độ dài: {length} ký tự)",
"error_prefix": "Lỗi: {error}",
"retry_failed": "Lỗi: Vẫn thất bại sau {max} lần thử lại",
"rate_limit_error": "Lỗi: Đã vượt quá giới hạn tần suất gọi API (Rate Limit): {error}",
"auth_error": "Lỗi xác thực: Vui lòng kiểm tra API Key hoặc cấu hình backend: {error}",
"connection_error": "Lỗi kết nối: Không thể kết nối tới máy chủ API: {error}",
"api_error": "Lỗi API: Máy chủ API trả về lỗi: {error}",
"test_prompt": "Bạn là một trợ lý hữu ích",
"test_hello": "Xin chào",
"gen_image_success": "Tạo hình ảnh thành công",
"gen_image_failed": "Tạo hình ảnh thất bại: {error}",
"image_gen_unsupported": "Nhà cung cấp API hiện tại không hỗ trợ chức năng tạo hình ảnh. Vui lòng sử dụng API trả phí của OpenAI, Together AI hoặc SiliconFlow."
},
"file_parser": {
"no_file": "Không có tệp",
"file_too_large": "Lỗi: Tệp quá lớn ({size}MB > 50MB)",
"parse_complete": "Phân tích hoàn tất, tổng cộng {count} đoạn, khoảng {chars} ký tự",
"read_failed": "Đọc thất bại: {error}",
"missing_pymupdf": "Lỗi: Thiếu thư viện PyMuPDF, vui lòng chạy: pip install PyMuPDF",
"missing_ebooklib": "Lỗi: Thiếu thư viện ebooklib hoặc beautifulsoup4, vui lòng chạy: pip install ebooklib beautifulsoup4",
"missing_docx": "Lỗi: Thiếu thư viện python-docx, vui lòng chạy: pip install python-docx",
"unsupported_format": "Định dạng tệp không được hỗ trợ (hỗ trợ txt/pdf/epub/md/docx)",
"unsupported_chapter_format": "Định dạng tệp không được hỗ trợ",
"chapter_parse_complete": "Phân tích hoàn tất, tổng cộng {count} chương",
"chapter_parse_failed": "Phân tích thất bại: {error}",
"split_word_done": "Phân đoạn theo số chữ hoàn tất, tổng cộng {count} đoạn, mỗi đoạn khoảng {words} chữ",
"split_pattern_empty": "Đánh dấu phân đoạn không được để trống",
"word_count_positive": "Số chữ phải lớn hơn 0",
"invalid_regex": "Biểu thức chính quy không hợp lệ: {error}",
"file_not_exist": "Tệp không tồn tại: {path}",
"upload_read_failed": "Đọc tệp tải lên thất bại: {error}"
},
"config": {
"backend_name_empty": "Tên backend không được để trống",
"unsupported_type": "Loại không được hỗ trợ: {type}",
"base_url_invalid": "Base URL phải bắt đầu bằng http hoặc https",
"api_key_empty": "API Key không được để trống",
"model_empty": "Tên mô hình không được để trống",
"timeout_range": "Thời gian chờ phải từ 5-10000 giây",
"retry_range": "Số lần thử lại phải từ 1-10",
"temp_range": "Giá trị temperature phải từ 0.1-2.0",
"top_p_range": "top_p phải từ 0.1-1.0",
"max_tokens_range": "max_tokens phải từ 100-100000",
"chapter_words_range": "Số chữ mục tiêu mỗi chương phải từ 500-65536",
"backend_exists": "Backend '{name}' đã tồn tại",
"backend_add_success": "Thêm backend thành công",
"backend_update_success": "Cập nhật backend thành công",
"backend_not_found": "Backend '{name}' không tồn tại",
"backend_delete_success": "Backend '{name}' đã xóa",
"gen_params_update_success": "Cập nhật tham số tạo thành công",
"config_export_success": "Cấu hình đã xuất tới {filepath}",
"config_export_failed": "Xuất cấu hình thất bại: {error}",
"config_save_success": "Lưu cấu hình thành công",
"config_save_failed": "Lưu cấu hình thất bại: {error}",
"config_load_success": "Tải cấu hình thành công",
"config_file_not_found": "File cấu hình không tồn tại, sử dụng cấu hình mặc định",
"config_load_failed": "Tải cấu hình thất bại: {error}",
"config_file_missing": "File cấu hình không tồn tại: {path}",
"config_format_unsupported": "Định dạng cấu hình không được hỗ trợ: {ext}",
"default_backend_name": "Ollama Cục bộ"
}
}