mirror of
https://github.com/lobehub/lobehub.git
synced 2026-03-26 13:19:34 +07:00
* ✨ feat: add GPT-5.4 model support and fix reasoning payload pruning - Add GPT-5.4 model card to model-bank - Update planCardModels to use gpt-5.4 - Add gpt-5.4 to responsesAPIModels - Fix pruneReasoningPayload to strip logprobs/top_logprobs for reasoning models - Add logprobs, top_logprobs to ChatStreamPayload type - Extend reasoning_effort to include none and xhigh - Add success log for non-fallback requests in RouterRuntime - Fix log parameter mismatch in RouterRuntime Fixes LOBE-5735 * 🐛 fix: match gpt-5.4 to gpt5_2ReasoningEffort in openrouter and vercelaigateway * 🐛 fix: update OpenRouterReasoning effort type to include none and xhigh * 🐛 fix: use tiered pricing for gpt-5.4 based on 272K token threshold * 🌐 chore: update i18n translations * 🐛 fix: update claude-sonnet model version to 4-6 in planCardModels * ✨ feat: add GPT-5.4 Pro model support * 🐛 fix: remove dated snapshot for gpt-5.4-pro in responsesAPIModels * 🐛 fix: add tierBy support for cross-unit tiered pricing threshold OpenAI charges output at 1.5x when INPUT exceeds 272K tokens. The tiered strategy previously only checked the unit's own quantity to select a tier. Added optional tierBy field to TieredPricingUnit so output/cacheRead tiers can reference input quantity for selection. * 🐛 fix: use totalInputTokens for tiered pricing tier selection Tiered pricing tiers should be determined by total prompt size (totalInputTokens), not each unit's own quantity. This fixes output and cacheRead being charged at the wrong tier rate when the prompt exceeds the threshold but the individual unit quantity does not.
148 lines
9.2 KiB
JSON
148 lines
9.2 KiB
JSON
{
|
|
"addFolder": "Tạo Thư Mục",
|
|
"addLibrary": "Thêm",
|
|
"addPage": "Tạo Trang",
|
|
"detail.basic.createdAt": "Thời Gian Tạo",
|
|
"detail.basic.filename": "Tên Tệp",
|
|
"detail.basic.size": "Kích Thước Tệp",
|
|
"detail.basic.title": "Thông Tin Cơ Bản",
|
|
"detail.basic.type": "Định Dạng",
|
|
"detail.basic.updatedAt": "Thời Gian Cập Nhật",
|
|
"detail.data.chunkCount": "Số Phân Đoạn",
|
|
"detail.data.embedding.default": "Chưa nhúng",
|
|
"detail.data.embedding.error": "Thất bại",
|
|
"detail.data.embedding.pending": "Đang chờ bắt đầu",
|
|
"detail.data.embedding.processing": "Đang xử lý",
|
|
"detail.data.embedding.success": "Hoàn tất",
|
|
"detail.data.embeddingStatus": "trạng thái nhúng",
|
|
"detail.data.noChunk": "Không có phần dữ liệu",
|
|
"empty": "Chưa có tệp hoặc thư mục nào được tải lên.",
|
|
"header.actions.builtInBlockList.filtered": "{{ignored}} tệp đã bị lọc (trong tổng số {{total}})",
|
|
"header.actions.connect": "Kết nối...",
|
|
"header.actions.createFolderError": "Không thể tạo thư mục",
|
|
"header.actions.creatingFolder": "Đang tạo thư mục...",
|
|
"header.actions.deleteLibrary": "Xóa Thư Viện",
|
|
"header.actions.gitignore.apply": "Áp dụng Quy tắc",
|
|
"header.actions.gitignore.cancel": "Bỏ qua Quy tắc",
|
|
"header.actions.gitignore.content": "Phát hiện tệp .gitignore (tổng cộng {{count}} tệp). Bạn có muốn áp dụng các quy tắc bỏ qua không?",
|
|
"header.actions.gitignore.filtered": "{{ignored}} tệp đã bị lọc (tổng cộng {{total}} tệp)",
|
|
"header.actions.gitignore.title": "Phát hiện .gitignore",
|
|
"header.actions.newFolder": "Thư Mục Mới",
|
|
"header.actions.newPage": "Trang Mới",
|
|
"header.actions.notion.error": "Không thể nhập tệp từ Notion",
|
|
"header.actions.notion.foundFiles": "tìm thấy {{count}} tệp",
|
|
"header.actions.notion.importing": "Đang nhập nội dung từ Notion...",
|
|
"header.actions.notion.noMarkdownFiles": "Không tìm thấy tệp markdown trong tệp ZIP",
|
|
"header.actions.notion.partial": "Đã nhập thành công {{success}} tệp, {{failed}} tệp thất bại",
|
|
"header.actions.notion.success": "Đã nhập thành công {{count}} tệp",
|
|
"header.actions.notionGuide.cancel": "Để Sau",
|
|
"header.actions.notionGuide.desc": "Trước tiên, hãy xuất nội dung từ Notion dưới dạng tệp Markdown (ZIP). Sau đó nhấn Tiếp tục để chọn tệp ZIP và nhập tất cả các trang.",
|
|
"header.actions.notionGuide.ok": "Chọn Tệp ZIP từ Notion",
|
|
"header.actions.notionGuide.title": "Nhập từ Notion",
|
|
"header.actions.uploadFile": "Tải Lên Tệp",
|
|
"header.actions.uploadFolder": "Tải Lên Thư Mục",
|
|
"header.actions.uploadFolder.creatingFolders": "Đang tạo cấu trúc thư mục...",
|
|
"header.newPageButton": "Trang Mới",
|
|
"header.uploadButton": "Tải Lên",
|
|
"home.getStarted": "Bắt Đầu",
|
|
"home.greeting": "Bắt Đầu",
|
|
"home.quickActions": "Hành Động Nhanh",
|
|
"home.recentFiles": "Tệp Gần Đây",
|
|
"home.recentPages": "Trang Gần Đây",
|
|
"home.uploadEntries.files.title": "Tải Lên Tệp",
|
|
"home.uploadEntries.folder.title": "Tải Lên Thư Mục",
|
|
"home.uploadEntries.library.title": "Tạo Thư Viện Mới",
|
|
"home.uploadEntries.newPage.title": "Trang Mới",
|
|
"library.list.confirmRemoveLibrary": "Bạn sắp xóa thư viện này. Các tệp bên trong sẽ không bị xóa mà sẽ được chuyển đến Tất Cả Tệp. Hành động này không thể hoàn tác, vui lòng cẩn thận.",
|
|
"library.list.empty": "Nhấn <1>+</1> để tạo thư viện mới",
|
|
"library.new": "Thư Viện Mới",
|
|
"library.title": "Thư Viện",
|
|
"loadMore": "Tải Thêm",
|
|
"menu.allFiles": "Tất Cả Tệp",
|
|
"menu.allPages": "Tất Cả Trang",
|
|
"networkError": "Không thể lấy dữ liệu thư viện. Vui lòng kiểm tra kết nối mạng và thử lại.",
|
|
"notSupportGuide.desc": "Chế độ triển khai hiện tại không hỗ trợ quản lý tệp. Hãy chuyển sang <1>chế độ triển khai cơ sở dữ liệu máy chủ</1>, hoặc sử dụng <3>LobeHub Cloud</3>.",
|
|
"notSupportGuide.features.allKind.desc": "Hỗ trợ các loại tệp phổ biến, bao gồm các định dạng trang như Word, PPT, Excel, PDF, TXT, cũng như các tệp mã như JS và Python.",
|
|
"notSupportGuide.features.allKind.title": "Phân Tích Nhiều Loại Tệp",
|
|
"notSupportGuide.features.embeddings.desc": "Sử dụng mô hình vector hiệu suất cao để vector hóa các đoạn văn bản, cho phép tìm kiếm ngữ nghĩa trong nội dung tệp.",
|
|
"notSupportGuide.features.embeddings.title": "Ngữ Nghĩa Vector",
|
|
"notSupportGuide.features.libraries.desc": "Tạo Thư Viện và thêm tệp để xây dựng thư viện của riêng bạn.",
|
|
"notSupportGuide.features.libraries.title": "Thư Viện",
|
|
"notSupportGuide.title": "Chế độ triển khai hiện tại không hỗ trợ quản lý tệp",
|
|
"pageEditor.addIcon": "Thêm Biểu Tượng",
|
|
"pageEditor.autoSaveMessage": "Trang của bạn được lưu tự động. Không cần lưu thủ công.",
|
|
"pageEditor.chooseIcon": "Chọn Biểu Tượng",
|
|
"pageEditor.deleteConfirm.content": "Trang này sẽ bị xóa và không thể khôi phục. Vui lòng cẩn thận.",
|
|
"pageEditor.deleteConfirm.title": "Xóa Trang",
|
|
"pageEditor.deleteError": "Không thể xóa trang",
|
|
"pageEditor.deleteSuccess": "Đã xóa trang thành công",
|
|
"pageEditor.duplicateError": "Không thể sao chép trang",
|
|
"pageEditor.duplicateSuccess": "Đã sao chép trang thành công",
|
|
"pageEditor.editedAt": "Chỉnh sửa lần cuối vào {{time}}",
|
|
"pageEditor.editedBy": "Chỉnh sửa lần cuối bởi {{name}}",
|
|
"pageEditor.editorPlaceholder": "Bắt đầu viết trang của bạn. Nhấn / để mở menu lệnh",
|
|
"pageEditor.empty.createNewDocument": "Tạo Trang Mới",
|
|
"pageEditor.empty.importNotion": "Nhập từ Notion",
|
|
"pageEditor.empty.title": "Chọn một trang để bắt đầu",
|
|
"pageEditor.empty.uploadFiles": "Tải Lên Tệp",
|
|
"pageEditor.exportActions.openFile": "Mở",
|
|
"pageEditor.exportActions.showInFolder": "Hiển thị trong Thư mục",
|
|
"pageEditor.exportDialogTitle": "Xuất Trang",
|
|
"pageEditor.exportError": "Không thể xuất trang",
|
|
"pageEditor.exportSuccess": "Đã xuất trang thành công",
|
|
"pageEditor.linkCopied": "Đã sao chép liên kết",
|
|
"pageEditor.menu.copyLink": "Sao Chép Liên Kết",
|
|
"pageEditor.menu.export": "Xuất",
|
|
"pageEditor.menu.export.markdown": "Markdown",
|
|
"pageEditor.menu.exportDocument": "Xuất Trang",
|
|
"pageEditor.menu.importDocument": "Nhập Trang",
|
|
"pageEditor.menu.pin": "Ghim Trang",
|
|
"pageEditor.saving": "Đang lưu...",
|
|
"pageEditor.titlePlaceholder": "Chưa có tiêu đề",
|
|
"pageEditor.wordCount": "{{wordCount}} từ",
|
|
"pageList.actions.openInNewTab": "Mở trong tab mới",
|
|
"pageList.copyContent": "Sao Chép Toàn Bộ Nội Dung",
|
|
"pageList.duplicate": "Sao Chép",
|
|
"pageList.empty": "Chưa có trang nào. Nhấn nút phía trên để tạo trang đầu tiên.",
|
|
"pageList.filter.all": "Tất Cả",
|
|
"pageList.filter.onlyInPages": "Chỉ Trong Trang",
|
|
"pageList.noResults": "Không tìm thấy trang phù hợp",
|
|
"pageList.pageCount": "Tổng cộng {{count}} trang",
|
|
"pageList.pageSizeItem": "{{count}} mục",
|
|
"pageList.title": "Trang",
|
|
"pageList.untitled": "Chưa có tiêu đề",
|
|
"portal.openInPageEditor": "Chỉnh sửa trong Trang",
|
|
"preview.downloadFile": "Tải Xuống Tệp",
|
|
"preview.unsupportedFileAndContact": "Định dạng tệp này hiện không được hỗ trợ xem trực tuyến. Nếu bạn có yêu cầu xem trước, vui lòng <1>liên hệ với chúng tôi</1>.",
|
|
"resource": "Tài Nguyên",
|
|
"searchFilePlaceholder": "Tìm kiếm Tệp",
|
|
"searchPagePlaceholder": "Tìm kiếm Trang",
|
|
"tab.all": "Tất Cả",
|
|
"tab.audios": "Âm Thanh",
|
|
"tab.documents": "Tài Liệu",
|
|
"tab.home": "Trang Chủ",
|
|
"tab.images": "Hình Ảnh",
|
|
"tab.moreTypes": "Nhiều Loại Khác",
|
|
"tab.pages": "Trang",
|
|
"tab.videos": "Video",
|
|
"tab.websites": "Trang Web",
|
|
"title": "Tài Nguyên",
|
|
"toggleLeftPanel": "Hiện/Ẩn Bảng Bên Trái",
|
|
"uploadDock.body.collapse": "Thu Gọn",
|
|
"uploadDock.body.item.cancel": "Hủy",
|
|
"uploadDock.body.item.cancelled": "Đã hủy",
|
|
"uploadDock.body.item.done": "Đã tải lên",
|
|
"uploadDock.body.item.error": "Tải lên thất bại, vui lòng thử lại",
|
|
"uploadDock.body.item.pending": "Đang chuẩn bị tải lên...",
|
|
"uploadDock.body.item.processing": "Đang xử lý tệp...",
|
|
"uploadDock.body.item.restTime": "Còn lại {{time}}",
|
|
"uploadDock.fileQueueInfo": "Đang tải lên {{count}} tệp đầu tiên, còn lại {{remaining}} trong hàng đợi",
|
|
"uploadDock.totalCount": "Tổng cộng {{count}} mục",
|
|
"uploadDock.uploadStatus.cancelled": "Tải lên đã bị hủy",
|
|
"uploadDock.uploadStatus.error": "Lỗi tải lên",
|
|
"uploadDock.uploadStatus.pending": "Đang chờ tải lên",
|
|
"uploadDock.uploadStatus.processing": "Đang tải lên",
|
|
"uploadDock.uploadStatus.success": "Tải lên hoàn tất",
|
|
"uploadDock.uploadStatus.uploading": "Đang tải lên"
|
|
}
|