refactor: codex usage ui (#5595)

* refactor: codex usage ui

* feat: show Codex reset credit details

* feat: add Codex usage reset flow
This commit is contained in:
Seefs
2026-06-19 16:07:32 +08:00
committed by GitHub
parent 6bd69f3edf
commit 3fcd741c6e
12 changed files with 1509 additions and 424 deletions
+32
View File
@@ -234,6 +234,7 @@
"Advanced Settings": "Cài đặt nâng cao",
"Advanced text editing": "Chỉnh sửa văn bản nâng cao",
"Aesthetic style": "Phong cách",
"Affected windows:": "Cửa sổ bị ảnh hưởng:",
"After clicking the button, you'll be asked to authorize the bot": "Sau khi nhấp vào nút, bạn sẽ được yêu cầu ủy quyền cho bot",
"After disabling, it will no longer be shown to users, but historical orders are not affected. Continue?": "Sau khi vô hiệu hóa, sẽ không hiển thị cho người dùng nữa, nhưng đơn hàng lịch sử không bị ảnh hưởng. Tiếp tục?",
"After enabling, the plan will be shown to users. Continue?": "Sau khi kích hoạt, gói sẽ được hiển thị cho người dùng. Tiếp tục?",
@@ -394,6 +395,7 @@
"Apply Filters": "Áp dụng bộ lọc",
"Apply IP Filter to Resolved Domains": "Áp dụng Bộ lọc IP cho Tên miền đã phân giải",
"Apply Overwrite": "Áp dụng Ghi đè",
"Apply reset": "Thực hiện đặt lại",
"Apply Sync": "Áp dụng đồng bộ",
"Applying...": "Đang áp dụng...",
"Approx.": "Xấp xỉ.",
@@ -485,8 +487,10 @@
"Automatically sync model list when upstream changes are detected": "Tự động đồng bộ danh sách mô hình khi phát hiện thay đổi từ nguồn",
"Availability (last 24h)": "Khả dụng (24 giờ qua)",
"Available": "Khả dụng",
"Available credits are ordered by soonest expiration.": "Các lượt khả dụng được sắp xếp theo thời điểm hết hạn gần nhất.",
"Available disk space": "Dung lượng đĩa khả dụng",
"Available Models": "Mô hình khả dụng",
"Available reset credits": "Lượt đặt lại khả dụng",
"Available Rewards": "Phần thưởng hiện có",
"Average latency": "Độ trễ trung bình",
"Average latency, TTFT, and success rate by group": "Độ trễ trung bình, TTFT và tỷ lệ thành công theo nhóm",
@@ -686,6 +690,7 @@
"Channel enabled successfully": "Kênh đã được bật thành công",
"Channel Extra Settings": "Cài đặt thêm kênh",
"Channel ID": "Mã kênh",
"Channel ID is required": "Cần có ID kênh",
"Channel key": "Khóa kênh",
"Channel key unlocked": "Khóa kênh đã được mở khóa",
"Channel models": "Mô hình kênh",
@@ -811,6 +816,7 @@
"Codes copied!": "Đã sao chép mã!",
"Codex": "Codex",
"Codex Account & Usage": "Tài khoản và sử dụng Codex",
"Codex Account Status": "Trạng thái tài khoản Codex",
"Codex channels do not support batch creation": "Kênh Codex không hỗ trợ tạo hàng loạt",
"Codex channels use an OAuth JSON credential as the key.": "Kênh Codex dùng thông tin xác thực OAuth JSON làm khóa.",
"Codex CLI Header Passthrough": "Chuyển tiếp header Codex CLI",
@@ -928,6 +934,7 @@
"Confirm settings and finish setup": "Xác nhận cài đặt và hoàn tất thiết lập",
"confirm that I bear legal responsibility arising from deployment": "xác nhận rằng tôi chịu trách nhiệm pháp lý phát sinh từ việc triển khai",
"Confirm Unbind": "Xác nhận hủy liên kết",
"Confirm usage reset": "Xác nhận đặt lại mức dùng",
"Confirm your identity before removing this Passkey from your account.": "Hãy xác minh danh tính trước khi gỡ Passkey khỏi tài khoản.",
"Confirm your identity with Two-factor Authentication before registering a Passkey.": "Hãy xác minh danh tính bằng Xác thực hai yếu tố trước khi đăng ký Passkey.",
"Confirmed at {{time}} by user #{{userId}}": "Được xác nhận lúc {{time}} bởi người dùng #{{userId}}",
@@ -1625,6 +1632,8 @@
"Expired at": "Hết hạn lúc",
"Expired time cannot be earlier than current time": "Thời gian hết hạn không thể sớm hơn thời gian hiện tại",
"Expires": "Hết hạn",
"Expires at": "Hết hạn lúc",
"Expires in": "Còn lại",
"Expose ratio API": "Cung cấp API tỷ lệ",
"Exposes the pricing/models catalog in the top navigation.": "Hiển thị danh mục giá/mô hình trên thanh điều hướng đầu trang.",
"Expression": "Biểu thức",
@@ -1699,6 +1708,7 @@
"Failed to fetch deployment details": "Không thể lấy chi tiết triển khai",
"Failed to fetch models": "Không thể lấy các mô hình",
"Failed to fetch OIDC configuration. Please check the URL and network status": "Không thể lấy cấu hình OIDC. Vui lòng kiểm tra URL và trạng thái mạng",
"Failed to fetch reset credit details": "Không lấy được chi tiết lượt đặt lại",
"Failed to fetch upstream prices": "Không thể lấy giá từ upstream",
"Failed to fetch upstream ratios": "Không thể lấy tỷ lệ upstream",
"Failed to fetch usage": "Không lấy được mức sử dụng",
@@ -1732,6 +1742,7 @@
"Failed to reset 2FA": "Không thể đặt lại 2FA",
"Failed to reset model ratios": "Không thể đặt lại tỷ lệ mô hình",
"Failed to reset Passkey": "Không thể đặt lại Passkey",
"Failed to reset usage": "Không thể đặt lại mức dùng",
"Failed to save": "Lưu thất bại",
"Failed to save announcements": "Không thể lưu thông báo",
"Failed to save API info": "Không thể lưu thông tin API",
@@ -1962,6 +1973,7 @@
"gpt-4": "gpt-4",
"gpt-4, claude-3-opus, etc.": "gpt-4, claude-3-opus, v.v.",
"GPU count": "Số lượng GPU",
"Granted at": "Được cấp lúc",
"Greater than": "Lớn hơn",
"Greater Than": "Lớn hơn",
"Greater than or equal": "Lớn hơn hoặc bằng",
@@ -2726,6 +2738,8 @@
"No related models available for this channel type": "Không có mô hình liên quan nào cho loại kênh này",
"No release notes provided.": "Không có ghi chú phát hành nào được cung cấp.",
"No Reset": "Không đặt lại",
"No reset credits": "Không có lượt đặt lại",
"No reset credits available": "Không có lượt đặt lại khả dụng",
"No restriction": "Không giới hạn",
"No results for \"{{query}}\". Try adjusting your search or filters.": "Không tìm thấy kết quả cho \"{{query}}\". Hãy thử điều chỉnh tìm kiếm hoặc bộ lọc.",
"No results found": "Không tìm thấy kết quả nào",
@@ -2915,6 +2929,7 @@
"Output token price for generated tokens.": "Giá token đầu ra cho nội dung được tạo.",
"Output tokens": "Token đầu ra",
"Output Tokens": "Token đầu ra",
"Overage limited": "Đã giới hạn vượt mức",
"overall": "tổng",
"Overnight range": "Khoảng qua nửa đêm",
"override": "ghi đè",
@@ -3346,6 +3361,8 @@
"Recursive": "Đệ quy",
"Redeem": "Đổi",
"Redeem codes": "Đổi mã",
"Redeemed": "Đã dùng",
"Redeemed at": "Đã dùng lúc",
"Redeemed By": "Được chuộc bởi",
"Redeemed:": "Đã đổi:",
"redemption code": "mã đổi thưởng",
@@ -3373,6 +3390,7 @@
"Refresh": "Làm mới",
"Refresh Cache": "Làm mới bộ nhớ đệm",
"Refresh credential": "Làm mới thông tin xác thực",
"Refresh details": "Làm mới chi tiết",
"Refresh failed": "Làm mới thất bại",
"Refresh interval (minutes)": "Khoảng thời gian làm mới (phút)",
"Refresh Stats": "Làm mới thống kê",
@@ -3491,6 +3509,11 @@
"Reset all settings to default values": "Đặt lại tất cả cài đặt về giá trị mặc định",
"Reset at:": "Đặt lại lúc:",
"Reset balance and used quota": "Đặt lại số dư và hạn mức đã sử dụng",
"Reset completed": "Đặt lại hoàn tất",
"Reset completed. Latest usage has been refreshed.": "Đặt lại hoàn tất. Dữ liệu sử dụng mới nhất đã được làm mới.",
"Reset count:": "Số lần đặt lại:",
"Reset Credit": "Lượt đặt lại",
"Reset Credits": "Lượt đặt lại",
"Reset Cycle": "Chu kỳ đặt lại",
"Reset email sent, please check your inbox": "Email đặt lại đã được gửi, vui lòng kiểm tra hộp thư đến",
"Reset failed": "Đặt lại thất bại",
@@ -3506,7 +3529,9 @@
"Reset to Default": "Đặt lại mặc định",
"Reset to default configuration": "Đã đặt lại cấu hình mặc định",
"Reset Two-Factor Authentication": "Đặt lại Xác thực hai yếu tố",
"Reset usage window": "Đặt lại cửa sổ mức dùng",
"Resets in:": "Đặt lại sau:",
"Resetting...": "Đang đặt lại...",
"Resolve Conflicts": "Giải quyết Xung đột",
"Resource Configuration": "Cấu hình tài nguyên",
"Response": "Phản hồi",
@@ -3872,6 +3897,7 @@
"Special ratios override the token group ratio for specific user group and token group combinations.": "Tỷ lệ đặc biệt ghi đè tỷ lệ nhóm token cho các tổ hợp nhóm người dùng và nhóm token cụ thể.",
"Special usable group rules": "Quy tắc nhóm sử dụng đặc biệt",
"Special usable group rules can add, remove, or append selectable token groups for a specific user group.": "Quy tắc nhóm khả dụng đặc biệt có thể thêm, xóa hoặc nối nhóm token có thể chọn cho một nhóm người dùng cụ thể.",
"Spend limited": "Đã giới hạn chi tiêu",
"SQLite stores all data in a single file. Make sure that file is persisted when running in containers.": "SQLite lưu trữ tất cả dữ liệu trong một tệp duy nhất. Đảm bảo tệp được lưu trữ lâu dài khi chạy trong container.",
"SSRF Protection": "Bảo vệ SSRF",
"Standard": "Tiêu chuẩn",
@@ -4088,6 +4114,7 @@
"The name displayed across the application": "Tên hiển thị trên ứng dụng",
"The public URL of your server, used for OAuth callbacks, webhooks, and other external integrations": "URL công khai của máy chủ, dùng cho callback OAuth, webhook và các tích hợp bên ngoài khác",
"The requested chat preset does not exist or has been removed.": "Cài đặt sẵn cuộc trò chuyện được yêu cầu không tồn tại hoặc đã bị xóa.",
"The reset request stays disabled until a credit is available.": "Yêu cầu đặt lại sẽ bị tắt cho đến khi có lượt khả dụng.",
"The setup wizard will use this database during initialization.": "Trình hướng dẫn thiết lập sẽ sử dụng cơ sở dữ liệu này trong quá trình khởi tạo.",
"The site is not available at the moment.": "Trang web hiện không khả dụng.",
"The slug is appended to the URL:": "Slug được gắn vào URL:",
@@ -4402,6 +4429,7 @@
"Upload photo": "Tải ảnh lên",
"Upscale": "Phóng to",
"Upstream": "Thượng nguồn",
"Upstream did not return reset credit details.": "Upstream không trả về chi tiết lượt đặt lại.",
"Upstream Model Detection Settings": "Cài đặt phát hiện mô hình nguồn",
"Upstream Model Update Check": "Kiểm tra cập nhật mô hình nguồn",
"Upstream Model Updates": "Cập nhật mô hình upstream",
@@ -4447,6 +4475,8 @@
"Use backup code": "Sử dụng mã dự phòng",
"Use disk cache when request body exceeds this size": "Sử dụng bộ nhớ đệm đĩa khi nội dung yêu cầu vượt quá kích thước này",
"Use external tools to extend capabilities": "Sử dụng công cụ ngoài để mở rộng khả năng",
"Use one available reset credit for this channel. The reset request is sent only after confirmation.": "Sử dụng một lượt đặt lại khả dụng cho kênh này. Yêu cầu chỉ được gửi sau khi xác nhận.",
"Use one available reset credit to refresh the current Codex usage windows.": "Sử dụng một lượt đặt lại khả dụng để làm mới các cửa sổ mức dùng Codex hiện tại.",
"Use our unified OpenAI-compatible endpoint in your applications": "Sử dụng endpoint thống nhất tương thích OpenAI trong ứng dụng của bạn",
"Use Passkey to sign in without entering your password.": "Sử dụng Khóa truy cập để đăng nhập mà không cần nhập mật khẩu của bạn.",
"Use presets or upstream discovery to populate the model list faster.": "Dùng mẫu đặt sẵn hoặc phát hiện từ upstream để điền danh sách mô hình nhanh hơn.",
@@ -4464,6 +4494,7 @@
"Used for load balancing. Higher weight = more requests": "Được sử dụng để cân bằng tải. Trọng số càng cao = càng nhiều yêu cầu",
"Used in URLs and API routes": "Sử dụng trong URL và các tuyến API",
"Used Quota": "Hạn mức đã sử dụng",
"Used reset credits cannot be restored.": "Các lượt đặt lại đã dùng không thể khôi phục.",
"Used to authenticate with io.net deployment API": "Dùng để xác thực với API triển khai io.net",
"Used to authenticate with the worker. Leave blank to keep the existing secret.": "Dùng để xác thực với worker. Để trống để giữ nguyên secret hiện có.",
"Used to decide the payment flow. Built-in keys include stripe for Stripe and waffo_pancake for Waffo Pancake; other values are sent to Epay as the type parameter.": "Dùng để quyết định luồng thanh toán khi người dùng nhấp. Các khóa có sẵn gồm stripe cho Stripe và waffo_pancake cho Waffo Pancake; các giá trị khác được gửi tới Epay dưới dạng tham số type.",
@@ -4555,6 +4586,7 @@
"View detailed information about this user including balance, usage statistics, and invitation details.": "Xem thông tin chi tiết về người dùng này bao gồm số dư, thống kê sử dụng và chi tiết lời mời.",
"View details": "Xem chi tiết",
"View document": "Xem tài liệu",
"View issued reset credits, grant dates, and expiration.": "Xem các lượt đặt lại đã cấp, ngày cấp và thời điểm hết hạn.",
"View logs": "Xem nhật ký",
"View mode": "Chế độ xem",
"View model statistics and charts": "Xem thống kê và biểu đồ mô hình",