Unverified Commit 0ed54055 authored by Ankur's avatar Ankur Committed by GitHub
Browse files

Merge branch 'dev' into main

parents 6d99ef8b c6317640
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
"Add a short description about what this modelfile does": "Thêm mô tả ngắn về việc tệp mô tả mô hình (modelfile) này làm gì", "Add a short description about what this modelfile does": "Thêm mô tả ngắn về việc tệp mô tả mô hình (modelfile) này làm gì",
"Add a short title for this prompt": "Thêm tiêu đề ngắn cho prompt này", "Add a short title for this prompt": "Thêm tiêu đề ngắn cho prompt này",
"Add a tag": "Thêm thẻ (tag)", "Add a tag": "Thêm thẻ (tag)",
"Add custom prompt": "",
"Add Docs": "Thêm tài liệu", "Add Docs": "Thêm tài liệu",
"Add Files": "Thêm tệp", "Add Files": "Thêm tệp",
"Add message": "Thêm tin nhắn", "Add message": "Thêm tin nhắn",
...@@ -27,6 +28,7 @@ ...@@ -27,6 +28,7 @@
"Admin Settings": "Cài đặt hệ thống", "Admin Settings": "Cài đặt hệ thống",
"Advanced Parameters": "Các tham số Nâng cao", "Advanced Parameters": "Các tham số Nâng cao",
"all": "tất cả", "all": "tất cả",
"All Documents": "",
"All Users": "Danh sách người sử dụng", "All Users": "Danh sách người sử dụng",
"Allow": "Cho phép", "Allow": "Cho phép",
"Allow Chat Deletion": "Cho phép Xóa nội dung chat", "Allow Chat Deletion": "Cho phép Xóa nội dung chat",
...@@ -34,17 +36,21 @@ ...@@ -34,17 +36,21 @@
"Already have an account?": "Bạn đã có tài khoản?", "Already have an account?": "Bạn đã có tài khoản?",
"an assistant": "trợ lý", "an assistant": "trợ lý",
"and": "và", "and": "và",
"and create a new shared link.": "",
"API Base URL": "Đường dẫn tới API (API Base URL)", "API Base URL": "Đường dẫn tới API (API Base URL)",
"API Key": "API Key", "API Key": "API Key",
"API Key created.": "", "API Key created.": "",
"API keys": "", "API keys": "",
"API RPM": "API RPM", "API RPM": "API RPM",
"April": "",
"Archive": "", "Archive": "",
"Archived Chats": "bản ghi trò chuyện", "Archived Chats": "bản ghi trò chuyện",
"are allowed - Activate this command by typing": "được phép - Kích hoạt lệnh này bằng cách gõ", "are allowed - Activate this command by typing": "được phép - Kích hoạt lệnh này bằng cách gõ",
"Are you sure?": "Bạn có chắc chắn không?", "Are you sure?": "Bạn có chắc chắn không?",
"Attach file": "",
"Attention to detail": "Có sự chú ý đến chi tiết của vấn đề", "Attention to detail": "Có sự chú ý đến chi tiết của vấn đề",
"Audio": "Âm thanh", "Audio": "Âm thanh",
"August": "",
"Auto-playback response": "Tự động phát lại phản hồi (Auto-playback)", "Auto-playback response": "Tự động phát lại phản hồi (Auto-playback)",
"Auto-send input after 3 sec.": "Tự động gửi đầu vào sau 3 giây.", "Auto-send input after 3 sec.": "Tự động gửi đầu vào sau 3 giây.",
"AUTOMATIC1111 Base URL": "Đường dẫn kết nối tới AUTOMATIC1111 (Base URL)", "AUTOMATIC1111 Base URL": "Đường dẫn kết nối tới AUTOMATIC1111 (Base URL)",
...@@ -52,8 +58,10 @@ ...@@ -52,8 +58,10 @@
"available!": "có sẵn!", "available!": "có sẵn!",
"Back": "Quay lại", "Back": "Quay lại",
"Bad Response": "", "Bad Response": "",
"before": "",
"Being lazy": "Lười biếng", "Being lazy": "Lười biếng",
"Builder Mode": "Chế độ Builder", "Builder Mode": "Chế độ Builder",
"Bypass SSL verification for Websites": "",
"Cancel": "Hủy bỏ", "Cancel": "Hủy bỏ",
"Categories": "Danh mục", "Categories": "Danh mục",
"Change Password": "Đổi Mật khẩu", "Change Password": "Đổi Mật khẩu",
...@@ -68,7 +76,9 @@ ...@@ -68,7 +76,9 @@
"Chunk Overlap": "Chồng lấn (overlap)", "Chunk Overlap": "Chồng lấn (overlap)",
"Chunk Params": "Cài đặt số lượng ký tự cho khối ký tự (chunk)", "Chunk Params": "Cài đặt số lượng ký tự cho khối ký tự (chunk)",
"Chunk Size": "Kích thước khối (size)", "Chunk Size": "Kích thước khối (size)",
"Citation": "",
"Click here for help.": "Bấm vào đây để được trợ giúp.", "Click here for help.": "Bấm vào đây để được trợ giúp.",
"Click here to": "",
"Click here to check other modelfiles.": "Bấm vào đây để kiểm tra các tệp mô tả mô hình (modelfiles) khác.", "Click here to check other modelfiles.": "Bấm vào đây để kiểm tra các tệp mô tả mô hình (modelfiles) khác.",
"Click here to select": "Bấm vào đây để chọn", "Click here to select": "Bấm vào đây để chọn",
"Click here to select a csv file.": "", "Click here to select a csv file.": "",
...@@ -96,6 +106,8 @@ ...@@ -96,6 +106,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Tạo một cụm từ súc tích, 3-5 từ làm tiêu đề cho truy vấn sau, tuân thủ nghiêm ngặt giới hạn 3-5 từ và tránh sử dụng từ 'tiêu đề':", "Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Tạo một cụm từ súc tích, 3-5 từ làm tiêu đề cho truy vấn sau, tuân thủ nghiêm ngặt giới hạn 3-5 từ và tránh sử dụng từ 'tiêu đề':",
"Create a modelfile": "Tạo tệp mô tả cho mô hình", "Create a modelfile": "Tạo tệp mô tả cho mô hình",
"Create Account": "Tạo Tài khoản", "Create Account": "Tạo Tài khoản",
"Create new key": "",
"Create new secret key": "",
"Created at": "Được tạo vào lúc", "Created at": "Được tạo vào lúc",
"Created At": "", "Created At": "",
"Current Model": "Mô hình hiện tại", "Current Model": "Mô hình hiện tại",
...@@ -103,8 +115,10 @@ ...@@ -103,8 +115,10 @@
"Custom": "Tùy chỉnh", "Custom": "Tùy chỉnh",
"Customize Ollama models for a specific purpose": "Tùy chỉnh các mô hình dựa trên Ollama cho một mục đích cụ thể", "Customize Ollama models for a specific purpose": "Tùy chỉnh các mô hình dựa trên Ollama cho một mục đích cụ thể",
"Dark": "Tối", "Dark": "Tối",
"Dashboard": "",
"Database": "Cơ sở dữ liệu", "Database": "Cơ sở dữ liệu",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm", "DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"December": "",
"Default": "Mặc định", "Default": "Mặc định",
"Default (Automatic1111)": "Mặc định (Automatic1111)", "Default (Automatic1111)": "Mặc định (Automatic1111)",
"Default (SentenceTransformers)": "", "Default (SentenceTransformers)": "",
...@@ -118,6 +132,7 @@ ...@@ -118,6 +132,7 @@
"Delete chat": "Xóa nội dung chat", "Delete chat": "Xóa nội dung chat",
"Delete Chat": "", "Delete Chat": "",
"Delete Chats": "Xóa nội dung chat", "Delete Chats": "Xóa nội dung chat",
"delete this link": "",
"Delete User": "", "Delete User": "",
"Deleted {{deleteModelTag}}": "Đã xóa {{deleteModelTag}}", "Deleted {{deleteModelTag}}": "Đã xóa {{deleteModelTag}}",
"Deleted {{tagName}}": "", "Deleted {{tagName}}": "",
...@@ -137,6 +152,7 @@ ...@@ -137,6 +152,7 @@
"Don't have an account?": "Không có tài khoản?", "Don't have an account?": "Không có tài khoản?",
"Don't like the style": "Không thích phong cách trả lời", "Don't like the style": "Không thích phong cách trả lời",
"Download": "", "Download": "",
"Download canceled": "",
"Download Database": "Tải xuống Cơ sở dữ liệu", "Download Database": "Tải xuống Cơ sở dữ liệu",
"Drop any files here to add to the conversation": "Thả bất kỳ tệp nào ở đây để thêm vào nội dung chat", "Drop any files here to add to the conversation": "Thả bất kỳ tệp nào ở đây để thêm vào nội dung chat",
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "vd: '30s','10m'. Đơn vị thời gian hợp lệ là 's', 'm', 'h'.", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "vd: '30s','10m'. Đơn vị thời gian hợp lệ là 's', 'm', 'h'.",
...@@ -144,6 +160,7 @@ ...@@ -144,6 +160,7 @@
"Edit Doc": "Thay đổi tài liệu", "Edit Doc": "Thay đổi tài liệu",
"Edit User": "Thay đổi thông tin người sử dụng", "Edit User": "Thay đổi thông tin người sử dụng",
"Email": "Email", "Email": "Email",
"Embedding Model": "",
"Embedding Model Engine": "", "Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "", "Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "Bật Lịch sử chat", "Enable Chat History": "Bật Lịch sử chat",
...@@ -165,6 +182,7 @@ ...@@ -165,6 +182,7 @@
"Enter stop sequence": "Nhập stop sequence", "Enter stop sequence": "Nhập stop sequence",
"Enter Top K": "Nhập Top K", "Enter Top K": "Nhập Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "Nhập URL (vd: http://127.0.0.1:7860/)", "Enter URL (e.g. http://127.0.0.1:7860/)": "Nhập URL (vd: http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "Nhập Email của bạn", "Enter Your Email": "Nhập Email của bạn",
"Enter Your Full Name": "Nhập Họ và Tên của bạn", "Enter Your Full Name": "Nhập Họ và Tên của bạn",
"Enter Your Password": "Nhập Mật khẩu của bạn", "Enter Your Password": "Nhập Mật khẩu của bạn",
...@@ -177,6 +195,7 @@ ...@@ -177,6 +195,7 @@
"Export Prompts": "Tải các prompt về máy", "Export Prompts": "Tải các prompt về máy",
"Failed to create API Key.": "", "Failed to create API Key.": "",
"Failed to read clipboard contents": "Không thể đọc nội dung clipboard", "Failed to read clipboard contents": "Không thể đọc nội dung clipboard",
"February": "",
"Feel free to add specific details": "Mô tả chi tiết về chất lượng của câu hỏi và phương án trả lời", "Feel free to add specific details": "Mô tả chi tiết về chất lượng của câu hỏi và phương án trả lời",
"File Mode": "Chế độ Tệp văn bản", "File Mode": "Chế độ Tệp văn bản",
"File not found.": "Không tìm thấy tệp.", "File not found.": "Không tìm thấy tệp.",
...@@ -193,6 +212,7 @@ ...@@ -193,6 +212,7 @@
"Good Response": "", "Good Response": "",
"has no conversations.": "", "has no conversations.": "",
"Hello, {{name}}": "Xin chào, {{name}}", "Hello, {{name}}": "Xin chào, {{name}}",
"Help": "",
"Hide": "Ẩn", "Hide": "Ẩn",
"Hide Additional Params": "Ẩn Các tham số bổ sung", "Hide Additional Params": "Ẩn Các tham số bổ sung",
"How can I help you today?": "Tôi có thể giúp gì cho bạn hôm nay?", "How can I help you today?": "Tôi có thể giúp gì cho bạn hôm nay?",
...@@ -206,9 +226,14 @@ ...@@ -206,9 +226,14 @@
"Import Modelfiles": "Nạp tệp mô tả", "Import Modelfiles": "Nạp tệp mô tả",
"Import Prompts": "Nạp các prompt lên hệ thống", "Import Prompts": "Nạp các prompt lên hệ thống",
"Include `--api` flag when running stable-diffusion-webui": "Bao gồm flag `--api` khi chạy stable-diffusion-webui", "Include `--api` flag when running stable-diffusion-webui": "Bao gồm flag `--api` khi chạy stable-diffusion-webui",
"Input commands": "",
"Interface": "Giao diện", "Interface": "Giao diện",
"Invalid Tag": "",
"January": "",
"join our Discord for help.": "tham gia Discord của chúng tôi để được trợ giúp.", "join our Discord for help.": "tham gia Discord của chúng tôi để được trợ giúp.",
"JSON": "JSON", "JSON": "JSON",
"July": "",
"June": "",
"JWT Expiration": "JWT Hết hạn", "JWT Expiration": "JWT Hết hạn",
"JWT Token": "Token JWT", "JWT Token": "Token JWT",
"Keep Alive": "Giữ kết nối", "Keep Alive": "Giữ kết nối",
...@@ -223,8 +248,11 @@ ...@@ -223,8 +248,11 @@
"Manage LiteLLM Models": "Quản lý mô hình với LiteLLM", "Manage LiteLLM Models": "Quản lý mô hình với LiteLLM",
"Manage Models": "Quản lý mô hình", "Manage Models": "Quản lý mô hình",
"Manage Ollama Models": "Quản lý mô hình với Ollama", "Manage Ollama Models": "Quản lý mô hình với Ollama",
"March": "",
"Max Tokens": "Max Tokens", "Max Tokens": "Max Tokens",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Tối đa 3 mô hình có thể được tải xuống cùng lúc. Vui lòng thử lại sau.", "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Tối đa 3 mô hình có thể được tải xuống cùng lúc. Vui lòng thử lại sau.",
"May": "",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "", "Minimum Score": "",
"Mirostat": "Mirostat", "Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta", "Mirostat Eta": "Mirostat Eta",
...@@ -255,11 +283,15 @@ ...@@ -255,11 +283,15 @@
"Name your modelfile": "Đặt tên cho tệp mô hình của bạn", "Name your modelfile": "Đặt tên cho tệp mô hình của bạn",
"New Chat": "Tạo cuộc trò chuyện mới", "New Chat": "Tạo cuộc trò chuyện mới",
"New Password": "Mật khẩu mới", "New Password": "Mật khẩu mới",
"No results found": "",
"No source available": "",
"Not factually correct": "Không chính xác so với thực tế", "Not factually correct": "Không chính xác so với thực tế",
"Not sure what to add?": "Không chắc phải thêm gì?", "Not sure what to add?": "Không chắc phải thêm gì?",
"Not sure what to write? Switch to": "Không chắc phải viết gì? Chuyển sang", "Not sure what to write? Switch to": "Không chắc phải viết gì? Chuyển sang",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
"Notifications": "Thông báo trên máy tính (Notification)", "Notifications": "Thông báo trên máy tính (Notification)",
"November": "",
"October": "",
"Off": "Tắt", "Off": "Tắt",
"Okay, Let's Go!": "Được rồi, Bắt đầu thôi!", "Okay, Let's Go!": "Được rồi, Bắt đầu thôi!",
"OLED Dark": "", "OLED Dark": "",
...@@ -283,6 +315,7 @@ ...@@ -283,6 +315,7 @@
"OpenAI URL/Key required.": "", "OpenAI URL/Key required.": "",
"or": "hoặc", "or": "hoặc",
"Other": "Khác", "Other": "Khác",
"Overview": "",
"Parameters": "Tham số", "Parameters": "Tham số",
"Password": "Mật khẩu", "Password": "Mật khẩu",
"PDF document (.pdf)": "", "PDF document (.pdf)": "",
...@@ -292,11 +325,15 @@ ...@@ -292,11 +325,15 @@
"Plain text (.txt)": "", "Plain text (.txt)": "",
"Playground": "Thử nghiệm (Playground)", "Playground": "Thử nghiệm (Playground)",
"Positive attitude": "", "Positive attitude": "",
"Previous 30 days": "",
"Previous 7 days": "",
"Profile Image": "", "Profile Image": "",
"Prompt": "",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
"Prompt Content": "Nội dung prompt", "Prompt Content": "Nội dung prompt",
"Prompt suggestions": "Gợi ý prompt", "Prompt suggestions": "Gợi ý prompt",
"Prompts": "Prompt", "Prompts": "Prompt",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "Tải mô hình từ Ollama.com", "Pull a model from Ollama.com": "Tải mô hình từ Ollama.com",
"Pull Progress": "Tiến trình Tải xuống", "Pull Progress": "Tiến trình Tải xuống",
"Query Params": "Tham số Truy vấn", "Query Params": "Tham số Truy vấn",
...@@ -309,13 +346,17 @@ ...@@ -309,13 +346,17 @@
"Regenerate": "", "Regenerate": "",
"Release Notes": "Mô tả những cập nhật mới", "Release Notes": "Mô tả những cập nhật mới",
"Remove": "", "Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "Repeat Last N", "Repeat Last N": "Repeat Last N",
"Repeat Penalty": "Repeat Penalty", "Repeat Penalty": "Repeat Penalty",
"Request Mode": "Request Mode", "Request Mode": "Request Mode",
"Reranking Model": "",
"Reranking model disabled": "", "Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "", "Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "Cài đặt lại Vector Storage", "Reset Vector Storage": "Cài đặt lại Vector Storage",
"Response AutoCopy to Clipboard": "Tự động Sao chép Phản hồi vào clipboard", "Response AutoCopy to Clipboard": "Tự động Sao chép Phản hồi vào clipboard",
"Retrieval Augmented Generation Settings": "",
"Role": "Vai trò", "Role": "Vai trò",
"Rosé Pine": "Rosé Pine", "Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn", "Rosé Pine Dawn": "Rosé Pine Dawn",
...@@ -337,12 +378,16 @@ ...@@ -337,12 +378,16 @@
"Select a mode": "Chọn một chế độ", "Select a mode": "Chọn một chế độ",
"Select a model": "Chọn mô hình", "Select a model": "Chọn mô hình",
"Select an Ollama instance": "Chọn một thực thể Ollama", "Select an Ollama instance": "Chọn một thực thể Ollama",
"Select model": "",
"Send a Message": "Gửi yêu cầu", "Send a Message": "Gửi yêu cầu",
"Send message": "Gửi yêu cầu", "Send message": "Gửi yêu cầu",
"September": "",
"Server connection verified": "Kết nối máy chủ đã được xác minh", "Server connection verified": "Kết nối máy chủ đã được xác minh",
"Set as default": "Đặt làm mặc định", "Set as default": "Đặt làm mặc định",
"Set Default Model": "Đặt Mô hình Mặc định", "Set Default Model": "Đặt Mô hình Mặc định",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "Đặt Kích thước ảnh", "Set Image Size": "Đặt Kích thước ảnh",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "Đặt Số Bước", "Set Steps": "Đặt Số Bước",
"Set Title Auto-Generation Model": "Đặt tiêu đề tự động", "Set Title Auto-Generation Model": "Đặt tiêu đề tự động",
"Set Voice": "Đặt Giọng nói", "Set Voice": "Đặt Giọng nói",
...@@ -361,6 +406,7 @@ ...@@ -361,6 +406,7 @@
"Sign Out": "Đăng xuất", "Sign Out": "Đăng xuất",
"Sign up": "Đăng ký", "Sign up": "Đăng ký",
"Signing in": "", "Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "Lỗi nhận dạng giọng nói: {{error}}", "Speech recognition error: {{error}}": "Lỗi nhận dạng giọng nói: {{error}}",
"Speech-to-Text Engine": "Công cụ Nhận dạng Giọng nói", "Speech-to-Text Engine": "Công cụ Nhận dạng Giọng nói",
"SpeechRecognition API is not supported in this browser.": "Trình duyệt này không hỗ trợ API Nhận dạng Giọng nói.", "SpeechRecognition API is not supported in this browser.": "Trình duyệt này không hỗ trợ API Nhận dạng Giọng nói.",
...@@ -370,6 +416,7 @@ ...@@ -370,6 +416,7 @@
"Subtitle (e.g. about the Roman Empire)": "", "Subtitle (e.g. about the Roman Empire)": "",
"Success": "Thành công", "Success": "Thành công",
"Successfully updated.": "Đã cập nhật thành công.", "Successfully updated.": "Đã cập nhật thành công.",
"Suggested": "",
"Sync All": "Đồng bộ hóa Tất cả", "Sync All": "Đồng bộ hóa Tất cả",
"System": "Hệ thống", "System": "Hệ thống",
"System Prompt": "Prompt Hệ thống (System Prompt)", "System Prompt": "Prompt Hệ thống (System Prompt)",
...@@ -390,11 +437,13 @@ ...@@ -390,11 +437,13 @@
"Title": "Tiêu đề", "Title": "Tiêu đề",
"Title (e.g. Tell me a fun fact)": "", "Title (e.g. Tell me a fun fact)": "",
"Title Auto-Generation": "Tự động Tạo Tiêu đề", "Title Auto-Generation": "Tự động Tạo Tiêu đề",
"Title cannot be an empty string.": "",
"Title Generation Prompt": "Prompt tạo tiêu đề", "Title Generation Prompt": "Prompt tạo tiêu đề",
"to": "đến", "to": "đến",
"To access the available model names for downloading,": "Để truy cập các tên mô hình có sẵn để tải xuống,", "To access the available model names for downloading,": "Để truy cập các tên mô hình có sẵn để tải xuống,",
"To access the GGUF models available for downloading,": "Để truy cập các mô hình GGUF có sẵn để tải xuống,", "To access the GGUF models available for downloading,": "Để truy cập các mô hình GGUF có sẵn để tải xuống,",
"to chat input.": "đến đầu vào trò chuyện.", "to chat input.": "đến đầu vào trò chuyện.",
"Today": "",
"Toggle settings": "Bật/tắt cài đặt", "Toggle settings": "Bật/tắt cài đặt",
"Toggle sidebar": "Bật/tắt thanh bên", "Toggle sidebar": "Bật/tắt thanh bên",
"Top K": "Top K", "Top K": "Top K",
...@@ -405,11 +454,7 @@ ...@@ -405,11 +454,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "Ồ! Đã xảy ra sự cố khi kết nối với {{provider}}.", "Uh-oh! There was an issue connecting to {{provider}}.": "Ồ! Đã xảy ra sự cố khi kết nối với {{provider}}.",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Loại Tệp Không xác định '{{file_type}}', nhưng đang chấp nhận và xử lý như văn bản thô", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Loại Tệp Không xác định '{{file_type}}', nhưng đang chấp nhận và xử lý như văn bản thô",
"Update and Copy Link": "", "Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "Cập nhật mật khẩu", "Update password": "Cập nhật mật khẩu",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "Tải lên mô hình GGUF", "Upload a GGUF model": "Tải lên mô hình GGUF",
"Upload files": "Tải tệp lên hệ thống", "Upload files": "Tải tệp lên hệ thống",
"Upload Progress": "Tiến trình tải tệp lên hệ thống", "Upload Progress": "Tiến trình tải tệp lên hệ thống",
...@@ -427,6 +472,7 @@ ...@@ -427,6 +472,7 @@
"Version": "Version", "Version": "Version",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "Web", "Web": "Web",
"Web Params": "",
"Webhook URL": "", "Webhook URL": "",
"WebUI Add-ons": "Tiện ích WebUI", "WebUI Add-ons": "Tiện ích WebUI",
"WebUI Settings": "Cài đặt WebUI", "WebUI Settings": "Cài đặt WebUI",
...@@ -436,7 +482,10 @@ ...@@ -436,7 +482,10 @@
"Whisper (Local)": "Whisper (Local)", "Whisper (Local)": "Whisper (Local)",
"Write a prompt suggestion (e.g. Who are you?)": "Hãy viết một prompt (vd: Bạn là ai?)", "Write a prompt suggestion (e.g. Who are you?)": "Hãy viết một prompt (vd: Bạn là ai?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "Viết một tóm tắt trong vòng 50 từ cho [chủ đề hoặc từ khóa].", "Write a summary in 50 words that summarizes [topic or keyword].": "Viết một tóm tắt trong vòng 50 từ cho [chủ đề hoặc từ khóa].",
"Yesterday": "",
"You": "Bạn", "You": "Bạn",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "Bạn là một trợ lý hữu ích.", "You're a helpful assistant.": "Bạn là một trợ lý hữu ích.",
"You're now logged in.": "Bạn đã đăng nhập.", "You're now logged in.": "Bạn đã đăng nhập.",
"Youtube": "" "Youtube": ""
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
"Add a short description about what this modelfile does": "为这个模型文件添加一段简短的描述", "Add a short description about what this modelfile does": "为这个模型文件添加一段简短的描述",
"Add a short title for this prompt": "为这个提示词添加一个简短的标题", "Add a short title for this prompt": "为这个提示词添加一个简短的标题",
"Add a tag": "添加标签", "Add a tag": "添加标签",
"Add custom prompt": "",
"Add Docs": "添加文档", "Add Docs": "添加文档",
"Add Files": "添加文件", "Add Files": "添加文件",
"Add message": "添加消息", "Add message": "添加消息",
...@@ -27,6 +28,7 @@ ...@@ -27,6 +28,7 @@
"Admin Settings": "管理员设置", "Admin Settings": "管理员设置",
"Advanced Parameters": "高级参数", "Advanced Parameters": "高级参数",
"all": "所有", "all": "所有",
"All Documents": "",
"All Users": "所有用户", "All Users": "所有用户",
"Allow": "允许", "Allow": "允许",
"Allow Chat Deletion": "允许删除聊天记录", "Allow Chat Deletion": "允许删除聊天记录",
...@@ -34,26 +36,32 @@ ...@@ -34,26 +36,32 @@
"Already have an account?": "已经有账户了吗?", "Already have an account?": "已经有账户了吗?",
"an assistant": "助手", "an assistant": "助手",
"and": "和", "and": "和",
"and create a new shared link.": "",
"API Base URL": "API 基础 URL", "API Base URL": "API 基础 URL",
"API Key": "API 密钥", "API Key": "API 密钥",
"API Key created.": "", "API Key created.": "",
"API keys": "", "API keys": "",
"API RPM": "API RPM", "API RPM": "API RPM",
"April": "",
"Archive": "", "Archive": "",
"Archived Chats": "聊天记录存档", "Archived Chats": "聊天记录存档",
"are allowed - Activate this command by typing": "允许 - 通过输入来激活这个命令", "are allowed - Activate this command by typing": "允许 - 通过输入来激活这个命令",
"Are you sure?": "你确定吗?", "Are you sure?": "你确定吗?",
"Attach file": "",
"Attention to detail": "", "Attention to detail": "",
"Audio": "音频", "Audio": "音频",
"August": "",
"Auto-playback response": "自动播放回应", "Auto-playback response": "自动播放回应",
"Auto-send input after 3 sec.": "3秒后自动发送输入", "Auto-send input after 3 sec.": "3 秒后自动发送输入",
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 基础 URL", "AUTOMATIC1111 Base URL": "AUTOMATIC1111 基础 URL",
"AUTOMATIC1111 Base URL is required.": "需要 AUTOMATIC1111 基础 URL。", "AUTOMATIC1111 Base URL is required.": "需要 AUTOMATIC1111 基础 URL。",
"available!": "可用!", "available!": "可用!",
"Back": "返回", "Back": "返回",
"Bad Response": "", "Bad Response": "",
"before": "",
"Being lazy": "", "Being lazy": "",
"Builder Mode": "构建模式", "Builder Mode": "构建模式",
"Bypass SSL verification for Websites": "",
"Cancel": "取消", "Cancel": "取消",
"Categories": "分类", "Categories": "分类",
"Change Password": "更改密码", "Change Password": "更改密码",
...@@ -65,10 +73,12 @@ ...@@ -65,10 +73,12 @@
"Check for updates": "检查更新", "Check for updates": "检查更新",
"Checking for updates...": "正在检查更新...", "Checking for updates...": "正在检查更新...",
"Choose a model before saving...": "保存前选择一个模型...", "Choose a model before saving...": "保存前选择一个模型...",
"Chunk Overlap": "块重叠(Chunk Overlap)", "Chunk Overlap": "块重叠 (Chunk Overlap)",
"Chunk Params": "块参数(Chunk Params)", "Chunk Params": "块参数 (Chunk Params)",
"Chunk Size": "块大小(Chunk Size)", "Chunk Size": "块大小 (Chunk Size)",
"Citation": "",
"Click here for help.": "点击这里获取帮助。", "Click here for help.": "点击这里获取帮助。",
"Click here to": "",
"Click here to check other modelfiles.": "点击这里检查其他模型文件。", "Click here to check other modelfiles.": "点击这里检查其他模型文件。",
"Click here to select": "点击这里选择", "Click here to select": "点击这里选择",
"Click here to select a csv file.": "", "Click here to select a csv file.": "",
...@@ -93,18 +103,22 @@ ...@@ -93,18 +103,22 @@
"Copy last response": "复制最后一次回复", "Copy last response": "复制最后一次回复",
"Copy Link": "", "Copy Link": "",
"Copying to clipboard was successful!": "复制到剪贴板成功!", "Copying to clipboard was successful!": "复制到剪贴板成功!",
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "为以下查询创建一个简洁的、3-5个词的短语作为标题,严格遵守3-5个词的限制并避免使用“标题”一词:", "Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "为以下查询创建一个简洁的、3-5 个词的短语作为标题,严格遵守 3-5 个词的限制并避免使用“标题”一词:",
"Create a modelfile": "创建模型文件", "Create a modelfile": "创建模型文件",
"Create Account": "创建账户", "Create Account": "创建账户",
"Create new key": "",
"Create new secret key": "",
"Created at": "创建于", "Created at": "创建于",
"Created At": "", "Created At": "",
"Current Model": "当前模型", "Current Model": "当前模型",
"Current Password": "当前密码", "Current Password": "当前密码",
"Custom": "自定义", "Custom": "自定义",
"Customize Ollama models for a specific purpose": "定制特定用途的Ollama模型", "Customize Ollama models for a specific purpose": "定制特定用途的 Ollama 模型",
"Dark": "暗色", "Dark": "暗色",
"Dashboard": "",
"Database": "数据库", "Database": "数据库",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm", "DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"December": "",
"Default": "默认", "Default": "默认",
"Default (Automatic1111)": "默认(Automatic1111)", "Default (Automatic1111)": "默认(Automatic1111)",
"Default (SentenceTransformers)": "", "Default (SentenceTransformers)": "",
...@@ -118,6 +132,7 @@ ...@@ -118,6 +132,7 @@
"Delete chat": "删除聊天", "Delete chat": "删除聊天",
"Delete Chat": "", "Delete Chat": "",
"Delete Chats": "删除聊天记录", "Delete Chats": "删除聊天记录",
"delete this link": "",
"Delete User": "", "Delete User": "",
"Deleted {{deleteModelTag}}": "已删除{{deleteModelTag}}", "Deleted {{deleteModelTag}}": "已删除{{deleteModelTag}}",
"Deleted {{tagName}}": "", "Deleted {{tagName}}": "",
...@@ -137,6 +152,7 @@ ...@@ -137,6 +152,7 @@
"Don't have an account?": "没有账户?", "Don't have an account?": "没有账户?",
"Don't like the style": "", "Don't like the style": "",
"Download": "", "Download": "",
"Download canceled": "",
"Download Database": "下载数据库", "Download Database": "下载数据库",
"Drop any files here to add to the conversation": "拖动文件到此处以添加到对话中", "Drop any files here to add to the conversation": "拖动文件到此处以添加到对话中",
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是's', 'm', 'h'。", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s','10m'。有效的时间单位是's', 'm', 'h'。",
...@@ -144,6 +160,7 @@ ...@@ -144,6 +160,7 @@
"Edit Doc": "编辑文档", "Edit Doc": "编辑文档",
"Edit User": "编辑用户", "Edit User": "编辑用户",
"Email": "电子邮件", "Email": "电子邮件",
"Embedding Model": "",
"Embedding Model Engine": "", "Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "", "Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "启用聊天历史", "Enable Chat History": "启用聊天历史",
...@@ -151,20 +168,21 @@ ...@@ -151,20 +168,21 @@
"Enabled": "启用", "Enabled": "启用",
"Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "", "Ensure your CSV file includes 4 columns in this order: Name, Email, Password, Role.": "",
"Enter {{role}} message here": "在此处输入 {{role}} 信息", "Enter {{role}} message here": "在此处输入 {{role}} 信息",
"Enter Chunk Overlap": "输入块重叠(Chunk Overlap)", "Enter Chunk Overlap": "输入块重叠 (Chunk Overlap)",
"Enter Chunk Size": "输入块大小(Chunk Size)", "Enter Chunk Size": "输入块大小 (Chunk Size)",
"Enter Image Size (e.g. 512x512)": "输入图片大小(例如 512x512)", "Enter Image Size (e.g. 512x512)": "输入图片大小 (例如 512x512)",
"Enter LiteLLM API Base URL (litellm_params.api_base)": "输入 LiteLLM API 基本 URL (litellm_params.api_base)", "Enter LiteLLM API Base URL (litellm_params.api_base)": "输入 LiteLLM API 基本 URL (litellm_params.api_base)",
"Enter LiteLLM API Key (litellm_params.api_key)": "输入 LiteLLM API 密匙 (litellm_params.api_key)", "Enter LiteLLM API Key (litellm_params.api_key)": "输入 LiteLLM API 密匙 (litellm_params.api_key)",
"Enter LiteLLM API RPM (litellm_params.rpm)": "输入 LiteLLM API 速率限制 (litellm_params.rpm)", "Enter LiteLLM API RPM (litellm_params.rpm)": "输入 LiteLLM API 速率限制 (litellm_params.rpm)",
"Enter LiteLLM Model (litellm_params.model)": "输入 LiteLLM 模型 (litellm_params.model)", "Enter LiteLLM Model (litellm_params.model)": "输入 LiteLLM 模型 (litellm_params.model)",
"Enter Max Tokens (litellm_params.max_tokens)": "输入模型的 Max Tokens (litellm_params.max_tokens)", "Enter Max Tokens (litellm_params.max_tokens)": "输入模型的 Max Tokens (litellm_params.max_tokens)",
"Enter model tag (e.g. {{modelTag}})": "输入模型标签(例如{{modelTag}})", "Enter model tag (e.g. {{modelTag}})": "输入模型标签 (例如{{modelTag}})",
"Enter Number of Steps (e.g. 50)": "输入步数(例如50)", "Enter Number of Steps (e.g. 50)": "输入步数 (例如 50)",
"Enter Score": "", "Enter Score": "",
"Enter stop sequence": "输入停止序列", "Enter stop sequence": "输入停止序列",
"Enter Top K": "输入 Top K", "Enter Top K": "输入 Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "输入 URL (例如 http://127.0.0.1:7860/)", "Enter URL (e.g. http://127.0.0.1:7860/)": "输入 URL (例如 http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "输入您的电子邮件", "Enter Your Email": "输入您的电子邮件",
"Enter Your Full Name": "输入您的全名", "Enter Your Full Name": "输入您的全名",
"Enter Your Password": "输入您的密码", "Enter Your Password": "输入您的密码",
...@@ -177,6 +195,7 @@ ...@@ -177,6 +195,7 @@
"Export Prompts": "导出提示词", "Export Prompts": "导出提示词",
"Failed to create API Key.": "", "Failed to create API Key.": "",
"Failed to read clipboard contents": "无法读取剪贴板内容", "Failed to read clipboard contents": "无法读取剪贴板内容",
"February": "",
"Feel free to add specific details": "", "Feel free to add specific details": "",
"File Mode": "文件模式", "File Mode": "文件模式",
"File not found.": "文件未找到。", "File not found.": "文件未找到。",
...@@ -193,6 +212,7 @@ ...@@ -193,6 +212,7 @@
"Good Response": "", "Good Response": "",
"has no conversations.": "", "has no conversations.": "",
"Hello, {{name}}": "你好,{{name}}", "Hello, {{name}}": "你好,{{name}}",
"Help": "",
"Hide": "隐藏", "Hide": "隐藏",
"Hide Additional Params": "隐藏额外参数", "Hide Additional Params": "隐藏额外参数",
"How can I help you today?": "我今天能帮你做什么?", "How can I help you today?": "我今天能帮你做什么?",
...@@ -205,26 +225,34 @@ ...@@ -205,26 +225,34 @@
"Import Documents Mapping": "导入文档映射", "Import Documents Mapping": "导入文档映射",
"Import Modelfiles": "导入模型文件", "Import Modelfiles": "导入模型文件",
"Import Prompts": "导入提示", "Import Prompts": "导入提示",
"Include `--api` flag when running stable-diffusion-webui": "运行stable-diffusion-webui时包含`--api`标志", "Include `--api` flag when running stable-diffusion-webui": "运行 stable-diffusion-webui 时包含 `--api` 标志",
"Input commands": "",
"Interface": "界面", "Interface": "界面",
"join our Discord for help.": "加入我们的Discord寻求帮助。", "Invalid Tag": "",
"January": "",
"join our Discord for help.": "加入我们的 Discord 寻求帮助。",
"JSON": "JSON", "JSON": "JSON",
"JWT Expiration": "JWT过期", "July": "",
"JWT Token": "JWT令牌", "June": "",
"JWT Expiration": "JWT 过期",
"JWT Token": "JWT 令牌",
"Keep Alive": "保持活动", "Keep Alive": "保持活动",
"Keyboard shortcuts": "键盘快捷键", "Keyboard shortcuts": "键盘快捷键",
"Language": "语言", "Language": "语言",
"Last Active": "", "Last Active": "",
"Light": "浅色", "Light": "浅色",
"Listening...": "监听中...", "Listening...": "监听中...",
"LLMs can make mistakes. Verify important information.": "LLM可能会生成错误信息,请验证重要信息。", "LLMs can make mistakes. Verify important information.": "LLM 可能会生成错误信息,请验证重要信息。",
"Made by OpenWebUI Community": "由OpenWebUI社区制作", "Made by OpenWebUI Community": "由 OpenWebUI 社区制作",
"Make sure to enclose them with": "确保将它们包含在内", "Make sure to enclose them with": "确保将它们包含在内",
"Manage LiteLLM Models": "管理LiteLLM模型", "Manage LiteLLM Models": "管理 LiteLLM 模型",
"Manage Models": "管理模型", "Manage Models": "管理模型",
"Manage Ollama Models": "管理Ollama模型", "Manage Ollama Models": "管理 Ollama 模型",
"March": "",
"Max Tokens": "最大令牌数", "Max Tokens": "最大令牌数",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同时下载3个模型,请稍后重试。", "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同时下载 3 个模型,请稍后重试。",
"May": "",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "", "Minimum Score": "",
"Mirostat": "Mirostat", "Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta", "Mirostat Eta": "Mirostat Eta",
...@@ -255,11 +283,15 @@ ...@@ -255,11 +283,15 @@
"Name your modelfile": "命名你的模型文件", "Name your modelfile": "命名你的模型文件",
"New Chat": "新聊天", "New Chat": "新聊天",
"New Password": "新密码", "New Password": "新密码",
"No results found": "",
"No source available": "",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "不确定要添加什么?", "Not sure what to add?": "不确定要添加什么?",
"Not sure what to write? Switch to": "不确定写什么?切换到", "Not sure what to write? Switch to": "不确定写什么?切换到",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
"Notifications": "桌面通知", "Notifications": "桌面通知",
"November": "",
"October": "",
"Off": "关闭", "Off": "关闭",
"Okay, Let's Go!": "好的,我们开始吧!", "Okay, Let's Go!": "好的,我们开始吧!",
"OLED Dark": "", "OLED Dark": "",
...@@ -268,7 +300,7 @@ ...@@ -268,7 +300,7 @@
"Ollama Version": "Ollama 版本", "Ollama Version": "Ollama 版本",
"On": "开", "On": "开",
"Only": "仅", "Only": "仅",
"Only alphanumeric characters and hyphens are allowed in the command string.": "命令字符串中只允许使用英文字母,数字(0-9)以及连字符(-)。", "Only alphanumeric characters and hyphens are allowed in the command string.": "命令字符串中只允许使用英文字母,数字 (0-9) 以及连字符 (-)。",
"Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.": "哎呀!请稍等!您的文件仍在处理中。我们正在将它们做得尽善尽美,请耐心等待,一旦准备好我们会通知您。", "Oops! Hold tight! Your files are still in the processing oven. We're cooking them up to perfection. Please be patient and we'll let you know once they're ready.": "哎呀!请稍等!您的文件仍在处理中。我们正在将它们做得尽善尽美,请耐心等待,一旦准备好我们会通知您。",
"Oops! Looks like the URL is invalid. Please double-check and try again.": "哎呀!看起来 URL 无效。请仔细检查后再试一次。", "Oops! Looks like the URL is invalid. Please double-check and try again.": "哎呀!看起来 URL 无效。请仔细检查后再试一次。",
"Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "哎呀!您正在使用不支持的方法(仅限前端)。请从后端提供 WebUI。", "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "哎呀!您正在使用不支持的方法(仅限前端)。请从后端提供 WebUI。",
...@@ -283,20 +315,25 @@ ...@@ -283,20 +315,25 @@
"OpenAI URL/Key required.": "", "OpenAI URL/Key required.": "",
"or": "或", "or": "或",
"Other": "", "Other": "",
"Overview": "",
"Parameters": "参数", "Parameters": "参数",
"Password": "密码", "Password": "密码",
"PDF document (.pdf)": "", "PDF document (.pdf)": "",
"PDF Extract Images (OCR)": "PDF图像处理(使用OCR)", "PDF Extract Images (OCR)": "PDF 图像处理 (使用 OCR)",
"pending": "待定", "pending": "待定",
"Permission denied when accessing microphone: {{error}}": "访问麦克风时权限被拒绝:{{error}}", "Permission denied when accessing microphone: {{error}}": "访问麦克风时权限被拒绝:{{error}}",
"Plain text (.txt)": "", "Plain text (.txt)": "",
"Playground": "AI 对话游乐场", "Playground": "AI 对话游乐场",
"Positive attitude": "", "Positive attitude": "",
"Previous 30 days": "",
"Previous 7 days": "",
"Profile Image": "", "Profile Image": "",
"Prompt": "",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
"Prompt Content": "提示词内容", "Prompt Content": "提示词内容",
"Prompt suggestions": "提示词建议", "Prompt suggestions": "提示词建议",
"Prompts": "提示词", "Prompts": "提示词",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "从 Ollama.com 拉取一个模型", "Pull a model from Ollama.com": "从 Ollama.com 拉取一个模型",
"Pull Progress": "拉取进度", "Pull Progress": "拉取进度",
"Query Params": "查询参数", "Query Params": "查询参数",
...@@ -309,13 +346,17 @@ ...@@ -309,13 +346,17 @@
"Regenerate": "", "Regenerate": "",
"Release Notes": "发布说明", "Release Notes": "发布说明",
"Remove": "", "Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "重复最后 N 次", "Repeat Last N": "重复最后 N 次",
"Repeat Penalty": "重复惩罚", "Repeat Penalty": "重复惩罚",
"Request Mode": "请求模式", "Request Mode": "请求模式",
"Reranking Model": "",
"Reranking model disabled": "", "Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "", "Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "重置向量存储", "Reset Vector Storage": "重置向量存储",
"Response AutoCopy to Clipboard": "自动复制回答到剪贴板", "Response AutoCopy to Clipboard": "自动复制回答到剪贴板",
"Retrieval Augmented Generation Settings": "",
"Role": "角色", "Role": "角色",
"Rosé Pine": "Rosé Pine", "Rosé Pine": "Rosé Pine",
"Rosé Pine Dawn": "Rosé Pine Dawn", "Rosé Pine Dawn": "Rosé Pine Dawn",
...@@ -336,13 +377,17 @@ ...@@ -336,13 +377,17 @@
"Seed": "种子", "Seed": "种子",
"Select a mode": "选择一个模式", "Select a mode": "选择一个模式",
"Select a model": "选择一个模型", "Select a model": "选择一个模型",
"Select an Ollama instance": "选择一个Ollama实例", "Select an Ollama instance": "选择一个 Ollama 实例",
"Select model": "",
"Send a Message": "发送消息", "Send a Message": "发送消息",
"Send message": "发送消息", "Send message": "发送消息",
"September": "",
"Server connection verified": "已验证服务器连接", "Server connection verified": "已验证服务器连接",
"Set as default": "设为默认", "Set as default": "设为默认",
"Set Default Model": "设置默认模型", "Set Default Model": "设置默认模型",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "设置图片大小", "Set Image Size": "设置图片大小",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "设置步骤", "Set Steps": "设置步骤",
"Set Title Auto-Generation Model": "设置标题自动生成模型", "Set Title Auto-Generation Model": "设置标题自动生成模型",
"Set Voice": "设置声音", "Set Voice": "设置声音",
...@@ -350,7 +395,7 @@ ...@@ -350,7 +395,7 @@
"Settings saved successfully!": "设置已保存", "Settings saved successfully!": "设置已保存",
"Share": "", "Share": "",
"Share Chat": "", "Share Chat": "",
"Share to OpenWebUI Community": "分享到OpenWebUI社区", "Share to OpenWebUI Community": "分享到 OpenWebUI 社区",
"short-summary": "简短总结", "short-summary": "简短总结",
"Show": "显示", "Show": "显示",
"Show Additional Params": "显示额外参数", "Show Additional Params": "显示额外参数",
...@@ -361,15 +406,17 @@ ...@@ -361,15 +406,17 @@
"Sign Out": "登出", "Sign Out": "登出",
"Sign up": "注册", "Sign up": "注册",
"Signing in": "", "Signing in": "",
"Source": "",
"Speech recognition error: {{error}}": "语音识别错误:{{error}}", "Speech recognition error: {{error}}": "语音识别错误:{{error}}",
"Speech-to-Text Engine": "语音转文字引擎", "Speech-to-Text Engine": "语音转文字引擎",
"SpeechRecognition API is not supported in this browser.": "此浏览器不支持SpeechRecognition API。", "SpeechRecognition API is not supported in this browser.": "此浏览器不支持 SpeechRecognition API。",
"Stop Sequence": "停止序列", "Stop Sequence": "停止序列",
"STT Settings": "语音转文字设置", "STT Settings": "语音转文字设置",
"Submit": "提交", "Submit": "提交",
"Subtitle (e.g. about the Roman Empire)": "", "Subtitle (e.g. about the Roman Empire)": "",
"Success": "成功", "Success": "成功",
"Successfully updated.": "成功更新。", "Successfully updated.": "成功更新。",
"Suggested": "",
"Sync All": "同步所有", "Sync All": "同步所有",
"System": "系统", "System": "系统",
"System Prompt": "系统提示", "System Prompt": "系统提示",
...@@ -386,36 +433,34 @@ ...@@ -386,36 +433,34 @@
"This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "这确保了您宝贵的对话被安全保存到后端数据库中。谢谢!", "This ensures that your valuable conversations are securely saved to your backend database. Thank you!": "这确保了您宝贵的对话被安全保存到后端数据库中。谢谢!",
"This setting does not sync across browsers or devices.": "此设置不会在浏览器或设备之间同步。", "This setting does not sync across browsers or devices.": "此设置不会在浏览器或设备之间同步。",
"Thorough explanation": "", "Thorough explanation": "",
"Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "提示:在每次替换后,在聊天输入中按Tab键可以连续更新多个变量。", "Tip: Update multiple variable slots consecutively by pressing the tab key in the chat input after each replacement.": "提示:在每次替换后,在聊天输入中按 Tab 键可以连续更新多个变量。",
"Title": "标题", "Title": "标题",
"Title (e.g. Tell me a fun fact)": "", "Title (e.g. Tell me a fun fact)": "",
"Title Auto-Generation": "标题自动生成", "Title Auto-Generation": "标题自动生成",
"Title cannot be an empty string.": "",
"Title Generation Prompt": "自动生成标题的提示词", "Title Generation Prompt": "自动生成标题的提示词",
"to": "到", "to": "到",
"To access the available model names for downloading,": "要访问可下载的模型名称,", "To access the available model names for downloading,": "要访问可下载的模型名称,",
"To access the GGUF models available for downloading,": "要访问可下载的GGUF模型,", "To access the GGUF models available for downloading,": "要访问可下载的 GGUF 模型,",
"to chat input.": "到聊天输入。", "to chat input.": "到聊天输入。",
"Today": "",
"Toggle settings": "切换设置", "Toggle settings": "切换设置",
"Toggle sidebar": "切换侧边栏", "Toggle sidebar": "切换侧边栏",
"Top K": "Top K", "Top K": "Top K",
"Top P": "Top P", "Top P": "Top P",
"Trouble accessing Ollama?": "访问Ollama时遇到问题?", "Trouble accessing Ollama?": "访问 Ollama 时遇到问题?",
"TTS Settings": "文本转语音设置", "TTS Settings": "文本转语音设置",
"Type Hugging Face Resolve (Download) URL": "输入Hugging Face解析(下载)URL", "Type Hugging Face Resolve (Download) URL": "输入 Hugging Face 解析(下载)URL",
"Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!连接到{{provider}}时出现问题。", "Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!连接到{{provider}}时出现问题。",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理",
"Update and Copy Link": "", "Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "更新密码", "Update password": "更新密码",
"Update Reranking Model": "", "Upload a GGUF model": "上传一个 GGUF 模型",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "上传一个GGUF模型",
"Upload files": "上传文件", "Upload files": "上传文件",
"Upload Progress": "上传进度", "Upload Progress": "上传进度",
"URL Mode": "URL模式", "URL Mode": "URL 模式",
"Use '#' in the prompt input to load and select your documents.": "在提示输入中使用'#'来加载和选择你的文档。", "Use '#' in the prompt input to load and select your documents.": "在提示输入中使用'#'来加载和选择你的文档。",
"Use Gravatar": "使用Gravatar", "Use Gravatar": "使用 Gravatar",
"Use Initials": "", "Use Initials": "",
"user": "用户", "user": "用户",
"User Permissions": "用户权限", "User Permissions": "用户权限",
...@@ -427,16 +472,20 @@ ...@@ -427,16 +472,20 @@
"Version": "版本", "Version": "版本",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "网页", "Web": "网页",
"Web Params": "",
"Webhook URL": "", "Webhook URL": "",
"WebUI Add-ons": "WebUI 插件", "WebUI Add-ons": "WebUI 插件",
"WebUI Settings": "WebUI 设置", "WebUI Settings": "WebUI 设置",
"WebUI will make requests to": "WebUI将请求", "WebUI will make requests to": "WebUI 将请求",
"What’s New in": "最新变化", "What’s New in": "最新变化",
"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "当历史记录被关闭时,这个浏览器上的新聊天不会出现在你任何设备的历史记录中。", "When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "当历史记录被关闭时,这个浏览器上的新聊天不会出现在你任何设备的历史记录中。",
"Whisper (Local)": "Whisper(本地)", "Whisper (Local)": "Whisper(本地)",
"Write a prompt suggestion (e.g. Who are you?)": "写一个提示建议(例如:你是谁?)", "Write a prompt suggestion (e.g. Who are you?)": "写一个提示建议(例如:你是谁?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "用50个字写一个总结[主题或关键词]。", "Write a summary in 50 words that summarizes [topic or keyword].": "用 50 个字写一个总结 [主题或关键词]。",
"Yesterday": "",
"You": "你", "You": "你",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "你是一个有帮助的助手。", "You're a helpful assistant.": "你是一个有帮助的助手。",
"You're now logged in.": "已登录。", "You're now logged in.": "已登录。",
"Youtube": "" "Youtube": ""
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
"Add a short description about what this modelfile does": "為這個 Modelfile 添加一段簡短的描述", "Add a short description about what this modelfile does": "為這個 Modelfile 添加一段簡短的描述",
"Add a short title for this prompt": "為這個提示詞添加一個簡短的標題", "Add a short title for this prompt": "為這個提示詞添加一個簡短的標題",
"Add a tag": "新增標籤", "Add a tag": "新增標籤",
"Add custom prompt": "",
"Add Docs": "新增文件", "Add Docs": "新增文件",
"Add Files": "新增檔案", "Add Files": "新增檔案",
"Add message": "新增訊息", "Add message": "新增訊息",
...@@ -27,6 +28,7 @@ ...@@ -27,6 +28,7 @@
"Admin Settings": "管理設定", "Admin Settings": "管理設定",
"Advanced Parameters": "進階參數", "Advanced Parameters": "進階參數",
"all": "所有", "all": "所有",
"All Documents": "",
"All Users": "所有使用者", "All Users": "所有使用者",
"Allow": "允許", "Allow": "允許",
"Allow Chat Deletion": "允許刪除聊天紀錄", "Allow Chat Deletion": "允許刪除聊天紀錄",
...@@ -34,26 +36,32 @@ ...@@ -34,26 +36,32 @@
"Already have an account?": "已經有帳號了嗎?", "Already have an account?": "已經有帳號了嗎?",
"an assistant": "助手", "an assistant": "助手",
"and": "和", "and": "和",
"and create a new shared link.": "",
"API Base URL": "API 基本 URL", "API Base URL": "API 基本 URL",
"API Key": "API 金鑰", "API Key": "API 金鑰",
"API Key created.": "", "API Key created.": "",
"API keys": "", "API keys": "",
"API RPM": "API RPM", "API RPM": "API RPM",
"April": "",
"Archive": "", "Archive": "",
"Archived Chats": "聊天記錄存檔", "Archived Chats": "聊天記錄存檔",
"are allowed - Activate this command by typing": "是允許的 - 透過輸入", "are allowed - Activate this command by typing": "是允許的 - 透過輸入",
"Are you sure?": "你確定嗎?", "Are you sure?": "你確定嗎?",
"Attach file": "",
"Attention to detail": "", "Attention to detail": "",
"Audio": "音訊", "Audio": "音訊",
"August": "",
"Auto-playback response": "自動播放回答", "Auto-playback response": "自動播放回答",
"Auto-send input after 3 sec.": "3秒後自動傳送輸入內容", "Auto-send input after 3 sec.": "3 秒後自動傳送輸入內容",
"AUTOMATIC1111 Base URL": "AUTOMATIC1111 基本 URL", "AUTOMATIC1111 Base URL": "AUTOMATIC1111 基本 URL",
"AUTOMATIC1111 Base URL is required.": "需要 AUTOMATIC1111 基本 URL", "AUTOMATIC1111 Base URL is required.": "需要 AUTOMATIC1111 基本 URL",
"available!": "可以使用!", "available!": "可以使用!",
"Back": "返回", "Back": "返回",
"Bad Response": "", "Bad Response": "",
"before": "",
"Being lazy": "", "Being lazy": "",
"Builder Mode": "建構模式", "Builder Mode": "建構模式",
"Bypass SSL verification for Websites": "",
"Cancel": "取消", "Cancel": "取消",
"Categories": "分類", "Categories": "分類",
"Change Password": "修改密碼", "Change Password": "修改密碼",
...@@ -68,7 +76,9 @@ ...@@ -68,7 +76,9 @@
"Chunk Overlap": "Chunk Overlap", "Chunk Overlap": "Chunk Overlap",
"Chunk Params": "Chunk 參數", "Chunk Params": "Chunk 參數",
"Chunk Size": "Chunk 大小", "Chunk Size": "Chunk 大小",
"Citation": "",
"Click here for help.": "點擊這裡尋找幫助。", "Click here for help.": "點擊這裡尋找幫助。",
"Click here to": "",
"Click here to check other modelfiles.": "點擊這裡檢查其他 Modelfiles。", "Click here to check other modelfiles.": "點擊這裡檢查其他 Modelfiles。",
"Click here to select": "點擊這裡選擇", "Click here to select": "點擊這裡選擇",
"Click here to select a csv file.": "", "Click here to select a csv file.": "",
...@@ -96,6 +106,8 @@ ...@@ -96,6 +106,8 @@
"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "為以下的查詢建立一個簡潔、3-5 個詞的短語作為標題,嚴格遵守 3-5 個詞的限制,避免使用「標題」這個詞:", "Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "為以下的查詢建立一個簡潔、3-5 個詞的短語作為標題,嚴格遵守 3-5 個詞的限制,避免使用「標題」這個詞:",
"Create a modelfile": "建立 Modelfile", "Create a modelfile": "建立 Modelfile",
"Create Account": "建立帳號", "Create Account": "建立帳號",
"Create new key": "",
"Create new secret key": "",
"Created at": "建立於", "Created at": "建立於",
"Created At": "", "Created At": "",
"Current Model": "目前模型", "Current Model": "目前模型",
...@@ -103,8 +115,10 @@ ...@@ -103,8 +115,10 @@
"Custom": "自訂", "Custom": "自訂",
"Customize Ollama models for a specific purpose": "定制特定用途的 Ollama 模型", "Customize Ollama models for a specific purpose": "定制特定用途的 Ollama 模型",
"Dark": "暗色", "Dark": "暗色",
"Dashboard": "",
"Database": "資料庫", "Database": "資料庫",
"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm", "DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
"December": "",
"Default": "預設", "Default": "預設",
"Default (Automatic1111)": "預設(Automatic1111)", "Default (Automatic1111)": "預設(Automatic1111)",
"Default (SentenceTransformers)": "", "Default (SentenceTransformers)": "",
...@@ -118,6 +132,7 @@ ...@@ -118,6 +132,7 @@
"Delete chat": "刪除聊天紀錄", "Delete chat": "刪除聊天紀錄",
"Delete Chat": "", "Delete Chat": "",
"Delete Chats": "刪除聊天紀錄", "Delete Chats": "刪除聊天紀錄",
"delete this link": "",
"Delete User": "", "Delete User": "",
"Deleted {{deleteModelTag}}": "已刪除 {{deleteModelTag}}", "Deleted {{deleteModelTag}}": "已刪除 {{deleteModelTag}}",
"Deleted {{tagName}}": "", "Deleted {{tagName}}": "",
...@@ -137,6 +152,7 @@ ...@@ -137,6 +152,7 @@
"Don't have an account?": "還沒有註冊帳號?", "Don't have an account?": "還沒有註冊帳號?",
"Don't like the style": "", "Don't like the style": "",
"Download": "", "Download": "",
"Download canceled": "",
"Download Database": "下載資料庫", "Download Database": "下載資料庫",
"Drop any files here to add to the conversation": "拖拽文件到此處以新增至對話", "Drop any files here to add to the conversation": "拖拽文件到此處以新增至對話",
"e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s', '10m'。有效的時間單位為 's', 'm', 'h'。", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "例如 '30s', '10m'。有效的時間單位為 's', 'm', 'h'。",
...@@ -144,6 +160,7 @@ ...@@ -144,6 +160,7 @@
"Edit Doc": "編輯文件", "Edit Doc": "編輯文件",
"Edit User": "編輯使用者", "Edit User": "編輯使用者",
"Email": "電子郵件", "Email": "電子郵件",
"Embedding Model": "",
"Embedding Model Engine": "", "Embedding Model Engine": "",
"Embedding model set to \"{{embedding_model}}\"": "", "Embedding model set to \"{{embedding_model}}\"": "",
"Enable Chat History": "啟用聊天歷史", "Enable Chat History": "啟用聊天歷史",
...@@ -165,6 +182,7 @@ ...@@ -165,6 +182,7 @@
"Enter stop sequence": "輸入停止序列", "Enter stop sequence": "輸入停止序列",
"Enter Top K": "輸入 Top K", "Enter Top K": "輸入 Top K",
"Enter URL (e.g. http://127.0.0.1:7860/)": "輸入 URL(例如 http://127.0.0.1:7860/)", "Enter URL (e.g. http://127.0.0.1:7860/)": "輸入 URL(例如 http://127.0.0.1:7860/)",
"Enter URL (e.g. http://localhost:11434)": "",
"Enter Your Email": "輸入你的電子郵件", "Enter Your Email": "輸入你的電子郵件",
"Enter Your Full Name": "輸入你的全名", "Enter Your Full Name": "輸入你的全名",
"Enter Your Password": "輸入你的密碼", "Enter Your Password": "輸入你的密碼",
...@@ -177,6 +195,7 @@ ...@@ -177,6 +195,7 @@
"Export Prompts": "匯出提示詞", "Export Prompts": "匯出提示詞",
"Failed to create API Key.": "", "Failed to create API Key.": "",
"Failed to read clipboard contents": "無法讀取剪貼簿內容", "Failed to read clipboard contents": "無法讀取剪貼簿內容",
"February": "",
"Feel free to add specific details": "", "Feel free to add specific details": "",
"File Mode": "檔案模式", "File Mode": "檔案模式",
"File not found.": "找不到檔案。", "File not found.": "找不到檔案。",
...@@ -192,7 +211,8 @@ ...@@ -192,7 +211,8 @@
"Generation Info": "", "Generation Info": "",
"Good Response": "", "Good Response": "",
"has no conversations.": "", "has no conversations.": "",
"Hello, {{name}}": "你好, {{name}}", "Hello, {{name}}": "你好,{{name}}",
"Help": "",
"Hide": "隱藏", "Hide": "隱藏",
"Hide Additional Params": "隱藏額外參數", "Hide Additional Params": "隱藏額外參數",
"How can I help you today?": "今天能為你做什麼?", "How can I help you today?": "今天能為你做什麼?",
...@@ -206,9 +226,14 @@ ...@@ -206,9 +226,14 @@
"Import Modelfiles": "匯入 Modelfiles", "Import Modelfiles": "匯入 Modelfiles",
"Import Prompts": "匯入提示詞", "Import Prompts": "匯入提示詞",
"Include `--api` flag when running stable-diffusion-webui": "在運行 stable-diffusion-webui 時加上 `--api` 標誌", "Include `--api` flag when running stable-diffusion-webui": "在運行 stable-diffusion-webui 時加上 `--api` 標誌",
"Input commands": "",
"Interface": "介面", "Interface": "介面",
"Invalid Tag": "",
"January": "",
"join our Discord for help.": "加入我們的 Discord 尋找幫助。", "join our Discord for help.": "加入我們的 Discord 尋找幫助。",
"JSON": "JSON", "JSON": "JSON",
"July": "",
"June": "",
"JWT Expiration": "JWT 過期時間", "JWT Expiration": "JWT 過期時間",
"JWT Token": "JWT Token", "JWT Token": "JWT Token",
"Keep Alive": "保持活躍", "Keep Alive": "保持活躍",
...@@ -223,8 +248,11 @@ ...@@ -223,8 +248,11 @@
"Manage LiteLLM Models": "管理 LiteLLM 模型", "Manage LiteLLM Models": "管理 LiteLLM 模型",
"Manage Models": "管理模組", "Manage Models": "管理模組",
"Manage Ollama Models": "管理 Ollama 模型", "Manage Ollama Models": "管理 Ollama 模型",
"March": "",
"Max Tokens": "最大 Token 數", "Max Tokens": "最大 Token 數",
"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同時下載 3 個模型。請稍後再試。", "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同時下載 3 個模型。請稍後再試。",
"May": "",
"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
"Minimum Score": "", "Minimum Score": "",
"Mirostat": "Mirostat", "Mirostat": "Mirostat",
"Mirostat Eta": "Mirostat Eta", "Mirostat Eta": "Mirostat Eta",
...@@ -255,11 +283,15 @@ ...@@ -255,11 +283,15 @@
"Name your modelfile": "命名你的 Modelfile", "Name your modelfile": "命名你的 Modelfile",
"New Chat": "新增聊天", "New Chat": "新增聊天",
"New Password": "新密碼", "New Password": "新密碼",
"No results found": "",
"No source available": "",
"Not factually correct": "", "Not factually correct": "",
"Not sure what to add?": "不確定要新增什麼嗎?", "Not sure what to add?": "不確定要新增什麼嗎?",
"Not sure what to write? Switch to": "不確定要寫什麼?切換到", "Not sure what to write? Switch to": "不確定要寫什麼?切換到",
"Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "",
"Notifications": "桌面通知", "Notifications": "桌面通知",
"November": "",
"October": "",
"Off": "關閉", "Off": "關閉",
"Okay, Let's Go!": "好的,啟動吧!", "Okay, Let's Go!": "好的,啟動吧!",
"OLED Dark": "", "OLED Dark": "",
...@@ -283,20 +315,25 @@ ...@@ -283,20 +315,25 @@
"OpenAI URL/Key required.": "", "OpenAI URL/Key required.": "",
"or": "或", "or": "或",
"Other": "", "Other": "",
"Overview": "",
"Parameters": "參數", "Parameters": "參數",
"Password": "密碼", "Password": "密碼",
"PDF document (.pdf)": "", "PDF document (.pdf)": "",
"PDF Extract Images (OCR)": "PDF 圖像擷取(OCR 光學文字辨識)", "PDF Extract Images (OCR)": "PDF 圖像擷取(OCR 光學文字辨識)",
"pending": "待審查", "pending": "待審查",
"Permission denied when accessing microphone: {{error}}": "存取麥克風時被拒絕權限: {{error}}", "Permission denied when accessing microphone: {{error}}": "存取麥克風時被拒絕權限{{error}}",
"Plain text (.txt)": "", "Plain text (.txt)": "",
"Playground": "AI 對話遊樂場", "Playground": "AI 對話遊樂場",
"Positive attitude": "", "Positive attitude": "",
"Previous 30 days": "",
"Previous 7 days": "",
"Profile Image": "", "Profile Image": "",
"Prompt": "",
"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "",
"Prompt Content": "提示詞內容", "Prompt Content": "提示詞內容",
"Prompt suggestions": "提示詞建議", "Prompt suggestions": "提示詞建議",
"Prompts": "提示詞", "Prompts": "提示詞",
"Pull \"{{searchValue}}\" from Ollama.com": "",
"Pull a model from Ollama.com": "從 Ollama.com 下載模型", "Pull a model from Ollama.com": "從 Ollama.com 下載模型",
"Pull Progress": "下載進度", "Pull Progress": "下載進度",
"Query Params": "查詢參數", "Query Params": "查詢參數",
...@@ -309,13 +346,17 @@ ...@@ -309,13 +346,17 @@
"Regenerate": "", "Regenerate": "",
"Release Notes": "發布說明", "Release Notes": "發布說明",
"Remove": "", "Remove": "",
"Remove Model": "",
"Rename": "",
"Repeat Last N": "重複最後 N 次", "Repeat Last N": "重複最後 N 次",
"Repeat Penalty": "重複懲罰", "Repeat Penalty": "重複懲罰",
"Request Mode": "請求模式", "Request Mode": "請求模式",
"Reranking Model": "",
"Reranking model disabled": "", "Reranking model disabled": "",
"Reranking model set to \"{{reranking_model}}\"": "", "Reranking model set to \"{{reranking_model}}\"": "",
"Reset Vector Storage": "重置向量儲存空間", "Reset Vector Storage": "重置向量儲存空間",
"Response AutoCopy to Clipboard": "自動複製回答到剪貼簿", "Response AutoCopy to Clipboard": "自動複製回答到剪貼簿",
"Retrieval Augmented Generation Settings": "",
"Role": "Role", "Role": "Role",
"Rosé Pine": "玫瑰松", "Rosé Pine": "玫瑰松",
"Rosé Pine Dawn": "黎明玫瑰松", "Rosé Pine Dawn": "黎明玫瑰松",
...@@ -337,12 +378,16 @@ ...@@ -337,12 +378,16 @@
"Select a mode": "選擇模式", "Select a mode": "選擇模式",
"Select a model": "選擇一個模型", "Select a model": "選擇一個模型",
"Select an Ollama instance": "選擇 Ollama 實例", "Select an Ollama instance": "選擇 Ollama 實例",
"Select model": "",
"Send a Message": "傳送訊息", "Send a Message": "傳送訊息",
"Send message": "傳送訊息", "Send message": "傳送訊息",
"September": "",
"Server connection verified": "已驗證伺服器連線", "Server connection verified": "已驗證伺服器連線",
"Set as default": "設為預設", "Set as default": "設為預設",
"Set Default Model": "設定預設模型", "Set Default Model": "設定預設模型",
"Set embedding model (e.g. {{model}})": "",
"Set Image Size": "設定圖片大小", "Set Image Size": "設定圖片大小",
"Set reranking model (e.g. {{model}})": "",
"Set Steps": "設定步數", "Set Steps": "設定步數",
"Set Title Auto-Generation Model": "設定自動生成標題用模型", "Set Title Auto-Generation Model": "設定自動生成標題用模型",
"Set Voice": "設定語音", "Set Voice": "設定語音",
...@@ -361,7 +406,8 @@ ...@@ -361,7 +406,8 @@
"Sign Out": "登出", "Sign Out": "登出",
"Sign up": "註冊", "Sign up": "註冊",
"Signing in": "", "Signing in": "",
"Speech recognition error: {{error}}": "語音識別錯誤: {{error}}", "Source": "",
"Speech recognition error: {{error}}": "語音識別錯誤:{{error}}",
"Speech-to-Text Engine": "語音轉文字引擎", "Speech-to-Text Engine": "語音轉文字引擎",
"SpeechRecognition API is not supported in this browser.": "此瀏覽器不支持 SpeechRecognition API。", "SpeechRecognition API is not supported in this browser.": "此瀏覽器不支持 SpeechRecognition API。",
"Stop Sequence": "停止序列", "Stop Sequence": "停止序列",
...@@ -370,6 +416,7 @@ ...@@ -370,6 +416,7 @@
"Subtitle (e.g. about the Roman Empire)": "", "Subtitle (e.g. about the Roman Empire)": "",
"Success": "成功", "Success": "成功",
"Successfully updated.": "更新成功。", "Successfully updated.": "更新成功。",
"Suggested": "",
"Sync All": "全部同步", "Sync All": "全部同步",
"System": "系統", "System": "系統",
"System Prompt": "系統提示詞", "System Prompt": "系統提示詞",
...@@ -390,11 +437,13 @@ ...@@ -390,11 +437,13 @@
"Title": "標題", "Title": "標題",
"Title (e.g. Tell me a fun fact)": "", "Title (e.g. Tell me a fun fact)": "",
"Title Auto-Generation": "自動生成標題", "Title Auto-Generation": "自動生成標題",
"Title cannot be an empty string.": "",
"Title Generation Prompt": "自動生成標題的提示詞", "Title Generation Prompt": "自動生成標題的提示詞",
"to": "到", "to": "到",
"To access the available model names for downloading,": "若想查看可供下載的模型名稱,", "To access the available model names for downloading,": "若想查看可供下載的模型名稱,",
"To access the GGUF models available for downloading,": "若想查看可供下載的 GGUF 模型名稱,", "To access the GGUF models available for downloading,": "若想查看可供下載的 GGUF 模型名稱,",
"to chat input.": "到聊天輸入框來啟動此命令。", "to chat input.": "到聊天輸入框來啟動此命令。",
"Today": "",
"Toggle settings": "切換設定", "Toggle settings": "切換設定",
"Toggle sidebar": "切換側邊欄", "Toggle sidebar": "切換側邊欄",
"Top K": "Top K", "Top K": "Top K",
...@@ -405,11 +454,7 @@ ...@@ -405,11 +454,7 @@
"Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!連線到 {{provider}} 時出現問題。", "Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!連線到 {{provider}} 時出現問題。",
"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知的文件類型 '{{file_type}}',但接受並視為純文字", "Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知的文件類型 '{{file_type}}',但接受並視為純文字",
"Update and Copy Link": "", "Update and Copy Link": "",
"Update Embedding Model": "",
"Update embedding model (e.g. {{model}})": "",
"Update password": "更新密碼", "Update password": "更新密碼",
"Update Reranking Model": "",
"Update reranking model (e.g. {{model}})": "",
"Upload a GGUF model": "上傳一個 GGUF 模型", "Upload a GGUF model": "上傳一個 GGUF 模型",
"Upload files": "上傳文件", "Upload files": "上傳文件",
"Upload Progress": "上傳進度", "Upload Progress": "上傳進度",
...@@ -427,6 +472,7 @@ ...@@ -427,6 +472,7 @@
"Version": "版本", "Version": "版本",
"Warning: If you update or change your embedding model, you will need to re-import all documents.": "", "Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
"Web": "網頁", "Web": "網頁",
"Web Params": "",
"Webhook URL": "", "Webhook URL": "",
"WebUI Add-ons": "WebUI 擴充套件", "WebUI Add-ons": "WebUI 擴充套件",
"WebUI Settings": "WebUI 設定", "WebUI Settings": "WebUI 設定",
...@@ -435,8 +481,11 @@ ...@@ -435,8 +481,11 @@
"When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "當歷史被關閉時,這個瀏覽器上的新聊天將不會出現在任何裝置的歷史記錄中。", "When history is turned off, new chats on this browser won't appear in your history on any of your devices.": "當歷史被關閉時,這個瀏覽器上的新聊天將不會出現在任何裝置的歷史記錄中。",
"Whisper (Local)": "Whisper(本機)", "Whisper (Local)": "Whisper(本機)",
"Write a prompt suggestion (e.g. Who are you?)": "寫一個提示詞建議(例如:你是誰?)", "Write a prompt suggestion (e.g. Who are you?)": "寫一個提示詞建議(例如:你是誰?)",
"Write a summary in 50 words that summarizes [topic or keyword].": "寫一個50字的摘要來概括[主題或關鍵詞]。", "Write a summary in 50 words that summarizes [topic or keyword].": "寫一個 50 字的摘要來概括 [主題或關鍵詞]。",
"Yesterday": "",
"You": "你", "You": "你",
"You have no archived conversations.": "",
"You have shared this chat": "",
"You're a helpful assistant.": "你是一位善於協助他人的助手。", "You're a helpful assistant.": "你是一位善於協助他人的助手。",
"You're now logged in.": "已登入。", "You're now logged in.": "已登入。",
"Youtube": "" "Youtube": ""
......
...@@ -472,29 +472,20 @@ export const blobToFile = (blob, fileName) => { ...@@ -472,29 +472,20 @@ export const blobToFile = (blob, fileName) => {
return file; return file;
}; };
// promptTemplate replaces any occurrences of the following in the template with the prompt
// {{prompt}} will be replaced with the prompt
// {{prompt:start:<length>}} will be replaced with the first <length> characters of the prompt
// {{prompt:end:<length>}} will be replaced with the last <length> characters of the prompt
// Character length is used as we don't have the ability to tokenize the prompt
export const promptTemplate = (template: string, prompt: string) => { export const promptTemplate = (template: string, prompt: string) => {
prompt = prompt.replace(/{{prompt}}|{{prompt:start:\d+}}|{{prompt:end:\d+}}/g, '');
template = template.replace(/{{prompt}}/g, prompt); template = template.replace(/{{prompt}}/g, prompt);
// Replace all instances of {{prompt:start:<length>}} with the first <length> characters of the prompt // Replace all instances of {{prompt:start:<length>}} with the first <length> characters of the prompt
const startRegex = /{{prompt:start:(\d+)}}/g; template = template.replace(/{{prompt:start:(\d+)}}/g, (match, length) =>
let startMatch: RegExpMatchArray | null; prompt.substring(0, parseInt(length))
while ((startMatch = startRegex.exec(template)) !== null) { );
const length = parseInt(startMatch[1]);
template = template.replace(startMatch[0], prompt.substring(0, length));
}
// Replace all instances of {{prompt:end:<length>}} with the last <length> characters of the prompt // Replace all instances of {{prompt:end:<length>}} with the last <length> characters of the prompt
const endRegex = /{{prompt:end:(\d+)}}/g; template = template.replace(/{{prompt:end:(\d+)}}/g, (match, length) =>
let endMatch: RegExpMatchArray | null; prompt.slice(-parseInt(length))
while ((endMatch = endRegex.exec(template)) !== null) { );
const length = parseInt(endMatch[1]);
template = template.replace(endMatch[0], prompt.substring(prompt.length - length));
}
return template; return template;
}; };
...@@ -520,3 +511,34 @@ export const approximateToHumanReadable = (nanoseconds: number) => { ...@@ -520,3 +511,34 @@ export const approximateToHumanReadable = (nanoseconds: number) => {
return results.reverse().join(' '); return results.reverse().join(' ');
}; };
export const getTimeRange = (timestamp) => {
const now = new Date();
const date = new Date(timestamp * 1000); // Convert Unix timestamp to milliseconds
// Calculate the difference in milliseconds
const diffTime = now.getTime() - date.getTime();
const diffDays = diffTime / (1000 * 3600 * 24);
const nowDate = now.getDate();
const nowMonth = now.getMonth();
const nowYear = now.getFullYear();
const dateDate = date.getDate();
const dateMonth = date.getMonth();
const dateYear = date.getFullYear();
if (nowYear === dateYear && nowMonth === dateMonth && nowDate === dateDate) {
return 'Today';
} else if (nowYear === dateYear && nowMonth === dateMonth && nowDate - dateDate === 1) {
return 'Yesterday';
} else if (diffDays <= 7) {
return 'Previous 7 days';
} else if (diffDays <= 30) {
return 'Previous 30 days';
} else if (nowYear === dateYear) {
return date.toLocaleString('default', { month: 'long' });
} else {
return date.getFullYear().toString();
}
};
...@@ -177,7 +177,7 @@ ...@@ -177,7 +177,7 @@
</script> </script>
<div class=" hidden lg:flex fixed bottom-0 right-0 px-3 py-3 z-10"> <div class=" hidden lg:flex fixed bottom-0 right-0 px-3 py-3 z-10">
<Tooltip content="Help" placement="left"> <Tooltip content={$i18n.t('Help')} placement="left">
<button <button
id="show-shortcuts-button" id="show-shortcuts-button"
bind:this={showShortcutsButtonElement} bind:this={showShortcutsButtonElement}
...@@ -201,11 +201,11 @@ ...@@ -201,11 +201,11 @@
> >
{#if loaded} {#if loaded}
{#if !['user', 'admin'].includes($user.role)} {#if !['user', 'admin'].includes($user.role)}
<div class="fixed w-full h-full flex z-50"> <div class="fixed w-full h-full flex z-[999]">
<div <div
class="absolute w-full h-full backdrop-blur-md bg-white/20 dark:bg-gray-900/50 flex justify-center" class="absolute w-full h-full backdrop-blur-lg bg-white/10 dark:bg-gray-900/50 flex justify-center"
> >
<div class="m-auto pb-44 flex flex-col justify-center"> <div class="m-auto pb-10 flex flex-col justify-center">
<div class="max-w-md"> <div class="max-w-md">
<div class="text-center dark:text-white text-2xl font-medium z-50"> <div class="text-center dark:text-white text-2xl font-medium z-50">
Account Activation Pending<br /> Contact Admin for WebUI Access Account Activation Pending<br /> Contact Admin for WebUI Access
......
...@@ -134,6 +134,14 @@ ...@@ -134,6 +134,14 @@
selectedModels = ['']; selectedModels = [''];
} }
if ($page.url.searchParams.get('q')) {
prompt = $page.url.searchParams.get('q') ?? '';
if (prompt) {
await tick();
submitPrompt(prompt);
}
}
selectedModels = selectedModels.map((modelId) => selectedModels = selectedModels.map((modelId) =>
$models.map((m) => m.id).includes(modelId) ? modelId : '' $models.map((m) => m.id).includes(modelId) ? modelId : ''
); );
...@@ -366,7 +374,8 @@ ...@@ -366,7 +374,8 @@
}, },
format: $settings.requestFormat ?? undefined, format: $settings.requestFormat ?? undefined,
keep_alive: $settings.keepAlive ?? undefined, keep_alive: $settings.keepAlive ?? undefined,
docs: docs.length > 0 ? docs : undefined docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
}); });
if (res && res.ok) { if (res && res.ok) {
...@@ -401,6 +410,11 @@ ...@@ -401,6 +410,11 @@
console.log(line); console.log(line);
let data = JSON.parse(line); let data = JSON.parse(line);
if ('citations' in data) {
responseMessage.citations = data.citations;
continue;
}
if ('detail' in data) { if ('detail' in data) {
throw data; throw data;
} }
...@@ -598,7 +612,8 @@ ...@@ -598,7 +612,8 @@
num_ctx: $settings?.options?.num_ctx ?? undefined, num_ctx: $settings?.options?.num_ctx ?? undefined,
frequency_penalty: $settings?.options?.repeat_penalty ?? undefined, frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
max_tokens: $settings?.options?.num_predict ?? undefined, max_tokens: $settings?.options?.num_predict ?? undefined,
docs: docs.length > 0 ? docs : undefined docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
}, },
model?.source?.toLowerCase() === 'litellm' model?.source?.toLowerCase() === 'litellm'
? `${LITELLM_API_BASE_URL}/v1` ? `${LITELLM_API_BASE_URL}/v1`
...@@ -614,7 +629,7 @@ ...@@ -614,7 +629,7 @@
const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks); const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
for await (const update of textStream) { for await (const update of textStream) {
const { value, done } = update; const { value, done, citations } = update;
if (done || stopResponseFlag || _chatId !== $chatId) { if (done || stopResponseFlag || _chatId !== $chatId) {
responseMessage.done = true; responseMessage.done = true;
messages = messages; messages = messages;
...@@ -626,6 +641,11 @@ ...@@ -626,6 +641,11 @@
break; break;
} }
if (citations) {
responseMessage.citations = citations;
continue;
}
if (responseMessage.content == '' && value == '\n') { if (responseMessage.content == '' && value == '\n') {
continue; continue;
} else { } else {
......
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
<div class=" flex flex-col justify-center"> <div class=" flex flex-col justify-center">
<div class=" px-6 pt-4"> <div class=" px-6 pt-4">
<div class=" flex justify-between items-center"> <div class=" flex justify-between items-center">
<div class="flex items-center text-2xl font-semibold">Dashboard</div> <div class="flex items-center text-2xl font-semibold">{$i18n.t('Dashboard')}</div>
<div> <div>
<Tooltip content={$i18n.t('Admin Settings')}> <Tooltip content={$i18n.t('Admin Settings')}>
<button <button
...@@ -141,7 +141,9 @@ ...@@ -141,7 +141,9 @@
</div> </div>
<div class="px-6 flex text-sm gap-2.5"> <div class="px-6 flex text-sm gap-2.5">
<div class="py-3 border-b font-medium text-gray-100 cursor-pointer">Overview</div> <div class="py-3 border-b font-medium text-gray-100 cursor-pointer">
{$i18n.t('Overview')}
</div>
<!-- <div class="py-3 text-gray-300 cursor-pointer">Users</div> --> <!-- <div class="py-3 text-gray-300 cursor-pointer">Users</div> -->
</div> </div>
...@@ -268,7 +270,7 @@ ...@@ -268,7 +270,7 @@
<td class="px-3 py-2 text-right"> <td class="px-3 py-2 text-right">
<div class="flex justify-end w-full"> <div class="flex justify-end w-full">
{#if user.role !== 'admin'} {#if user.role !== 'admin'}
<Tooltip content="Chats"> <Tooltip content={$i18n.t('Chats')}>
<button <button
class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl" class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
on:click={async () => { on:click={async () => {
......
...@@ -378,7 +378,8 @@ ...@@ -378,7 +378,8 @@
}, },
format: $settings.requestFormat ?? undefined, format: $settings.requestFormat ?? undefined,
keep_alive: $settings.keepAlive ?? undefined, keep_alive: $settings.keepAlive ?? undefined,
docs: docs.length > 0 ? docs : undefined docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
}); });
if (res && res.ok) { if (res && res.ok) {
...@@ -413,6 +414,11 @@ ...@@ -413,6 +414,11 @@
console.log(line); console.log(line);
let data = JSON.parse(line); let data = JSON.parse(line);
if ('citations' in data) {
responseMessage.citations = data.citations;
continue;
}
if ('detail' in data) { if ('detail' in data) {
throw data; throw data;
} }
...@@ -610,7 +616,8 @@ ...@@ -610,7 +616,8 @@
num_ctx: $settings?.options?.num_ctx ?? undefined, num_ctx: $settings?.options?.num_ctx ?? undefined,
frequency_penalty: $settings?.options?.repeat_penalty ?? undefined, frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
max_tokens: $settings?.options?.num_predict ?? undefined, max_tokens: $settings?.options?.num_predict ?? undefined,
docs: docs.length > 0 ? docs : undefined docs: docs.length > 0 ? docs : undefined,
citations: docs.length > 0
}, },
model?.source?.toLowerCase() === 'litellm' model?.source?.toLowerCase() === 'litellm'
? `${LITELLM_API_BASE_URL}/v1` ? `${LITELLM_API_BASE_URL}/v1`
...@@ -626,7 +633,7 @@ ...@@ -626,7 +633,7 @@
const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks); const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
for await (const update of textStream) { for await (const update of textStream) {
const { value, done } = update; const { value, done, citations } = update;
if (done || stopResponseFlag || _chatId !== $chatId) { if (done || stopResponseFlag || _chatId !== $chatId) {
responseMessage.done = true; responseMessage.done = true;
messages = messages; messages = messages;
...@@ -638,6 +645,11 @@ ...@@ -638,6 +645,11 @@
break; break;
} }
if (citations) {
responseMessage.citations = citations;
continue;
}
if (responseMessage.content == '' && value == '\n') { if (responseMessage.content == '' && value == '\n') {
continue; continue;
} else { } else {
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</div> </div>
</div> </div>
<div class=" bg-white dark:bg-gray-900 min-h-screen w-full flex justify-center font-mona"> <div class=" bg-white dark:bg-gray-950 min-h-screen w-full flex justify-center font-mona">
<!-- <div class="hidden lg:flex lg:flex-1 px-10 md:px-16 w-full bg-yellow-50 justify-center"> <!-- <div class="hidden lg:flex lg:flex-1 px-10 md:px-16 w-full bg-yellow-50 justify-center">
<div class=" my-auto pb-16 text-left"> <div class=" my-auto pb-16 text-left">
<div> <div>
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
</div> </div>
</div> --> </div> -->
<div class="w-full sm:max-w-lg px-4 min-h-screen flex flex-col"> <div class="w-full sm:max-w-md px-10 min-h-screen flex flex-col text-center">
{#if $config?.trusted_header_auth ?? false} {#if $config?.trusted_header_auth ?? false}
<div class=" my-auto pb-10 w-full"> <div class=" my-auto pb-10 w-full">
<div <div
...@@ -114,27 +114,29 @@ ...@@ -114,27 +114,29 @@
</div> </div>
</div> </div>
{:else} {:else}
<div class=" my-auto pb-10 w-full"> <div class=" my-auto pb-10 w-full dark:text-gray-100">
<form <form
class=" flex flex-col justify-center bg-white py-6 sm:py-16 px-6 sm:px-16 rounded-2xl" class=" flex flex-col justify-center"
on:submit|preventDefault={() => { on:submit|preventDefault={() => {
submitHandler(); submitHandler();
}} }}
> >
<div class=" text-xl sm:text-2xl font-bold"> <div class="mb-1">
{mode === 'signin' ? $i18n.t('Sign in') : $i18n.t('Sign up')} <div class=" text-2xl font-bold">
{$i18n.t('to')} {mode === 'signin' ? $i18n.t('Sign in') : $i18n.t('Sign up')}
{$WEBUI_NAME} {$i18n.t('to')}
</div> {$WEBUI_NAME}
{#if mode === 'signup'}
<div class=" mt-1 text-xs font-medium text-gray-500">
ⓘ {$WEBUI_NAME}
{$i18n.t(
'does not make any external connections, and your data stays securely on your locally hosted server.'
)}
</div> </div>
{/if}
{#if mode === 'signup'}
<div class=" mt-1 text-xs font-medium text-gray-500">
ⓘ {$WEBUI_NAME}
{$i18n.t(
'does not make any external connections, and your data stays securely on your locally hosted server.'
)}
</div>
{/if}
</div>
<div class="flex flex-col mt-4"> <div class="flex flex-col mt-4">
{#if mode === 'signup'} {#if mode === 'signup'}
...@@ -143,14 +145,14 @@ ...@@ -143,14 +145,14 @@
<input <input
bind:value={name} bind:value={name}
type="text" type="text"
class=" border px-4 py-2.5 rounded-2xl w-full text-sm" class=" px-5 py-3 rounded-2xl w-full text-sm outline-none border dark:border-none dark:bg-gray-900"
autocomplete="name" autocomplete="name"
placeholder={$i18n.t('Enter Your Full Name')} placeholder={$i18n.t('Enter Your Full Name')}
required required
/> />
</div> </div>
<hr class=" my-3" /> <hr class=" my-3 dark:border-gray-900" />
{/if} {/if}
<div class="mb-2"> <div class="mb-2">
...@@ -158,7 +160,7 @@ ...@@ -158,7 +160,7 @@
<input <input
bind:value={email} bind:value={email}
type="email" type="email"
class=" border px-4 py-2.5 rounded-2xl w-full text-sm" class=" px-5 py-3 rounded-2xl w-full text-sm outline-none border dark:border-none dark:bg-gray-900"
autocomplete="email" autocomplete="email"
placeholder={$i18n.t('Enter Your Email')} placeholder={$i18n.t('Enter Your Email')}
required required
...@@ -167,10 +169,11 @@ ...@@ -167,10 +169,11 @@
<div> <div>
<div class=" text-sm font-semibold text-left mb-1">{$i18n.t('Password')}</div> <div class=" text-sm font-semibold text-left mb-1">{$i18n.t('Password')}</div>
<input <input
bind:value={password} bind:value={password}
type="password" type="password"
class=" border px-4 py-2.5 rounded-2xl w-full text-sm" class=" px-5 py-3 rounded-2xl w-full text-sm outline-none border dark:border-none dark:bg-gray-900"
placeholder={$i18n.t('Enter Your Password')} placeholder={$i18n.t('Enter Your Password')}
autocomplete="current-password" autocomplete="current-password"
required required
...@@ -180,7 +183,7 @@ ...@@ -180,7 +183,7 @@
<div class="mt-5"> <div class="mt-5">
<button <button
class=" bg-gray-900 hover:bg-gray-800 w-full rounded-full text-white font-semibold text-sm py-3 transition" class=" bg-gray-900 hover:bg-gray-800 w-full rounded-2xl text-white font-semibold text-sm py-3 transition"
type="submit" type="submit"
> >
{mode === 'signin' ? $i18n.t('Sign in') : $i18n.t('Create Account')} {mode === 'signin' ? $i18n.t('Sign in') : $i18n.t('Create Account')}
......
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Open WebUI</ShortName>
<Description>Search Open WebUI</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">http://localhost:5137/favicon.png</Image>
<Url type="text/html" method="get" template="http://localhost:5137/?q={searchTerms}"/>
<moz:SearchForm>http://localhost:5137</moz:SearchForm>
</OpenSearchDescription>
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment